@Moderator
Another update because this is confusing me. If I have the cameras plugged in with ov7251_1.bin and imx214_0.bin if I run voxl-camera-server -l immediately after power on it detects 2 cameras.
voxl2-mini:~$ voxl-camera-server -l
existing instance of voxl-camera-server found, attempting to stop it
DEBUG: Attempting to open the hal module
DEBUG: SUCCESS: Camera module opened on attempt 0
DEBUG: ----------- Number of cameras: 2
DEBUG: Cam idx: 0, Cam slot: 0, Slave Address: 0x0020, Sensor Id: 0x0214
DEBUG: Cam idx: 1, Cam slot: 1, Slave Address: 0x00E2, Sensor Id: 0x7750
DEBUG: Note: This list comes from the HAL module and may not be indicative
DEBUG: of configurations that have full pipelines
DEBUG: Number of cameras: 2
====================================
Stats for camera: 0
ANDROID_SCALER_AVAILABLE_RAW_SIZES:
These are likely supported by the sensor
4208 x 3120
3840 x 2160
1920 x 1080
1920 x 1080
ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS:
These are NOT necessarily supported by the sensor
4208 x 3120 HAL_PIXEL_FORMAT_YCbCr_420_888
4208 x 3120 HAL_PIXEL_FORMAT_BLOB
4160 x 3120 HAL_PIXEL_FORMAT_YCbCr_420_888
4160 x 3120 HAL_PIXEL_FORMAT_BLOB
4096 x 2304 HAL_PIXEL_FORMAT_YCbCr_420_888
4096 x 2304 HAL_PIXEL_FORMAT_BLOB
4096 x 2160 HAL_PIXEL_FORMAT_YCbCr_420_888
4096 x 2160 HAL_PIXEL_FORMAT_BLOB
4056 x 3040 HAL_PIXEL_FORMAT_YCbCr_420_888
4056 x 3040 HAL_PIXEL_FORMAT_BLOB
4000 x 3000 HAL_PIXEL_FORMAT_YCbCr_420_888
4000 x 3000 HAL_PIXEL_FORMAT_BLOB
3840 x 2160 HAL_PIXEL_FORMAT_YCbCr_420_888
3840 x 2160 HAL_PIXEL_FORMAT_BLOB
3264 x 2448 HAL_PIXEL_FORMAT_YCbCr_420_888
3264 x 2448 HAL_PIXEL_FORMAT_BLOB
3200 x 2400 HAL_PIXEL_FORMAT_YCbCr_420_888
3200 x 2400 HAL_PIXEL_FORMAT_BLOB
2976 x 2976 HAL_PIXEL_FORMAT_YCbCr_420_888
2976 x 2976 HAL_PIXEL_FORMAT_BLOB
2688 x 1512 HAL_PIXEL_FORMAT_YCbCr_420_888
2688 x 1512 HAL_PIXEL_FORMAT_BLOB
2592 x 1944 HAL_PIXEL_FORMAT_YCbCr_420_888
2592 x 1944 HAL_PIXEL_FORMAT_BLOB
2048 x 1536 HAL_PIXEL_FORMAT_YCbCr_420_888
2048 x 1536 HAL_PIXEL_FORMAT_BLOB
1920 x 1440 HAL_PIXEL_FORMAT_YCbCr_420_888
1920 x 1440 HAL_PIXEL_FORMAT_BLOB
1928 x 1208 HAL_PIXEL_FORMAT_YCbCr_420_888
1928 x 1208 HAL_PIXEL_FORMAT_BLOB
1920 x 1080 HAL_PIXEL_FORMAT_YCbCr_420_888
1920 x 1080 HAL_PIXEL_FORMAT_BLOB
1600 x 1200 HAL_PIXEL_FORMAT_YCbCr_420_888
1600 x 1200 HAL_PIXEL_FORMAT_BLOB
1440 x 1080 HAL_PIXEL_FORMAT_YCbCr_420_888
1440 x 1080 HAL_PIXEL_FORMAT_BLOB
1280 x 960 HAL_PIXEL_FORMAT_YCbCr_420_888
1280 x 960 HAL_PIXEL_FORMAT_BLOB
1280 x 800 HAL_PIXEL_FORMAT_YCbCr_420_888
1280 x 800 HAL_PIXEL_FORMAT_BLOB
1280 x 768 HAL_PIXEL_FORMAT_YCbCr_420_888
1280 x 768 HAL_PIXEL_FORMAT_BLOB
1280 x 720 HAL_PIXEL_FORMAT_YCbCr_420_888
1280 x 720 HAL_PIXEL_FORMAT_BLOB
1080 x 1080 HAL_PIXEL_FORMAT_YCbCr_420_888
1080 x 1080 HAL_PIXEL_FORMAT_BLOB
1024 x 738 HAL_PIXEL_FORMAT_YCbCr_420_888
1024 x 738 HAL_PIXEL_FORMAT_BLOB
1024 x 768 HAL_PIXEL_FORMAT_YCbCr_420_888
1024 x 768 HAL_PIXEL_FORMAT_BLOB
864 x 480 HAL_PIXEL_FORMAT_YCbCr_420_888
864 x 480 HAL_PIXEL_FORMAT_BLOB
800 x 600 HAL_PIXEL_FORMAT_YCbCr_420_888
800 x 600 HAL_PIXEL_FORMAT_BLOB
800 x 480 HAL_PIXEL_FORMAT_YCbCr_420_888
800 x 480 HAL_PIXEL_FORMAT_BLOB
720 x 1280 HAL_PIXEL_FORMAT_YCbCr_420_888
720 x 1280 HAL_PIXEL_FORMAT_BLOB
720 x 480 HAL_PIXEL_FORMAT_YCbCr_420_888
720 x 480 HAL_PIXEL_FORMAT_BLOB
640 x 480 HAL_PIXEL_FORMAT_YCbCr_420_888
640 x 480 HAL_PIXEL_FORMAT_BLOB
640 x 400 HAL_PIXEL_FORMAT_YCbCr_420_888
640 x 400 HAL_PIXEL_FORMAT_BLOB
640 x 360 HAL_PIXEL_FORMAT_YCbCr_420_888
640 x 360 HAL_PIXEL_FORMAT_BLOB
352 x 288 HAL_PIXEL_FORMAT_YCbCr_420_888
352 x 288 HAL_PIXEL_FORMAT_BLOB
320 x 240 HAL_PIXEL_FORMAT_YCbCr_420_888
320 x 240 HAL_PIXEL_FORMAT_BLOB
240 x 320 HAL_PIXEL_FORMAT_YCbCr_420_888
240 x 320 HAL_PIXEL_FORMAT_BLOB
176 x 144 HAL_PIXEL_FORMAT_YCbCr_420_888
176 x 144 HAL_PIXEL_FORMAT_BLOB
4208 x 3120 HAL_PIXEL_FORMAT_RAW10
4208 x 3120 HAL_PIXEL_FORMAT_RAW12
4208 x 3120 HAL_PIXEL_FORMAT_RAW16
4208 x 3120 HAL_PIXEL_FORMAT_RAW_OPAQUE
ANDROID_SENSOR_INFO_SENSITIVITY_RANGE
min = 54
max = 431
ANDROID_SENSOR_MAX_ANALOG_SENSITIVITY
431
ANDROID_SENSOR_INFO_EXPOSURE_TIME_RANGE
min = 10449ns
max = 683714540ns
====================================
Stats for camera: 1
ANDROID_SCALER_AVAILABLE_RAW_SIZES:
These are likely supported by the sensor
640 x 480
640 x 480
640 x 480
ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS:
These are NOT necessarily supported by the sensor
640 x 480 HAL_PIXEL_FORMAT_YCbCr_420_888
640 x 480 HAL_PIXEL_FORMAT_BLOB
640 x 400 HAL_PIXEL_FORMAT_YCbCr_420_888
640 x 400 HAL_PIXEL_FORMAT_BLOB
640 x 360 HAL_PIXEL_FORMAT_YCbCr_420_888
640 x 360 HAL_PIXEL_FORMAT_BLOB
352 x 288 HAL_PIXEL_FORMAT_YCbCr_420_888
352 x 288 HAL_PIXEL_FORMAT_BLOB
320 x 240 HAL_PIXEL_FORMAT_YCbCr_420_888
320 x 240 HAL_PIXEL_FORMAT_BLOB
240 x 320 HAL_PIXEL_FORMAT_YCbCr_420_888
240 x 320 HAL_PIXEL_FORMAT_BLOB
176 x 144 HAL_PIXEL_FORMAT_YCbCr_420_888
176 x 144 HAL_PIXEL_FORMAT_BLOB
640 x 480 HAL_PIXEL_FORMAT_RAW10
640 x 480 HAL_PIXEL_FORMAT_RAW12
640 x 480 HAL_PIXEL_FORMAT_RAW16
640 x 480 HAL_PIXEL_FORMAT_RAW_OPAQUE
ANDROID_SENSOR_INFO_SENSITIVITY_RANGE
min = 54
max = 3451
ANDROID_SENSOR_MAX_ANALOG_SENSITIVITY
3451
ANDROID_SENSOR_INFO_EXPOSURE_TIME_RANGE
min = 0ns
max = 1266732525ns
====================================
Number of cameras detected: 2
====================================
If I instead run voxl-inspect-cam -a it shows that tracking is working, but hires is not.
| hires_large_color |
| hires_large_encoded |
| hires_large_grey |
| hires_small_color |
| hires_small_encoded |
| hires_small_grey |
| hires_snapshot |
| qvio_overlay | 368640 | 640 | 576 | 5.00 | 64 | 694 | 25.3 | 29.5 | 87.0 | RAW8
| tracking | 307200 | 640 | 480 | 5.00 | 64 | 694 | 11.8 | 30.0 | 73.7 | RAW8
My camera server config is below:
* voxl-camera-server Configuration File
*
* Each camera has configurations for up to 4 HAL3 streams:
* - `preview` stream for raw unprocessed images from CV cameras
* - `small_video` 720p (ish) h264/h265 compressed for fpv video streaming
* - `large_video` 4k (ish) h264/h265 for onboard video recording to disk
* - `snapshot` ISP-processed JPG snapshots that get saved to disk
*
* on QRB5165 platforms (VOXL2 and VOXL2 mini) you can only have 3 of the 4 enabled
*
* This file is generated from default values by voxl-configure-cameras.
* Do not expect arbitrary resolutions to work, the ISP and video compression
* pipelines only support very specific resolutions.
*
* The default video compression mode is cqp or Constant Quantization Parameter
*
*
*
*/
{
"version": 0.1,
"cameras": [{
"type": "imx214",
"name": "hires",
"enabled": true,
"camera_id": 0,
"fps": 30,
"en_preview": false,
"preview_width": 640,
"preview_height": 480,
"en_raw_preview": false,
"en_small_video": true,
"small_video_width": 1024,
"small_video_height": 768,
"small_venc_mode": "h265",
"small_venc_br_ctrl": "cqp",
"small_venc_Qfixed": 30,
"small_venc_Qmin": 15,
"small_venc_Qmax": 40,
"small_venc_nPframes": 9,
"small_venc_mbps": 2,
"en_large_video": true,
"large_video_width": 4208,
"large_video_height": 3120,
"large_venc_mode": "h265",
"large_venc_br_ctrl": "cqp",
"large_venc_Qfixed": 38,
"large_venc_Qmin": 15,
"large_venc_Qmax": 50,
"large_venc_nPframes": 29,
"large_venc_mbps": 30,
"en_snapshot": true,
"en_snapshot_width": 4208,
"en_snapshot_height": 3120,
"ae_mode": "isp"
},
{
"type": "ov7251",
"name": "tracking",
"enabled": true,
"camera_id": 1,
"fps": 30,
"en_rotate": false,
"en_preview": true,
"preview_width": 640,
"preview_height": 480,
"en_raw_preview": true,
"ae_mode": "lme_msv",
"ae_desired_msv": 60,
"exposure_min_us": 20,
"exposure_max_us": 33000,
"gain_min": 54,
"gain_max": 8000,
"exposure_soft_min_us": 5000,
"ae_filter_alpha": 0.600000023841858,
"ae_ignore_fraction": 0.20000000298023224,
"ae_slope": 0.05000000074505806,
"ae_exposure_period": 1,
"ae_gain_period": 1
}]
}
It appears as if something happens when the stream is accessed. If I run voxl-camera-server and then kill it voxl-camera-server -l will still show 2 cameras, but if I instead run voxl-camera-server and then in another window run voxl-inspect-cam -a the original window will no longer respond to ctrl-C. If I force kill i with kill -9 proccess_num then run voxl-camera-server -l it now shows 1 camera until I reboot.
Any ideas?