Plugin development timing issue?

DRIVE OS Version: 7.0.3

Issue Description:

I am attempting to compile and run a custom plugin that works on drive 5.6 but does not seem to be working on drive 7.0.3

on drive 7 when the data should be reading, I am getting these messages:

[DW][INFO] [1776691448055959] [1776691448055959] errorID(0)No IMU related info
[DW][INFO] ====================================split line====================================
[20-04-2026 15:11:33] EndpointNVPPS: no PPS event received; missing PPS/GPS signal?
[20-04-2026 15:11:33] EndpointNVPPS: switching to timer mode until PPS signal is available.
[DW][INFO] [1776691448060160] [1776691448060160] errorID(0)No IMU related info

where as I get actual data on 5.6:

[1660097343179863] Gyro(X:0.0003 Y:0.00267 Z:-0.00275 )
[1660097343189338] Gyro(X:0.00258 Y:0.002 Z:-0.00241 )
[1660097343199798] Gyro(X:0.00089 Y:0.00103 Z:-0.00182 )
[1660097343209779] Gyro(X:0.00205 Y:0.001 Z:-0.00276 )
[1660097343219784] Gyro(X:0.00207 Y:0.00112 Z:-0.00306 )
[1660097343229818] Gyro(X:0.00021 Y:0.00174 Z:-0.00186 )
[1660097343239794] Gyro(X:0.00135 Y:0.00096 Z:-0.00201 )
[1660097343249794] Gyro(X:0.00128 Y:0.00256 Z:-0.00315 )
[1660097343259798] Gyro(X:0.00137 Y:0.00186 Z:-0.00104 )
[1660097343269800] Gyro(X:0.00165 Y:0.001 Z:-0.00234 )
[1660097343279813] Gyro(X:0.00128 Y:0.00182 Z:-0.00265 )
[1660097343289815] Gyro(X:0.00129 Y:0.00329 Z:-0.00173 )
[1660097343299895] Gyro(X:0.00157 Y:0.00117 Z:-0.00198 )
[1660097343309884] Gyro(X:0.00194 Y:0.0016 Z:-0.00244 )

it seems that on 5.6 timing defaults to using one of the ethernet interfaces as the clock source:

[10-08-2022 02:09:02] Platform: Detected Drive Orin P3710
[10-08-2022 02:09:02] TimeSource: monotonic epoch time offset is 1659835949112268
[10-08-2022 02:09:02] TimeSourceVibranteLinux: detect valid PTP interface mgbe2_0
[10-08-2022 02:09:02] TimeSource: Could not detect valid PTP time source at nvpps. Fallback to mgbe2_0
[10-08-2022 02:09:02] PTP Time is available from Eth Driver
[10-08-2022 02:09:02] Adding variable DW_Base:DW_Version
[10-08-2022 02:09:02] Addded variable DW_Base:DW_Version

but does not do this in 7

[20-04-2026 15:11:32] [20-04-2026 15:11:32] Initialize DriveWorks SDK v7.0.3
[20-04-2026 15:11:32] [20-04-2026 15:11:32] Release build with GNU 13.2.0 from against Drive PDK v7.0.3.0
[20-04-2026 15:11:32] SensorFactory::createSensor() → time.nvpps, nvpps-device=/dev/nvpps0
[20-04-2026 15:11:32] Found driver: time.nvpps
[20-04-2026 15:11:32] TimeSensorNVPPS: initialized with no UTC time reference.
[20-04-2026 15:11:32] output-timestamp parameter is deprecated and will be removed in next release[20-04-2026 15:11:32] SensorFactory: Override default timeSensor with the user passed one
[20-04-2026 15:11:32] EndpointNVPPS: started on /dev/nvpps0

there is this message about permission denied for nvpps on 5.6:

[10-08-2022 02:09:02] Can not create time sensor: DW_HAL_CANNOT_OPEN_CHANNEL: EndpointNVPPS: cannot open NVPPS device with name: /dev/nvpps0
Error: Permission denied

