If you don’t have time to read on, here are the solutions which I’m aware of:
- biffavrprog (slow and you probably need to manually add your AVR chip’s definitions to its database).
- avrdude 5.10 via sysfs patched by Radoslav Kolev (very fast and supports everything by avrdude, not tested by me yet) – look at the Bifferboard AVR discussion article for more info.
- avrdude 5.10 via sysfs patched by Biff (even faster but there is a caveat with “rdc321x_gpio”, not tested by me yet) – look at the Bifferboard AVR discussion article for more info.
…read on if you are interested in the story of the above solutions and how they came to the world.
The open-source community is very strange by its nature. Motivating people to work for free is not a straightforward task, as you’ll see from the following story.
I needed an AVR programmer as I’m switching from Microchip to Atmel AVR microcontrollers, because their toolchain is free and open-source. And they also match the price and features of Microchip in general, at least for my needs. I didn’t want to buy any hardware programmers, as I already had the Bifferboard which supports GPIO.
So I decided to code an AVR programmer in Perl myself, for fun and education, and because the C code of avrdude seems too unclean and lacks documentation. That’s how biffavrprog was “born” and I offered it to the Bifferboard mailing list. You can review the thread about it.
You’ll notice that shortly after that, like about an hour later, I was criticized about why I re-implemented it all in Perl from scratch. Many valid arguments were mentioned, I explained my reasons too, but the most important lesson here is that… After a day, Radoslav Kolev developed a patch for avrdude, later on Biff made it faster, and in the end I managed to get the community involved in something of which they were only thinking doing “some day”.
An interesting way to inspire the open-source community… 🙂