SKR 3¶
Product Profile¶
The BIGTREETECH SKR 3 mother board is a brand new 32 bit motherboard developed by Shenzhen BIQU Innovation Technology Co., Ltd. that fixed all the problems of the V1.4/Turbo board with new features and improved functionality.
Product Link: https://biqu.equipment/products/bigtreetech-btt-skr-3-control-board-for-3d-printer
Features Highlights¶
- Utilize 32bit 480MHz ARM Cortex-M7 serires STM32H743VI MCU for massively improved performance
- TPS5450-5A power supply chip,support DC12/24V power input, current output rated at 5A max continuous and 6A max instantaneous,sufficient power supply for Raspberry pi(3A requirement)
- Onboard BOOT button to enable DFU mode to update bootloader
- Thermistor circuit is protected to prevent MCU damage from shorted heatbed and heater cartridge connection.
- Selectable voltage (24V, 12V, 5V by SKR 3-DC MODE)for CNC fan (Note: The voltages of the 3 * CNC fans are unified, different voltages cannot be set separately for different ports),no more need for external stepdown thus prevent board damage from user error
- Thermistor connection supports Pull up resistance value setting using jumpers, No more extra module needed for PT1000
- Supports all models of Serial TFT, SPI TFT, and LCD12864/2004 from BTT
- Firmware installation from using MicroSD card, simple and efficient
- Integrated SPI and UART mode of TMC driver and DIAG pin,easily configurable with jumpers
- Supports power loss recovery, filament runout sensor, Auto poweroff,BLTouch, RGB led etc.
- High efficiency MOSFET for less heat generation
- Replaceable fuse for easy maintenance
- WIFI module(ESP-12S、ESP-07、ESP32)supported
- Onboard SDIO MicroSD slot for Higher transfer rateOnboard EEPROM for setting storage
- 2 method for CAN connection:USB & XH2.54 6Pin,USB port CAN/USB mode is selected by switches.
Specifications¶
Dimention | 11085mm, for details please refer to:BIGTREETECH SKR 3-SIZE.pdf* |
---|---|
Mounting pattern | 102*76mm |
MCU | ARM Cortex-M7 STM32H743VI |
EEPROM | 24C32 32Kbit |
Voltage in | DC12V-DC24V |
Logic voltage | DC 3.3V |
Heater connection | Heated bed(HB)、heater cartridge(E0、E1) |
HB port max current | 10A continuous ,11A instantaneous |
Heater cartridge max current | 5.5A continuous,6A instantaneous |
Fan port | 3 X CNC(selectable voltage) ,2 X always on(PSU voltage) |
Fan port max current | 1A continuous,1.5A instantaneous |
The Total Current of Heating artridges(E0, E1) + Driver + Fan | less than 10A |
WIFI connection | ESP-12S、ESP-07S、ESP32 |
Expansion port | BLTouch(Servos、Probe)、PS-ON、PWR-DET、Fil-DET、RGB、CAN FD |
Steppers supported | TMC5160、TMC2209、TMC2225、TMC2226、TMC2208、TMC2130、ST820、LV8729、DRV8825、A4988 etc. |
Stepper driver mode | SPI、UART、STEP/DIR |
Stepper motor socket | X、Y、Z(Parallel double Z-Axis)、E0、E1 5 channels in total |
Thermistor | 2 X thermistor port(NTC/PTC selectable) |
Display | Serial、SPI、LCD |
PC connection | USB A |
Supported file format | G-code |
Supported kinematics | Cartesian、Delta、Kossel、Ultimaker、CoreXY |
Recommended Slicer/Console | Cura、Simplify3D、Pronterface、Repetier-host、Makerware |
Firmware Support¶
Compatible with Klipper, Marlin, RRF(RepRapFirmware)
Dimensions¶
Peripheral Interface¶
Interface Diagram¶
Pin Description¶
Interface Introduction¶
USB Power Supply¶
After the SKR 3 board has been powered,the Red led D7(Power) to the upper right of the MCU will light up, indicating power on. When using only USB to power the boar, Please insert the jumper cap onto the VUSB jumper.
Stepper Motor Drivers¶
STEP/DIR(STANDALONE) mode¶
i.e:A4988、DRV8825、LV8729、ST820 etc,connect jumpers(MS0-MS2) according to the microstep chart
For details, please click: https://bigtreetech.github.io/docs/Tutorials.html
UART mode of TMC driver¶
i.e:TMC2208、TMC2209、TMC2225 etc. Place jumpers according to the diagram below,microstep and current can be configured in firmware.
TMC driver SPI mode¶
i.e:TMC2130、TMC5160、TMC5161 et.c,Place jumpers according to the diagram below,microstep and current can be configured in firmware.
TMC driver DIAG(Sensorless Homing)¶
When using sensorless homing, place jumpers according to the diagram below, there is no need to cut the DIAG pin off when not being used.
USB and CAN mode¶
When the button shown below is released, the board is in usb mode, when pressed down, the board is in CAN FD mode.
Voltage selection for CNC Fan¶
Connect jumper between the two pins of VIN if using DCIN as CNC fan voltage. Connect jumper between the two pins of VOT and insert SKR 3-DC MODE on to the 2*4 Pin sockets if 12V or 5V is desired *
Note: The voltages of the 3xCNC fans are unified, different voltages cannot be set separately. i.e: the voltage of 3xCNC can be set to 24V, 12V or 5V at the same time, but it cannot be set to the combination of 24V+12V+5V.
Voltage of the SKR 3-DC MODE is set by connecting jumpers on 5V or 12V on VOTChoose pins.
100K NTC or PT1000 setting¶
When using 100K NTC no jumpers need to be connected,the pull up resistance of TH0 & TH1 is 4.7K. When using PT1000 the jumpers indicated in the picture below needs to be connected, the pull up resistance of TH0 & TH1 is changed to 1K.
BLTouch wiring¶
Auto power off (Relay V1.2) wiring¶
Power loss recovery (UPS 24V V1.0) wiring¶
RGB wiring¶
Filament sensor wiring¶
Display wiring¶
Heater cartridge IO¶
The IO of the SKR 3 heater cartridge is wired to the MOS by the jumper. You can remove the jumper and connect the IO to device directly if you need to use the laser or other device that need PWM.
Note: The IO passes through logic conversion chip, the output high level is 5V, and cannot be used as an input.
Marlin¶
install compiling environment¶
https://github.com/bigtreetech/Document/blob/master/How%20to%20install%20VScode%2BPlatformio.md
https://marlinfw.org/docs/basics/install_platformio_vscode.html
Refer to the link above for tutorial on installing VSCode and PlatformIO plugin
Download Marlin firmware¶
1、Download the newest bugfix version of Marlin from official website
https://github.com/MarlinFirmware/Marlin/tree/bugfix-2.0.x
2、Download Pre-configured firmware from our GitHub page
https://github.com/bigtreetech/SKR-3
Configure firmware¶
Open Marlin project¶
You can open Marlin in VS Code in one of several ways:
- Drag the downloaded Marlin Firmware folder onto the VScode application icon
- Use the Open… command in the VSCode File menu
- Open the PIO Home tab and click the “Open Project” button
Compiling environment¶
Open platformio.ini file and change default_envs to STM32H743Vx_btt
Configure motherboad and serial port¶
Set MOTHERBOARD
to BOARD_BTT_SKR_3
Enable serial ports according to your needs
#define MOTHERBOARD BOARD_BTT_SKR_3
#define SERIAL_PORT 1 (enable TFT serial port)
#define BAUDRATE 115200 (set baudrate to the same as the communication device)
#define SERIAL_PORT_2 -1 (enable USB serial port)
#define SERIAL_PORT_3 3 (enable WIFI serial port)
Configure stepper driver¶
When using SPI mode,TMC_USE_SW_SPI needs to be Uncommented in Configuration_adv.h
#define TMC_USE_SW_SPI
Sensorless homing¶
#define SENSORLESS_HOMING // enable sensorless homing
#define xx_STALL_SENSITIVITY 8 // sensitivity setting ,TMC2209 range from 0 to 255,higher number results in more sensitive trigger threshold,sensitivity too high will cause endpoint to trigger before gantry actually move to the end,lower number results in less sensitive trigger threshold,,too low of sensitivity will cause endpoint to not trigger and gantrying continue。Other drivers ranges from 63 to -64,lower numbers results in more sensitive triger threshold
#define IMPROVE_HOMING_RELIABILITY // can be used to set independent motor current for homing moves(xx_CURRENT_HOME) to improve homing reliability.
100K NTC or PT1000¶
When using 100K NTC, pullup resistance is 4.7K, when using Pt1000, pullup resistance is 1K,set sensor type to 1 for 100K NTC +4.7K pullup resistance , 1010 for PT1000 + 1K pullup resistance.
#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_1 1
#define TEMP_SENSOR_BED 1
BLTouch¶
//#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
#define BLTOUCH // Enable bltouch
#define NOZZLE_TO_PROBE_OFFSET { -40, -10, -2.85 } // set BLtouch probe offset
#define PROBING_MARGIN 10 // set distance between probe area and print area perimeter
#define AUTO_BED_LEVELING_BILINEAR // set probe pattern
#define RESTORE_LEVELING_AFTER_G28 // apply leveling after G28 homing command
#define GRID_MAX_POINTS_X 5 // set number of probe points for x axis, usually 5 point is sufficient #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X // set number of probe points for Y axis to the same as X axis
If bltouch also functions as your Z homing sensor,no wiring change is needed,
#define USE_PROBE_FOR_Z_HOMING // use Z Probe(BLtouch) for Z homing
#define Z_SAFE_HOMING // home Z at the center of print bed to prevent probing outside of the print bed.
Auto power off(Relay V1.2)¶
#define PSU_CONTROL // enable PSU control to turn on and off using M80 and M81
#define PSU_ACTIVE_STATE HIGH // set turn on level, Relay V1.2 is turned on with high level and turned off with low level ,so this setting needs to be HIGH.
Power loss revovery¶
There are two methods for power lost recovery
1、No extra module needed, the motherboard will write current print status to the SD card after every layer is printed, which shortens the life of the SD card severely.
#define POWER_LOSS_RECOVERY // enable power loss recovery#define
#define PLR_ENABLED_DEFAULT true // true default to power loss recovery enabled
2、external UPS 24V V1.0 module,when power is cut, the module will provide power to the board and signal the board to save current print status to SD card. This method has virtually no effect on the life of the SD card.
#define POWER_LOSS_RECOVERY // enable power loss recovery
#define PLR_ENABLED_DEFAULT true // true default to power loss recovery enanbled
#define POWER_LOSS_ZRAISE 10 // raise the print head by 10mm after power loss to prevent the nozzle from touching the printed part.
#define POWER_LOSS_STATE HIGH // set signal level, UPS 24V V1.0 returns low level when not triggered and HIGH level when power is cut, thus this setting needs to be HIGH.
RGB¶
#define NEOPIXEL_LED // enable Neopixel #define NEOPIXEL_TYPE NEO_GRB // set Neopixel type //#define NEOPIXEL_PIN 4 // disable PIN setting,use the correct signal pin in the pin file of the motherboard #define NEOPIXEL_PIXELS 30 // number of leds #define NEOPIXEL_STARTUP_TEST // the light will show red green and blue sequentially to self-test.
If you are using displays like LCD2004、12864、mini12864 etc,you can also control RGB from your display directly.
#define LED_CONTROL_MENU // And led control to your menu
Filament sensor¶
Standard filament run out sensors are usually comprised of a microswitch which signals the mainboard of filament status with High or Low level signal.
#define FILAMENT_RUNOUT_SENSOR // enable filament run out sensor #define FIL_RUNOUT_ENABLED_DEFAULT true // true default to filament run out sensor enanbled #define NUM_RUNOUT_SENSORS 1 // number of filament run out sensor #define FIL_RUNOUT_STATE LOW // voltage level of the filament runout sensor trigger signal.
smart filament sensor(SFS V1.0 / V2.0)¶
The Smart filament sensor works by continuously sending signal to the mainboard to communicate filament status
#define FILAMENT_MOTION_SENSOR // set encoder type #define FILAMENT_RUNOUT_DISTANCE_MM 3 // set sensitivity,SFS V1.0 nominal setting should be 7mm,which means if no signal of filament movement is detected after 7mm of filament travel command, filament error will be triggered ,SFS V2.0 nominal setting should be 3mm
The settings below also need to be set to instruct the printer to park the nozzle after filament error is detected.
#define NOZZLE_PARK_FEATURE // park nozzle
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } //set the X,Y,and Z offset coordinate of the nozzle
#define ADVANCED_PAUSE_FEATURE // retraction setting of nozzle park movement and filament purge distance after print is resumed.
ESP3D¶
The serial port between ESP8266 and Marlin on the motherboard is UART3
the newest ESP3D firmware can be found at https://github.com/luc-github/ESP3D ,compile your own binary file and rename to esp3d.bin
, copy to
the root directory of the sd card, insert into the motherboard and press reset button. The bootloader will update the firmware to ESP8266 automatically. If updated successfully, the file will be renamed to ESP3D.CUR
Compile firmware¶
1、Click √
to compile firmware
2、Copy the compiled firmware.bin
to SD card and insert to motherboard to update firmware
Klipper¶
Preparation¶
Download OS image¶
Download your preferred OS image with build in WebUI,popular choices are Fluidd, Mainsail etc.
Fluidd:https://github.com/fluidd-core/FluiddPI/releases
Mainsail:https://github.com/mainsail-crew/MainsailOS/releases
Or refer to Klipper official installation guide using Octoprint
Download and install Raspberry Pi Imager¶
Install the official raspberry pi imager https://www.raspberrypi.com/software/
Write image¶
For details, please click: https://bttwiki.com/Software%20Installation.html#write-os
WIFI setting¶
NOTE:skip this step if you are using ethernet port not using WIFI
1、Reinsert the SD card
2、Find“fluiddpi-wpa-supplicant.txt”or “mainsail-wpa-supplicant.txt”in the SD card root directory, open it with VSCode (do not open it with windows notepad)
3、delete #
,insert the correct wifi SSID and password then save the file,
ssh connect to raspberry pi¶
1、Install the ssh application Mobaxterm:https://mobaxterm.mobatek.net/download-home-edition.html
2、Insert SD card to raspberry pi,wait for system to load after power one,aprox. 1-2min
3、The raspberry pi will automatically be assigned a IP address after successfully connected to the network
4、Find the raspberry pi IP address in your router page
5、Or use the https://angryip.org/ tool,scan all IP address in the current network organize by names, find the IP named Fluidd or Mailsail like shown below
6、Open Mobaxtermand click“Session”,and click“SSH”,inset the raspberry pi IP into Remote host and click“OK”
NOTE:your computer and the raspberry pi needs to be in the same network
7、login as:pi password:raspberry
Compile firmware¶
1、After ssh successfully connected to the raspberry pi, enter in terminal:
Compile with the configuration shown below(if the options below is not available, please update you Klipper source code to the newest version)
- [*] Enable extra low-level configuration options
- Micro-controller Architecture (STMicroelectronics STM32) --->
- Processor model (STM32H743) --->
- Bootloader offset (128KiB bootloader (SKR SE BX v2.0)) --->
- Clock Reference (25 MHz crystal) --->
- Communication interface (USB (on PA11/PA12)) --->
2、Press q
to exit, and Yes
when asked to save the configuration
3、Run make to compile firmware,“klipper.bin”file will be generated in home/pi/kliiper/out folder when make is finished, download it onto your computer using the ssh application.
4、Rename klipper.bin to“firmware.bin”,copy to SD card to update firmware
5、Enter:ls /dev/serial/by-id/in command line to check motherboad ID to confirm whether firmware is updated successfully like showm below.
copy and save this ID,it is needed when modifying klipper config
Configure Klipper¶
1、Enter your raspberry pi IP address into your browser to open the webUI,find the reference config for motherboard in the directory shown below,if there is no such config available, update your klipper source code to the newest version or download from github:https://github.com/bigtreetech/SKR-3
2、Upload your finished config file into Configuration Files, and rename to printer.cfg
3、Insert the correct motherboad ID
4、Refer to https://www.klipper3d.org/Overview.html for detailed configuration guide according to your machine type.
Firmware update¶
- Update using Micro SD
- Make sure Micro SD is formatted to FAT32
- Rename your firmware file to“firmware.bin”(note:make sure your system is showing file suffix, if suffix is hided,“firmware.bin”will be shown as“firmware”)
- Copy“firmware.bin”to the root directory of your SD card.
- Insert Micro SD to the motherboard and power on, the bootloader will automatically update the firmware
- The status indicator led will flash during the update process
- When the led stops flashing and the firmware.bin file has been renamed to firmware.cur, the firmware has been successfully updated.
Precausions¶
- When not using PT1000,do not connect any jumper in the PT1000 pins,otherwise 100K NTC will not work.
- Maximum heated bed current is 10A,if high power heated bed is preferred, please use 24v to power the system and use a 24v heated bed.
- CNC fan voltage selecting jumper must be inserted for CNC fan port to work correctly
- If the board is plugged into your computer and not responding, make sure the USB/CAN selecting button is released and set to USB mode.
- The Micro SD card slot is not spring loaded, please be careful when inserting the Micro SD card to prevent damage to the card slot. BTT is not responsible for any damage caused by forcefully inserting the Micro SD card
FAQ¶
Q: Max current of heated bed,heater cartridge,fan port? A:heated bed: 10A continuous,11A instantaneous heater cartridge: 5.5A continuous,6A instantaneous Fan port: 1A continuous,1.5A instantaneous combined current of heater cartridges(E0, E1), stepper driver and fan port should not exceed 10A
Q:Can not update firmware with SD card
A:make sure your sd card is formatted to FAT32,firmware file name is firmware.bin
, make sure your system is showing file suffix, if suffix is
hided,“firmware.bin”will be shown as firmware
.