am I on the right trail with the issue being related to timing? or is this likely to be something different, the code has not been changed between compiling for the different versions and I am using the driveOS 7.0.3 docker to compile the new version

Dear @rforsberg ,
Could you share complete logs and used sample command on both Orin and Thor?

driveOS 7:

oxts@tegra-ubuntu:~/OXTS-Plugins$ ./RunIMUPlugin.sh -i 192.168.25.110
Running IMU plugin script
[20-04-2026 15:11:32] Adding variable DW_Base:DW_Version
[20-04-2026 15:11:32] Added variable DW_Base:DW_Version
[20-04-2026 15:11:32] SDK: CUDA initialization skipped. Running with restricted functionality.
[20-04-2026 15:11:32] Context::mountResourceCandidateDataPath resource FAILED to mount from ‘./resources’: VirtualFileSystem: Failed to mount ‘./resources/resources.pak’
[20-04-2026 15:11:32] Context::mountResourceCandidateDataPath resource FAILED to mount from ‘/home/oxts/OXTS-Plugins/data’: VirtualFileSystem: Failed to mount ‘/home/oxts/OXTS-Plugins/data/resources.pak’
[20-04-2026 15:11:32] Context::findDataRootInPathWalk data/DATA_ROOT found at: /usr/local/driveworks/bin/../data
[20-04-2026 15:11:32] Context::mountResourceCandidateDataPath resource FAILED to mount from ‘/usr/local/driveworks/bin/../data’: VirtualFileSystem: Failed to mount ‘/usr/local/driveworks/bin/../data/resources.pak’
[20-04-2026 15:11:32] Context::findDataRootInPathWalk data/DATA_ROOT found at: /usr/local/driveworks/data
[20-04-2026 15:11:32] Context::mountResourceCandidateDataPath resource FAILED to mount from ‘/usr/local/driveworks/data’: VirtualFileSystem: Failed to mount ‘/usr/local/driveworks/data/resources.pak’
[20-04-2026 15:11:32] Context::findResourcesPackageInPathWalk: Could not find ./resources/resources.pak in upto 7 parent directories from /usr/local/driveworks/bin/../lib/libdw_base.so.7.0
[20-04-2026 15:11:32] Context::findResourcesPackageInPathWalk: Could not find ./resources/resources.pak in upto 7 parent directories from /usr/local/driveworks/targets/aarch64-Linux/lib/libdw_base.so.7.0
[20-04-2026 15:11:32] SDK: No resources(.pak) mounted, some modules will not function properly
[20-04-2026 15:11:32] [20-04-2026 15:11:32] Initialize DriveWorks SDK v7.0.3
[20-04-2026 15:11:32] [20-04-2026 15:11:32] Release build with GNU 13.2.0 from against Drive PDK v7.0.3.0
[20-04-2026 15:11:32] SensorFactory::createSensor() → time.nvpps, nvpps-device=/dev/nvpps0
[20-04-2026 15:11:32] Found driver: time.nvpps
[20-04-2026 15:11:32] TimeSensorNVPPS: initialized with no UTC time reference.
[20-04-2026 15:11:32] output-timestamp parameter is deprecated and will be removed in next release[20-04-2026 15:11:32] SensorFactory: Override default timeSensor with the user passed one
[20-04-2026 15:11:32] EndpointNVPPS: started on /dev/nvpps0
[20-04-2026 15:11:32] SensorFactory::loadPluginLibraryHelper:Succeed to load dynamic lib - /usr/local/driveworks/bin/../lib/libsensor_plugin_public_radar.so
[20-04-2026 15:11:32] SensorFactory::createSensor() → imu.custom, protocol=udp,ip=192.168.25.110,port=3000,decoder-path=/home/oxts/OXTS-Plugins/liboxts_imu_plugin.so,time-source=host
[20-04-2026 15:11:32] Found driver: imu.custom
[20-04-2026 15:11:32] output-timestamp parameter is deprecated and will be removed in next releaseport 3000 ip address 192.168.25.110
[DW][INFO] Init Successfully.
[DW][INFO] [1776691447167626] [1776691447167626] errorID(0)No IMU related info
[DW][INFO] ====================================split line====================================
[DW][INFO] [1776691447172310] [1776691447172310] errorID(0)No IMU related info
[DW][INFO] ====================================split line====================================
[DW][INFO] [1776691447176174] [1776691447176174] errorID(0)No IMU related info
[DW][INFO] ====================================split line====================================
[DW][INFO] [1776691447180229] [1776691447180229] errorID(0)No IMU related info
[DW][INFO] ====================================split line====================================

