Ender 3 MKS GEN 1.4 Upgrade

In my previous post, I wrote about upgrading the Ender 3 pro to a MKS GEN L board, and TMC2208 drivers configured in UART mode. Since then, I have had issues with instability in the hotend temperatures, leading to long waits before printing would start. After some research, I could see that many other users were experiencing the same issue, although some had rectified this by replacing the capacitor on the 5v rail to try and smooth the voltage out. The thermistor in the hot end uses the 5v rail for power, and it is this giving unstable temperature readings.

I decided to replace the board with an MKS GEN 1.4 as these are reportedly more stable. I also decided to ditch the UART mode, and run the drivers in ‘legacy’ mode to simplify the wiring.

Things you will need for this:

MKS GEN 1.4 Board

TMC2208 Stepper Drivers

A new case

Some basic tools Wire cutters, small screwdrivers and a multimeter

Coffee & Patience!


I also have a BLTOUCH, wired like so: (TIP – use a dab of hotglue to secure the black and white 2 pin connector in place, mine had a habit of working lose!)

First, take note of the wires on the original Creality board (if you are using one) or the MKS GEN L if you are using that.

You will need to cut the plug off the end of the hot end fan (blue and yellow on mine) strip the wires and wire them to the ‘Heat Sink’ socket shown below, noting the polarity. Wire the remaining components EXCEPT for the stepper motors (we will do this after setting the VREFs on the drivers). Remove Jumper 3 from all the sockets where you will be using TMC2208s (the right hand one of the 3 if you have the board orientated as above)


Next, install the drivers, making sure to check the GND and DIR pins on the drivers match the ones on the board. Mine had the VREF adjustment on the left when inserted, yours may be different, so check!

Power up the board, and using a meter set to 2V measure the vref. On my drivers this is measured by putting the positive probe on the potentiometer and the black probe on the GND pin of the driver.

I ALWAYS measure, power off, adjust, power on and re-measure. Doing this prevents accidental shorts which may damage your board or drivers.

The following table shows the VREFs you need for each axis

X 0.725
Y 0.725
Z 0.725
E 0.900

Once you have done this, plug in the stepper motors, and power up.

Next we need to flash the correct firmware to the board.

You can download my pre-configured version here

This is set for using a BLTOUCH. If you are not using a BLTOUCH simply comment out line 734 in Configuration.h so it reads

//#define BLTOUCH

open the Marlin.ino in the Arduino IDE, make sure you have set the board to “Arduino/Genuino Mega or Mega 2560” and the programmer to “AVR ISP” and select the correct com port for your printer and hit the upload button and wait for it to compile and upload.

Once uploaded, still in Arduino, go to tools -> Serial monitor. Set the baud rate to 250000, and you should see a response from the printer. Enter “M502” in the terminal to load the new defaults, and “M500” to save these. If using a BLTOUCH you will need to recalibrate your Z offset.

Next, we need to run a PID autotune to get the correct settings for our hot end.

Enter “M303 E0 S220 C3” to begin the tuning process, this will take a few minutes, and at the end it will give you suggested values wor P,I and D

Put these into the following command

M301 Pxx.xx Ixx.xx Dxx.xx

Store with “M500” then enter “M501” to make sure they are reloaded. Here is my graph after running a PID autotune, nice and stable!


That’s it! if you found this post useful, please consider donating or using the affiliate links in this post (It costs you no more, but helps me fund my web hosting, tools etc)



20 thoughts on “Ender 3 MKS GEN 1.4 Upgrade”

  1. I downloaded your pre config firmware for my E3 only had to change my motor directions. So I’m getting horrible clicking on Zed and some on E. X and y seem ok. I have changed Vref values from .78v to 1.2v. I have active cooling on the steppers. But the clicking is so bad I cannot even get a print off. I don’t know what to do. I also used TH3D marlin base firmware. I even swapped the x and y 2208s for Z and E to rule out bad steppers. Same thing. No difference. The steppers are in the simple drop in mode. I’m at my limit. I don’t know what else to do. I have been on this for 5 days straight now. Please my company would not mind making a handsome donation to your site if you can help with a solution.

    Jeremy B

    • Hi Jeremy, let’s do some basic troubleshooting first.
      First off in the configuration.h check all the axis are set to tmc2208_standalone and not just tmc2208.
      Next try swapping the stepper cables on the board from a non working one to a working one, eg plug the z into the x and try moving it. Let me know how you get on. Maybe if you can put your configuration.h in pastebin I can take a look over it

  2. Jimmy – Great site – I’ve been ALL over the web trying to get my similar config to work.

    Im using MKS Gen 14 board with 2208’s – prints slient and well BUT

    the hotend temperature holds at 210 per Cura when printing via USB for about 5 minutes into the print, then for some reason jumps up to 240 and the PLA print fails.


  3. I’m looking at the gcode although I need to know what to look for as far as the temp spike goes. Also I didn’t CUT the blue/yellow wires from the Ender – I just stuck the two pins on the MKS per your diagram. i may have them backwards

  4. I’m not near a computer right now, but if you have been pasting in custom gcode anywhere something may have got left over (maybe something you did for a temp tower?)
    You can just delete that line for now and should be good to go

  5. Jimmy – I’m all good on the 240 temp change. Now the only remaining issue I have is the SD card reader on the RepRap discount full graphuc smart controller. 3 different SD cards no read. it detects insert and remove. I will gladly donate to you if you can help fix this

  6. Hi, i have a problem . ENDER3 + MKS GEN V1.4 + Bltouch + TMC2208 + E3DV6 + TFT32
    I connected everything, I adjusted my drivers. I struggled but managed to transfer the firmware. I try to make a Home with my screen but everything goes in all directions. I don’t understand I did everything as you indicated. The engines make a lot of noise.

    • Check you have the jumpers correct under the drives – depending on the drivers you may need to invert the direction in Marlin. When testing new firmware, don’t ‘Home’ = use pronterface or octoprint to move the axis and make sure they move in the correct direction and the correct distance

  7. Hi Jimmy. I want to thank you for your post, it’s bene great help to get my Ender 3 Pro upgraded with MKS gen 1.4 and 2208 drivers. I’m however not completely done.
    I used the software supplied here https://www.danbp.org/p/en/node/146 since it looked like you only had 1.1.7 and perhaps less features?
    Anyway, I’ve got it to work and I can control my machine from USB. The problem is that my LCD is not working. It’s simply dark.

    I’ve read suggestions on turning the ribbon cable 180 degrees, but I’ve also read that I would need a second cable.
    Some pages also say I should connect to EXP1 and EXP2 on the LCD board rather than EXP3. But I’m hesitant to change too much before I’m sure.

    Right now it’s connected to EXP3 (as it was with the original main board) and connected to the MKS gen 1.4 as per your instructions.

    I’ve updated the LCD section in configuration.h to have both
    #define CR10_STOCKDISPLAY
    just like your file.

    Any help is appreciated!

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.