Yup, that is possible. If you want to play with it right now, there's info and instructions here: https://github.com/Pinoccio/core-pinoccio/blob/master/avr/bootloaders/STK500RFR2/release_0.41/howto.txt
That process is still a bit rough, but I've been working the last week on making this process easier. The idea is that:
- The arduino IDE will pass the compiled hex file to a custom script (probably a python script, or perhaps integrated with the pinoccio node cli tool).
- That script will talk to a regular scout connected through USB using special ScoutScript commands.
- That scout will send the
scout.otaboot command to the Scout-to-be-flashed, causing it to reboot into the bootloader (which listens to the radio for special packets with data to flash).
- That same scout will receive data from the script on the PC and send the data to the Scout-to-be-flashed.
Initially, this requires a scout to be connected through USB, and the Scout-to-be-flashed needs to be in direct range of the first scout (the OTA upgrade protocol does not support routing). Also, flashing happens one scout at a time. Later, we hope to offer OTA upgrades by uploading a .hex file through HQ, support flashing of Scouts a few hops away and even have automatic replication of a new version over your mesh network, but that's for a future version.
Right now, I have the basic OTA protocol working and I can send and receive basic ping packets using a regular scout. There's still some problems with directed pings that I'm working on now - it seems that only broadcast pings work so far.
I'll keep you posted on my progress here.