[20-04-2026 15:11:33] EndpointNVPPS: no PPS event received; missing PPS/GPS signal?
[20-04-2026 15:11:33] EndpointNVPPS: switching to timer mode until PPS signal is available.
[DW][INFO] [1776691448060160] [1776691448060160] errorID(0)No IMU related info
[DW][INFO] ====================================split line====================================
[DW][INFO] [1776691448064262] [1776691448064262] errorID(0)No IMU related info
[DW][INFO] ====================================split line====================================
[DW][INFO] [1776691448067970] [1776691448067970] errorID(0)No IMU related info
[DW][INFO] ====================================split line====================================

^C[DW][INFO] Process Successfully.
[20-04-2026 15:11:34] Sensor Health Signal for imu[0] imu.custom, protocol=udp,ip=192.168.25.110,port=3000,decoder-path=/home/oxts/OXTS-Plugins/liboxts_imu_plugin.so,time-source=host
timestamp: 0 sourceID: 8
Sensor notifications:
[20-04-2026 15:11:34] Sensor statistics for: imu[0] imu.custom, protocol=udp,ip=192.168.25.110,port=3000,decoder-path=/home/oxts/OXTS-Plugins/liboxts_imu_plugin.so,time-source=host
[20-04-2026 15:11:34] Statistics for DW_SENSOR_STATE_DELTA_HOST_AND_HOST_TIME
Events: 1099
Errors: 0
CRC Errors: 0
Drops: 0
minDelta: 11.0000 us
maxDelta: 11842.0000 us
meanDelta: 4000.8944us
Standard deviation: 636.4746
[20-04-2026 15:11:34] Sensor statistics for: imu[0] imu.custom, protocol=udp,ip=192.168.25.110,port=3000,decoder-path=/home/oxts/OXTS-Plugins/liboxts_imu_plugin.so,time-source=host
[20-04-2026 15:11:34] Statistics for DW_SENSOR_STATE_DELTA_CURRENT_AND_HOST_TIME
Events: 1099
Errors: 0
CRC Errors: 0
Drops: 0
minDelta: 11.0000 us
maxDelta: 11842.0000 us
meanDelta: 2789.5556us
Standard deviation: 1329.1233
[20-04-2026 15:11:34] SensorFactory::releaseSensor() - imu.custom, protocol=udp,ip=192.168.25.110,port=3000,decoder-path=/home/oxts/OXTS-Plugins/liboxts_imu_plugin.so,time-source=host
[20-04-2026 15:11:35] EndpointNVPPS: stopped on /dev/nvpps0
[20-04-2026 15:11:35] [20-04-2026 15:11:35] Releasing Driveworks SDK Context
[DW][INFO] Release Successfully.

command run by that script is this:

/usr/local/driveworks/bin/sample_imu_logger --driver=imu.custom --params=protocol=udp,ip=${ip},port=3000,decoder-path=“/home/oxts/OXTS-Plugins/liboxts_imu_plugin.so”,time-source=host

though the output is the same without the time-source=host

Drive 5.6:

