USB Power Blocker to prevent the printer from drawing power from the Raspberry Pi when its main power supply is turned off. Without this, the printer can cause an undervoltage alert on the Raspberry Pi. An alternative to the device is to tape the 5V pad or modify a USB cable.
The most recent upgrade I made to my setup was swapping out the 8-bit 1284P (v1.1.4) board that came with the Ender 5 with the 32-bit ARM Silent Board (v4.2.7).
The 32-bit board is way easier to deal with than the old one. I don’t think I would’ve upgraded the firmware on the 8-bit board. It required extra hardware to jump it since it lacked a bootloader, and the 8-bit board’s skippy resources would mean some things would have to be turned off.
Every 3D printer needs firmware to process the gcode supplied to the printer and control the hardware. Creality, as well as a lot of other printer manufacturers, uses Marlin.
There is a pre-built firmware file you can download from Creality for the Silent Board and the Ender 5. However, you might want additional features enabled for the printer, such as adding support for a bed leveling sensor or enabling additional control options in OctoPrint.
Compiling your own custom firmware is more straight-forward than you might think with the help of a few Visual Studio Code extensions.
Note that the firmware source code and configuration files for various printers are two separate downloads. You need both, and you need to put the specific configuration files for your printer into the firmware source code directory.
For a Creality Ender 5 with the 4.2.7 board, the files are listed in the Configurations-release-2.1\config\examples\Creality\Ender-5\CrealityV427
directory.
Marlin
directory in the firmware source code you’ve downloaded.Marlin
or the platformio.ini
file..bin
to a formatted SD card. The printer expects nothing else to be on the card and for the card to be FAT formatted and 8GB or less.If you plan to use OctoPrint, you’ll need to edit the Configuration.h
and Configuration_adv.h
files so you can use the USB port to control the printer and for the printer to send action commands back to OctoPrint.
#define SERIAL_PORT_2 3
#define BAUDRATE_2 250000 // Enable to override BAUDRATE
#define HOST_ACTION_COMMANDS
Then re-build and re-upload the firmware to the printer via an SD card.
I’m surprised by how quiet the 32-bit board actually is. I didn’t think a “silent” controller would actually make printing quieter, but I guess it’s just able to control the steppers better.
Secondly, it’s a lot faster. With the 8-bit board, the printer never moved as fast as it does with this new board. It did not matter what I set travel to in the slicer because it was handling serial data and processing the gcode at the same time.
Lastly, being able to customize the firmware of the new board with support for things like HOST_ACTION_COMMANDS
has improved using the printer with OctoPrint, and it was a fun experiment to boot.