I purchased the Xbee telemetry kit from DiyDrones here and put it together following these instructions.
I am running with the Ardu Pilot Mega - this kit
I have not gotten any communication between the two units.
Here is what I know and what I've tried:
* Note that the first time I hooked it up, I plugged the cable in upside down to the Xbee on the Air side. This resulted in the DODI cable going into the GND pin, the DIDO cable going into the CTS pin and the GND cable going into the DODI pin. The 5V cable is in the middle of the 5 cables so plugging it in upside down still resulted in 5 volts going to the right pin.
1. Realized I had the cable on upside down.
2. Turned it over - no communication
3. Read through all the and manuals and forums and followed the instructions here on "Unbricking your Xbee" and "Setting up the Xbee modules" to make sure I had the right firmware installed and was using the same VID.
4. Updated both modules to the latest firmware (XBP09-DP 1061) using X-CTU.
5. Ensured DD parameter is set to 0.
6. Checked that the VID is the same for both and baud rate is 57k.
7. Both modules respond to the query from X-CTU and show the correct firmware when I do a "read" in X-CTU on the Modem Configuration tab.
8. Verified the latest firmware was on the APM and the config.h file had 57k for the baud rate.
9. Set everything back up for nominal communication.
10. Still no communication - however - now I get the following lights:
Blue power lights come on for both Xbee units as soon as they connect to the APM / PC
When I click "connect" in the GCS for the ground side Xbee I see the Tx light flicker every second
On the air side Xbee I see the RSSI light come on solid and the Rx light flicker every second
But then the GCS times out after 30 seconds.
RSSI, DI, DO, Tx, RX lights all go off. Blue power lights remain on.
So it appears that some communication is going on between the two Xbee's now. But at the very least, it appears that the ping from the ground side is not making it into the APM.
I have tried it with the switch in Master and Slave mode, but my understanding is it should be in Master mode.
Are there any other tests I can do to issolate the issue more? If possible, I don't want to have to buy the whole kit again.
Are there other configuration settings that need adjusted in the Xbee modules?
Is it possible some components are dead? How do I issolate which ones need replaced?
Does the RTS box need checked in Control Panel on the ground side for the Xbee port?
Thanks for any help!
Replies
Alright!
We finally have live telemetry!
I was able to narrow it down to the air side Xbee's DIDO pin (the out pin from the board).
Mike, your idea of doing continuity checks between the pins and leads on the board was great.
The connection between the Tx pin and the DIDO position on the board was not good, so the short term solution was to solder a jumper wire between the Tx pin and the lead on the board that I traced the DIDO line to.
Doesn't look pretty, but it's working! Looks like if I want to get back to a robust configuration I'll have to order a new Air Side Interface board - but those are only $25.
Thanks guys for the help.
I send data from the laptop. See the Tx light flicker on the ground side Xbee, see the DO light flicker on the airside Xbee and everything stops there.
Should the DO light be flickering when the air side is receiving data???
I figured the O was for output, and the I in DI was for input, so I was surprised when the DO light flickered.
This also seems to confirm that the data is getting dropped somewhere in the airside Xbee before it gets to the APM.
Just to reiterate I see no DI/DO lights on the airside Xbee. I wanted to try to issolate it to either the connections between the interface board, or the Xbee itself and thought maybe just plugging in the interface board without the Xbee would at least tell me if data was getting that far.
Is this a recommended test?
If so can one of you try it with your working configuration and see what lights come on?
Be sure to write the firmware in XCTU using 9600 baud, don't ask me why. I am using version 1002 .
You should be able to do everything with the MP, so reload the code from there and set /port in drop down.
I'm just another xbee user, but in my first experience I thought mine were not working, and it turned out it was just my expectation.
What are you doing to verify functionality?
I had been using a terminal program, and that turned out to be the major part of my problem. I loaded a sketch to test the APM serial ports that just prints out the serial port number to each of its four ports, and I saw what I expected. I took the leap of faith and used MP rather than the terminal program (reloading AC2 first via USB) and MP initialized MAVlink and everything just worked. Turns out I had expected the normal output on the USB serial port to be the same as what I would see over the xbee, but they are two different serial ports, and AC and AP send different data to each.
The sketch (useful for any xbee testing, simple is better) just prints to each of the four serial ports. It is called MegaSerialTest.pde. I could not find the URL for it so far, but here is the content:
/*
Mega multple serial test
Receives from the main serial port, sends to the others.
Receives from serial port 1, sends to the main serial (Serial 0).
This example works only on the Arduino Mega
The circuit:
* Any serial device attached to Serial port 1
*/
void setup() {
// initialize two serial ports:
Serial.begin(115200);
Serial3.begin(57600);
}
void loop() {
Serial.println("Port 0");
delay(500);
Serial3.println("Port 3");
delay(500);
}