oxts@tegra-ubuntu:~/nvidia-driveworks-plugin/UnitTest$ ./UnitTestIMU_live.sh
Running IMU plugin script
[10-08-2022 02:09:02] Platform: Detected Drive Orin P3710
[10-08-2022 02:09:02] TimeSource: monotonic epoch time offset is 1659835949112268
[10-08-2022 02:09:02] TimeSourceVibranteLinux: detect valid PTP interface mgbe2_0
[10-08-2022 02:09:02] TimeSource: Could not detect valid PTP time source at nvpps. Fallback to mgbe2_0
[10-08-2022 02:09:02] PTP Time is available from Eth Driver
[10-08-2022 02:09:02] Adding variable DW_Base:DW_Version
[10-08-2022 02:09:02] Addded variable DW_Base:DW_Version
[10-08-2022 02:09:02] Platform: number of GPU devices detected 1
[10-08-2022 02:09:02] Platform: currently selected GPU device 0, Resource Data Dir: trt_08_04_11_06, Arch: ga10b
[10-08-2022 02:09:02] Platform: currently selected GPU device integrated ID 0
[10-08-2022 02:09:02] CUDLAEngine:getDLACountandCheck: CUDLA version is = 1002001
[10-08-2022 02:09:02] CUDLAEngine:getDLACountandCheck: Number of DLA devices = 2
[10-08-2022 02:09:02] ========== DLA Device 0 Attributes ==========
[10-08-2022 02:09:02] UVA supported = 0
[10-08-2022 02:09:02] Device version = 1
[10-08-2022 02:09:02] Device 0 Check PASSED
[10-08-2022 02:09:02] ========== DLA Device 1 Attributes ==========
[10-08-2022 02:09:02] UVA supported = 0
[10-08-2022 02:09:02] Device version = 1
[10-08-2022 02:09:02] Device 1 Check PASSED
[10-08-2022 02:09:02] Context::mountResourceCandidateDataPath resource FAILED to mount from ‘./resources’: VirtualFileSystem: Failed to mount ‘./resources/resources.pak’
[10-08-2022 02:09:02] Context::mountResourceCandidateDataPath resource FAILED to mount from ‘/home/oxts/nvidia-driveworks-plugin/UnitTest/data’: VirtualFileSystem: Failed to mount ‘/home/oxts/nvidia-driveworks-plugin/UnitTest/data/resources.pak’
[10-08-2022 02:09:02] Context::findDataRootInPathWalk data/DATA_ROOT found at: /usr/local/driveworks-5.6/bin/../data
[10-08-2022 02:09:02] Context::mountResourceCandidateDataPath resource FAILED to mount from ‘/usr/local/driveworks-5.6/bin/../data’: VirtualFileSystem: Failed to mount ‘/usr/local/driveworks-5.6/bin/../data/resources.pak’
[10-08-2022 02:09:02] Context::findDataRootInPathWalk data/DATA_ROOT found at: /usr/local/driveworks-5.6/data
[10-08-2022 02:09:02] Context::mountResourceCandidateDataPath resource FAILED to mount from ‘/usr/local/driveworks-5.6/data’: VirtualFileSystem: Failed to mount ‘/usr/local/driveworks-5.6/data/resources.pak’
[10-08-2022 02:09:02] Context::findResourcesPackageInPathWalk: Could not find ./resources/resources.pak in upto 7 parent directories from /usr/local/driveworks-5.6/bin/../lib/libdw_base.so.5.6
[10-08-2022 02:09:02] Context::findResourcesPackageInPathWalk: Could not find ./resources/resources.pak in upto 7 parent directories from /usr/local/driveworks-5.6/targets/aarch64-Linux/lib/libdw_base.so.5.6
[10-08-2022 02:09:02] SDK: No resources(.pak) mounted, some modules will not function properly
[10-08-2022 02:09:02] SDK: Create NvMediaDevice
[10-08-2022 02:09:02] egl::Display: found 1 EGL devices
[10-08-2022 02:09:02] egl::Display: use drm device: drm-nvdc
[10-08-2022 02:09:02] TimeSource: monotonic epoch time offset is 1659835949112268
[10-08-2022 02:09:02] TimeSourceVibranteLinux: detect valid PTP interface mgbe2_0
[10-08-2022 02:09:02] TimeSource: Could not detect valid PTP time source at nvpps. Fallback to mgbe2_0
[10-08-2022 02:09:02] PTP Time is available from Eth Driver
[10-08-2022 02:09:02] Initialize DriveWorks SDK v5.6.184
[10-08-2022 02:09:02] Release build with GNU 9.3.0 from buildbrain-branch-0-g17b6da04cd1 against Drive PDK v6.0.4.0
[10-08-2022 02:09:02] SensorFactory::createSensor() → time.nvpps, nvpps-device=/dev/nvpps0
[10-08-2022 02:09:02] Can not create time sensor: DW_HAL_CANNOT_OPEN_CHANNEL: EndpointNVPPS: cannot open NVPPS device with name: /dev/nvpps0
Error: Permission denied
[10-08-2022 02:09:02] SensorFactory::createSensor() → imu.custom, protocol=udp,ncom=../Data/mobile_oxford.ncom,ip=192.168.25.87,port=3000,decoder-path=../code/imu_plugin/liboxts_imu_plugin.so
port 3000 ip address 192.168.25.87
[1660097343129838] Gyro(X:0.00038 Y:0.00227 Z:-0.00212 )
[1660097343139797] Gyro(X:-0.00193 Y:0.00201 Z:-0.00224 )

