Simple binary/hex Arduino uploader?

Is there already a uploader for windows that can upload a complete binary to an adrunio using its bootloader? Or information needed to make a program that can do this?


Do you mean something other than avrdude?

no, that's much too complicated. I mean something we could give end users as a single file and it would update there arduino. It can't use a programmer, it needs to use the build in ability to upgrade through rs232/USB. (on the Arduino nano v3.0).

I can make a single self extracting exe, that runs a batch script to use all the correct switches, etc. Preferably it could auto-scan the com ports to find the arduino, if not, not a big deal.

This has been discussed before think you should search for "midi" if I remember correct.

Have you checked out this?

avrdude looks pretty “standalone”, apart from its configuration file. It shouldn’t be difficult to build an installer using any one of a number of windows installation tools to extract the archive (which would likely only include your .hex file, avrdude, and its config file), execute avrdude with the right parameters (perhaps with certain parameters selected in the installer’s gui), and upload the .hex file to the Arduino…

However, I don’t use avrdude under Windows - is it less standalone than I think?


Or information needed to make a program that can do this?

The bootloader serial protocol used by Arduino is defined in the following document:

The protocol should be fairly straight forward to implement, even from scratch, and you would have the Arduino itself to test your implementation on.

The final output file from the Arduino compile process is not binary, but Intel/Hex. This is a formatted ASCII text file including mcu load address, compiled program code and simple check sums. Details on this format is available from Intel and other sources (google Intel/Hex).

A utility to generate a self extract uploader would be useful.

Found it:

wortelsoft: I seriously thought you had mis-posted in the wrong thread back there, but now I see via your link that it does have relevance!


the purpose of this is to be able to incorporate a flash utility inside software to upgrade the flash on a product. Make it so that others can't edit or view the code and modify it.