Digital sensor time synchronization accuracy (Sensor Processing Engine (SPE) Query)


I am starting a new project with the Jetson AGX Xavier. I am new in this kind of systems, and I want to know how time accurate can be the data adquisition of multiple sensors. The system read and process the data of 2 cameras, some digital sensors (1 IMU, 1 additional accelerometer), and other signals throwght I/O, all at 250Hz. The measurements are used to estimate more complex data, (vehicle dinamics). Hence, data must be as synchronized well as possible. Cameras are syncronized via HW, with square signals (I assume that I can generate pulses with the GPIOs at 250Hz).

My first idea was to use the AGX Xavier to receive and process the image of the cameras, while a micro-controller synchronize the system, reading GPIOs and digital sensors at the same time the signal to activate the exposure of the cameras is generated, reaching a time accuracy of microseconds. The higer the time offset between the different sensors, the higher the vehicle dinamics estimation errors will be. The micro-controller clock is the synchronization clock of the system, and is sended to the AGX Xavier to assign timestamps for the camera images received. The rest of the measurements are directly received by the micro-controller, hence, it can generate the accurate timestamps for the measurements.

The question is: Can I do the same only using the AGX Xavier? The AGX Xavier has the inputs/outputs that I need: SPI, I2C, UART, GPIO, etc. Since the onboard SO is similar to ubuntu, I thought that I can not reach the same time accuracy than using an external micro-controller. I was researching the use of some Real Time OS like RedHawk, but then I found some information about the “Jetson Sensor Processing Engine (SPE)”, but not enough.

Literally, the documentation say: “NVIDIA® Jetson™ provides a built-in Cortex-R5 micro-controller within an always-on power domain also known as Sensor Processing Engine (SPE). Example use cases SPE may enable includes sensor data processing, wake up management, UAV, robotics.”. Does this mean that I can use the built-in micro-controller as an external one to read the sensors and pair them with an accurate clock? This would be the perfect solution for my project.

If the way to reach my objectives is not SPE or RedHawk Linux, and it is something like ROS packages or whatever, please tell me!

Thank you in advance!

What current we can done may like below for the sensor sync.

And below is two system time sync up relative topic.