Creality 4.2.7 Marlin + BLTouch Install notes (Ender-3)

Table of Contents


I’m using this page as a hub to organize and collect various pieces of information I have pulled together to get my Creality 4.2.7 mainboard working with the Ender-3.


I ordered an upgraded creality v1.1.5 mainboard off Amazon and was shipped Creality’s latest “silent motherboard” version v4.2.7. The product on amazon was described to have a bootloader flashed directly out of box which would make uploading sketches to the board even easier. I spent hours on Arduino IDE trying to upload with the Sanguino board to no avail. 

Turns out that the new motherboards use the SD card to flash new firmware. All you need to do is drop the “.bin” file to the root directory. 

This made me realize that I just needed to use Visual Studio Code + Auto Build Marlin to compile and update the printer. If you don’t know how to do that, don’t worry– I got you.

Most of this information was found here, these guys got everything working and were able to put together this helpful document that lays out all of the pin data we have so far for the 4.2.7

Visual Studio Code Setup

First of all, you’ll need to download the latest version of Visual Studio Code here.

Open up VSC and install Auto Build Marlin plugin.

Once you have those both installed, its time to download and open the firmware for the printer inside of Visual Studio Code. 

Marlin Configuration

First, download the Marlin 2.X.X bugfix from Github here:


Once that’s downloaded, the next step is to open the “Marlin” folder that is found inside of the 2.X.X parent directory. 

Once you have that opened, now its time to edit the Marlin config files. Below are the changes that I needed make to get my printer working. Take note that this might not necessarily represent your printers setup. 


Change: #define CUSTOM_MACHINE_NAME “Ender-3 Pro V1.5”
To: #define CUSTOM_MACHINE_NAME “Ender-3 3G” // Or any name you’d like to

If you want to use the X endstop pin for the BL touch:


// Enable BLTouch probe pins (white and black wires) to be connected to Z endstop switch

or if you want to use the new dedicated BLtouch pins

Change: //#define Z_MIN_PROBE_PIN 32 // Pin 32 is the RAMPS default
To: #define Z_MIN_PROBE_PIN 17 // Creality V4.2.7 BLTouch OUT (written on the board)



For reference here’s what the 5 pins for the BLtouch are used for (5 pins named as BL_T):

G———White—-Probe (if it doesn’t work, try to swap with Black)

*REMEMBER* this is only if you are using the BLtouch pins (Z_MIN_PROBE_PIN 17) if you are using the Z probe endstop for your BLtouch then just uncomment “Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN” as above.



BLTOUCH and ABL stuff:

Change: //#define BLTOUCH
To: #define BLTOUCH

Change: #define NOZZLE_TO_PROBE_OFFSET { 10, 10, 0 }
To: #define NOZZLE_TO_PROBE_OFFSET { -1, -10, 0 } //This offset is for the Ender-3 Hyrdra mod that I have installed on my printer

Change: #define PROBING_MARGIN 10
To: #define PROBING_MARGIN 15 // If you’d want stay away from the edges (higher values goes to center of the bed)

To: //#define MIN_SOFTWARE_ENDSTOP_Z // To allow to set Z offset values in negative


Change: //#define LCD_BED_LEVELING

Change: //#define Z_SAFE_HOMING
To: #define Z_SAFE_HOMING

Change: //#define BLTOUCH_DELAY 500
To: #define BLTOUCH_DELAY 500


Change: //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change.
To: #define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change.

Change: //#define PINS_DEBUGGING // M43 – display pin status, toggle pins, watch pins, watch endstops & toggle LED, test servo probe
To: #define PINS_DEBUGGING // Only if you’d like to discover new features, if you don’t, don’t let it as it is

Change: default_envs = mega2560

To: default_envs = STM32F103RET6_creality

Some users need to change the pins for the motors, it appears that some of the wiring has changed. Heres a list of what the pins should look like, cross reference this to your current configuration in pins file.


Link to the google doc HERE


Step by step guide for install, this page is where I gathered most of the information from.



Download Configuration exemples:

Uploading Firmware to the Printer

Once you’ve made all of the changes listed above, compile the firmware with VSC using the Auto Build Marlin plugin and upload it to the root dir of your SD card. Pop the SD card into your printer and boot it up! 


