How can I download the raw compiled binary, then upload it to another chip?

My hard drive kicked the bucket recently, and I don't know if I will be able to recover the data on it by swapping the logic board out, assuming I can even find one which is identical to the original. Among that data was the source code for several boards I sell.

I have several boards I haven't yet sold, which I think I have the latest version of the code on, so if I could pull that off, I could at least continue to sell the boards, even if it might be a while before I could rewrite all the code and release any updates.

I'm using an FTDI board to upload the code to my chips if that is of any help.

I think there is a way to use AVRDude to read from the chip. I'll go see if I can find it again...

Here you go, try this out for size.

http://www.evilmadscientist.com/article.php/avrreadflash/print

Real Men do not take backups. ]:) They just cry quietly in private.

I may have made a backup, but the external sata dock I used to read my primary drive may be what fried it, so I'm afraid to use it to read the drive I might have backed the data up onto. It was working fine before I moved, then I pulled it out of desktop to get the data into my laptop and was only able to read it for a little while before it stopped working completely.

I successfully copied the code off my Atmega chip! It was a pain in the ass, and it took me forever to figure out why avrdude was complaining about a missing DLL (I didn't notice there were drivers on the ISP programmer page that I needed to install.) but I finally got it working and it's actually pretty easy now that I've got everything setup to burn new chips. It even verifies they were burned correctly. I used a resonator instead of a crystal in my setup, which I was afraid might cause problems but everything seems to work fine.

Here are some instructions I wrote for myself in case I forget how to do it:

Purchase poacket AVR programmer: http://www.sparkfun.com/products/9825

BE SURE TO INSTALL DRIVERS ON PAGE!

Connect it to the Atmega328P chip on a breadboard like so: http://arduino.cc/en/Main/Standalone

Here is the pin mapping of the chip: http://www.arduino.cc/en/Hacking/PinMapping168

You can skip the breadboard adaptor board and just plug your jumpers directly into the end of the ISP cable then into the appropriate pins.

You need either a crystal or a resonator attached to the chip. The programmer will provide power.

Here is a page that shows how to attach a resonator: http://cdn.shopify.com/s/files/1/0038/9582/files/RBBB_Instructions_06.pdf?1260749296

Install MHV Avr tools: http://www.makehackvoid.com/group-projects/mhvavrtools

Launch MHV AVR shell from start menu. A DOS window will appear, and you will be in your root user directory.

Copy moviepke.bin to your root user directory.

Then run this command: avrdude -p m328p -P usb -c usbtiny -U flash:w:moviepke.bin

PS:

To read the flash data off an already programmed chip, you can use this command, which creates the file flash.bin: avrdude -p m328p -P usb -c usbtiny -U flash:r:flash.bin:r

Other useful links: http://www.evilmadscientist.com/article.php/avrreadflash#comments http://www.ladyada.net/learn/avr/setup-win.html http://www.sparkfun.com/tutorials/93

Oh, and another thing that concerned me was that the original chips used an older bootloader, while the new ones I picked up use the UNO bootloader. This did not cause any problems either.