0
votes

I have a DJI M600 Pro connected to a software based serial port on an Arduino Uno and I am not receiving a clean signal.

The baud rate in DJ Assistant was set to 115200 and the same goes for the Arduino Serial Monitor. In DJI Assistant enabled the API and disabled all outputs except for the GPS data and set it to 1HZ to make it easier to read for testing.

I can see data flying in with 1HZ but the serial output Is mostly question marks and some letters in-between.

Is the serial data encrypted? If so, how can I decrypt it?

Here's the code:

#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3); // RX, TX

void setup()
{
  // Open serial communications and wait for port to open:
  Serial.begin(234000);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Native USB only
  }


  Serial.println("Goodnight moon!");

  // set the data rate for the SoftwareSerial port
  mySerial.begin(234000);
  mySerial.println("Hello, world?");
}

void loop() // run over and over
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read());
}
1

1 Answers

1
votes

You say the baud rate is 115200, but the code says it's 234000. The Arduino software says it can go up to 115200. Using the UART details from an older ATmega8 processor datasheet, trying to get a 234000 baud rate really gets you a 250000 baud rate - about 6.8% error.

Maybe try something much slower - just to see if it can work.