I want to be able to upload programs to an Uno using the Sparkfun XBee sheild. I am only part way there.
The first issue is to reset the target Uno when the PC opens the serial port to the XBee Explorer. I did this by using Line Passing. :geek:
On the PC side I:
wire DTR to DIO 0 (via a switch - optional)
turn off sampling, and turn on Change Detect for pin 0
On the Uno side I:
configure DIO 0 as default high
wire DIO 0 to the Uno Reset pin
set a very short timeout on DIO 0
Now, when DTR on the PC goes low, this is transmitted to the other side. On the Uno side, DIO 0 pulls reset low. The short timeout means it returns almost immediately to its default (high). The Uno then resets.
The switch allows me to disable this feature, so that I can connect/disconnect without resetting the Uno. In that case the switch works as a remote reset switch. (so pressing the switch on the PC side resets the Uno via the XBee). This is very useful! :dance:
However, uploading fails - apparently due to timing issues activating the bootloader. I have unsuccessfully tried to change to another bootloader (Duemilanove) using Arduino ISP and a second Uno.
I am sure this is a very common requirement, as an internet search shows, but I have not managed to find a list of steps to get the Sparkfun XBee shield working on and Uno with remote uploading. Can anyone help me find one?