Hi,
I am using a VOXL2 running SDK v1.4.5 with a Hadron 640R connected to J7. I am getting a video stream from the EO camera on the Hadron, but the voxl-camera-server says that 640x512 is an invalid resolution and doesn't start.
I followed the instructions posted here (https://docs.modalai.com/voxl2-hadron) after configuring the Hadron via the USB cable according to the instructions for the Boson camera, but maybe I'm missing something / did something silly?
The output of voxl-camera-server -l:
voxl2:~$ voxl-camera-server -l
====================================
Number of cameras detected: 2
====================================
My config file (that I pulled from the instructions):
{
"version": 0.1,
"fsync_en": false,
"fsync_gpio": 109,
"cameras": [{
"type": "boson",
"name": "boson",
"enabled": true,
"camera_id": 0,
"fps": 30,
"en_preview": true,
"en_misp": false,
"preview_width": 640,
"preview_height": 512,
"en_raw_preview": true,
"en_small_video": false,
"en_large_video": false,
"ae_mode": "off",
"en_rotate": false,
"small_video_width": 640,
"small_video_height": 480,
"small_venc_mode": "h264",
"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,
"small_venc_osd": false,
"large_video_width": -1,
"large_video_height": -1,
"large_venc_mode": "h264",
"large_venc_br_ctrl": "cqp",
"large_venc_Qfixed": 40,
"large_venc_Qmin": 15,
"large_venc_Qmax": 50,
"large_venc_nPframes": 29,
"large_venc_mbps": 40,
"large_venc_osd": false,
"misp_width": -1,
"misp_height": -1,
"misp_venc_enable": true,
"misp_venc_mode": "h264",
"misp_venc_br_ctrl": "cqp",
"misp_venc_Qfixed": 30,
"misp_venc_Qmin": 15,
"misp_venc_Qmax": 50,
"misp_venc_nPframes": 29,
"misp_venc_mbps": 2,
"misp_venc_osd": false,
"misp_awb": "auto",
"misp_gamma": 1,
"gain_min": 54,
"gain_max": 8000
}, {
"type": "ov64b",
"name": "hires",
"enabled": true,
"camera_id": 1,
"fps": 30,
"en_preview": true,
"en_misp": false,
"preview_width": 1920,
"preview_height": 1080,
"en_raw_preview": false,
"en_small_video": false,
"en_large_video": false,
"en_snapshot": false,
"ae_mode": "isp",
"gain_min": 54,
"gain_max": 32000,
"small_video_width": 1024,
"small_video_height": 768,
"small_venc_mode": "h264",
"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,
"small_venc_osd": false,
"large_video_width": 3840,
"large_video_height": 2160,
"large_venc_mode": "h264",
"large_venc_br_ctrl": "cqp",
"large_venc_Qfixed": 40,
"large_venc_Qmin": 15,
"large_venc_Qmax": 50,
"large_venc_nPframes": 29,
"large_venc_mbps": 40,
"large_venc_osd": false,
"en_snapshot_width": 3840,
"en_snapshot_height": 2160,
"exif_focal_length": 3.0999999046325684,
"exif_focal_length_in_35mm_format": 17,
"exif_fnumber": 1.2400000095367432,
"snapshot_jpeg_quality": 75,
"misp_width": -1,
"misp_height": -1,
"misp_venc_enable": true,
"misp_venc_mode": "h265",
"misp_venc_br_ctrl": "cqp",
"misp_venc_Qfixed": 38,
"misp_venc_Qmin": 15,
"misp_venc_Qmax": 50,
"misp_venc_nPframes": 29,
"misp_venc_mbps": 30,
"misp_venc_osd": false,
"misp_awb": "auto",
"misp_gamma": 1.6
}]
}
Output of voxl-camera-server -d 0:
voxl2:~$ voxl-camera-server -d 0
MISP awb str: auto
Setting MISP AWB to Auto
MISP channels enabled in defaults : 0
ERROR: object missing misp_channels
MISP awb str: auto
Setting MISP AWB to Auto
MISP channels enabled in defaults : 0
ERROR: object missing misp_channels
=================================================================
configuration for 2 cameras:
cam #0
name: boson
sensor type: boson
isEnabled: 1
camId: 0
camId2: -1
fps: 30
en_rotate: 0
en_rotate2: 0
en_preview: 1
pre_width: 640
pre_height: 512
en_raw_preview: 1
en_small_video: 0
small_video_width: 640
small_video_height: 480
en_large_video: 0
large_video_width: -1
large_video_height: -1
en_misp: 0
misp_width: -1
misp_height: -1
en_snapshot: 0
snap_width: -1
snap_height: -1
exif_focal_length: 0.000000
exif_focal_len_35mm_format:0
exif_fnumber: 0.000000
ae_mode: off
msv_exposure_min_us: 20
msv_exposure_max_us: 33000
gain_min : 54
gain_max : 8000
standby_enabled: 0
decimator: 1
independent_exposure:0
cam #1
name: hires
sensor type: ov64b
isEnabled: 1
camId: 1
camId2: -1
fps: 30
en_rotate: 0
en_rotate2: 0
en_preview: 1
pre_width: 1920
pre_height: 1080
en_raw_preview: 0
en_small_video: 0
small_video_width: 1024
small_video_height: 768
en_large_video: 0
large_video_width: 3840
large_video_height: 2160
en_misp: 0
misp_width: -1
misp_height: -1
en_snapshot: 0
snap_width: 3840
snap_height: 2160
exif_focal_length: 3.100000
exif_focal_len_35mm_format:17
exif_fnumber: 1.240000
ae_mode: isp
msv_exposure_min_us: 20
msv_exposure_max_us: 33000
gain_min : 54
gain_max : 32000
standby_enabled: 0
decimator: 1
independent_exposure:0
fsync_en: 0
fsync_gpio: 109
=================================================================
DEBUG: Attempting to open the hal module
DEBUG: SUCCESS: Camera module opened on attempt 0
DEBUG: ----------- Number of cameras: 2
VERBOSE: cci-direct: using voxl_platform_mod config 0 layout
DEBUG: Cam idx: 0, Cam slot: 3, Slave Address: 0x006C, Sensor Id: 0x6442
DEBUG: Cam idx: 1, Cam slot: 5, Slave Address: 0x00D4, Sensor Id: 0x00FF
thread is locked to cores: 4 5 6 7
connected to mavlink pipe
Connected to cpu-monitor
DEBUG: ------ voxl-camera-server: Starting 2 cameras
Starting Camera: boson (id #0)
DEBUG: Checking Gain limits for Camera: boson
DEBUG: Using gain limits min: 54 max: 860
DEBUG: cam ID 0 checking for fmt: 37 w: 640 h: 512 o: 0
DEBUG: ==> option 0: format= 34 width=9248 height=6944 is_input=0
DEBUG: ==> option 4: format= 34 width=9248 height=6944 is_input=1
...
DEBUG: ==> option 644: format= 33 width= 720 height= 480 is_input=0
DEBUG: ==> option 648: format= 34 width= 640 height= 512 is_input=0
DEBUG: ==> option 652: format= 35 width= 640 height= 512 is_input=0
DEBUG: ==> option 656: format= 33 width= 640 height= 512 is_input=0
DEBUG: ==> option 660: format= 34 width= 640 height= 480 is_input=0
DEBUG: ==> option 664: format= 35 width= 640 height= 480 is_input=0
DEBUG: ==> option 668: format= 33 width= 640 height= 480 is_input=0
DEBUG: ==> option 672: format= 34 width= 640 height= 400 is_input=0
DEBUG: ==> option 676: format= 35 width= 640 height= 400 is_input=0
DEBUG: ==> option 680: format= 33 width= 640 height= 400 is_input=0
DEBUG: ==> option 684: format= 34 width= 640 height= 360 is_input=0
DEBUG: ==> option 688: format= 35 width= 640 height= 360 is_input=0
DEBUG: ==> option 692: format= 33 width= 640 height= 360 is_input=0
DEBUG: ==> option 696: format= 34 width= 352 height= 288 is_input=0
DEBUG: ==> option 700: format= 35 width= 352 height= 288 is_input=0
DEBUG: ==> option 704: format= 34 width= 320 height= 240 is_input=0
DEBUG: ==> option 708: format= 35 width= 320 height= 240 is_input=0
DEBUG: ==> option 712: format= 34 width= 240 height= 320 is_input=0
DEBUG: ==> option 716: format= 35 width= 240 height= 320 is_input=0
DEBUG: ==> option 720: format= 34 width= 176 height= 144 is_input=0
DEBUG: ==> option 724: format= 35 width= 176 height= 144 is_input=0
DEBUG: ==> option 728: format= 37 width=9248 height=6944 is_input=0
DEBUG: ==> option 732: format= 38 width=9248 height=6944 is_input=0
DEBUG: ==> option 736: format= 32 width=9248 height=6944 is_input=0
DEBUG: ==> option 740: format= 36 width=9248 height=6944 is_input=0
DEBUG: ==> option 744: format= 37 width=4624 height=3472 is_input=0
DEBUG: ==> option 748: format= 38 width=4624 height=3472 is_input=0
DEBUG: ==> option 752: format= 32 width=4624 height=3472 is_input=0
DEBUG: ==> option 756: format= 36 width=4624 height=3472 is_input=0
ERROR: Camera 0 failed to find supported preview config: 640x512
WARNING: Failed to start cam boson due to invalid resolution
WARNING: assuming cam is missing and trying to compensate
Starting Camera: hires (originally id #1) with id offset: 1
DEBUG: Checking Gain limits for Camera: hires
DEBUG: Using gain limits min: 54 max: 860
DEBUG: cam ID 0 checking for fmt: 35 w: 1920 h: 1080 o: 0
DEBUG: ==> option 0: format= 34 width=9248 height=6944 is_input=0
DEBUG: ==> option 4: format= 34 width=9248 height=6944 is_input=1
...
DEBUG: ==> option 748: format= 38 width=4624 height=3472 is_input=0
DEBUG: ==> option 752: format= 32 width=4624 height=3472 is_input=0
DEBUG: ==> option 756: format= 36 width=4624 height=3472 is_input=0
VERBOSE: Successfully found configuration match for camera 0: 1920x1080
VERBOSE: Adding preview stream for camera: 0
DEBUG: Converted gralloc flags 0x20900 to GBM flags 0x1400000
VERBOSE: Dumping GBM flags
DEBUG: Found flag GBM_BO_USAGE_CAMERA_WRITE_QTI
DEBUG: Found flag GBM_BO_USAGE_HW_COMPOSER_QTI
VERBOSE: Opened GBM fd
gbm_create_device(156): Info: backend name is: msm_drm
VERBOSE: Created GBM device
DEBUG: Allocated BO with width=1920 height=1080 stride=1920 aligned_w=1920 aligned_h=1088 size=3133440 flags=0x20900 format=GBM_FORMAT_YCbCr_420_888 fd=60 vaddr=(nil)
DEBUG: Converted gralloc flags 0x20900 to GBM flags 0x1400000
VERBOSE: Dumping GBM flags
DEBUG: Found flag GBM_BO_USAGE_CAMERA_WRITE_QTI
DEBUG: Found flag GBM_BO_USAGE_HW_COMPOSER_QTI
DEBUG: Allocated BO with width=1920 height=1080 stride=1920 aligned_w=1920 aligned_h=1088 size=3133440 flags=0x20900 format=GBM_FORMAT_YCbCr_420_888 fd=62 vaddr=(nil)
DEBUG: Converted gralloc flags 0x20900 to GBM flags 0x1400000
VERBOSE: Dumping GBM flags
DEBUG: Found flag GBM_BO_USAGE_CAMERA_WRITE_QTI
DEBUG: Found flag GBM_BO_USAGE_HW_COMPOSER_QTI
DEBUG: Allocated BO with width=1920 height=1080 stride=1920 aligned_w=1920 aligned_h=1088 size=3133440 flags=0x20900 format=GBM_FORMAT_YCbCr_420_888 fd=64 vaddr=(nil)
DEBUG: Converted gralloc flags 0x20900 to GBM flags 0x1400000
VERBOSE: Dumping GBM flags
DEBUG: Found flag GBM_BO_USAGE_CAMERA_WRITE_QTI
DEBUG: Found flag GBM_BO_USAGE_HW_COMPOSER_QTI
DEBUG: Allocated BO with width=1920 height=1080 stride=1920 aligned_w=1920 aligned_h=1088 size=3133440 flags=0x20900 format=GBM_FORMAT_YCbCr_420_888 fd=66 vaddr=(nil)
DEBUG: Converted gralloc flags 0x20900 to GBM flags 0x1400000
VERBOSE: Dumping GBM flags
DEBUG: Found flag GBM_BO_USAGE_CAMERA_WRITE_QTI
DEBUG: Found flag GBM_BO_USAGE_HW_COMPOSER_QTI
DEBUG: Allocated BO with width=1920 height=1080 stride=1920 aligned_w=1920 aligned_h=1088 size=3133440 flags=0x20900 format=GBM_FORMAT_YCbCr_420_888 fd=68 vaddr=(nil)
DEBUG: Converted gralloc flags 0x20900 to GBM flags 0x1400000
VERBOSE: Dumping GBM flags
DEBUG: Found flag GBM_BO_USAGE_CAMERA_WRITE_QTI
DEBUG: Found flag GBM_BO_USAGE_HW_COMPOSER_QTI
DEBUG: Allocated BO with width=1920 height=1080 stride=1920 aligned_w=1920 aligned_h=1088 size=3133440 flags=0x20900 format=GBM_FORMAT_YCbCr_420_888 fd=70 vaddr=(nil)
DEBUG: Converted gralloc flags 0x20900 to GBM flags 0x1400000
VERBOSE: Dumping GBM flags
DEBUG: Found flag GBM_BO_USAGE_CAMERA_WRITE_QTI
DEBUG: Found flag GBM_BO_USAGE_HW_COMPOSER_QTI
DEBUG: Allocated BO with width=1920 height=1080 stride=1920 aligned_w=1920 aligned_h=1088 size=3133440 flags=0x20900 format=GBM_FORMAT_YCbCr_420_888 fd=72 vaddr=(nil)
DEBUG: Converted gralloc flags 0x20900 to GBM flags 0x1400000
VERBOSE: Dumping GBM flags
DEBUG: Found flag GBM_BO_USAGE_CAMERA_WRITE_QTI
DEBUG: Found flag GBM_BO_USAGE_HW_COMPOSER_QTI
DEBUG: Allocated BO with width=1920 height=1080 stride=1920 aligned_w=1920 aligned_h=1088 size=3133440 flags=0x20900 format=GBM_FORMAT_YCbCr_420_888 fd=74 vaddr=(nil)
DEBUG: Converted gralloc flags 0x20900 to GBM flags 0x1400000
VERBOSE: Dumping GBM flags
DEBUG: Found flag GBM_BO_USAGE_CAMERA_WRITE_QTI
DEBUG: Found flag GBM_BO_USAGE_HW_COMPOSER_QTI
DEBUG: Allocated BO with width=1920 height=1080 stride=1920 aligned_w=1920 aligned_h=1088 size=3133440 flags=0x20900 format=GBM_FORMAT_YCbCr_420_888 fd=76 vaddr=(nil)
DEBUG: Converted gralloc flags 0x20900 to GBM flags 0x1400000
VERBOSE: Dumping GBM flags
DEBUG: Found flag GBM_BO_USAGE_CAMERA_WRITE_QTI
DEBUG: Found flag GBM_BO_USAGE_HW_COMPOSER_QTI
DEBUG: Allocated BO with width=1920 height=1080 stride=1920 aligned_w=1920 aligned_h=1088 size=3133440 flags=0x20900 format=GBM_FORMAT_YCbCr_420_888 fd=78 vaddr=(nil)
DEBUG: Converted gralloc flags 0x20900 to GBM flags 0x1400000
VERBOSE: Dumping GBM flags
DEBUG: Found flag GBM_BO_USAGE_CAMERA_WRITE_QTI
DEBUG: Found flag GBM_BO_USAGE_HW_COMPOSER_QTI
DEBUG: Allocated BO with width=1920 height=1080 stride=1920 aligned_w=1920 aligned_h=1088 size=3133440 flags=0x20900 format=GBM_FORMAT_YCbCr_420_888 fd=80 vaddr=(nil)
DEBUG: Converted gralloc flags 0x20900 to GBM flags 0x1400000
VERBOSE: Dumping GBM flags
DEBUG: Found flag GBM_BO_USAGE_CAMERA_WRITE_QTI
DEBUG: Found flag GBM_BO_USAGE_HW_COMPOSER_QTI
DEBUG: Allocated BO with width=1920 height=1080 stride=1920 aligned_w=1920 aligned_h=1088 size=3133440 flags=0x20900 format=GBM_FORMAT_YCbCr_420_888 fd=82 vaddr=(nil)
DEBUG: Converted gralloc flags 0x20900 to GBM flags 0x1400000
VERBOSE: Dumping GBM flags
DEBUG: Found flag GBM_BO_USAGE_CAMERA_WRITE_QTI
DEBUG: Found flag GBM_BO_USAGE_HW_COMPOSER_QTI
DEBUG: Allocated BO with width=1920 height=1080 stride=1920 aligned_w=1920 aligned_h=1088 size=3133440 flags=0x20900 format=GBM_FORMAT_YCbCr_420_888 fd=84 vaddr=(nil)
DEBUG: Converted gralloc flags 0x20900 to GBM flags 0x1400000
VERBOSE: Dumping GBM flags
DEBUG: Found flag GBM_BO_USAGE_CAMERA_WRITE_QTI
DEBUG: Found flag GBM_BO_USAGE_HW_COMPOSER_QTI
DEBUG: Allocated BO with width=1920 height=1080 stride=1920 aligned_w=1920 aligned_h=1088 size=3133440 flags=0x20900 format=GBM_FORMAT_YCbCr_420_888 fd=86 vaddr=(nil)
DEBUG: Converted gralloc flags 0x20900 to GBM flags 0x1400000
VERBOSE: Dumping GBM flags
DEBUG: Found flag GBM_BO_USAGE_CAMERA_WRITE_QTI
DEBUG: Found flag GBM_BO_USAGE_HW_COMPOSER_QTI
DEBUG: Allocated BO with width=1920 height=1080 stride=1920 aligned_w=1920 aligned_h=1088 size=3133440 flags=0x20900 format=GBM_FORMAT_YCbCr_420_888 fd=88 vaddr=(nil)
DEBUG: Converted gralloc flags 0x20900 to GBM flags 0x1400000
VERBOSE: Dumping GBM flags
DEBUG: Found flag GBM_BO_USAGE_CAMERA_WRITE_QTI
DEBUG: Found flag GBM_BO_USAGE_HW_COMPOSER_QTI
DEBUG: Allocated BO with width=1920 height=1080 stride=1920 aligned_w=1920 aligned_h=1088 size=3133440 flags=0x20900 format=GBM_FORMAT_YCbCr_420_888 fd=90 vaddr=(nil)
DEBUG: Successfully set up pipeline for stream: PREVIEW
VERBOSE: Entered thread: cam0-request(tid: 18927)
DEBUG: Started Camera: hires
------ voxl-camera-server: Started 1 of 2 cameras
------ voxl-camera-server: Camera server is now running
VERBOSE: Entered thread: cam0-result(tid: 18928)
VERBOSE: added request for preview stream
VERBOSE: Sending request for frame 0 for camera hires for 1 streams
...