Avr Flash Programming with AvrDude Experiences
AvrDude, Platform Independent Java AvrDude GUI, AVR flash programming, Atmega fuse programming
So the story goes
Well, AvrDude is sort of the pope of avr flash programming, as compared to catholics, but i'm not one of them ... sorry. maybe a bad comparison, but at least within a peaceful religion. All avr-guys are ... hopefully :)
So while it's a wonderful piece of software, it's still command-line with about roughly 1001 options and combinations thereof ... probably more :)
so let's search for GUIs ... there are probably more, but one caught our attention.
this seems to be a real jewel ... written in java and portable therefore.
Initially we had a problem installing it on newer linux platforms for some small dpkg compatibility issues.
well ... it's java after all, so the installer is not that important (hopefully, we're not completely done with the eval)
In windows it seems to work. and in linux you just need to run it from the command-line like
java -jar appname.jar
once Mate get's his ear off his pillow maybe he can assist me a bit in dressing up the command-line use of the java exec.
... to ease your reading we start with the main screen.
Followed by the Setup Panel :
And the Fuse Config Panel :
In case that any of the download links are down, we might still have a copy tucked away ... contact us.
Initially we thought that it's a USBasp interface only, but ...
The beautiful thing is that it does support the serial interface which works almost everywhere, as long as you know your serial devices port name :)
windows : COM1 ... COMn
linux : /dev/ttyS0 - /dev/ttySn ... /dev/ttyUSB0 - /dev/ttyUSBn ... /dev/rfcomm0 - /dev/rfcommN
It is also important to add your user name to the "dialout" group, otherwise the /dev/... might only be recognized as root "sudo ..."
Nice Features to Have
You have an option of adding command line params in the avrdude setup dialog.
Also it displays the whole command-line conversation between AvrDude and your command.
In case of uncertainty, specify the "-n" option for testing purpose, doesn't perform any dangerous writes.
A few more important notes :
while there is a global avrdude.conf file and i even think a local one in your home directory, we didn't want to mess with it, which means any deviation from the conf file need to be specified on the command-line.
- -b 19200 : the default baud range was wrong and the device could not be correctly identified.
- -v -v -v -v : this times 4 verbose config was found in the arduino verbose settings and produces a very detailed communications result.
And then there are the Fuses :
Before you hit the fuse write button make sure you have the bits right the 1st time, otherwise you will get plenty of practice to very carefully remove and resolder a new cpu onto your board. Normally our assembly shop will do the professional re-work but sometimes we have to do it ourselves on our engineering prototypes.
For lack of a hot air removal tool, we did the removal with a Dremel tool. There might be some static electricity build-up on the pins, but so far it has worked. At least it does not stress the board and neighbouring components with excessive heat.
Grind into the edge of the plastic package :
... otherwise it might rip the pin off the pad.
Just Whisked the Remaining Pins Away :
We use solder with organic flux core which allows to wash off the solder residue with water. But you need to apply some of this organic flux as a liquid before soldering (just flood the components involved with it).
The Final Result :
... the pin with the red-x was already lifted on our 1st failed attempt with very pointy cutters.
AvrDude Downloads :
Here you find all the versions and documentation you ever wanted, including the 1001 options descriptions.
... maybe more to come, but my pillow is calling now
Note : All published design documentation is Copyright ⓒ efiLabs.com and its use is without exception FOR NON COMMERCIAL PURPOSE ONLY. For commercial licenses contact efilabs.com ... try us, we're reasonable :)