views:

853

answers:

1

I am trying to enable wireless programming of an Arduino via the XBee Shield and an XBee Explorer. I've seen two tutorials online that show you how do it. However, both tutorials talk about using components to connect the receiver XBee to the Arduino. Well the XBee shield handles the communication between the receiver XBee and the Arduino, so the extra components aren't necessary (or are they). They talk about using a capacitor or transistor to be able to wirelessly reset the Arduino. Is this already possible with the XBee shield, or is there some modification I can make to it to make it possible?

I'd like to be able to use the existing Arduino IDE to program my Arduino wirelessly. Can someone shed some light on this?

+3  A: 

You are correct in the fact that the extra components are needed to reset the Arduino wirelessly and you do need them even if you are using the Xbee shield. I'll assume that one of the tutorials that you were reading was this one. What you are going to want to do is read over the tutorial and build the transistor/capacitor/resistor circuit into a little ball (similar to this) or on a piece of prototyping board with the three signal wires coming out. You need to solder the "Reset signal from XBee" to the D3 pin on the shield which should be labeled (or it can be found on the Datasheet). Then you will have to figure out a way to connect the reset to the reset pin on your Arduino, and the ground to either device (because they should be connected by the shield). This can be as simple as sticking the wire into the sockets on the Arduino. After you do this and setup the environment as per the previously mentioned tutorial, you should be good to go!

If you do have any questions, feel free to ask, I should be able to help.

kersny
Ok, I've built the circuit that goes from D3 on the XBee to the reset of the Arduino, it's reading a constant 5 volts. Is this correct? It doesn't appear to be functioning correctly, I get the following error when I try to upload:avrdude: stk500_getsync(): not in sync: resp=0x00Do you have any ideas? Would a picture of my circuit help?
Dylan Vester
A picture would help, and it shouldn't be reading a constant 5v, that would cause the Arduino to constantly reset. That error usually occurs when the Arduino is not reset before programming, also.
kersny
Thanks for your help so far kersny. Please see the image here:http://dylanvester.com/image.axd?picture=Shopped.jpg
Dylan Vester
I believe I have figured out the problem. What are you using on the transmitter side? Because if you look over the aforementioned tutorial, you need to jumper the RTS pin from either the Serial port or the USB-to-Serial converter to the D3 pin on the transmitting XBee. Then, if you have followed the configuration steps correctly, it should work. I had completely overlooked this initially, sorry!
kersny
I am using the XBee Explorer USB. I followed the tutorial and soldered the RTS pin to the D3 pin. I can snap a picture for you, but that part was pretty simple. Is there a way to way to figure out if the XBee Explorer is sending the correct signal? Thanks again!
Dylan Vester
You can measure the voltage on that jumper when you hit "Upload to Board" in the Arduino IDE, and it should change when upload trys to start. If that doesn't change, then it's a problem between the IDE and the XBee. Another thing that you can try is connecting the D3 to power with both sides powered on and see if it goes high on the arduino side.
kersny
Ok so I checked the voltage coming off the XBee Explorer USB and between ground and D3 I get a 0 volts coming off, until I hit upload in the arduino IDE and it jumps to 3.3 volts. I'm assuming that's the correct behavior? On the Arduino side, I measure voltage across D3 and ground, and get a constant 3.3 volts, and it never flickers when I click upload. What should I be seeing there? I know I have a serial connection because I can watch the serial monitor and get alternating 'H' and 'L' using the code here: http://www.arduino.cc/en/Guide/ArduinoXbeeShield. Any more ideas?
Dylan Vester
From what you're saying, it would seem to be an error in the XBee configuration. I would use the X-CTU software and check all of the important things that you change in the Adafruit tutorial. If these are all correct for both sides, then I'm not really sure what could be the issue.
kersny
Well I can't get this to work. I've successfully got the ladyada tutorial working. I have been able to download code twice (out of like 50 times). However, I personally had to hit the reset button. So the remote reset is not working. It says I should use a baud rate of 57600 for the duemilnove, is this too high? I'm out of ideas.
Dylan Vester
The 57600 baud is necessary for the bootloader... The only thing that you can really check is the voltage on the D3 pin on the Arduino side, If there's nothing there, and there is a signal on the transmitter side, then it has to be either a problem with the configuration or the xbee itself.
kersny