Processing-based avrdude wrapper -upload hex files

So, I had a need for an easy-to-use hex firmware uploader that anyone could use, without having to explain how to install and run the IDE, or explain the command-line for avrdude.

It's actually pretty easy to just use avrdude, but sometimes we have people who aren't even familiar with the command shell in windows, mac, or linux. Considering this took all of a few hours to put together, it costs less to do than constantly re-explain avrdude grin

I'm sharing it in case anyone else has a need for similar, it only works with the Atmega328-based duemilanove's, afaik, but can easily be modded to support any board.

I use it with avrdude 5.10, so there's no need to do any serial port reset hackery, instead it uses the "arduino" programmer type.

Here's the processing source and a windows binary:



Excellent! I think this might be what I might need — I’m not sure yet. It might be the thing that makes amforth go from the downloads folder of my MacBook to the Arduino Lilypad it needs to exist on. How do I make this work on my Mac?

Hi Ian!

All you should have to do is load up processing, replace the files in bin/ with the avrdude binaries for mac (I'm going to have to leave that one up to you =), put your hex file in the hex/ directory , and then adjust the avrdude parameters in the processing sketch to match the right ones for your lilypad. (Hint: go into arduino ide, and upload a basic sketch, but hold down 'shift' when you click on the upload button to get verbose output.)

Then, it should just run? I hope? =)


I've got as far as installing “processing”, and am now going to replace the files in bin/ with what, precisely? Explain what “the avrdude binaries for mac” means.

Currently the contents of bin, to be replaced by that unclarified something, are:

-r-xr-xr-x  2 root  wheel    63184 18 May  2009 [
-rwxr-xr-x  1 root  wheel  1346544 11 Feb  2010 bash
-r-xr-xr-x  1 root  wheel    44272 18 May  2009 cat
-r-xr-xr-x  1 root  wheel    62656 14 Jul  2009 chmod
-r-xr-xr-x  1 root  wheel    57632 14 Jul  2009 cp
-rwxr-xr-x  2 root  wheel   767200 11 Feb  2010 csh
-r-xr-xr-x  1 root  wheel    80848 18 May  2009 date
-r-xr-xr-x  1 root  wheel    60992 14 Jul  2009 dd
-r-xr-xr-x  1 root  wheel    48368 14 Jul  2009 df
-r-xr-xr-x  1 root  wheel    50816 18 May  2009 domainname
-r-xr-xr-x  1 root  wheel    50704 18 May  2009 echo
-r-xr-xr-x  1 root  wheel   117504 18 May  2009 ed
-r-xr-xr-x  1 root  wheel    67552 18 May  2009 expr
-r-xr-xr-x  1 root  wheel    50816 18 May  2009 hostname
-r-xr-xr-x  1 root  wheel    51024 18 May  2009 kill
-r-xr-xr-x  1 root  wheel  2186880 19 May  2009 ksh
-r-xr-xr-x  1 root  wheel   246720 11 Jun 00:19 launchctl
-r-xr-xr-x  2 root  wheel    39552 14 Jul  2009 link
-r-xr-xr-x  2 root  wheel    39552 14 Jul  2009 ln
-r-xr-xr-x  1 root  wheel    80688 14 Jul  2009 ls
-r-xr-xr-x  1 root  wheel    35072 14 Jul  2009 mkdir
-r-xr-xr-x  1 root  wheel    44848 14 Jul  2009 mv
-r-xr-xr-x  1 root  wheel   238576 14 Jul  2009 pax
-r-sr-xr-x  1 root  wheel   134816 18 May  2009 ps
-r-xr-xr-x  1 root  wheel    50784 18 May  2009 pwd
-r-sr-xr-x  1 root  wheel    93376 18 May  2009 rcp
-r-xr-xr-x  2 root  wheel    44448 14 Jul  2009 rm
-r-xr-xr-x  1 root  wheel    34624 14 Jul  2009 rmdir
-r-xr-xr-x  1 root  wheel  1346624 11 Feb  2010 sh
-r-xr-xr-x  1 root  wheel    50752 18 May  2009 sleep
-r-xr-xr-x  1 root  wheel    88704 18 May  2009 stty
-r-xr-xr-x  1 root  wheel    50512 24 Apr  2010 sync
-rwxr-xr-x  2 root  wheel   767200 11 Feb  2010 tcsh
-r-xr-xr-x  2 root  wheel    63184 18 May  2009 test
-r-xr-xr-x  2 root  wheel    44448 14 Jul  2009 unlink
-r-xr-xr-x  1 root  wheel    50864 10 Apr  2010 wait4path
-rwxr-xr-x  1 root  wheel  1597200 11 May  2009 zsh

I meant the "bin" directory in the hex uploader source tree... not /bin on your computer =)

Download the source from the link above, you'll see it has its own directory tree, including a sub-directory called "bin", another "hex", "data", and so on.

As for avrdude... You'll need to google that one =) I'm going to have to leave getting avrdude, and understanding what it is, up to you (hence my original statement in my first post =) ... In fact, all you need to solve your problem is avrdude, and trying to hack this hex uploader just to use avrdude in a gui will be more work for you!


I still don't understand you — you're not explaining sufficiently at all.

In other posts elsewhere on the Internet, it appears that I should upload a hex file of amForth to the Arduino, but the method was never explained.

I've been reading about this “avrdude” you suggested. You're right, it seems to be what is needed to put a hex on the Lilypad. However, it looks vastly too complicated and technical to understand clearly, so I'll give it all a miss.

Thanks anyway.

Avrdude is what is used by the arduino IDE to upload the sketchs to the arduino board but it is all undercover, if you want a GUI wrapper for avrdude maybe PonyProg is easier to use and there is no need to use strange Processing wrappers.

Sounds good, thanks.

Gah, I discover that there's no OS X installer. The Linux could have been an option, but there's no Ubuntu one either. It just gets worse.