I am working on a huge project that involves one plane collecting weather data and sending coordinates of located thermals to another plan that will receive the GPS coordinates and soar over the thermal to save energy. In order for this to happen I need to see how the computer uploads coordinates to the APM1 board so I can have a plain arduino board (Arduino Uno or Due) do the same. I am trying to do this with the 3DR radios since in the long run this will all be wireless. The arduino would be on board of the searching plane and have a 3DR radio connected to it and it would send the coordinates to the other plane. I have tried many things in reading the data from the receiver module like a serial port. I have an Arduino Uno R3 board with the software serial library reading from the Rx pin on the receiver module. I have tried every possible baud rate in the entire arduino library and every time it reads the data, it come out like gibberish. I have also soldered a small pin on the DRx pin in the middle of the board and have tried to read from that but I have still have had no luck. I have also noticed that when opening the terminal in the APM planner software, the terminal also looks like gibberish. I know that the 3DR radios operate at 57600 baud and it seems that that baud rate gives the most sensible data when reading through the serial port but it is still unreadable for me. I don't think the 3DR radios use NMEA 0183 protocol or anything like that. Are these radios encrypting their signal or is it something else? Should I try reading the data like SPI interface or a I2C interface?
My setup is both radios configured for each other one to the computer and the other to the APM1 board through the telemetry port. The APM is connected to the mission planner software through the radios and the arduino reads the data on the receiving end of the receiver module. The APM and the arduino are sharing the Rx pin on the module.
I don't think it's something wrong with my code but I have attached it anyways.
#include <SoftwareSerial.h>
#define BAUDRATE 57600
SoftwareSerial radioSerial(3,4); // Rx, Tx
char inByte;
void setup(){
Serial.begin(BAUDRATE);
radioSerial.begin(BAUDRATE);
}
void loop(){
if(radioSerial.available() > 0){
inByte = radioSerial.read();
Serial.write(inByte);
}
}
here is what I get out of the serial port at 57600 baud
á?Óþ þ?ÿ?@$3l
)À?ÿþ?²?@?¶?"ê
ÛÕÍóÝõo¶"?§??¯??W
ªÊR¨ðøÿJ¤ ©7?R(
Thanks for your help and replies,