Why the SKR Mini E3?
Under $50, the BigTreeTech SKR Mini E3 is in my opinion the best mainboard you can get for your Ender 3 V2/Pro, Ender 5 or CR-10.
The SKR Mini E3 V3 provides several benefits over the stock Ender 3 mainboards:
- very good heat dissipation thanks to the upgraded heat sink and a better separation of the drivers
- silent TMC2209 drivers and 3 PWM Controlled fans
- UART controlled TMC drivers which allows the firmware to control the stepper motor mode & current and to monitor the drivers
- Support for expansion: Touch screen, filament runout detection, BLTouch + dual Z-axis (running of a single driver)
What You Need
|BIGTREETECH SKR Mini E3 V3.0|
|Dupont Ratchet Crimping Tool Set|
SKR Mini E3 V3 Installation & Wiring
The SKR Mini E3 V3.0 is almost a direct replacement of the Ender 3 mainboards. It has the same physical size & mounting holes. The only differences are:
- The polarity +/- of some connectors (e.g. HEAT BED, HOTEND) is reversed
- The HOTEND HEAT SINK FAN requires a JST 2 pins connector (in the Creality mainboards, it is connected directly, without a connector)
SKR Mini E3 V3 Firmware
If you happen to have a BondTech BMG extruder + E3D V6 hotend + BLTouch, you can download directly the firmwares below:
Otherwise, you will need to update the configuration files for your 3d printer configuration, compile & flash the firmware. The easiest way would be to start from my configuration files, which are know to work, and to update what you need. In the sections below, I provide some details about the configuration changes specific to the SKR Mini E3 which are not very well documented…
SKR Mini E3 V3 Marlin Configuration
One of the main difficulty with the SKR MINI E3 is to get the fans to work properly.
There a 3 fan ports, FAN0, FAN1, and FAN2. The 3 ports are functionally equivalent therefore you could connect any fan to any port. However, the firmware must be configured accordingly and in particular, it must know which fan is connected to which port to control each fan according to its function.
The fan pins are defined in file Marlin/src/pins/stm32g0/pins_BTT_SKR_MINI_E3_V3_0.h:
// // Heaters / Fans // #define HEATER_0_PIN PC8 // "HE" #define HEATER_BED_PIN PC9 // "HB" #define FAN_PIN PC6 // "FAN0" #define FAN1_PIN PC7 // "FAN1" #define FAN2_PIN PB15 // "FAN2"
Connect the fans as per the table below:
|FAN0||PC6||Part Cooling Fan, to cool down the extruding filament|
|FAN1||PC7||Electronic Enclosure Fan, to cool down the stepper motor drivers|
|FAN2||PB15||Hotend Heat Sink Fan, to cool down the hot end|
- The Part Cooling Fan (FAN0/PC6) is controlled by the slicer / gcode commands.
- Configure the Hotend Heat Sink Fan (FAN2/PB15) to turn on at full speed when the hotend is above 50 deg C. In Marlin’s Configuration_adv.h:
/** * Extruder cooling fans * * Extruder auto fans automatically turn on when their extruders' * temperatures go above EXTRUDER_AUTO_FAN_TEMPERATURE. */ #define E0_AUTO_FAN_PIN PB15 #define EXTRUDER_AUTO_FAN_TEMPERATURE 50 #define EXTRUDER_AUTO_FAN_SPEED 255 // 255 == full speed
- Configure the Electronic Enclosure Fan (FAN1/PC7) to turn on automatically whenever any driver is enabled and to turn off (or reduces to idle speed) 60 seconds after drivers are turned off. In Marlin’s Configuration_adv.h:
/** * Controller Fan * To cool down the stepper drivers and MOSFETs. * * The fan turns on automatically whenever any driver is enabled and turns * off (or reduces to idle speed) shortly after drivers are turned off. */ #define USE_CONTROLLER_FAN #if ENABLED(USE_CONTROLLER_FAN) #define CONTROLLER_FAN_PIN PC7 // Set a custom pin for the controller fan //#define CONTROLLER_FAN_USE_Z_ONLY // With this option only the Z axis is considered //#define CONTROLLER_FAN_IGNORE_Z // Ignore Z stepper. Useful when stepper timeout is disabled. #define CONTROLLERFAN_SPEED_MIN 0 // (0-255) Minimum speed. (If set below this value the fan is turned off.) #define CONTROLLERFAN_SPEED_ACTIVE 255 // (0-255) Active speed, used when any motor is enabled #define CONTROLLERFAN_SPEED_IDLE 0 // (0-255) Idle speed, used when motors are disabled #define CONTROLLERFAN_IDLE_TIME 60 // (seconds) Extra time to keep the fan running after disabling motors // Use TEMP_SENSOR_BOARD as a trigger for enabling the controller fan //#define CONTROLLER_FAN_MIN_BOARD_TEMP 40 // (°C) Turn on the fan if the board reaches this temperature #define CONTROLLER_FAN_EDITABLE // Enable M710 configurable settings #if ENABLED(CONTROLLER_FAN_EDITABLE) #define CONTROLLER_FAN_MENU // Enable the Controller Fan submenu #endif #endif