Download and install the Arduino IDE for Mac, Windows, or Linux.
In the main menu, navigate to File > Examples or Example Sketches and select Arduino ISP.
Then, navigate to Manage Libraries and install the U8glib library.
Next, we'll need to install the Sanguino board.
Open Arduino Preferences and paste the following under Additional Boards Manager URLs:
Then, navigate to the Boards Manager and install Sanguino.
Connect your Arduino Uno (or Arduino Uno clone) to your computer using a USB cable.
Under Tools, select Arduino Uno as the board.
Then, select either Arduino Uno or COM* as the port, depending on your computer.
Finally, click Upload to upload the Arduino ISP sketch. After uploading, keep the Uno connected to your computer.
Turn your printer OFF. Then, use the small hex key that came with your printer to remove the 3 screws from the Ender 3 control box—this is the box located beneath your bed.
Finally, use your "Dupont" jumper wires to connect your Arduino to your printer as follows:
Arduino Ender 3 bootloader connections
|Ender 3 Pin||Arduino Uno Pin|
Matching up the pins
You may have noticed these pins aren't labeled on either the Ender 3 or Arduino Uno. No worries—you might also have noticed there's an identical small 2x3 header (2 rows of 3 pins in each row) on both the Arduino and Ender 3. We basically want to "match up" the two headers, with the exception of the
Use the attached Ender 3 Arduino wiring diagram to connect the two headers properly.
Select the Sanguino board from the Tools menu. Then, change the Programmer from AVRISP mkII to Arduino as ISP. Finally, click Burn bootloader.
When the process is finished, you'll see a message stating "Output bootloader burned successfully".
If you run into issues, try the following:
- Double-check your settings and connections
- Swap out your jumper wires in case yours are defective
- Make sure you downloaded the Arduino IDE directly from the Arduino website (not the Windows store)
- If you see an error such as the one below (especially if you're running macOS), try installing the TH3D United Firmware Package and running the included preconfigured Arduino IDE instead of the normal Arduino IDE. Then, select Sanguino (1284P Boards) as the board. If you're using a Mac, don't forget to follow the Mac setup instructions for the TH3D Arduino IDE.
avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x14 avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x01 avrdude: stk500_initialize(): (a) protocol error, expect=0x14, resp=0x10 avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. avrdude: stk500_disable(): unknown response=0x12 Error while burning bootloader.
When the bootloader is done burning, carefully disconnect the jumper wires from your Ender 3, secure the control box cover, and unplug the Arduino from your computer.
Download the latest Marlin release to your computer and unzip it.
Then, navigate to
Marlin/example_configurations/Creality/Ender-3 and copy all those files into the
Marlin directory, replacing all files when prompted.
Connect a mini USB to USB cable between your computer and the Ender 3's front USB port. If you're already using OctoPrint with the Ender 3, simply move the USB cable from the Raspberry Pi to your computer. :)
Back in the Arduino IDE, select File > Open and locate the
Marlin.ino file from the
Marlin directory you unzipped early.
Then, make sure the port is still selected as Sanguino or Sanguino (1284P Boards), the programmer is Arduino as ISP, and the proper serial port is selected.
Finally, click the Upload button. The firmware transfer process should take about a minute.
Disconnect your computer and power on your printer. Your printer will take a bit longer than normal to start up. You should now see a different boot screen since your firmware has been updated.
Next, set up OctoPrint on your Ender 3 and improve your printing experience!