Creative Commons images are CC BY-NC-SA 3.0

$ 14.95

added to your
shopping cart

In stock 363 in stock
14.95 1+ units
13.46 10+ units
11.96 100+ units
Previous Versions


Description: Xbee radios are an awesome way to add wireless capability to your Arduino project and now it’s even easier with the SparkFun XBee Shield. The shield form-factor mates directly with any dev board that has an Arduino standard footprint and equips it with wireless communication capabilities using the popular XBee module. This unit works with all XBee modules including the Series 1 and 2, standard and Pro versions.

The serial pins (DIN and DOUT) of the XBee are connected through an SPDT switch, which allows you to select a connection to either the UART pins (D0, D1) or any digital pins on the Arduino (D2 and D3 default). Power is taken from the 5V pin of the Arduino and regulated on-board to 3.3VDC before being supplied to the XBee. The shield also takes care of level shifting on the DIN and DOUT pins of the XBee. In the latest revision the diode level shifter is replaced with a more robust MOSFET level shifter.

The board also includes LEDs to indicate power and activity on DIN, DOUT, RSSI, and DIO5 pins of the XBee. The Arduino’s reset button is brought out on the shield, and a 9x11 grid of 0.1" holes are available for prototyping. The shield does not come with headers installed; we recommend the Arduino Stackable Header Kit. The XBee module is also not included.


  • Mounts directly onto your Arduino
  • DIN and DOUT pins of XBee can be connected to either the UART pins or any digital pin on the Arduino (D2 and D3 default)
  • 3.3V power regulation and MOSFET level shifting on-board
  • 9x11 grid of 0.1" spaced prototyping holes
  • Reset button brought out to shield
  • Power, DIN, DOUT, RSSI and DIO5 indicator LEDs


Recommended Products

