The Ender 5 Plus is Creality’s latest large build corexy printer, boasting a print volume of 350x350x400mm. Oddly, it does not ship with the ‘silent’ board, and wow is this thing noisy!
Please note – this article includes Amazon Associates links – it cost you nothing more to use these, but helps me fund the running of the site if you do you use them
I have an Ender 3 Pro with an Skr1.3 and TMC2209s fitted, which is almost silent, so I decided to go this route on the E5+. I did not, however, want to replace the stock screen. I only really need the screen for being able to stop a print, or to move the axis – I print from Octoprint so have no need of a BTT TFT3.5 V3 screen etc (although I DO have one on the Ender 3)
So after a little reading, I realised that the current Marlin 2.0.x branch does not support the new Screen type on the ENder 5 Plus, so after a little hunting, I discovered the insanity Automation fork and some details on Reddit about how to use the new screen. InsanityAutomation works with TinyMachines3d to produce firmware they pre-install on all machines they sell.
For this we are going to need:
An adapter plate (print this first!)
a microSD card formatted as Fat32 4k sectors. (It is important to use 4k sectors or the screen wont read the card!)
Some female to female dupont cables (4 of)
You will also want VSCODE and platformio installed.
Ok first, you will need to open up the Ender 5 control box – there are 2 bolts at the front and 2 at the rear that hold it to the frame. Remove these can carefully flip it over.
Remove the 6 screws from the base and carefully remove the bottom, bear in mind a cooling fan is attached to this piece, so carefully disconnect it from the board.
Carefully remove all the cables and label them up as you remove them – the diagram below should act as a reference
Remove the board, and mount the adapter plate you printed earlier, then attach the SKR1.3 to the mounting plate. (You may at this point find it easier to connect the blue USB cable and sdcard extender before mounting as space is tight!) Note, when mounting the end-stop plugs in the SKR you will need to carefully cut off one of the lugs so it can fit. Looking at the diagram above, they connect to the two rightmost pins in the relevant sockets.
Attach all the cables as per the diagram above. Remove all the jumpers from under the Drivers:
and I had to insert jumpers like this for the TMC2209s to be able to be controlled in UART (one in each driver socket)
Next, to enable UART we need to add some more jumpers as shown here: (Note, don’t forget the one for E1 not circled in this picture)
Insert the stepper drivers, taking care to note the polarity, and carefully mount the heatsinks.
The BLtouch wiring is pretty straight forwards
Pay attention to the order of the wires:
The two wires from the bltouch need to go into the bottom z endstop pins like this:
The screen wires to the single row of TFT pins on the SKR:
on the screen the two outside pins are labelled for ground and power, the 2 inner pins are TX and RX. The TX on the display goes to the RX on the board, and the RX on the Display goes to the TX on the board. I got the TX RX pins the wrong way around on the first attempt (this does not harm it by the way) and simply had to sway them around.
To upgrade the screen, you need to copy the DWIN_SET folder from the screen firmware (only that folder and its contents, not the rest of the files in the zip file) to an SD card formatted as FAT32 4k clusters, then insert the card into the touch screen board Power cycle your printer and the touch screen will update itself. Once the update finishes, power cycle the printer again. The SD card must be formatted using FAT32 and 4k sectors otherwise it wont read it (Max 2gb I think – you may need to partition your card)
Note, the screen won’t work correctly until we have done the rest of the steps below and loaded the correct firmware on the SKR 1.3.
You will probably see a screen like this for now:
Next unpack the Insanity Automation Marlin folder to the root of your drive (we need to keep the directory depth as short as possible, or we will get errors!)
open VSCODE and make sure you have platformIO set up, and open the extracted folder
We are going to make some changes to Configuration.h first:
uncomment these lines:
#define MelziHostOnly // Enable this to turn off local SD support and instead prioritize options for Octoprint or USB
#define SKR13 // 32 bit board - assumes 2208 drivers
#define SKR_2209 #define SKR_UART // Configure SKR board with drivers in UART mode //#define SKR13_ReverseSteppers // Some users reported directions backwards than others on SKR with various drivers. #define DualZ // Uses 5th driver on CRX or SKR boards as Z2
#elif ANY(MachineCR10Orig, SKR13, SKR14, SKR14Turbo) && DISABLED(SKR13_ReverseSteppers) #define INVERT_X_DIR true #define INVERT_Y_DIR true #define INVERT_Z_DIR true
Replace the Filament runout section with this (lines 2043-2083 currently, but check!)
#define FILAMENT_RUNOUT_SENSOR #if ENABLED(FILAMENT_RUNOUT_SENSOR) #define NUM_RUNOUT_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each. #define FIL_RUNOUT_INVERTING false // Set to true to invert the logic of the sensor. #define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins. //#define FIL_RUNOUT_PULLDOWN // Use internal pulldown for filament runout pins. // Set one or more commands to execute on filament runout. // (After 'M412 H' Marlin will ask the host to handle the process.) #define FILAMENT_RUNOUT_SCRIPT "M600" // After a runout is detected, continue printing this length of filament // before executing the runout script. Useful for a sensor at the end of // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead. //#define FILAMENT_RUNOUT_DISTANCE_MM 25 #ifdef FILAMENT_RUNOUT_DISTANCE_MM // Enable this option to use an encoder disc that toggles the runout pin // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM // large enough to avoid false positives.) //#define FILAMENT_MOTION_SENSOR #endif #endif
Now we need to make some changes in configuration_adv.h
#define E0_AUTO_FAN_PIN P2_04
And finally in pins_BTT_SKR_1_3.h:(this is in Marlin\src\pins\lpc1768\)
// // Filament Runout Sensor // #ifndef FIL_RUNOUT_PIN #define FIL_RUNOUT_PIN P1_29 #endif
On the left of VSCODE, you will see some icons, select the alien fave (PlatformIO) and look at the ‘Project Tasks’
Scroll down and expand the env:LPC1768 section
Click on Build to compile the firmware if successful, the terminal window will show this:
DUE IGNORED DUE_USB IGNORED DUE_debug IGNORED LPC1768 SUCCESS 00:00:17.251 LPC1769 IGNORED STM32F103RC IGNORED STM32F103RC_fysetc IGNORED STM32F103RC_btt IGNORED STM32F103RC_btt_USB IGNORED STM32F103RC_btt_512K IGNORED STM32F103RC_btt_512K_USB IGNORED STM32F103RE IGNORED STM32F103RE_btt IGNORED STM32F103RE_btt_USB IGNORED STM32F4 IGNORED STM32F7 IGNORED ARMED IGNORED STM32F103VE_GTM32 IGNORED STM32F103VE_longer IGNORED mks_robin_mini IGNORED mks_robin_nano IGNORED mks_robin IGNORED mks_robin_pro IGNORED mks_robin_lite IGNORED mks_robin_lite3 IGNORED jgaurora_a5s_a1 IGNORED STM32F103CB_malyan IGNORED chitu_f103 IGNORED STM32F401VE_STEVAL IGNORED FLYF407ZG IGNORED FYSETC_S6 IGNORED STM32F407VE_black IGNORED BIGTREE_SKR_PRO IGNORED BIGTREE_GTR_V1_0 IGNORED BIGTREE_BTT002 IGNORED teensy31 IGNORED teensy35 IGNORED esp32 IGNORED linux_native IGNORED SAMD51_grandcentral_m4 IGNORED rumba32_f446ve IGNORED rumba32_mks IGNORED include_tree IGNORED ================================================================================================ 1 succeeded in 00:00:17.251 ================================================================================================ Terminal will be reused by tasks, press any key to close it.
Your firmware will be in Marlin-CrealityDwin_2.0\.pio\build\LPC1768\ called firmware.bin (check the timestamp on it to make sure!)
copy this to the MicroSD card, place in your board and power on the board, wait a couple of minutes to finish updating the board.
Cycle the power, and you should now have a working screen, with Marlin 2.0 on your SKR, running 2209s in UART mode (No need to set VREFS) and enjoy the silence!