E-port data integrity

Completed

Comments

5 comments

  • DJI Developer Support
    The error message is UART data error, which is related to UART communication. Compared with M300, M350 E-PORT only has one UART(M300 has one UART and one USB ACM,M350 E-PORT USB is only used to transmit high-bandwidth data. Such as video streams or media files. You can try to increase the baud rate of the serial port as much as possible, which requires higher stability of the UART communication.
    0
    Comment actions Permalink
  • Robert Clarke

    Thank you for the information. The errors appeared to be primarily due to noise in the cabling. Adding a shielded cable removed almost all of the "v1Unpack" errors.

    However, we are still seeing issues with the flight control. It appears as if there are problems getting the commands to the drone. We are using DjiFlightController_ExecuteJoystickAction for primary flight control and DjiGimbalManager_Rotate to control the gimbal simultaneously. We are seeing the two errors below relatively frequently, are these likely to be a cause?

    [754.393][linker]-[Warn]-[DjiCommand_SendAsyncHandle:875) Command async send retry: index = 0, retryTimes = 3, cmdSet = 2, cmdId = 17
    [755.373][linker]-[Warn]-[DjiCommand_SendAsyncHandle:875) Command async send retry: index = 0, retryTimes = 3, cmdSet = 4, cmdId = 10 
    0
    Comment actions Permalink
  • DJI Developer Support
    The error is that PSDK failed to send commands to the aircraft, and resent. Flight control and gimbal control can run simultaneously, but the more functions are used, the higher the UART bandwidth usage will be. And different functions are recommended to be processed in different threads.
    0
    Comment actions Permalink
  • Robert Clarke

    Moving each function into a separate thread has improved the flight control, but the gimbal commands still show the laggy behaviour. This is with a shielded cable and with the baudrate at the maximum of 1,000,000 bps.

    The DjiGimbalManager_Rotate function is very varied in the time it takes to return, typically between 200 and 300ms, but sometimes more than 500ms. Is this expected? This is for the upwards gimbal connector if that makes a difference. On the M300, this same code showed returns within 30 to 40ms. Is there a reason for the large discrepancy? Does the function now wait for the rotation to complete?

    0
    Comment actions Permalink
  • DJI Developer Support
    The M300 OSDK gimbal manager function uses the USB ACM channel, while the M350 E-PORT gimbal manager function uses the UART channel. It will not wait for the rotation to complete.
    0
    Comment actions Permalink

Please sign in to leave a comment.