Replacing the main board of your Creality Ender 3 with a silent board is a fairly easy and extremely valuable upgrade. If you find yourself with a lot of free time while social distancing making sure your printer is running a peak efficiency is a nice constructive way to pass the time. Following these easy steps you can swap your Creality board for a BigTreeTech SKR mini board with minimal fuss. You will never look at, or more importantly hear, your printer the same way again.
Why Upgrade the Main Board?
The main board on the Creality Ender 3 and Ender 3 Pro uses old stepper motor drivers and only has 8bit memory. Why is this an issue? The older stepper drivers don’t smooth the signal to the stepper motors very well causing them to be significantly noisier than they need to be. The newer Trinamic stepper drivers (TMC2208 and TMC2209) lower the noise from the motors significantly.
The memory on the default board is so limited that in order to enable additional features in Marlin. Automatic bed leveling, manual mesh bed leveling, and linear advance are just a few examples of features you might want to enable, each of these will require you to disable options in the firmware just to fit them on the board. With a 32 bit board I’ll have significantly more space and won’t need to worry anymore. More memory also means that more steps can be calculated in advance so for highly detailed and complex models I should be able to get smoother prints or print at a higher speed without the printer stalling.
I selected the Bigtreetech SKR Mini e3 v1.2 board for my upgrade due to it having an identical form factor to the default board and not requiring a new case. It is a 32 bit board with integrated TMC2209 stepper drivers, and connections for a BLTouch probe without needing a pin27 board.
Another good option is the EZBoard Lite from th3d, which is very similar though made in the USA and using the slightly older TMC2208 stepper drivers. As th3d was out of stock when I had time to do this upgrade the SKR mini won the battle, it also happens to be ⅓ of the price of the EZBoard.
Creality also make a silent board which is identical to the stock board except it has the silent stepper drivers. This is still an 8 bit board which means memory is still and issue. I do not recommend this board.
Disclaimer: Though we have used this to fix our systems, we are not responsible for any issues that might occur to your system(s) by you following this guide. Please check with the manufacturer or your service provider prior to following this or any guide to be sure you will not cause any issues with your system.
Shopping List
Steps to Replace the Ender 3 Main Board
Step 1. Unplug The Printer
This seems obvious but I’m stating it anyways. NEVER mess with the electronics of your printer with it plugged in. You could short something and fry the machine, or worse, yourself.
Step 2. Open The Electronics Case
There are 3 screws on the top of the electronics case, remove all three and lift off the lid. Be careful as you lift to disconnect the case fan wires from the board as well so you don’t damage anything. Set the lid aside, we’re done with it for now.
Step 3. Label All Wires And Disconnect Them From The Board
As you disconnect the wires from the board, make sure to label them with a piece of tape so you know what they go to and where to reconnect them later. Some of the wires clip into place and some require a small flat head screwdriver to remove them from the terminal block. Creality in their infinite wisdom decided to cover most of the clips with hot glue so you will likely need to get in there with cutters, tweezers, and needle-nose pliers and remove it first. Be gentle and take your time on this, you don’t want to damage a wire.
Step 4. Remove The Old Board
This part is pretty easy, there are 5 screws holding the board in place. Remove them gently and the board should lift right out.
Step 5. Remove The Tinning From The Cables Connected To Terminal Blocks
Again a strange move by Creality, most of the electrical wires that go into the heater block are tinned. This is not the best practice and causes interference which causes heat, which is bad. Cut the tinning off the wire, strip the insulation just a bit lower, then twist the loose wires together. This is technically optional but you’ve got the whole thing disassembled, might as well fix a potential issue as well.
Step 6. Install The New Board And Attach All The Cables
The SKR mini e3 board is a drop in replacement, everything should line up just fine. Reattach the board to the case with the screws from the old board. Chatting with user u/Soma_Schicksal on Reddit, they informed me that they had an issue with the centermost screw being too close to components and causing a short. They advised it be removed. I personally have not seen an issue but I’ve removed mine as it isn’t needed to keep everything secured and it is close to some components.
Reattach all the cables to their proper spots on the new board. Make sure to consult the wiring diagram from BigTreeTech as some of the locations have moved.
Step 7. Power On The Printer
The moment of truth. I don’t recommend closing up the electronics case just yet, in case you wired something wrong (spoilers, I did). If you did everything correctly then you should have the fans come on and the screen turn on. If everything looks correct then try heating the bed and hot end and moving in X, Y, and Z. Don’t home yet, we need to update the firmware and teach offsets and stuff. If things don’t work as normal see my troubleshooting section below about the issue I had.
Step 8. Compile And Flash Updated Firmware
Compiling the firmware is not hard but Marlin 2.0 on a 32 bit board requires different software then was used previously. Atom was a popular editor but recently they have announced that it will not support Marlin going forward so our best choice is Microsoft Visual Studio Code. Download it and then install the PlatformIO extension.
Go to the Marlin github and download the newest firmware, also download the config files as they are now a separate download. Copy the config files from the BTT folder, not the Creality folder. You need to set the type of board in platformio.ini to “default_envs = STM32F103RC_btt_512K“. Then you are editing the configuration.h and maybe configuration_adv.h as you would for any firmware update. Enable the features you want and when done hit compile.
Navigate to the folder on your PC where the firmware project is located and then go to this folder “\.pio\build\STM32F103RC_btt_512K”. Here you should see a file named firmware.bin. You simply put that bin file on your sd card, insert it into the printer when powered off, then power on. Upon initialization the printer will update the firmware and it should rename the file to firmware.cur. Some people have reported issues with the file not being renamed and the printer flashing the firmware everytime they start it up. You can always remove the file from your sd card to solve that.
Step 9. Run A Test Print
OK everything is good, you’ve updated the firmware and configured it to your machine. Print something. You should notice immediately that the stepper motors are significantly decreased in volume. When homing they’ll run at a higher speed and may make a bit of noise but when printing you’ll find them near silent. The loudest component should now be your fans.
Troubleshooting
So once I connected everything up and powered on my Ender 3 I got no lights, no activity on the screen, and just the fans turned on. I double checked all my cables and everything was in the correct spot. There was power so nothing was shorted out or fried. What was wrong? I had seen on reddit and on a video from TeachingTech that the older BLTouch wiring isn’t correct for the pins on the SKR mini board. I was under the impression that the BLTouch v3.1 I had (the most recent as of writing this article) had the problem fixed.
Disconnecting the BLTouch and cycling the power showed that everything did boot, the issue was the BLTouch wiring. I got out some wires and tried different orientations until I found the one that worked. For my BLTouch the wires needed to be Blue – Red – Yellow left to right, they were Red – Blue – Yellow in the connector. A quick swap of the order and we were back up and running.
Results
The Ender 3 is significantly quieter than it was before the upgrade. In addition I have enough space to enable linear advance, a feature I was missing on my stock board. Running the linear advance calibration prints are very easy and once you find your K value you can put it into your start Gcode in your slicer. Other than the misalignment of the wires on the BLTouch, which is an easy fix, I didn’t find this particular upgrade too difficult and the benefits are pretty significant.
This site is useless, a picture does not an article make.
Hi Karl,
I’m not exactly sure what you are seeing when you visit the site but this is a 1800 word article with multiple images of the process. If you are not seeing the complete article we would appreciate knowing what you are seeing. I would suggest trying another web browser or device and if you have ad blocking software perhaps try without that. If any of that gives success please let us know what was causing the issue and what (if anything) fixed it. If your issue is with the content of the article itself I would love to know what specifically you took issue with and how it could be improved.
Thanks,
Keiran
I just upgraded the board, but have yet to flash the firmware. I am getting some wonky results. Is the firmware flash 100% necessary? Thank you.
Hey Andrew,
Most of these boards ship with firmware that was really set up just to test them for QC and is not meant to actually run the printer. The best course of action is to compile and flash your own firmware from the newest source (version 2.0.7.2 as of the time I’m posting this). If you are not comfortable with that then I would head over to BTT’s github https://github.com/bigtreetech and download one of their pre-compiled ones and use that. If you are using the SKR mini E3 then go here https://github.com/bigtreetech/BIGTREETECH-SKR-mini-E3/tree/master/firmware find the folder with your specific version (don’t mix them up), and then grab the .bin file that matches your set up. Looking at the site they have firmware.bin (this is the vanilla set up, no autolevel sensor, nothing different from a stock ender but the board), firmware-bltouch.bin (this is using a BL-Touch for autolevel but retaining the z-endstop), and firmware-bltouch-for-z-homing.bin (using a BL-touch as the end stop and for autolevel). The file you flash must be named “firmware.bin” so if you use a bl-touch file you need to rename it before you put it on your SD card. You will not be able to modify and recompile these .bin files so if you have other changes to make then you’ll need to download the source and compile in VS Code.
Hi I know this comment is being left long after this article came out, but does the firmware for the BL touch also work for the CR touch or will I have to compile and edit that myself?