Are there any one-click tools that could be used to update firmware via usb?

Hey guys,

The Arduino micro and DUE both have a USB port for programming. I am looking at designing a board with an Xmega using the Xmegaduino IDE which would also have USB.

I need to be able to allow my end users to upload new firmware in a simple manner. Right now, I've got a board with an Atmega1284 and I have them put a .bin file on an SD card and the board loads it from there. I was thinking USB might be a better option, especially if I can make it so the board acts like a mass storage device normally so they can just drop files onto the SD card.

So, what I was wondering is is there some utility out there which I could tell my end users to download which would allow them to simply plug the device in, select a file, and click a button to upload a binary to it? I'd prefer not to have to do something with a batch file.

do you mean like AVRDude ?
http://www.nongnu.org/avrdude/

(well you'd probably need to wrap it, but its most of the way there :wink:

Yes, I mean like AVRDude, but like I said, I'd prefer not to use a batch file. But I'd sooner use a batch file than have to write a windows application to display a file dialog and call it. I haven't done anything like that in years and don't have the tools installed.

I'm also not sure how complicated installing AVRDude is. Unless I could just include the exe file in a zip along with the binary and batch file, it would be too complicated for my end users.

What I'd really like is to just have a single executable that pops up a file selector box and the user chooses a binary and hits upload. I think the Teensy loader may feature something like this. Atmel's FLIP utility is also close but I don't think it will work with the Xmegaduino bootloader I think I'm going to be stuck with if I want to just use the Arduino IDE.

There are some GUI wrappers for AVRDude. I haven't looked at them, so I don't know whether any are set up for one-click updates from provided .hex files (most seem to replace all the options with GUI objects, instead.) But they should provide a starting point...
(It also looks like there are a bunch of windows utilities (AutoIt, vbscript) that let you put a GUI in front of arbitrary .bat files.)

Yeah after the other fellow mentioned avrdude I thought to check for a gui for that, but the two I found have way too many options for an end user. I don't want them to be able to change the fuse settings.

Um... assuming the xmega even has fuses. Which I think it doesn't. Still... too confusing.

Maybe something that loads an ELF file that would contain all those fuse settings?

If worst comes to worst, a batch file isn't horrible, but it does shut out all the Mac users. I have no idea how to create something like a batch file on a Mac.

This really seems like something that should exist; I mean how many products has stuff based on the Arduino made it into, and there isn't an application you can send to an end user to load new firmware without handing them the source code and the IDE and telling them good luck?

scswift:
I'm also not sure how complicated installing AVRDude is. Unless I could just include the exe file in a zip along with the binary and batch file, it would be too complicated for my end users.

Just include the avrdude binary along with the .hex and .bat file.

You can turn on verbose output in the IDE and copy/paste the command line needed to upload the .hex file.

Technically it's not one click, it's two, but, hey....

scswift:
If worst comes to worst, a batch file isn't horrible, but it does shut out all the Mac users. I have no idea how to create something like a batch file on a Mac.

Well, that's really rather funny, because the Mac OS is (now) a UNIX/ Linux variant where script files are how serious things have always been done!

If you had ever watched the process of installing or updating software on Linux (including the OS itself) - and seen how reliable it is when done properly (compared to certain other systems) - you would understand.

Paul__B:
Well, that's really rather funny, because the Mac OS is (now) a UNIX/ Linux variant where script files are how serious things have always been done!

My first computer had a tape drive. I grew up on DOS. I know how to write a batch file and work from a command line. And I have no desire to return to the good old days. :slight_smile: