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:
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
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
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)