I've done a bunch of playing around with trying to upload via XBee to the UNO bootloaderchip. I thought the msg size was 128 bytes, but so far I haven't been able to crack ...... (A) the protocol and all the dependencies in the files in the IDE and GCC and avrdude. Everything seems dependent on everything else. I've spent hours pouring through different IDE subdirectories and source code and make files and include files and IDE files, on and on.

I was able to mod the UNO bootloader source code and the board file in the IDE to change the transfer rate to 9600 and 19200, but it still wasn't reliable. I figure what's happening is the packet [msg] size is too large, the XBee buffer fills and transfers the packet, and avrdude bombs out waiting for an ack from the bootloader while the RF transmission and responses are in progress, but most of this is just surmise.

Due to the complexity mentioned in (A), I'm afraid it would probably be easier for me to totally rewrite the bootloader code and my own transfer protocol program [outside of the IDE] than to try and figure out what is happening with avrdude and optiboot.

However, since XBees are so popular, and many people would like to be able to do wireless uploading, I figure someone knowledgeable with optiboot and avrdude could generate something along the lines in my first post fairly easily [probably also including the abilityto resend bad packets multiple times], and it would still work within the IDE framework. Then, it also would be official and everyone would have it, instead of some hack I cobbled together on my own.