Return to Resources page.
[in progress - to be expanded]
Many of the XBee shields on the market have significant problems involved with interfacing to Arduino-UNO style boards. These problems stem mainly from the fact than the ATmega328 chips on these boards have only a single "hardware" RS232 UART.
Single Hardware UART. The Arduino-UNO Rx,Tx (hardware UART) pins are connected directly to the USB ports on these boards, meaning that the 328 chip cannot talk simultaneously to both the PC [Arduino IDE] via USB and the XBee chip, using the hardware UART. The SoftSerial library was developed to circumvent this problem, but unfortunately, it has a number of shortcomings, and is a less than ideal solution. [list them]
The different XBee shields have different ways to deal with the single UART issue, involving switches, jumpers, and specific wiring, but unfortuinately, it's possible to damage the XBee modules if the switches or jumpers are set wrong.
5V-to-3.3V Level-Shifters. The other issue with XBee shield design is the fact the all XBee modules and other transceivers that can plug into the same socket [see transceiver list] must be powered at 3.3V levels, and use 5V-to-3.3V level-shifters to correctly interface to 5V Arduino pins. However, many shields have marginal level-shifter designs, which can damage the XBee modules in some situations.
3.3V Power. In regards shield designs, some shields do not have on-board 3.3V regulators, and must rely on the host Arduino board for transceiver power. This is a big problem as the 3.3V regulator on some Arduino boards can provide only 50-150 mA, whereas many XBee modules draw 250 mA or more. The better XBee shield designs have an adequate built-in 3.3V regulator.
Furthermore, there is an issue with the physical size of the 3.3 regulator, and where the input power to it comes from. If the input power comes from the Arduino Vin pin, then it's possible for the XBee shield 3.3V regulator to overheat. OTOH, if the input power comes from the Arduino 5V pin, then it's possible for the 5V regulator on the Arduino host board to overheat. So, this is another important consideration. For more info about this issue, see the power supply heating page.
So, all in all, there are several important electrical engineering design issues involved with how XBee shields are designed and powered, and also interfaced to the Arduino board RS232 ports.
Official Arduino XBee shield
Seeed Studio XBee-Shield
Adafruit XBee shield
original Sparkfun Xbee shield
Sparkfun Xbee shield