XBee in API mode using Uno and Arduino SD wireless shield

I am building a home automation network using Arduinos and XBee radios. You can set up networks with XBees in API mode. Given that the Uno has only one hardware serial port, you need a software serial port to allow communication between XBee and Arduino as well as data read-out via USB. That is easily solved with the AltSoftSerial library. The book Building Wireless Sensor Networks Using Arduino by Matthijs Kooijman works with the SparkFun XBee shield. For the software serial link you just connect pin 2 to pin 8 and pin 3 to pin 9 on the shield. However, that creates a problem if you later need pin 2 and/or 3 for other shields such as the CC3000 WiFi shield. That problem can be avoided by using the Arduino SD wireless shield. That board uses pin 0 an 1 as hardware RX and TX. By slightly bending pins 0 and 1 of the Arduino shield they do not connect through to the Uno board. Now you connect pin 0 (shield RX) to pin 8 and pin 1 (shield TX) to pin 9 in order to establish the software serial link. The switch on the shield can be left in the micro position, also during uploading of the sketch. The Arduino XBee shield leaves pins 2 and 3 available for other use. I am curious how others build their home automation network with XBees in API mode. Is anyone using the Mega board instead? Any luck with the internet connection? :grin:

I am curious how others build their home automation network with XBees in API mode.

I designed my own shield that does NOT force the use of pins 0 and 1 or 2 and 3. I can position jumpers to use any two pins.

That the XBees are in API mode has nothing to do with your issue.

PaulS:
I designed my own shield that does NOT force the use of pins 0 and 1 or 2 and 3. I can position jumpers to use any two pins.

That the XBees are in API mode has nothing to do with your issue.

Thanks Paul. I think the difference between AT and API is that with AT you can debug/monitor the same serial line that XBee uses where that is not really possible with API where XBee works with packets that are difficult to read.
Maybe I got the stick by the wrong end?

I think the difference between AT and API is that with AT you can debug/monitor the same serial line that XBee uses where that is not really possible with API

Nonsense.