Since some time, the IDE can generate a hex file (Sketch -> Export compiled binary). However, AFAIK, there is no way to actually upload that hex file without compiling again.
I am looking for a user friendly way to flash a provided hex file, using the IDE. Something like Xloader or avrdudess, but in the standard IDE.
(Just to prevent non-answers: My goal is not to distribute closed-source software.)
Compiling everything again just to upload the sketch is boring.
True. Uploading a .hex file compiled for one board to a different board IS exciting and mysterious...
(Note that a .hex file does NOT contain any information about which chip it was compiled for...)
Where would this "upload .hex file" command fit, in the current command/menu structure? Only the (seldom-used) "open" command actually prompts for a filename - I guess adding "burn binary file" next to "burn bootloader" wouldn't be too jarring...
Glad Arduino is not using anything like a mouse driven interface...
One of the things I like to point out when people complain about the Arduino IDE being primitive, is that it's also pretty small. Less than 500MB on my Mac, and less than 200MB for the download. Compared to that 3G for Atmel Studio or MPLABX. Arduino has a small fraction of the features, but it installs in a small fraction of the time and starts up in a small fraction of the time, too...
There are some other GUI front ends for AVRDude (AVRDudess, I think I've heard?) They're probably easier to figure out than AS.
westfw:
Arduino has a small fraction of the features, but it installs in a small fraction of the time and starts up in a small fraction of the time, too...
And with 1.6.12 with teensyduino, it crashes faster, too! No Error message, no dialog, just ... desktop.
robtillaart:
so you want a button "upload last compiled HEX image"
then you probably want also the button "download HEX image"
Right. Download HEX would be nice too. I agree.
But having the ability to build an image on the desk and then walk out to the field for flashing the prebuild image to the spreaded wired up boards from another (smaller) computer without having all library dependencys constantly in sync would be very nice.