Imu.uart NMEA logging: Some message IDs are ignored

Please provide the following info (check/uncheck the boxes after clicking “+ Create Topic”):
Software Version
DRIVE OS Linux 5.2.0
DRIVE OS Linux 5.2.0 and DriveWorks 3.5
NVIDIA DRIVE™ Software 10.0 (Linux)
NVIDIA DRIVE™ Software 9.0 (Linux)
other DRIVE OS version

Target Operating System

Hardware Platform
NVIDIA DRIVE™ AGX Xavier DevKit (E3550)
NVIDIA DRIVE™ AGX Pegasus DevKit (E3550)

SDK Manager Version

Host Machine Version
native Ubuntu 18.04

Trying to use sample_imu_logger on a device that outputs NMEA messages.

I can confirm that the device connects successfully and the logger can detect $GPHDT and $GPROT message IDs.

However, the logger ignores other message IDs, e.g. $GPGGA and $GPZDA.

Example NMEA stream:


Is there something unexpected about my NMEA stream?

Hi @gpu_power ,

How did you know which message IDs can be detected and which cannot be detected?
Please elucidate it with your sample_imu_logger command and its output messages. Thanks.

The device can be configured to output a selection of NMEA message IDs. So I simply enabled and disabled the message IDs.

Running command as: sample_imu_logger --driver=imu.uart --params=device=/dev/ttyTHS1,baud=9600


For message IDs $GPHDT and $GPROT there is this:

EndpointTTY: started on /dev/ttyTHS1
[1617989552736453] Heading(True:12.5)
[0] Gyro(Z:-0.00333333 )

For message IDS $GPGGA and $GPZDA there is nothing after open tty

EndpointTTY: started on /dev/ttyTHS1

However from minicom I can see the NMEA stream with those message IDs as shown in my original post.

Please check if dwSensorIMU_readFrame() works well or returns any error on your problem.


dwSensorIMU_readFrame is inside while loop, and frequently returns DW_TIMEOUT.

When device is set to output working message IDs like $GPHDT and $GPROT, it returns DW_SUCCESS, interspersed amongst DW_TIMEOUT.

When device is set to output problem message IDs like $GPGGA and $GPZDA, it only returns DW_TIMEOUT with no other error.

“imu.uart” supports only xsens_nmea format (as below).

$ /usr/local/driveworks-3.5/bin/sample_sensors_info

Sensor [20] : imu.uart ? device=/dev/ttyXXX[,baud={1200,2400,4800,9600,19200,38400,57600,115200}[,format=xsens_nmea]][,fifo-size=1024]

Please check if DriveWorks SDK Reference: Custom IMUs (Comprehensive) works for you. Thanks.