Ender 5 Plus, SKR1.3 and Factory Screen

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!)

an Skr1.3 and TMC2209s (Or buy them combined here)

Insanity Automation Marlin

The Screen FIle update  from the ‘bleedin’ branch – you can always find the latest one here)

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)

optionally, a micro sd card extender (or this one if you want to convert it to SD card)  and a flat USB cable

You will also want VSCODE and platformio installed.

Patience 😉


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:

Screen Wiring

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 MachineEnder5Plus
#define BedDC
#define ABL_BI
#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
#define MeshStd
#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 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.)
  // 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.
    // 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.)	

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
  #define FIL_RUNOUT_PIN                   P1_29


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
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
FLYF407ZG                 IGNORED
FYSETC_S6                 IGNORED
STM32F407VE_black         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!


32 thoughts on “Ender 5 Plus, SKR1.3 and Factory Screen”

  1. Hello Jimmy, thanks for the post regarding Ender 5 Plus SKR BTT.
    I face to the same problem, I have Ender 5 Plus, but with BTT SKR mini E3 V2 and I decided to keep original screen. Unfortunately it’s doesn’t work properly when all is updated. I can move X-Y-Z, warm-up Bed + Hotend correctly but no auto-home and leveling.
    When I try to flash the screen, I see all files copied success but the screen keeps original menu from creality. I can’t have Tiny Machine screen menu, maybe my problem is here.
    Do you have any idea? Is there only the DWIN_SET folder to update on the screen, nothing else?

  2. Hi again. I just confirm that my card is ok be couse I’d try to flash my display with brand new Sandisk card… so result is as above:
    9 different files – Code .LIB .HZK .BIN ..DZK .ICO .WAV .BMP but everywhere is :0000;
    after all no changes on display at all.

  3. Link to Rufus you attached is 3.9.1624 version and does not format cards I have to 4k cluster.Even 3.13 i found have no 4k clusters format…
    I have 128Mb and 32Gb cards now.(smalest they had in electronic shop near me.)
    I have no 2Gb. Maybe that is the problem.
    So the smallone will format to with 512b and 1024b clusters and 32Gb will format from 8192 and above.
    Or another maybe problem – I have win7x64.
    I’d contacted with DWIN company and I have some answers. I’ll post results.

  4. I upgraded my ender 5 plus with the skr v1.4 turbo board and kept the stock screen. I flashed the screen with file in the link ‘screen firmware’ and nothing happened. When I power on the machine the display doesn’t even light up.

    • Hi Rob, if nothing happened when you flashed the screen, likely it hasn’t flashed – you should at least see a progress bar. Just to check, you were using an SD card formatted as Fat32 with 4k clusters? the cluster size is important, and you may have to re-partition your SD card as larger cards wont accept a 4k cluster size. Just create a 2Gb partition on the card, and format it as Fat32 4k clusters.
      Also, you will need to use the matching insanity machines firmware on the SKR1.4 for it to work with the screen correctly.

      Good luck 🙂

  5. Great Post!
    But a new version of Marlin was already developed.
    Is it possible to make my own firmware to SKR Pro 1.1 board and just flash the firmware with the DWIN from above and connect it to the board or are there any other changes in the TM firmware too ?
    You write the two firmwares have to match – I don’t understand, please explain…..
    Please help to use the stock screen, I don’t like the SKR screen….

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.