Notify of
Newest Most Voted
Inline Feedbacks
View all comments
Konrad Walsh
1 year ago

Excellent write up

Brian K Blake
1 year ago

I found a lot of the default settings you list were different in the Marlin bugfix. Also, I can’t seem to get this to compile with your changes.

Reply to  G
1 year ago

I keep getting a

Marlin\src\module\motion.cpp:151:16: error: ‘HOMING_FEEDRATE_XY’ was not declared in this scope


1 year ago

This is a great guide. I would also add Restore Leveling after G28 and the Probe offset wizard.

1 year ago

I have the last board 4.2.7 with silent drivers and bltouch connected across the bridge and if I follow exactly these instructions, bltouch doesn’t work. It works with firmware from creality, so I don’t know where the bug is.

Reply to  Pavel
1 year ago

Purchased Same Board 4.2.7. for Ender 3Pro, and ordered BLTouch . install went great but the firmware well… we tried everything?? lol but ended up trying and useing Creality site latest firmware marlin update As well (thx for the tip) and works incredible . Any ideas about this bug is as well ??

Thanks kindly for any info

Reply to  G
1 year ago

I didn’t have to shuffle the cables because, as I wrote above, I used the jumper that came with the BLTouch. Since Creality, the firmware works great, but I need to build my firmware and I can’t do that according to these instructions. Build and install goes, but BLTouch doesn’t work.

Reply to  G
1 year ago

Thanks to your post I was able to get Marlin working on Ender 3 v1 + 4.2.7 Silent board + BL Touch 3.1 (for Ender 3)!

For Z stop, I used the standard Z stop header, not the new 4.2.7 dedicated header. VCC, G, and SIG I wired to VCC, G, and IN on the new dedicated header. Just needed to swap G and VCC in the 3 wire female connector coming from the BL Touch, and I was off to the races.

Really appreciate your help here!

1 year ago

Hi, Just bought 3x 4.2.7 boards for my Enders and upgraded them all this weekend with the same firmware and SD card. The first 2 worked perfectly, the 3rd one isn’t doing anything when I insert the card and turn the printer on. I’m suspecting the card reader on the new board is not working right. It detects the card but doesn’t do anything. I tried different cards as well as a card with gcode / print files on, and still it doesn’t recognise these – is there a way to upload the firmware using the USB cable as an alternate method, in a similar way I did with Arduino and my v1.1.4 boards previously? Thanks

Last edited 1 year ago by Paul
Reply to  Paul
1 year ago

Try Changing the name of the bin file. see if that helps.

William C Kreutinger
Reply to  Don
1 year ago

Is your LCD on, BLTouch lit up, fan running, but nothing else happening? I’m having the same issue and have no idea how to fix it… If you’ve made any progress please share.

William C Kreutinger
Reply to  Paul
1 year ago

Is your LCD on, BLTouch lit up, fan running, but nothing else happening? I’m having the same issue and have no idea how to fix it… If you’ve made any progress please share.

Reply to  William C Kreutinger
1 year ago

Plug in a USB with 5V 3A charger to a wall outlet into your Pi/Port into printer. It should come on and work properly. You burned out the small spider looking regulator chip on bottom left of the board, as I did. Crossed wiring in the BLTouch hotwired and shorted the chip. Can get it fixed by solder or new board. It should still work with this setup.

1 year ago

Thank you very very much. I couldn’t find anywhere what is the BL Touch port pin to use with the Z_PROBE in Marlin with a 4.2.2 board.
Pin 17 seems to work fine.

Reply to  Alfonso
1 year ago

I received support help from creality that shows the proper direct connect to the main board (for v4.2.2, appears similar to v4.2.7).

I cannot attach the photo…but here is the wiring for v4.2.2 direct mainboard BLTouch 5 pin header.

BOLD is for the Z limit, I clipped top wing of the plastic on the Z limit in order to not collide with the 3 pin connector.

G — Blue
V — Red
IN — Yellow
G — Black
OUT — White

Last edited 1 year ago by MrPig
Richard D Hall
1 year ago

