Remember in the last post I was going to flash my 3D Printer but decided to just get a 32bit board? Well I decided to flash the original board. Reason being I wanted to try out Klipper and if I screwed up I would of had to buy the 32bit board.
It was a fight but I got it working.
The board my Ender 3 came with was the 1.1.4 8bit Board that has the ATMega 1284p. Had to “Put a boot loader on it” as everyone says you have to do before flashing it. Not really putting a boot loader on it but changing the boot loader to the Arduino Optiboot. This took a couple of hours to do because every video and article I read was wrong. I first tried using the USBasp method but the Ardunio IDE didn’t want to see it and the only Ardunio board I have is the Mega2560.
So with the Mega2560 I flashed on the ArduinoISP Sketch and installed the Sanguino Board profile and the U8glib library. I made a wire hardness so I had a five pin cable that went like this for the ICSP pins.
ICSP Pinout 3D Printer | Arduino Mega2560 MOSI - MOSI SCK - SCK MISO - MISO GND - GND 5V - 5V
I attempted to “burn the boot loader” but it would fail. I doubled and tripled checked my settings and wiring and no luck. I then decided to do it my way and started to read the ArduinoISP sketch and see if something was off since I was using a Mega2560 instead of a Uno. Everything looked good but I kept seeing about the reset pin. So I added another wire to the Reset on the 3D Printer’s ICSP and connected to D10 on the Mega2560. I crossed my fingers and tried burning the boot loader and it finally worked.
ICSP Pinout 3D Printer | Arduino Mega2560 MOSI - MOSI SCK - SCK MISO - MISO GND - GND 5V - 5V Reset - D10
No additional Cap was needed on the Mega2560 going across 5V and Reset either.
Another thing that isn’t told to you when you put on the Optiboot bootloader. It makes the board unbootable until you put on a new firmware. I tossed on Marlin 220.127.116.11 and got the Printer working again. I connected the USB Cable directly to the printer and Laptop. I moved the example config for the Ender 3 to the main directory to Marlin and loaded up the Marlin.ino file in the Arduino IDE, changed the settings to use the following.
Board: "Sangunio" Processor: "ATmega1284 (16MHz)" Port: "/dev/ttyUSB0" Programmer: "AVRISP mkII"
Uploaded the firmware and got back to normal. The hard part was done and I was able to get Klipper on the 3D Printer and got it to work with OctoPrint. I just followed the guide for Klipper and it was good to go. I haven’t done a test print yet. By time I got the Printer running Klipper I had to go do stuff with the family.
With Klipper I really don’t need to get a 32bit board since the Pi does the heavy lifting. If I was to get a new board it would just be for the better stepper drivers to make it more quiet.
Another thing when I got Klipper working I also installed the OctoKlipper Plugin in OctoPrint. This adds more control and features for controlling the 3D Printer.
So in a nutshell I installed the Arduino IDE. Installed the U8glib library, added the Sangunio board, uploaded the ArduinoISP sketch to the Arduino Mega2560. Made a custom cable for the ICSP pins, flashed the Boot loader onto the 3D Printer, Uploaded the Marlin 18.104.22.168 firmware to the Printer. Installed Klipper on the Pi that already had OctoPrint installed on and uploaded the Klipper firmware to the Printer then installed the OctoKlipper Plugin.