^C[10-08-2022 02:09:03] Releasing Driveworks SDK Context
[10-08-2022 02:09:03] SDK: Release NvMediaDevice

the command run in this one is:
/usr/local/driveworks/bin/sample_imu_logger --driver=imu.custom --params=protocol=udp,ncom=../Data/mobile_oxford.ncom,ip=192.168.25.87,port=3000,decoder-path=“../code/imu_plugin/liboxts_imu_plugin.so”

I will check on this with core team. Meanwhile can you trying running IMU plugin sample with sudo to make sure it is not a perm issue.

Hi thank you,

here is the output when run with sudo:

sudo run.txt (14.7 KB)

Dear @rforsberg ,
Could you check the dwIMUFrame size in both DW versions ? I notice dwIMUFrame struct changed across these two versions.

Hi I was able to get data coming out bychanging the way the data was dealt with in the code,

I am seeing an errorID(0) message in the output though, from trying to find a meaning in various documentation, the 0 code is success - can you confirm this?

running the command: /home/oxts/OXTS-Plugins/RunGNSSPlugin.sh -i 192.168.25.10

RunGNSS log.txt (31.5 KB)

I would also like to ask for some guidance for using the recorder tool to save the data output and how I am supposed to setup a rig file for this?

following the guidance here: Basic Recording — NVIDIA DriveOS 7.0.3 Linux SDK Developer Guide I have copied the release.json and remove all sensors other than the gps for which I have modified to use the command used in the RunGNSSPlugin.sh (see below)

test.json.txt (7.0 KB)

RunGNSSPlugin.sh.txt (1.3 KB)

but when trying to run recorder /home/oxts/OXTS-Plugins/test.json I get this output about “Failed reading sensor” (see log)

recorder output log.txt (14.4 KB)

From NVIDIA DriveOS Linux NSR SDK API Reference: ErrorDefs.h File Reference | NVIDIA Docs , dwStatus return value of DW_SUCCESS (i.e 0) denotes no error. Is errorID(0) gets printed in your plugin code? If so, you check if it is related to dwStatus.

Does that mean, you are able to get the data now after modifications?

Does that mean, you are able to get the data now after modifications?

Hi yes, I am getting data output now when running using the sample logger run command: i.e. `/home/oxts/samples/sensors/gps/sample_gps_logger --driver=gps.custom --params=protocol=udp,ip=192.168.25.10,port=3000,decoder-path=“/home/oxts/OXTS-Plugins/build-linux-aarch64/src/gnss_plugin/liboxts_gnss_plugin.so”`

but not when trying to run from a rig file using the recorder tool (test.json attached to the message above) what is the difference in running the plugin from these two methods?

Dear @rforsberg ,
I would expect it work if gps logger sample works.. Do you still see this issue? Did you try recorder tool with sudo as well?