I finally figured out what I think a lot of people are having problems with. In my case, an Ender 3 V2 with a 4.2.7 board and a BLTouch.

If you have a Creality 4.2.7 board with a BLTouch, and ARE using the BLTouch connector (all 5 pins), then you need this change:

change this:
to this:

Also the probe pin is definitely #define Z_MIN_PROBE_PIN 17

.Without this change, your probe will not activate when homing and will crash into the bed! Been looking for this problem for a week! FINALLY SOLVED!

Reply to  Richard D Hall
1 year ago

I’m trying to edit with visual code. But I’m getting an error. Anyone to share the edited version, command or software (* .bin).

I am using Ender 3 V2 BlTouch 3.1. I made the connections with the BLTouch slot,

Reply to  Richard D Hall
7 months ago

Thank you very much for the tip. I had a hard time getting my BLTouch to work. After I read your comment, it suddenly worked like charm.
I have a v4.2.2 board, so it works here as well.

Vendicar Kahn
1 year ago

No vorkies. During a home, the BLTouch moves to the center of the build plate, gantry lowers, pin retracts, then it deploys again without the gantry moving upward, deploys again, the head crashes into the build plate, and the BLTouch turns red to indicate an error. Marlin status screen shows “STOPPED” in the bottom left corner.

Vendicar Kahn
1 year ago

#define Z_MIN_PROBE_PIN 17″ Causes dozens of compiler warnings. Resulting bin still fails.

Reply to  Vendicar Kahn
1 year ago

I had the same problem. Here is a link that seems to describe the changes that need to be made in the latest version. 2.0.7

Jonas Quinn
1 year ago

I have an ender pro 3 with a 4.2.7 silent board with bltouch, the printer works great with the stock bltouch firmware from creality, but I wanted to add more touch points for the bltouch. I’ve followed these settings to the letter, but when I auto home, the z axis won’t move down to the build plate. All I want is the newest marlin with increased leveling. Can you help? I can’t find anything on how to fix this. Again, if I load the stock firmware, everything works fine.

Reply to  Jonas Quinn
1 year ago

I’m having the same issue. I finally got the (most) of the bugs out of my program and everything its plugged in and working correctly. When I turn my printer on, the bltouch does two sample “plunges” but when I home it, nothing.

1 year ago

can anyone post an already created bin file for me\

Reply to  isaiah
1 year ago

Not complete instructrions, other hard needs to setup in config file: #define X_DRIVER_TYPE  TMC2208_STANDALONE
and others …

Derik Whittaker
1 year ago

Great job, this was very helpful.

I have an Ender 5 Pro w/ 4.2.7 and these configs worked for me as well.

1 year ago

My vs code sticks at:

Processing STM32F103RET6_creality (platform: ststm32@~6.1; board: genericSTM32F103RE; framework: arduino) it wont compile the firmware.

Jonas Triller
1 year ago

When i have done all the changes in the files and trying to build is VS i getting this errors:

Jonas Triller
1 year ago

When i have done all the changes in the files and trying to build is VS i getting this errors:

macro “BUTTON_EXISTS” passed 2 arguments, but takes just 1 [138, 1]
too many arguments in invocation of macro “BUTTON_EXISTS” C/C++(55) [138, 5]
identifier “status_screen” is undefined C/C++(20) [254, 23]
expected ‘;’ at end of member declaration [442, 27]
expected ‘)’ before ‘&’ token [442, 56]
‘screenFunc_t’ does not name a type [472, 12]
identifier “screenFunc_t” is undefined C/C++(20) [472, 12]
‘screenFunc_t’ does not name a type [474, 35]
identifier “screenFunc_t” is undefined C/C++(20) [474, 35]
identifier “status_screen” is undefined C/C++(20) [489, 69]
identifier “defer_return_to_status” is undefined C/C++(20) [498, 9]

What can I do to fix it? I’am new to this

Last edited 1 year ago by Jonas Triller
6 months ago

Great content! Keep up the good work!

3 months ago



You’re reading the first post on our site. Nothing special or notable to say here other than the fact that this is indeed the very first time a post has been published to the website.

Read More »

Uploading Firmware to the Printer