Your XBee project isn’t working? Here’s some common mistakes that both beginners and experts make:
- Not using the latest firmware (especially if ATD0 or ATIR is giving an error)*
- No reference voltage to VREF pin on the 802.15.4 radios (analog and digital reads give wrong values)
- Forgetting that AT commands use hexadecimals
- Hitting return after +++ (or otherwise not respecting 1 second default guard time)
- Conversely, _not_ hitting return after an AT command
- Letting the XBee time out of command mode before issuing an AT command (you’ll know because you get no response)
- Forgetting to write the configuration to firmware with ATWR (unless your application configures the radio interactively)
- Not using ATRE (restore factory defaults) before re-configuring a previously used radio (previous settings lurk unless you manually reset them all)
- Looking for analog output on the analog input pins instead of pins 6 and 7 (P0, P1)
- Using a voltage regulator without decoupling capacitors (10uF on input, 1uF on output is good)
- Mixing up TX and RX pins (fastest way to check this is switch the wires and see if it starts working)
- Using ZigBee version (ZB Pro or ZNet 2.5) when 802.15.4 version would do just fine (if you don’t need to make a mesh network)
- Trying to read more than 1.2 Volts on the ZB Pro and ZNet 2.5 analog inputs (that’s the limit)
- Buying Pro radios when you don’t need them. (Cost more, bigger, use a lot more battery)
- Deciding the XBees are flaky. (You may not be using them correctly, but they are very reliable)
- Deciding an XBee is burned out when it’s set to a different baud rate (check ON and ASSC lights)
- Deciding an XBee is burned out when it is just sleeping (Check ON light to see if it blinks occasionally)
- Forgetting to supply power or ground (ON light may go on and ASSC light may blink but both will be significantly dimmer)
- Not contacting Digi sooner for support, especially if your radio seems dead or you keep getting an error you don’t understand.
XBee Arduino Mistakes
- Sending continuously without any delay (try 10ms delay)
- Not removing RX and TX connections before uploading code (Arduino will give an error)
- Not removing RX connection when reseting, if you are continuously receiving data. (Arduino will never reset)
XBee LilyPad Mistakes
- Hooking up more than 4 Volts to the 3.3V pin
- Using switches without pull-down resistors (but not if you use the internal pull-ups)
- Not using a pull-up or pull-down resistor on pins 5 and 7 (these don’t have internal pull-ups at all)
- Using sensors without voltage divider resistors (if your sensor needs that circuit)
- Using too-resistive conductive thread for power and ground (try fabric or wires)
* Windows and X-CTU are required for firmware upgrades
This list isn’t exhaustive. Got a suggestion I should add? Let me know!

I have a problem with the wires ,when I connect a bus which is around 40 cm from my arduino to the xbee regulator I dont receive anything,but it works fine when I use double females close by
i have a zigbee hardware(xbee series 2 ) connected to x-ctu on windows.
How do i perform “energy scan ” using two xbee modules via x-ctu.
i use x-ctu to tranfers chunks of data etc,.. and everything works fine
Energy scans are performed automatically by the coordinator when it creates a network. See the XBee ZB Product Manual for a complete description.
dear faludi,
welldone here…plz i need to transmit and receive “bio-signals” not “text” via my xbeeS2. How do i go about it?…all the examples i have seen demonstrates sending and reception of texts( numbers, alphabets)
Thanks
I have an XBEE Pro S2B on a Bee Adapter v1.2 from ElecFreaks. I have the switch to 3v3 and the other switch to H (not sure what this switch is for). If I hook the bee adapter up to usb, I can use X-ctu to discover the the node from a coordinator and all is well. I can also send packets (api).
However, if I unhook the usb and hook up the power only from a arduino mini (5V and GND – the bee adapter converts to 3.3v, I’ve checked) I cannot discover the node. Can anyone think of any reasons this would be the case?