The Main board contained in the Creality Ender 3 does not come pre-flashed with a boot-loader. A boot-loader is what enables us to write firmware over usb. If we plan on flashing new firmware and don’t want to have to take the control box apart every time, we need to flash one.
We will be flashing this bootloader via ICSP using an Arduino as the programmer. This same task can be completed using a USB ICSP Programmer. I had an Arduino Uno lying around so that’s what we’ll use for this demonstration.
Note that the firmware I provided is almost totally stock. I made no real modifications. I simply provided this for others who wish to modify their firmware.Add TipAsk QuestionCommentDownload
F YOU ARE USING AN ARDUINO MEGA OR MEGA2560 THIS WILL NOT WORK. INSTEAD, USE THE ALTERNATIVE METHOD OUTLINED IN STEP 3
First, download and install the latest version of the Ardunio IDE from Ardunio. Then connect your Ardunio via USB to your PC. Once connected we will have to determine which COM port your Arudino is using. So open up Device Manager and under the “Ports” section, see what COM port yours is using. In the screenshot I provided, my Arudino was using COM5.
Now we can head over to the Arduino IDE that we installed earlier.
Once that uploads successfully, your Arduino is now an ISP Programmer! Disconnect it from your PC and close the Arduino IDE.
We can now connect to our Melzi board.Add TipAsk QuestionCommentDownload
Once you’ve moved the power supply out of the way (be careful as some of the wires connected to it are not very long) you should be able to see the controller board. You can either remove the controller board from the housing or leave it in place. I chose to leave it in place to save time. If you do the same, find something to prop up the power supply.
Next, swap the USB/VREG jumper to USB so that we can power the board via USB. You can find it’s location on the picture I attached.
Now we have to wire our Arduino to the Melzi controller board inside our CR-10. This will be done by connecting the ICSP pins on the Arduino to the ICSP pins on the Melzi. I’ve attached a few pictures to see how this is done. I recommend using female to female jumper wire to do this but any way you can wire this can work. It should be wired as follows:
Melzi —–> Arduino
MISO —-> MISO
5V ——–> 5V
SCK —–> SCK
MOSI —> MOSI
RESET -> Digital Pin 10
GND —-> GND
We will now flash the bootloader to the Melzi board using the Arudino UNO as a programmer. First, we have to download the Sanguino add-on for our Arduino IDE:
Now we can connect things to our PC and start flashing:
If everything was done correctly, it will now burn the bootloader to the Melzi board using the Arduino UNO as an ICSP programmer. At the bottom of the Arduino IDE window, there will be a small black box that should say it completed successfully.
IF EVERYTHING DID NOT WORK CORRECTLY, THERE IS AN ALTERNATIVE METHOD THAT YOU CAN USE!
So you’re sure you did everything right and you tried to burn bootloader yet it didn’t work? Here is an Alternative Method using a sketch made by a brilliant man named Nick Gammon.
Now that our Melzi has a bootloader burned to it, we can flash it via USB. You can disconnect the Arduino from the Melzi board now.
For the firmware flashing process you will need to download Arduino v1.0.5 You will also need to extract the Sanguino folder to the hardware folder of the Arduino v1.0.5 installation.
This will now open the firmware in Arduino, you can make whatever changes you’d like here. Most changes will occur in the Configuration.h file. Once you’re happy with your firmware settings:
Now you can hit upload and, if you’ve done everything right, you will now have a custom firmware on the Ender 3. Any time you want to change something in your firmware, simply connect via USB, open Arduino v1.0.5, make your changes and hit upload!
MAKE SURE TO SWITCH THE USB/VREG JUMPER BACK TO VREG BEFORE CLOSING UP