Jetson Orin Nano Camera Recording Issues and System Freezes
Issue Overview
Users of the Nvidia Jetson Orin Nano Developer Kit are experiencing problems when attempting to record video using an IMX477 12MP ArduCam. The main symptoms include:
- System freezing and rebooting when running certain code for video recording.
- The pipeline gets stuck at "Setting Pipeline to PAUSED…"
- Live streaming works, but adding encoders causes crashes.
- The issue persists across different L4T versions (32 and 35) and hardware (cables and cameras).
These problems significantly impact the functionality of the camera system and prevent users from successfully recording video on the Jetson Orin Nano.
Possible Causes
-
Hardware incompatibility: The IMX477 camera may not be fully compatible with the Jetson Orin Nano, despite working on other Jetson platforms like the Nano.
-
Driver issues: There might be problems with the camera driver installation or configuration on the Orin Nano.
-
Encoder mismatch: The initial attempts used hardware encoders, which are not available on the Orin Nano.
-
Software conflicts: Incompatibilities between the ArduCam software and the Jetson Orin Nano’s operating system could be causing issues.
-
Resource limitations: The Orin Nano may not have sufficient resources to handle the high-resolution video encoding, leading to system crashes.
-
Configuration errors: Incorrect settings in the GStreamer pipeline or camera configuration could be triggering the freezes.
Troubleshooting Steps, Solutions & Fixes
-
Verify basic camera functionality:
Run the following command to check if the camera is working without preview:gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=0 ! 'video/x-raw(memory:NVMM),width=1920, height=1080, framerate=30/1, format=NV12' ! nvvidconv ! fpsdisplaysink text-overlay=0 name=sink_0 video-sink=fakesink sync=0 -v
-
Use software encoding instead of hardware encoding:
The Jetson Orin Nano does not have hardware encoders. Use the following GStreamer pipeline for software encoding:gst-launch-1.0 nvarguscamerasrc num-buffers=300 ! 'video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, format=(string)NV12, framerate=(fraction)30/1 ! nvvidconv ! 'video/x-raw, format=I420' ! x264enc ! h264parse ! qtmux ! filesink ! location=<filename_h264.mp4> -e
-
Check for driver updates:
Ensure you have the latest camera drivers installed for the Jetson Orin Nano. Check the ArduCam website or NVIDIA’s developer resources for updates. -
Reduce resolution or framerate:
If the system is struggling with 4K resolution, try lowering it to 1080p or reducing the framerate to reduce the processing load. -
Monitor system resources:
Use tools liketop
orhtop
to monitor CPU and memory usage during video recording attempts. This can help identify if resource limitations are causing the crashes. -
Review ArduCam setup:
Double-check that you’ve followed all the ArduCam setup instructions correctly for the Jetson Orin Nano. There may be specific steps or configurations needed for this platform. -
Check I2C communication:
Verify that the camera is properly detected on the I2C bus. Use thei2cdetect
command to ensure the camera is visible and responding correctly. -
Investigate error logs:
After a crash, check system logs (e.g.,/var/log/syslog
ordmesg
) for any error messages that might provide more insight into the cause of the freeze or reboot. -
Test with different GStreamer elements:
Experiment with different GStreamer pipelines, gradually adding complexity to isolate which specific element or combination is causing the issue. -
Consider alternative software:
If GStreamer continues to cause issues, consider using other video capture libraries or frameworks that might be more stable on the Orin Nano platform. -
Consult NVIDIA Developer Forums:
If the issue persists, consider posting detailed logs and your exact setup on the NVIDIA Developer Forums for more specialized assistance from the community or NVIDIA support staff.
Remember to always back up your data and proceed cautiously when making system changes or trying new configurations. If you’re not comfortable with these steps, consider seeking help from a more experienced developer or contacting NVIDIA support directly.