Customer Comments

  • when you buy this use can use stackable headers PRT-11417 you will need 1) six pin ; 2) eight pin; 1) ten pin.

  • please note the xbee hook up guide provides instructions for the DLINE switch actives pins 2/3 for rx/tx. This means that the uno UART serial is separate from the data to/from xbee.

    also i found it good for debugging to use the tall headers on the arduino side - leaving about .25" exposed for probes or female jumpers.

    had buffering problems. xbee can stream data at up to 80Kbps. Console baud rate is 9600 bps. Arduino has 64 byte buffer. Xbee radio buffers are 100 bytes in size. so some kind of flow control is needed to do more than the cute little console to console typing demo.

    now switching to newSoftwareSerial(2,3) and experimenting with that.

  • The description says there is a SPDT switch, but AFAICS that should be DPDT (there’s two lines that are being switched, DIN and DOUT, so that’s two poles).

  • Dimensions of the shield measured with the calipers:

    width = ~53.96mm, about 2.12in
    length = ~60.26mm, about 2.37in
    height = ~6.32mm, about 0.25in (measured from the bottom of the board to the top of the XBee header sockets)

    This is without any header pins soldered on the shield.

  • Does this shield allow wireless communication between two Arduinos? For instance, (Arduino+Shield+XBee) <- wireless -> (Arduino+Shield+XBee). Thank you.

    • Yes, XBee provides a range of radio including ZigBee mesh networking. To learn more, check out Robert Faludi, “Building Wireless Sensor Networks”, available through SparkFun here: (also available directly through O'Reilly).

  • Perhaps a foolish question but I was wondering if I’d have any problems using this Xbee shield in conjunction with a libelium Xbee shield? Or is it necessary to have two shields of the same make?

    • If you wanted them on two different Arduinos, you shouldn’t have any issue as long as you program the Arduino appropriately for the shield on it. From a quick Google search of the other shield’s specs, you may need to do some pin configuration to get them both onto one Arduino. And you may run into spacing issues and RF interference between the shields. I’d recommend instead going with something like the Series 2 XBees, so you can then just create a mesh network instead of needing multiple XBees on one Arduino.

      • I’ll take your advice then. That’s about as much as I expected anyhow. Thanks for your response.

  • My XCTU can’t discover my Xbee Module when I plugged it to my Arduino Leonardo using the exact same shield shown here. It can only detect a com port where the Leonardo is at but XCTU can’t find my Xbee when it searched for that com port. Why? Helps! Urgent! Thank you all…

    • XCTU expects to find an XBee directly connected to the computer. It cannot talk to devices attached to Arduinos attached to the computer.

      So you’ll need at least two XBees, one connected to the computer (e.g. in coordinator mode), and the one attached to the Leonardo. Then the Leonardo can talk to the computer through the XBee, and XCTU will be able to detect both XBees (one through the serial port, the other through the first one’s mesh network).

  • Hi Everyone. I have a question. Does possible to remote programming arduino via this shield and xbee seriers 1 ?

    • Yes.

      You will need to connect DTR on your programming cable to one of the digital IO pins of the source XBee, and make sure the corresponding pin on the destination XBee is connected to the Arduino’s reset pin.

      The Series 2 XBees do not transmit pin levels when in AT mode, and you can’t load new programs onto the Arduino in API mode.

  • Hi, you can buy Bluetooth 4.0 Bee which is Compatible with Xbee And Wiressless program here:

  • I am using this shield and configuring xBee s1 with SoftwareSerial pins 2,3. I also have a MPU9150 connected to Analog 4,5 (SDA,SCL). I am also trying to control two servos at PWM pins 9,10. I am experienced odd behavior when xBee is reading in data concerning the Servos. at a 9600 Baud rate for the xBees, I experience (every 4 seconds) an odd jerking of the servos that I cannot seem to pinpoint the issue. I have seen online that there may be an issue using SoftwareSerial in conjunction with Servos in that it may disable interrupts for a brief period of time. Is this still the case? Does anyone have successful use cases of xBee and servo configurations that I can reference and perhaps seek guidance from? Thanks!!!

    • Also try changing pins around. The ATMega328 has a certain number of timers. When the timer is being shared by things like software serial and servos you might get some weird thing going on. Sometimes just moving things to different a different pin that uses a different timer helps (see ATMega328 datasheet for more information about timers).

      • This has proven unsuccessful. Would you, you another, know that switching to use UART (pin 0,1; tx, rx) eliminate the issue? Is there an example of using the UART with this particular shield? Do I simply switch to UART on board, then eliminate the SoftSerial initialization from the code and use Serial just as I would for the console, i.e, I have not tried this yet just seeking more guidance. Thanks!

  • I’m having trouble with this shield and the Triple Axis Accelerometer and Gyro Breakout - MPU-6050; Both use pin 2. On the bottom right corner of the shield there are two small solder-bridges labeled 3 and 2. Can i unsolder/resolder them so i can use other pins in SoftwareSerial for xBee?

  • Is there any plan to price these closer to the competitor (radioshack offers the Seeed Xbee Shield)? $24.95 (+ price of stackable headers) >> $9.99 (

  • I just assembled the headers to the shield this morning. When I use it with the Arduino Uno, Xconnect can find the radio device. I tried the XBee modules with the XBee explorer and they are recognized immediately. Tried with the UART switch in both positions; no luck. Am I missing any steps to assembling the shield?

    • It sounds like you are trying to connect the XBee to the computer using the Arduino Uno and the XBee shield. The Uno and shield do not make the necessary connections for this, you will want an XBee Explorer for this. If you still have questions on this feel free to email

      • Thank you very much for the pointer.

        I was confused; the Hookup Guide on this page says we need a XBee explorer and the XBee shield to test the connections but did not give any explanation on the necessary connections.

        Are there any tutorials or guides to setup the shield connections?

  • Will this shield work with zigbee module like this one?

    • We’re not familiar with this module, but most likely. Assuming the footprint and pinout matches the XBees. The only thing the shield does is provide 3.3V power and level shift the Din and Dout pins from 5V to 3.3V. If that’s what you need this should work fine.

  • Hi, question, is Xbee shield compatible with xbee pro s3b?, (i got XBP9B-XCST-002). When i plug to PC my arduino+xbee shield+xbee module, three leds turn on in the xbee shield (DOUT, DIO5, PWR) and when i go to XCTU and select the arduino port, it doesnt display any configuration for the RF module (wich DOES work since i can get it to work with xbee explorer). Soldering is ok, so im not sure what i could be doing wrong.

    • The XBee shield is compatible with the XBee Pro S3B (you may have to cut the solder jumper for the RSSI light, I don’t remember which of the 900MHz modules it is that requires that). But the XBee shield does not connect the XBee module to the computer, it connects the XBee module to the Arduino. If you want to connect the XBee to the computer you want the XBee Explorer USB.

  • Hey - I ordered this shield in part because it brought out the I2C headers. But the two boards I received did not have them. One I had to use because it was down to short strokes but I really need those last two to come out.

    Can I return one for a replacement with the newer version ? Thanks

    • Email with your order number. They should be able help you out with that.

  • what’s been updated from the previous rev?

    • Nothing really. Most of the changes were to make the lives of our production guys easier and are things like different size components. I believe the only user noticeable difference is we’ve updated this to the R3 form factor so the extra 4 pins are available for your stackable headers.

  • Looks like this isn’t compatible with the RN-XV? :(

    • Why not? As far as I know it should be.

      • From the pictures, pins 1-4 are gnd, 3.3v, data out, and data in.

        on the RN-XV, pins 1-4 are 3.3v, data out, data in, and gpio 8. Gnd is on pin 10

        unless I’m missing something or looking at old documentation, they don’t match

        EDIT: I think I found my mistake… it looks like the “first” PTH pin of GND isn’t connected to the first pin in the 2mm socket, it’s connected to pin 10 of the 2mm socket. I looked at the datasheet closer. :)

        • Yep, I don’t know exactly why but we break out an extra GND pin there for you. The sockets are each 10 pins long, but there are 11 holes (you get a 5V pin as well) on each side.

Customer Reviews

5 out of 5

Based on 1 ratings:

5 star
4 star
3 star
2 star
1 star

simple to use

I was breadboarding my Xbee before getting this and also doing my logic conversions on the breadboard. This cleaned up my project and the logic converter works great. I used it on an Arduino mega and the switch to change the serial lines made this easy.

Related Tutorials

Internet Datalogging With Arduino and XBee WiFi

June 19, 2014

How to combine an Arduino, XBee WiFi module, and handful of sensors to create a live stream of "Office Conditions". Storing light, temperature, carbon-monoxide, and methane (for science!) readings on the Internet.