Article in Progress
Some boards are a pain to flash. They might not have a reset capacitor or a bootloader. Arduino based boards can be programmed directly over the ICSP header using something like Tiny ASP, USB ASP, or something like an Arduino UNO which is the option I will cover today. It is possible to use other models of Arduino with a little extra work.
First things first you will need to download the Arduino IDE - https://docs.arduino.cc/software/ide/
After starting the Arduino IDE you will need to navigate File > Examples > ArduinoISP and select ArduinoISP
A new window with the required sketch will open. You should plugin your Uno by itself and select it in the menu.
Then go to Sketch and Upload. You will see lights flash on your UNO and if there are no errors it is time to wire up to the ICSP Header.
We will need 6 male to female jumper wires.
This drawing from Arduino's article is an excellent reference - https://docs.arduino.cc/built-in-examples/arduino-isp/ArduinoISP/
I will be using the Mightyboard Rev E found in the Makerbot Replicator as my example. On any board look for a labeled ICSP header. You may have 2, in this case we have one for the main 1280 chip as well as another for the 8u2 chip used for USB connectivity. The header is not always labeled so refer to your printers guide if available. One pin should be marked with a dot. That is pin 1 and is the orange wire in the Arduino example. Directly across from it is 5v pin which is red in the example. I used roughly the same wire colors as the drawing.
Verify you have your 5v on Pin 2 which is across from Pin 1, and your ground on Pin 6 prior to plugging the Arduino in. The rest of the wiring being incorrect will just make flashing fail. But power being incorrectly attached could cause damage. You may now plug in the Arduino. This will likely power some 5v items hooked to the board. If desired you can unplug things like the screen to reduce power draw.
Be sure to have things like Cura or Pronterface closed to avoid interference with com ports. Note the com port the Arduino appeared in Arduino IDE. Using avrdude we will run the board specific command to flash our firmware.
avrdude -Cavrdude.conf -v -patmega1280 -cstk500v1 -PCOM3 -b57600 -U flash:w:firmware.hex
There are a number of errors you can run into. Make sure the com port is the correct number and the firmware file is in the same folder as avrdude. Make sure the processor in the command matches that of the board you are flashing. If you are trying to flash a clone board for a similar printer to the guide you are following you may have a 2560 instead of a 1280 or vice versa. Lastly you can try different baud rates. The Mightyboard flashing over USB with avrdude 57600 is appropriate but over the ICSP header you will need to slow that down to 19200.
Some boards are a pain to flash. They might not have a reset capacitor or a bootloader. Arduino based boards can be programmed directly over the ICSP header using something like Tiny ASP, USB ASP, or something like an Arduino UNO which is the option I will cover today. It is possible to use other models of Arduino with a little extra work.
First things first you will need to download the Arduino IDE - https://docs.arduino.cc/software/ide/
After starting the Arduino IDE you will need to navigate File > Examples > ArduinoISP and select ArduinoISP
A new window with the required sketch will open. You should plugin your Uno by itself and select it in the menu.
Then go to Sketch and Upload. You will see lights flash on your UNO and if there are no errors it is time to wire up to the ICSP Header.
We will need 6 male to female jumper wires.
This drawing from Arduino's article is an excellent reference - https://docs.arduino.cc/built-in-examples/arduino-isp/ArduinoISP/
I will be using the Mightyboard Rev E found in the Makerbot Replicator as my example. On any board look for a labeled ICSP header. You may have 2, in this case we have one for the main 1280 chip as well as another for the 8u2 chip used for USB connectivity. The header is not always labeled so refer to your printers guide if available. One pin should be marked with a dot. That is pin 1 and is the orange wire in the Arduino example. Directly across from it is 5v pin which is red in the example. I used roughly the same wire colors as the drawing.
Verify you have your 5v on Pin 2 which is across from Pin 1, and your ground on Pin 6 prior to plugging the Arduino in. The rest of the wiring being incorrect will just make flashing fail. But power being incorrectly attached could cause damage. You may now plug in the Arduino. This will likely power some 5v items hooked to the board. If desired you can unplug things like the screen to reduce power draw.
Be sure to have things like Cura or Pronterface closed to avoid interference with com ports. Note the com port the Arduino appeared in Arduino IDE. Using avrdude we will run the board specific command to flash our firmware.
avrdude -Cavrdude.conf -v -patmega1280 -cstk500v1 -PCOM3 -b57600 -U flash:w:firmware.hex
There are a number of errors you can run into. Make sure the com port is the correct number and the firmware file is in the same folder as avrdude. Make sure the processor in the command matches that of the board you are flashing. If you are trying to flash a clone board for a similar printer to the guide you are following you may have a 2560 instead of a 1280 or vice versa. Lastly you can try different baud rates. The Mightyboard flashing over USB with avrdude 57600 is appropriate but over the ICSP header you will need to slow that down to 19200.
Last edited: