I just received a new serial WiFly module in the form of an Xbee device. It is supposed to be hardware compatible with Xbee devices, that is you should be able to replace an Xbee device with the new WiFly device and not have to change any hardware. I plugged the WiFly device into an Xbee Explorer USB device and was able to communicate with the WiFly using a terminal program with no problems. Was able to get it to connect to my network, connect to a time server and a DNS server, worked great but..... I then tried to use it with an Arduino Uno. I have an Uno with an Xbee shield and an Xbee device plugged into it and it works fine using the Software Serial library (actually Newsoft Library). I simply removed the Xbee device and plugged in the WiFly device. I then wrote a very simple sketch that sends '$$$' out to the Wifly device expecting to receive back a 'CMD' response indicating the WiFly went into command mode but I cannot get that to work. I can see the data-in LED on the shield flash when I send the $$$ command but I never see the WiFly respond to the command. I've checked and rechecked everything but have run out of ideas. Has anyone else got the new Xbee form WiFly device working using an Xbee Shield? Any ideas or suggestions?
Found the problem. It's the D1 (Diode 1) in series with the data in line on the Xbee shield board.....AGAIN! Apparently this diode also affects the Xbee pro devices but seems to work with the basic Xbee device which I was using. I found if I short out D1 with a 100 ohm resistor, the WiFly device starts working in the Xbee Shield. I hope the WiFly device is tolerant of the input voltage when D1 is shorted with a 100 ohm resistor.
Note: Since many people have experienced similar issues, I think it's about time the Xbee Shield design be retired and replaced with something that works with all the different Xbee modules including the WiFly unit. I think the diode approch to address the 5 to 3.3 volt conversion is a bit hokey and obviously does not work well. Just my humble opinion.
Actually I have not been able to totally solve this problem. Shorting D1 has allowed the transmit data to be recognized by the WiFly module but the responses back from the WiFly are not 100% clean. When the Xbee shield with the WiFly module is attached to an Uno and I use NewSoft Serial interface, I get occasional garbage at all baud rates. When I attach the shield to a Mega 256, it does not see any responses so I suspect the output of the WiFly is not strong enough to be used with 5 volt devices. Too bad, I think the WiFly in the Xbee form could be a very useful product.
Does anyone know of an Arduino Xbee shield that provides true level shifting for the transmit and receive serial data? If not, any other recomendations for a breakout board with true level shifting?
Thxs - JC
I've had similar problems with the various shields and breakouts for the Xbee modules. Along with the lack of proper level shifting the 3.3V power regulation is not adequate for the newer modules, especially the wifi module.
Take a look at http://www.dsscircuits.com/i2c-level-converter.html using the T! TXS0102 look like a good deal. I haven't ordered any yet but I have used the TXS series level shifters and they work great.
The latest Sparkfun XBee Explorer USB allegedly addresses the power issue with a 500 mA regulator but doesn't appear to do anything about level shifting.
I have a similar device from SF http://www.sparkfun.com/products/8745 which I plan to graft onto the Xbee shield. I'll post again once completed with results, I assume this will fix the data issues but wont know until I complete and test the change. Sure wish SF would come out with a new design for the shield that uses active level converters and a few jumpers that can configure them into or out of the circuit depending on the Arduino voltage. Would also like to see an isolated in/out pair that could be easily jumpered to a Mega UART channel 1, 2, or 3 . Now you have to bend pins out of the way to issolate the inputs.