nvidiadji-sdkdrone.io

Drone version not obtained M300 OSDK


I am trying to use an Nvidia Jetson Nano as an onboard computer to communicate with the Matrice 300 RTK using the OSDK. The computer and drone are connected using the OSDK Expansion module, and I am using the dual USB cable (USB 3 Type A) to connect to a USB port on the computer.

I am getting the error

ERRORLOG/1 @ getDroneVersion, L1707: Drone version not obtained! Please do not proceed.
Possible reasons:
    Serial port connection:
        * SDK is not enabled, please check DJI Assistant2 -> SDK -> [v] Enable API Control.
        * Baudrate is not correct, please double-check from DJI Assistant2 -> SDK -> baudrate.
        * TX and RX pins are invert
[4290298.543]STATUS/1 @ functionalSetUp, L282: Shake hand with drone Fail ! Cannot get drone version. (1/20)

I have tried using all of the baud rates available in DJI Assistant 2 (changing them in both the app and the UserConfig.txt) and enabled API Control, and had no luck.

These are the current contents of my UserConfig.txt (without my actual app id and app key)

  app_id : [id]
  app_key : [key]
  device : /dev/ttyACM0
  baudrate : 921600
  acm_port : /dev/ttyACM0

Thank you.


Solution

  • The solution to my problem ended up being that I needed a serial connection to the OSDK Expansion module in addition to the USB connection. Dr. Yuan Shenghai was right, however, that my port setup was incorrect. What I ended up doing was connected three wires from the GND, TX, and RX pins on my Nvidia Jetson to the module as shown in this picture.

    Wiring diagram

    This was able to run the dji flight sample with the following UserConfig.txt

    app_id : my app id
    app_key : my app key
    device : /dev/ttyTHS1
    baudrate : 230400
    acm_port : /dev/ttyACM0