If you've got the Ender 3/ Ender 3-Pro and always have trouble figuring out what's needed, we don't blame you. The internet's like a double edged sword; it can be a great place to find information, it's also a great place to get lost in too much information.
This guide, along with many others that we have written will provide you adequate information and instructions to get custom firmware flashed to your board.
So why flash a custom firmware onto your Ender 3? To take advantage of the countless of possibilities on the Ender 3 of course! Our firmware is built based on Marlin 2.0 and you will get access to the following (that are not available in stock firmware)
- Thermal runaway protection. In case of the hotend's / heated bed's heated malfunctioning, your Ender 3 will go on fire. Having thermal runaway protection will prevent that
- Babystepping in X, Y & Z. Getting the perfect first layer used to be a tall order. Not anymore if you have a relatively flat bed.
- Optimized Codes. Marlin is great, but the Melzi's have a limited on board memory. Our version of Marlin fits right into your board without adjustments on your own.
If you need a clear cut, concise and simple guide, then this is it!
First thing first, things that you will need:
1) An Arduino Uno. Make sure the USB A to B cable is included in your purchase. You can get one here.
2) You will also 5 female to female, 1 female to male jumper wires. You can get an entire set here.
3) Mini USB to USB cable. You can get one here.
4) Original Melzi Board. If your Ender 3/Ender 3-Pro has a stock motherboard, you have a melzi board. If you don't have one, this guide may not be for you
5) Determination & Grit. You cannot buy one, but if you follow the steps, you'll be able to flash your own firmware in no time.
For some of you who read about the USBasp ender 3 bootloader flashing guide, we'll like to let you know that this guide will be based on Arduino Uno. The USPasp's can get the same job done but the investment of an Arduino Uno (even a clone) can prove to be a better investment in the long run.
This guide is split into 2 below:
First Section: Flashing Bootloader
Flashing the bootloader can be difficult and complicated. Usually, you will need a copy of Arduino from the official Arduino website and have a handful of other codes you'll need to set up for the Sanguino board etc.
But to make things easy for you, we've got you covered. You can download a pre-configured Arduino IDE workspace that we've created here.
Once downloaded, unzip the Arduino IDE workspace file.
Open the arduino file by double clicking on it.
If you see the window appear, you're all good! We can proceed to the next section!
Now before we can flash any new firmware, we need to have a 'bootloader' present on the original Creality motherboard. Think of a bootloader like a gateway or a backdoor. We need this gateway in order to deliver the firmware into the motherboard.
To do that, we will now have to install the bootloader with the help of the jumper wires, the mini USB to USB cable and of course, the Arduino Uno.
Michael at Teaching Tech has done a wonderful job illustrating how a bootloader can be burnt using Arduino Uno through this video. You can watch the video starting from this link. It will give provide you with a comprehensive guide on how you can use the Arduino Uno to install the bootloader.
If you prefer to watch the entire video, you view it here. Alternatively, you can follow the steps below to get started!
Connect your Arduino ISP to your computer
After connecting your computer to the Arduino UNO via the USB A to B cable, you will need to go back to Arduino IDE to set the Arduino Uno as a programmer.
Files -> Examples -> Arduino ISP
A new Arduino window will open (highlighted in yellow). Please check the following values under Tools:
Board: "Arduino/ Genuino Uno"; Programmer: "AVRISP mkII". If you have more than 1 USB device connected to the computer, please ensure your Port is correct. It should be the port connected to the Arduino UNO.
For us, it was Port: "COM6".
Click the Upload button on the top left. This will set you Arduino Uno as a Programmer using the example sketch. The uploading process should only take a few minutes.
Once the upload is done, the words "Done Uploading" will appear at the bottom. Congratulations, we're halfway through!
Now that the uploading is complete, disconnect the Arduino Uno from the computer.
We'll now have to connect the Arduino UNO to the Creality Motherboard using the jumper wires. Please connect them in the following order:
Blue female to female wire; top left of Uno to top left of Creality Board
Black female to female wire; middle left of Uno to middle left of Creality Board
White female to female wire; bottom left of Uno to bottom left of Creality Board
Purple female to female wire; bottom right of Uno to bottom right of Creality Board
Grey female to female wire; middle right of Uno to middle right of Creality Board
Brown male to female wire: Pin 10 of Uno to top right of Creality Board
Please know that the colors are only for identification purposes. Any jumper wires will work as long as you connect them correctly; same colors from one board to another.
A close up of how the wires are connected.
Notice that top right of Uno is empty as we need to use male connector on Pin 10 of Uno that connects to the top right of the board.
All jumper wires connected except brown wire. Pin 10 to Creality motherboard not connected yet.
All jumper wires now correctly connected and ready to install your bootloader!
Connect the USB A to B cable back to the computer and you will find your LCD screen of the Ender 3 lighting up. Don't worry, it's perfectly normal.
Back to the computer, we'll now go to Tools and choose the correct values.
Board: "Sanguino"; Processor: "ATmega1284 or AT mega1284P (16 MHz)"; Programmer: "Arduino as ISP". Your Port number may remain the same. For us, it was Port: "COM6". Yours may vary.
Last but not least, we go back to Tools and click "Burn Bootloader"
Once your Arduino window shows "Done burning bootloader", the process of installing your bootloader is now complete.
You can now flash any firmware onto Creality's motherboard without using the Arduino Uno or any of the jumper wires. All you need is to simply connect the motherboard straight to your computer via the Mini USB to USB cable.
Second Section: Choosing and Flashing Your Firmware
Flashing the bootloader is like 95% of the entire guide. The last 5% is flashing your firmware.
If you have a stock Ender 3 and just want better a better & safer firmware than stock, then you need to download our version of Marlin here.
If you have our CoreXY Conversion Kit based on the Ender 3, you will find the suitable firmwares and instructions in a different section. You can find it here.
Open up your download folder to locate the file you just downloaded. Your file name may be slightly different.
Unzip the folder to any folder you like. For our case, we're extracting it to our desktop.
This folder contains all the source code the entire firmware based on Marlin
Now back to Arduino IDE, you will now need to open the correct firmware
Open the file that we unzipped earlier on and open Marlin folder
In the Marlin folder, locate the file Marlin.ino and open it.
You may now have more than one Arduino IDE windows open. The one highlighted in yellow is the new one you just opened. Please work on the correct window.
You may now connect your Creality motherboard to the computer via the Mini USB to USB cable.
Before flashing your new firmware. Check the follow values under Tools:
Board: "Sanguino"; Processor: "ATmega1284 or AT mega1284P (16 MHz)"; Programmer: "AVRISP mkII" .
Since the Arduino Uno is already removed, please check if your Port has changed. For us, it was Port: "COM6". Yours may vary.
Then click upload on the top left button and let Arduino IDE do the rest.
If the firmware's bootloader is burn correctly, the firmware should be uploaded without any issues. If a message such as "Done uploading" appears at the bottom without any errors, then congratulations. Your new firmware has been flashed to your Ender 3 board!