Wireless programming with the Arduino XBee Shield and XBee Explorer
Asked Answered
I

1

7

I am trying to enable wireless programming of an Arduino via the XBee Shield and an XBee Explorer. I've seen two tutorials online, XBee radios and Wireless Bootloading for ATmega168/ATmega328 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?

How can I use the existing Arduino IDE to program my Arduino wirelessly?

Infix answered 21/2, 2010 at 0:15 Comment(0)
P
4

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.

Paraselene answered 21/2, 2010 at 3:39 Comment(11)
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=0x00 Do you have any ideas? Would a picture of my circuit help?Infix
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.Paraselene
Thanks for your help so far kersny. Please see the image here: dylanvester.com/image.axd?picture=Shopped.jpgInfix
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!Paraselene
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!Infix
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.Paraselene
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: arduino.cc/en/Guide/ArduinoXbeeShield. Any more ideas?Infix
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.Paraselene
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.Infix
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.Paraselene
I finally figured out what I did wrong. I had the wire going from the reset pin on the XBee to the arduino wired to the wrong pin. I had wired it to the 3rd pin from the top on the right side of the XBee, when it was supposed to be wired into the pin LABELED D3, which is the 4th pin from the top on the right side. Everything is working now and I can program my arduino wirelessly.Infix

© 2022 - 2024 — McMap. All rights reserved.