Marlin 2 Firmware for Ender3 v1 4.2.7
I recently upgraded my Creality Ender3 3D printer to the silent mainboard (v4.2.7). The hardware replacement itself was kind of tricky because I use a 3D Touch sensor (BLtouch clone) and also upgraded to the direct driven extruder in this step. So many cables in and out.
Because I didn't like the firmware from Creality itself I had to customize the Marlin Firmware for my equipment. Because I had a lot of issues to find and guess the correct firmware and settings I will provide my information here.
Disclaimer
Following the instuctions on this site may cause damage on hardware or person. Be careful with what you do. Always disconnect power when working on electric parts.
I am not resoponsible for any damages resulting of this instructions. Always double check everything. What works for me must not work for you.
Wiring
Prolog
The wiring on the new 4.2.7 silent mainboard is a bit different than on the older v1 mainboards. I already mentioned that I use a 3D Touch sensor. Until now you needed a seperate adapter board for the display to connect the sensor. Now there is a seperate BLTouch port. Nice! But: new port means new connector: 5 Pin 2,54mm JST XH
So I crimped a new connector which made it look and fit better then pushing the dupont connectors with force.
My new direct drive extruder comes with all cables attached except the extruder motor. For this one it ships with a motor drive extender cable. I bought a new one on AliExpress in 150cm lenght. Fits perfectly but I had to swap two Pins. Check the original cable and the new one if you do that too.
Images
BLTouch Display Adapter board
not needed anymore if you want to use the new dedicated port on the new mainboard
step by step
So now step by step:
- Power Off and disconnect power cord!
- mark your cables when disconnecting from the old mainboard!
- replace mainboard
- connect powersupply
- connect hotend end and bed cables (power, fan and temp sensor)
- connect motor cables (X, Y, Z and E)
- connect X and Y endstop cables
- connect fans (hotend and chassis)
- connect BLTouch using BL_T port (any other method is pretty good described in other articles and pages)
- connect display
- check all wires again
- finished wiring
Don't forget to doublecheck everything. Some BLtouch clones may have different PIN layout.
Firmware
And now the firmware part.
precompiled by Creality
You can download the firmware already compiled and ready to print from the creality support page: https://www.creality.com/download
Just download the Ender-3 4.2.7 mainboard(32bit).zip
and copy the correct .bin to your SD card.
But the current firmware (28 Jan, 2021) had some issues which I don't like:
- Try to move motors lower then
0
, even if already homed. - did not support
M600
command (filament change) - duplicated terminal output which is not good for my octoprint
Marlin 2.0
So I looked around the internet and found some instructions but most of them didn't worked for me or were for other wiring (BLtouch connected to Z Endstop). After some tries I had a nearly working firmware. Nearly, because G28
or G28 Z
didn't worked. The extruder always drove to the middle of the bed and thats it. In some tries he also deployed and stowed the 3D Touch sometimes but Z axis didn't moved.
I ended up with this:
- Downloaded Marlin release (I used the 2.0.7.2 release https://github.com/MarlinFirmware/Marlin/archive/2.0.7.2.zip) and extracted it.
- Downloaded example configuration for this release: https://github.com/MarlinFirmware/Configurations/archive/release-2.0.7.2.zip
- copied the
config
andextras
directory into theMarlin-2.0.7.2
folder from step 1 - copied the
config/examples/Creality
directory intoMarlin-2.0.7.2/Marlin
- copied and replaced the files from
config/examples/Creality/Ender-3/CrealityV427/
directory toMarlin-2.0.7.2/Marlin
- Install and configure Microsoft VisualStudio Code with PlatformIO Plugin: Instructions
- Edit
platformio.ini
- Change
default_envs
variable todefault_envs = STM32F103RET6_creality
src_dir = Marlin boards_dir = buildroot/share/PlatformIO/boards default_envs = STM32F103RET6_creality include_dir = Marlin
- Edit
Marlin/Configuration.h
- Ensure that the following variable are set correctly
#define MOTHERBOARD BOARD_CREALITY_V427 #define CUSTOM_MACHINE_NAME "My Ender-3 32bits" //Customize to your needs #define EXTRUDE_MAXLENGTH 100 // optional, I lowered from 200 to 100 because I switched to direct drive extruder //#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN //comment out because we use the BLTouch port #define USE_PROBE_FOR_Z_HOMING //otherwise Z probing won't start #define Z_MIN_PROBE_PIN PB1 #define BLTOUCH //enables BLTouch #define NOZZLE_TO_PROBE_OFFSET { -44, -10, 0 } //make sure that you enter the correct offset for your mount #define PROBING_MARGIN 15 #define XY_PROBE_SPEED (200*60) //this will speed up X and Y probing speed //#define MIN_SOFTWARE_ENDSTOP_Z //comment out so Z axis can move beyond 0 needed if you want to check for your offset #define AUTO_BED_LEVELING_BILINEAR //Automatic Bed Leveling using a grid #define LCD_BED_LEVELING // so you can level you bed from the printers LCD menu #define Z_SAFE_HOMING #define HOMING_FEEDRATE_XY (50*60) //this will speed up X and Y homing speed #define HOMING_FEEDRATE_Z (5*60) //this will speed up Z homing speed #define NOZZLE_PARK_FEATURE //needed if you want to use M600 filament change feature #define NOZZLE_PARK_POINT { (X_MAX_POS - 10), (Y_MIN_POS + 10), 20 } //parking position when filament change
- Edit
Marlin/Configuration_adv.h
- Ensure that the following variable are set correctly
#define BLTOUCH_DELAY 500 #define ADVANCED_PAUSE_FEATURE //needed for filament change #define PARK_HEAD_ON_PAUSE // go into park position when filament change
- Save and Compile
- Finished .bin file is located in
Marlin-2.0.7.2/.pio/build/STM32F103RET6_creality
directory- Copy this onto the SD card and insert the card to your printer
- Start printer
Links and Ressources
Here are some links, that helped me understanding the new mainboard and flashing progress.
- https://support.th3dstudio.com/hc/downloads/unified-2-firmware/creality/creality-ender-3-3-pro-ender-5-5-pro-firmware-v4-2-x-board/ → This firmware didn't worked for me