Skip to content
Roberto Santalla edited this page Jun 25, 2020 · 3 revisions

Marlin for Ender 5 Pro

This project contains a Marlin 2.0.x source and configuration for Creality's Ender-5 Pro (Silent mainboard 1.1.5).

This source tree features:

  • A newer version of Marlin than Ender-5 pro stock firmware (2.0.x vs 1.1.9)
  • Software PWM control for the layer fan, which removes the loud, high frequency beep of the fan
  • S_CURVE_ACCELERATION, for reduced vibrations
  • SpreadCycle stepping for the extruder, for linear advance and extra torque
  • eeprom settings in the main menu, including PID constants
  • Fast homing

Why fork Marlin instead of just providing Configuration{,_adv}.h?

The main reasons for using a fork of the whole Marlin source tree are that it allows to see at glance with which Marlin version the config is compatible, and to diff at a glance the tweaks from the default marlin settings.

Installation

Platformio is required to build this tree. The compiler included with the Arduino IDE will not manage to generate a binary small enough to fit in the Creality board (sanguino-based).

After installing platformio, run:

pio platform install atmelavr # install the toolchain
pio run # build marlin-e5p

Optiboot bootloader

Although the Creality 1.1.5 board comes with a bootloader, it is known to cause issues and/or bricks after attempting to flash unofficial firmware. The root cause of this issues is unknown to me.

The recommended approach is to flash optiboot on the board, which is the recommended bootloader for sanguino board. In order to do this, an ISP programmer is required (ArduinoISP should work).

Flashing using Arduino IDE

  1. Add the Sanguino board with to the Arduino IDE
  • The board package already ships a precompiled image of optiboot
  1. Connect your ISP programmer to the board.
  • Tip: The orientation of the ISP header in Creality board can be easily found by looking for the +5V pin, located in one corner
  1. Click in "Burn bootloader"

The process may fail due to avrdude complaining about the fuses in the board not matching the expected ones. This can be workarounded by editing the boards.txt file that comes with the Sanguino package and replacing the expected lock values with the ones reported by the board.

After the bootloader has been flashed, the firmware can be uploaded to the board by using

pio run -t upload