The nvarguscamerasrc GStreamer element ONLY works on the Jetson host, not inside Docker containers. You'll get the error "no element nvarguscamerasrc" if you try to run it in Docker.
exitcd /path/to/DefectDetectionApplicationchmod +x check_where_running.sh
./check_where_running.shThis will tell you:
- If you're on the host or in Docker
- If nvarguscamerasrc is installed
- If the capture service is installed
If nvarguscamerasrc is not available:
sudo apt-get update
sudo apt-get install -y gstreamer1.0-plugins-nvargus nvidia-l4t-gstreamer gstreamer1.0-toolschmod +x simple_csi_test.sh
./simple_csi_test.shThis will capture 3 images:
/tmp/csi_test_default.jpg- Default settings/tmp/csi_test_dark.jpg- Low exposure/gain (should be dark)/tmp/csi_test_bright.jpg- High exposure/gain (should be bright)
Compare the images: If the dark and bright images look the same, the camera is ignoring manual settings (auto-exposure is overriding).
chmod +x check_csi_service.sh
./check_csi_service.shThis will:
- Show service status
- Display current config
- Test config updates
- Show recent logs
sudo journalctl -u nvidia-csi-capture.service -fThen in the DDA UI:
- Go to Edit Image Settings for your Nvidia CSI camera
- Change exposure or gain values
- Click Save
- Watch the logs - you should see "Settings updated - Gain: X, Exposure: Y"
chmod +x diagnose_gstreamer.sh
./diagnose_gstreamer.shsimple_csi_test.shcreates 3 images with different brightness levels- Service logs show "Settings updated" when you change values in UI
- Image preview in UI changes brightness when you adjust exposure/gain
- All 3 test images have similar brightness (auto-exposure is active)
- Service logs show settings updated, but image doesn't change
- This means nvarguscamerasrc is ignoring the manual parameters
If the camera ignores manual exposure/gain settings, we may need to:
-
Try different nvarguscamerasrc properties:
- Check available properties:
gst-inspect-1.0 nvarguscamerasrc - Look for
aelock,awblock, or other AE control properties
- Check available properties:
-
Use v4l2-ctl to control camera directly:
v4l2-ctl -d /dev/video0 --list-ctrls v4l2-ctl -d /dev/video0 --set-ctrl=exposure_absolute=200
-
Check Jetson forums for IMX219-specific manual exposure control
-
Consider alternative approach: Use post-processing to adjust brightness instead of camera settings
check_where_running.sh- Verify you're on host, not Dockerdiagnose_gstreamer.sh- Full GStreamer diagnosticssimple_csi_test.sh- Quick camera test with 3 exposure levelscheck_csi_service.sh- Service status and config testtest_nvargus_params.sh- Comprehensive parameter testing (advanced)
- You're running inside Docker - exit and run on host
- OR nvarguscamerasrc is not installed - install packages above
- You're running inside Docker - this confirms nvarguscamerasrc needs host access
- Run installation:
sudo bash src/host_scripts/install_nvidia_csi_service.sh
- Camera has auto-exposure enabled that overrides manual settings
- Need to find correct parameters to disable AE
- May need alternative approach