Table of Contents


If you break your system with this information, it’s not my fault. This is just a page with random notes.

I have not flashed anything with this yet. This is a minimal howto, to setup the environment.

Get the Sources

On the official download page, and navigate to the ender 5 plus download.


Follow the link that says: Ender 5 Plus Firmware + SD Files + BL Touch


You will find the latest firmware and source code.

Download the file Ender-5PlusBLTouch_0904_V1.70.1 BL Source

Rename the file to, and extract with 7-zip (from

I did this with the option -spf (Use fully qualified file paths):

7z x -spf

You will have two folders Creality_7.32_Screen_20190904and Ender-5PlusBLTouch_0904_V1.70.1 BL.

The Ender 5 Plus is run by two components. The visible part of the firmware runs on the display itself. It's a series of Bitmap/Touch-Regions/Actions that send commands to the mainboard that runs a flavor of Marlin.

The display part is 'written' with DGUS Tool V 7.30, the Marlin firmware is written in C++ and the Arduino framework.

Display Software (DGUS Tool V 7.30)

You can find the software here:

Unzip the archive and run DGUS Tool V7.30.exe.

Open the project file DWprj.hmi.
Now you can browse through the screens. Under Display > Preview from current page you can simulate the display software from the current page and interact with it.

Compiling with Arduino

This is not my recommend approach, because every Arduino installation is messed up with a personal list of dependencies, and Arduino IDE provides no sensible dependency management.

Select the following Arduino Board
... after manually fixing dependencies it works.

A minimal platformio.ini file, to build with Visual Studio Code and PlatformIO, is given below. It will take care of missing dependencies.

src_dir = Marlin
env_default = megaatmega2560

lib_deps =
  Adafruit NeoPixel
build_flags = -I $BUILDSRC_DIR -fmax-errors=5

platform = atmelavr
framework = arduino
board = megaatmega2560
build_flags = ${common.build_flags}
board_f_cpu = 16000000L
lib_deps = ${common.lib_deps}
monitor_baud = 250000
upload_port = /dev/cu.wchusbserial1410 # modify this for your system

Flashing only works, while the PSU is off.