Not sure if this can be done, here is an example.
Lets say I made a sketch for my Dad to read various sensors on his car, is there a way he could upload a new sketch or even the hex version via usb without having to use the Arduino IDE?
He's not all that good with computers but would love to be able to send him a new version with a bug fix and he can just simply plug in a usb and click and upload, or am I dreaming?
You can't just plug a USB memory stick on the Arduino and expect it to do anything.
The underlying tool that the Arduino IDE uses to load a hex onto a board is called "avrdude." You'd have to tell it exactly what serial port and chip type and fuse values to use... all with typing into the scary command prompt which most non-technical people avoid like the plague. All this is what Arduino IDE hides for you, and remembers your choices between sessions. Once you've chosen the options, it's one button click.
However, next time you visit him, set up his computer to allow secure remote desktop access. Then you can assist the process from afar, whenever it's required.
C:\WinAVR-20090306rc1\bin\avrdude -pm168 -carduino -Pcom5 -b19200 -Uflash:w:io_test.hex:a
That is the string avrdude uses to send the hex .
Pcom5 -b19200 you should be able to guess what that is ?.
Uflash:w I think to a erase flash , and the program I`m sending is io_test.hex
but then why not just write a small batch file executing this command line?
setup his PC that the avrdude is working fine, then always send him the new file with the same name.
He just overwrites the old one an executes the batch file.
should work fine and its quite simple :)