XBEE not working after power cycle

Alright guys, I need some help. Been beating my head against the wall.


Sainsmart UNO Sainsmart LCD Shield geeetech.com Xbee shield and xbee usb explorer Series one Xbee's (changed MY's , changed PAN id , changed DL's, baud at 9600)

I decided to add a little wireless to one of my projects. basically taking an existing project that works great with three one-wire temp sensors and transmit the data with serial over XBEEs to a PC.

I load my sketch flip the switch to XBEE and the data comes flowing to my x-ctu terminal as expected. Everything looks good and works great. Hit the reset switch and everything still works great.

Pull power on the arduino, then re-apply power and the arduino acts like it gets stuck on boot. LED 13 just flashes continuously in a 3 flash pattern and the associate LED on the xbee shield flashes also. If i pull the xbee itself out of the shield, the arduino works fine and the data shows on the serial monitor of arduino. Insert xbee back in and same boot loop. Re-upload sketch and the whole thing starts working perfectly again until I pull power. It has to be something with the XBEE.

I am stuck. Please Help!!!

It has to be something with the XBEE.

No code, no hardware links, no reason to suspect the XBee.

I listed the hardware at the top of the post, albeit without links.

Since the code worked perfectly after an upload, their is no reason to suspect the code either. Removing the XBEE chip from the shield and powering up the device results in a perfectly functioning device. How would you not narrow that down to the XBEE???????

Regardless, I found that with the two different XBEE shields I have, they result in the same issue and both use the standard arduino rx(D0) and TX(D1). After doing some research online, I found some folks were reporting similar issues. (LED 13 doing 3 intermittent flashes upon power) That means that the arduino is not booting, and is stuck at the reading serial portion since it thinks it may be having data uploaded to it. Basically there is garbage from the xbee on those pins resulting in a hung boot.

So, I have resolved the issue. I had pins D11 and D12 open, so I cut the traces on the xbee shield from pin 2(DIN) on the xbee header and soldered a wire to D11 on the header, and did the same with XBEE pin 3(Dout) to D12 of the header.

Then I just added the softwareserial.h library for the virtual serial port and changed all of my serial.print to myserial.print.

Bam!! Everything works perfectly on power cycles, and now I don't have to flip the switch or move the jumpers back and forth from usb/xbee on the shield.

I figured I would post this in case anyone else ran into the same issue. You can pick any two pins you like for the virtual serial port. The arduino IDE for the software serial example uses pins D2, and D3.

The reason that I asked you to post links was that my XBee shield has a switch that lets me choose hardware serial connection or software serial connection. I slide the switch to software connection while uploading. It fails in the hardware position, just as you were experiencing.

I wanted to look at the shield, and see if there were similar issues/possibilities with your shield. But, it seems as though you found a solution that works for you.

The problem, though, is not the XBee. It is the shield design. The XBee is doing exactly what it is designed to do. The shield is asking it to do things that interfere with what the Arduino and IDE are trying to accomplish.