Go Down

Topic: burning .hex to atmega with arduino (Read 5605 times) previous topic - next topic


hi everyone,

some days ago i read thread, where someone mentioned that in theory one should be able to burn the bootloader or other programs in .hex format to a fresh atmega8 using another arduino board. without the need for an avr-isp

i'd really like being able to do that.

the thread (which i'm unable to find right now) said, that it has not been done yet, but SHOULD be possible. so i thought that i could give it a try.

how can i imagine the process? is there a special program that i need to upload to the arduino board?
can i burn every program and not just the bootloader?

has the board to be attached to a computer or can the .hex file reside on the board???

best, kuk


I have also been investigating this possibility. At this point, it seems like the following things need to be considered.

First, you would need to develop software to run on the Arduino that would do the equivalent of what uisp (http://www.nongnu.org/uisp/) does.
This is not a small task, but starting with the uisp sources (http://cvs.savannah.nongnu.org/viewcvs/uisp/src/?root=uisp), it should not be too difficult.

Secondly (and somewhat trivially) you would need to connect the blank AVR chip (atmega8, or whatever) to your Arduino cum Programmer. You would do this by connecting your power and ground to appropriate places on your Arduino board, and connecting your SCK, MISO, MOSI, and RESET pins to some appropriate Digital output pins on your Arduino board.

This software should be designed to start up, and wait in a ready state until it receives communication via the serial port (or USB, or whatever) in the form of a START byte, the .hex to be burned, and ended with an END byte. After the START byte has been received, the software would begin to perform the burn to the blank AVR. After the END byte is received, the software would end the burn process. In this way, the available memory on the ProgrammerArduinio is not a limiting factor on the size of the .hex you can burn to the blank AVR. Instead, the .hex is burned onto the blank AVR as it is received by the Arduino.

I have not yet learned the uisp sources, so I cannot yet say how the burn is done in detail, but it would seem like a relatively simple thing, as long as you are not trying to support a lot of different chip configurations. It seems clear that a simple programmer could fit inside the 8k programming space with room to spare.

Thoughts? Has anyone else investigated this possibility?

Go Up