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.

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.

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.

3D Touch Pin layout

BLTouch Display Adapter board
not needed anymore if you want to use the new dedicated port on the new mainboard

Ender3 v1 Silent Mainboard v4.2.7

BL_T Port on Mainboard

So now step by step:

  1. Power Off and disconnect power cord!
  2. mark your cables when disconnecting from the old mainboard!
  3. replace mainboard
  4. connect powersupply
  5. connect hotend end and bed cables (power, fan and temp sensor)
  6. connect motor cables (X, Y, Z and E)
  7. connect X and Y endstop cables
  8. connect fans (hotend and chassis)
  9. connect BLTouch using BL_T port (any other method is pretty good described in other articles and pages)
  10. connect display
  11. check all wires again
  12. finished wiring

Don't forget to doublecheck everything. Some BLtouch clones may have different PIN layout.

And now the firmware part.

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

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:

  1. 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.
    1. copied the config and extras directory into the Marlin-2.0.7.2 folder from step 1
    2. copied the config/examples/Creality directory into Marlin-2.0.7.2/Marlin
    3. copied and replaced the files from config/examples/Creality/Ender-3/CrealityV427/ directory to Marlin-2.0.7.2/Marlin
  2. Install and configure Microsoft VisualStudio Code with PlatformIO Plugin: Instructions
  3. Edit platformio.ini
    1. Change default_envs variable to default_envs = STM32F103RET6_creality
      src_dir      = Marlin
      boards_dir   = buildroot/share/PlatformIO/boards
      default_envs = STM32F103RET6_creality
      include_dir  = Marlin
  4. Edit Marlin/Configuration.h
    1. 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
  5. Edit Marlin/Configuration_adv.h
    1. 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
  6. Save and Compile
  7. Finished .bin file is located in Marlin-2.0.7.2/.pio/build/STM32F103RET6_creality directory
    1. Copy this onto the SD card and insert the card to your printer
  8. Start printer
  • Last modified: 5 years ago
  • by koechr