arduino, xbee, wireless programming, multiple boards

Hi all,

I am interested in starting a dialog regarding using the XBee with the Arduino diecimila board, including programming Arduino boards wirelessly.

I have tons of questions and maybe as many answers ( to different questions, of course ). I’m just posting this to get an idea if this is a good venue for the discussion. Please respond if you are working on the same stuff.

Cheers,

Bill

similar: I use the XBees with an ARM7 board (Coridium) and have done serial port downloading via the XBee with the ZBasic.net modules.

Some considerations:

  1. Download trigger. Some of these micros use the RS232 DTR signal to trigger a download. You either have to implement DTR or use a software-triggered download, or push a reset button on the micro and dash over to the PC! The Zbasic modules have an option for a scanning all serial input, at the driver level, for a special character to denote go-into-bootstrap-mode. But this can be an issue if sending binary data when an application is running.

  2. Flow control. The XBee on the PC side uses RTS/CTS for flow control to prevent overrunning its buffers. But at higher baud rates, you need to have a way on the microprocessor side to assure that no “stop sending” is needed, as the end to end flow control requires more than is realistic for a micro’s bootloader. This can work, and I’ve done so, but it has to be done by design, not happenstance.

  3. Error recovery. Most bootloaders assume an error free medium (RS232 cable). Wireless can and will occassionally have an uncorrectable data frame or a brief loss of connectivity due to interference or whatnot. At least, the bootloader needs to start over from the beginning - if it the receiving side has a way to tell the sending side that a restart is needed. This is uncommon in simple bootloaders. With a good strong signal and choosing one of the 802.15.4 2.5GHz channels that falls between WiFi channels 1 and 6 can minimize interference, save cordless phones.

So, this has been my experience.

I have been playing with a couple XBees and Arduinos. I wrote a Java XBee API viewtopic.php?t=9895 to program the radios, send API messages etc. It’s far from complete but has some basic functionality implemented.