# voxl-camera-server saying Boson doesn't support 640x512 resolution when starting

Source: https://forum.modalai.com/topic/4646/voxl-camera-server-saying-boson-doesn-t-support-640x512-resolution-when-starting
Category: General Questions (https://forum.modalai.com/category/2/general-questions)
Posted: 2025-08-04 12:55:28 UTC by Matthew Wellner
Replies: 13 · Views: 2222

## Matthew Wellner · 2025-08-04 12:55:28 UTC

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
...
```

## Reply by Matthew Wellner · 2025-08-19 14:29:15 UTC

I'm still having trouble with this... I've gone back through the instructions again, but I keep getting a message that says the boson doesn't support 640x512 even though that resolution is listed in the debug output: 

```
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

```

## Reply by Matthew Wellner · 2025-08-19 17:06:43 UTC (in reply to Matthew Wellner)

@Alex-Kushleyev - I have the M181 board plugged into J7 (the other side is connected to a Hadron matching the connections correctly), but the only sensor driver that detects the boson camera is com.qti.sensormodule.boson_5.bin (not 2 like the directions show). The EO camera works using com.qti.sensormodule.ov64b40_3.bin like the directions show. The ID 5 vs 2 seems like my issue, but I'm not sure how to fix it.

## Reply by Alex Kushleyev (ModalAI staff) · 2025-08-19 18:47:05 UTC (in reply to Matthew Wellner)

@Matthew-Wellner , sorry for the delay.

First off, please update your `libmodal-journal` package. You are using a version that has a bug and prevents most of the output messages from being printed from `voxl-camera-server`. You can just use apt to update it or download it directly from : http://voxl-packages.modalai.com/dists/qrb5165/dev/binary-arm64//

Now, as I understand, you are only able to detect Boson in slot ID5, which is not where it's actually connected. 

Let me explain why Boson is successfully detected in slot 5 (but won't stream) and how this can be used to diagnose the issue.

- Inside the Hadron camera, the two cameras (IR and EO) have a single I2C (CCI) bus that they use to communicate - both cameras are connected to the same bus
- Each VOXL2 camera slot has a I2C (CCI) port assigned to it in hardware
- VOXL2 only has 4 independent CCI controllers, but 6 physical camera slots (in the 3 camera connectors, 2 per connector)
- the CCI ports are shared in several camera slots, as follows (mapping of camera slot to CCI #:
```
0 : 0
1 : 1
2 : 2
3 : 3
4 : 1
5 : 3
```
This can also be seen from the voxl2 connector pinouts for J6, J7, J8 (look for CAMx_CCIy.. pins on each connector) : https://docs.modalai.com/voxl2-connectors/#j6-pin-out

This means that CCI1 is shared between slots 1 and 4, CCI3 is shared between slots 3 and 5

Now.. on M0159 adapter, the single CCI connection coming from Hadron is split into two, and the command (from instructions) to enable the mux that connects the two CCI busses on M0159 (from the two camera slots) together is the following : `voxl-gpio -m 6 out && voxl-gpio -w 6 1`. Then from M0159, you have two sets of cables that connect to VOXL2 via M0181.

If Hadron is connected to J7, then the single CCI connection will be bridged into slot 2's and slot 3's CCI ports (which are 2 and 3). However, since they are bridged, then both cameras can be detected on either CCI 2 or CCI 3.

Also, one important detail is that both IR and EO cameras in Hadron are always on, as opposed to typical cameras we use, which have a reset signal, which is off when the camera is off. When the camera is probed / used, the camera pipeline first turns on the camera and then uses it. Normally, in order to probe a camera in slot 5, it would first need to be turned on via its reset pin, but since Boson is actually connected to slot 2, that reset pin would have been incorrect.. but sin Boson is always ON, the lack of reset and shared CCI bus allows you to probe it in the wrong slot.

The fact that you were able to detect Boson in slot 5 (CCI3) but not able to detect it in slot 2 (CCI2) means that the CCI2 hardware path is broken (connector or wire issue). Also, if you remove the ov64b sensormodule, you should also be able to probe the Boson in slot 3 :).

Incorrectly detecting the camera in the wrong slot will not allow you to get any images, since the MIPI data connection is going to slot 2, not 5, even though the CCI busses are shared / bridged.

You should do a quick test and plug in your M0181 adapter in J6 and see if Boson is detected in slot 0. If yes, then the issue may be in the Voxl's J7 connector. If not, then the issue is upstream (between M0181 and Hadron). Please note that EO will not work in slot 1 (J6U) because with default kernel, J6U is set up to be used for a second camera in a stereo pair. A hires camera in J6U will be detected (probed successfully) but will not stream.

Please inspect the wiring and try to probe Boson in J6L (slot 0) and let me know what that results in.

Alex

## Reply by Matthew Wellner · 2025-08-20 15:59:02 UTC (in reply to Alex Kushleyev)

@Alex-Kushleyev - Thanks for the help! I updated libmodal-journal, I swapped M0181 over to J6, and I copied the correct bin files over to /usr/lib/camera but now I don't see either camera:

```
voxl2:~$ voxl-camera-server -l
DEBUG:   Attempting to open the hal module
DEBUG:   SUCCESS: Camera module opened on attempt 0
DEBUG:   ----------- Number of cameras: 0

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: 0

```

I'm guessing based on what you wrote already that there is something going on between the M0181 and the Hadron?

## Reply by Alex Kushleyev (ModalAI staff) · 2025-08-21 04:06:25 UTC (in reply to Matthew Wellner)

@Matthew-Wellner , don't worry about the OV64b not showing up when plugged into J6 (first, there is a different gpio that would need to be turned on to enable the CCI mux, but even if we do that, the camera won't work, as I explained earlier due to the fact that J6 on VOXL2 with default kernel is set up for a single camera or stereo combo).

In any case, yes, it looks like the CCI connection In the Boson path is broken somewhere between M0181 and M0159.

If you are comfortable swapping ucoax cables, you could try to do that and see if the cable is the issue (swap the two cables places between Boson and OV64B). Just make sure you plug them in correctly, not cross the connections, see https://docs.modalai.com/voxl2-hadron/#warning)

It sounds like a case for an RMA, which is unfortunate. We do test all of these assemblies. Sorry about that!

Alex

## Reply by Matthew Wellner · 2025-08-21 12:17:00 UTC (in reply to Alex Kushleyev)

@Alex-Kushleyev - I just swapped the cables and reinserted the M0181 into J7 and only the hires camera works? I was thinking that the Boson camera would work when I swapped the cables (if it was the cable). Could there be something wrong with the M0159 / M0181?

```
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 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 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=90 vaddr=(nil)
DEBUG:   Successfully set up pipeline for stream: PREVIEW
VERBOSE: Entered thread: cam0-request(tid: 3796)
VERBOSE: Entered thread: cam0-result(tid: 3797)
DEBUG:   Started Camera: hires

------ voxl-camera-server: Started 1 of 2 cameras

------ voxl-camera-server: Camera server is now running
DEBUG:   Value of standby_active is: 0 
DEBUG:   Value of standby_active is: 0 
DEBUG:   Value of standby_active is: 0 
```

## Reply by Alex Kushleyev (ModalAI staff) · 2025-08-21 12:49:38 UTC (in reply to Matthew Wellner)

@Matthew-Wellner ,

Yes it looks like the cable is not an issue. There is something else we can try. I can build a kernel that uses CCI3 for camera slot 2, so the communication with Boson would be going thru the EO camera connector between M0181 and M0159. If this works, we can at least confirm that everything else works.

At least if this works, you may be able to use Hadron and meanwhile request a replacement.

Can you let me known which SDK you are using and your kernel version (mach. Var) when you run voxl-version?

Alex

## Reply by Matthew Wellner · 2025-08-21 14:16:52 UTC (in reply to Alex Kushleyev)

@Alex-Kushleyev - Sounds good. I am on SDK 1.4.5 and my mach.var is 1.0.0.

```
voxl2:~$ voxl-version 
────────────────────────────────────────────────────────────────────────────────
system-image: 1.8.02-M0054-14.1a-perf
kernel:       #1 SMP PREEMPT Mon Nov 11 22:08:01 UTC 2024 4.19.125
────────────────────────────────────────────────────────────────────────────────
hw platform:  M0054
mach.var:     1.0.0
SKU:          MCCA-M0054-C8-T0-M0-X0
────────────────────────────────────────────────────────────────────────────────
voxl-suite:   1.4.5
────────────────────────────────────────────────────────────────────────────────

```

## Reply by Alex Kushleyev (ModalAI staff) · 2025-08-21 15:07:42 UTC (in reply to Matthew Wellner)

@Matthew-Wellner 

Please try this kernel (it tells the system to use CCI3 instead of CCI2 when using camera in slot 2) : https://storage.googleapis.com/modalai_public/temp/test_kernels/qti-ubuntu-robotics-image-m0054-boot-slot2-cci3.img

With this change, the CCI communication to Boson will actually happen on the Voxl's J7 upper path (using CCI3) and will go over hardware path that is working for the EO camera. By the way, after the initial probing of Boson during start-up of camera server, there is no communication to it at all via CCI.

I just tested it on my setup with Hadron in J7.

```
adb reboot bootloader
fastboot boot qti-ubuntu-robotics-image-m0054-boot-slot2-cci3.img
```

Then ADB into voxl2 and when you run `voxl-camera-server -l`, you will not detect any cameras.

enable CCI mux on M0159 for J7:
```
voxl-gpio -m 6 out && voxl-gpio -w 6 1
```

check if cameras are detected
```
voxl2:/$ voxl-camera-server -l
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: 2, Slave Address: 0x00D4, Sensor Id: 0x00FF
DEBUG:   Cam idx: 1, Cam slot: 3, Slave Address: 0x006C, Sensor Id: 0x6442
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
```

Then, run `voxl-camera-server` and view the streams via `voxl-portal`

Please let me know whether this works. 

Alex

## Reply by Matthew Wellner · 2025-08-25 12:26:12 UTC (in reply to Alex Kushleyev)

@Alex-Kushleyev - That got me a little further....

I am able to see the boson camera now, but the voxl-camera-server crashes on start. Here is the output after removing the driver for slot 5:

```
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: 3

VERBOSE: cci-direct: using voxl_platform_mod config 0 layout
DEBUG:   Cam idx: 0, Cam slot: 2, Slave Address: 0x00D4, Sensor Id: 0x00FF
DEBUG:   Cam idx: 1, Cam slot: 3, Slave Address: 0x006C, Sensor Id: 0x6442
DEBUG:   Cam idx: 2, Cam slot: 5, Slave Address: 0x006C, Sensor Id: 0x6442
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: 8000
DEBUG:   cam ID 0 checking for fmt:   37  w:  640 h:  512 o:   0
DEBUG:   	==> option   0: format= 34 width= 640 height= 512 is_input=0
DEBUG:   	==> option   4: format= 34 width= 640 height= 512 is_input=1
...
DEBUG:   	==> option 184: format= 32 width= 320 height= 256 is_input=0
DEBUG:   	==> option 188: format= 36 width= 320 height= 256 is_input=0
VERBOSE: Successfully found configuration match for camera 0: 640x512
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=640 height=512 stride=800 aligned_w=800 aligned_h=512 size=409600 flags=0x20900 format=GBM_FORMAT_RAW10 fd=52 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=640 height=512 stride=800 aligned_w=800 aligned_h=512 size=409600 flags=0x20900 format=GBM_FORMAT_RAW10 fd=54 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=640 height=512 stride=800 aligned_w=800 aligned_h=512 size=409600 flags=0x20900 format=GBM_FORMAT_RAW10 fd=56 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=640 height=512 stride=800 aligned_w=800 aligned_h=512 size=409600 flags=0x20900 format=GBM_FORMAT_RAW10 fd=58 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=640 height=512 stride=800 aligned_w=800 aligned_h=512 size=409600 flags=0x20900 format=GBM_FORMAT_RAW10 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=640 height=512 stride=800 aligned_w=800 aligned_h=512 size=409600 flags=0x20900 format=GBM_FORMAT_RAW10 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=640 height=512 stride=800 aligned_w=800 aligned_h=512 size=409600 flags=0x20900 format=GBM_FORMAT_RAW10 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=640 height=512 stride=800 aligned_w=800 aligned_h=512 size=409600 flags=0x20900 format=GBM_FORMAT_RAW10 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=640 height=512 stride=800 aligned_w=800 aligned_h=512 size=409600 flags=0x20900 format=GBM_FORMAT_RAW10 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=640 height=512 stride=800 aligned_w=800 aligned_h=512 size=409600 flags=0x20900 format=GBM_FORMAT_RAW10 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=640 height=512 stride=800 aligned_w=800 aligned_h=512 size=409600 flags=0x20900 format=GBM_FORMAT_RAW10 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=640 height=512 stride=800 aligned_w=800 aligned_h=512 size=409600 flags=0x20900 format=GBM_FORMAT_RAW10 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=640 height=512 stride=800 aligned_w=800 aligned_h=512 size=409600 flags=0x20900 format=GBM_FORMAT_RAW10 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=640 height=512 stride=800 aligned_w=800 aligned_h=512 size=409600 flags=0x20900 format=GBM_FORMAT_RAW10 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=640 height=512 stride=800 aligned_w=800 aligned_h=512 size=409600 flags=0x20900 format=GBM_FORMAT_RAW10 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=640 height=512 stride=800 aligned_w=800 aligned_h=512 size=409600 flags=0x20900 format=GBM_FORMAT_RAW10 fd=82 vaddr=(nil)
DEBUG:   Successfully set up pipeline for stream: PREVIEW
DEBUG:   Started Camera: boson
Starting Camera: hires (id #1)
VERBOSE: Entered thread: cam0-result(tid: 4215)
VERBOSE: Entered thread: cam0-request(tid: 4214)
VERBOSE: setting hal3 exposure for boson     5259763   800
DEBUG:   Checking Gain limits for Camera: hires
DEBUG:   Using gain limits min: 54 max: 860
DEBUG:   cam ID 1 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 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 1: 1920x1080
VERBOSE: Adding preview stream for camera: 1
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
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=105 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=107 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=109 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=111 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=113 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=115 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=117 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=119 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=121 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=123 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=125 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=127 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=129 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=131 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=133 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=135 vaddr=(nil)
DEBUG:   Successfully set up pipeline for stream: PREVIEW
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: Entered thread: cam1-request(tid: 4227)
VERBOSE: Entered thread: cam1-result(tid: 4228)
DEBUG:   Started Camera: hires

------ voxl-camera-server: Started 2 of 2 cameras

------ voxl-camera-server: Camera server is now running
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: added request for preview stream
VERBOSE: Sending request for frame 0 for camera boson for 1 streams
VERBOSE: Received result from HAl3 for frame number 0
VERBOSE: Received 0 buffers from camera boson, partial result:1
VERBOSE: added request for preview stream
VERBOSE: Sending request for frame 0 for camera hires for 1 streams
VERBOSE: finished sending request for frame 0 for camera boson
VERBOSE: returning from SendOneCaptureRequest for frame 1 for camera boson
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: added request for preview stream
VERBOSE: Sending request for frame 1 for camera boson for 1 streams
VERBOSE: finished sending request for frame 1 for camera boson
VERBOSE: returning from SendOneCaptureRequest for frame 2 for camera boson
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: added request for preview stream
VERBOSE: Sending request for frame 2 for camera boson for 1 streams
VERBOSE: finished sending request for frame 2 for camera boson
VERBOSE: returning from SendOneCaptureRequest for frame 3 for camera boson
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: added request for preview stream
VERBOSE: Sending request for frame 3 for camera boson for 1 streams
VERBOSE: finished sending request for frame 3 for camera boson
VERBOSE: returning from SendOneCaptureRequest for frame 4 for camera boson
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: added request for preview stream
VERBOSE: Sending request for frame 4 for camera boson for 1 streams
VERBOSE: finished sending request for frame 4 for camera boson
VERBOSE: returning from SendOneCaptureRequest for frame 5 for camera boson
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: added request for preview stream
VERBOSE: Sending request for frame 5 for camera boson for 1 streams
VERBOSE: Received result from HAl3 for frame number 1
VERBOSE: Received 0 buffers from camera boson, partial result:1
VERBOSE: Received result from HAl3 for frame number 0
VERBOSE: Received 0 buffers from camera boson, partial result:2
VERBOSE: Received metadata for frame 0 from camera boson
VERBOSE: 	Timestamp: 328840356007
VERBOSE: 	Gain: 799
VERBOSE: 	Exposure: 0
VERBOSE: Received result from HAl3 for frame number 2
VERBOSE: Received 0 buffers from camera boson, partial result:1
VERBOSE: Received result from HAl3 for frame number 3
VERBOSE: Received 0 buffers from camera boson, partial result:1
VERBOSE: Received result from HAl3 for frame number 4
VERBOSE: Received 0 buffers from camera boson, partial result:1
VERBOSE: finished sending request for frame 0 for camera hires
VERBOSE: returning from SendOneCaptureRequest for frame 1 for camera hires
VERBOSE: added request for preview stream
VERBOSE: Sending request for frame 1 for camera hires for 1 streams
VERBOSE: finished sending request for frame 1 for camera hires
VERBOSE: returning from SendOneCaptureRequest for frame 2 for camera hires
VERBOSE: added request for preview stream
VERBOSE: Sending request for frame 2 for camera hires for 1 streams
VERBOSE: finished sending request for frame 2 for camera hires
VERBOSE: returning from SendOneCaptureRequest for frame 3 for camera hires
VERBOSE: added request for preview stream
VERBOSE: Sending request for frame 3 for camera hires for 1 streams
VERBOSE: finished sending request for frame 3 for camera hires
VERBOSE: returning from SendOneCaptureRequest for frame 4 for camera hires
VERBOSE: added request for preview stream
VERBOSE: Sending request for frame 4 for camera hires for 1 streams
VERBOSE: finished sending request for frame 4 for camera hires
VERBOSE: returning from SendOneCaptureRequest for frame 5 for camera hires
VERBOSE: added request for preview stream
VERBOSE: Sending request for frame 5 for camera hires for 1 streams
VERBOSE: Received result from HAl3 for frame number 0
VERBOSE: Received 0 buffers from camera hires, partial result:1
VERBOSE: Received result from HAl3 for frame number 1
VERBOSE: Received 0 buffers from camera hires, partial result:1
VERBOSE: Received result from HAl3 for frame number 2
VERBOSE: Received 0 buffers from camera hires, partial result:1
Aborted
```

## Reply by Matthew Wellner · 2025-08-26 17:26:26 UTC (in reply to Matthew Wellner)

@Alex-Kushleyev - I just received the replacement hardware and gave it a try, but now I am getting a "Buffer error" from the Boson camera - 

```
DEBUG:   Successfully set up pipeline for stream: PREVIEW
VERBOSE: finished sending request for frame 0 for camera boson
VERBOSE: returning from SendOneCaptureRequest for frame 1 for camera boson
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: added request for preview stream
VERBOSE: Sending request for frame 1 for camera boson for 1 streams
VERBOSE: finished sending request for frame 1 for camera boson
VERBOSE: returning from SendOneCaptureRequest for frame 2 for camera boson
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: added request for preview stream
VERBOSE: Sending request for frame 2 for camera boson for 1 streams
VERBOSE: finished sending request for frame 2 for camera boson
VERBOSE: returning from SendOneCaptureRequest for frame 3 for camera boson
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: added request for preview stream
VERBOSE: Sending request for frame 3 for camera boson for 1 streams
VERBOSE: finished sending request for frame 3 for camera boson
VERBOSE: returning from SendOneCaptureRequest for frame 4 for camera boson
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: added request for preview stream
VERBOSE: Sending request for frame 4 for camera boson for 1 streams
VERBOSE: finished sending request for frame 4 for camera boson
VERBOSE: returning from SendOneCaptureRequest for frame 5 for camera boson
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: added request for preview stream
VERBOSE: Sending request for frame 5 for camera boson for 1 streams
VERBOSE: Received result from HAl3 for frame number 2
VERBOSE: Received 0 buffers from camera boson, partial result:1
VERBOSE: Received result from HAl3 for frame number 1
VERBOSE: Received 0 buffers from camera boson, partial result:1
VERBOSE: Received result from HAl3 for frame number 3
VERBOSE: Received 0 buffers from camera boson, partial result:1
VERBOSE: Received result from HAl3 for frame number 4
VERBOSE: Received 0 buffers from camera boson, partial result:1
VERBOSE: Received result from HAl3 for frame number 0
VERBOSE: Received 0 buffers from camera boson, partial result:2
VERBOSE: Received metadata for frame 0 from camera boson
VERBOSE: 	Timestamp: 192798186423
VERBOSE: 	Gain: 799
VERBOSE: 	Exposure: 0
ERROR:   Received "Buffer" error from camera: boson
VERBOSE: Received result from HAl3 for frame number 0
VERBOSE: Received 1 buffers from camera boson, partial result:0
VERBOSE: Received output buffer 0 from camera boson
VERBOSE: boson procesing new buffer
VERBOSE: Camera: boson processing preview frame
DEBUG:   setting thread affinity for cam boson preview
VERBOSE: finished sending request for frame 5 for camera boson
VERBOSE: returning from SendOneCaptureRequest for frame 6 for camera boson
VERBOSE: setting hal3 exposure for boson     5259763   800
VERBOSE: added request for preview stream
VERBOSE: Sending request for frame 6 for camera boson for 1 streams
Aborted

```

## Reply by Matthew Wellner · 2025-08-26 17:45:43 UTC (in reply to Matthew Wellner)

@Alex-Kushleyev - I re-ran the setup for the Boson camera in the windows app and everything is working with the new hardware that came. Thanks again for the help!

## Reply by Alex Kushleyev (ModalAI staff) · 2025-08-27 16:18:05 UTC (in reply to Matthew Wellner)

@Matthew-Wellner , thanks for the update!

Out of curiosity, does the properly configured Boson work with original hardware + the CCI workaround in the kernel? It would be helpful for us to have that information for debugging.

Please send back the non-working adapters when you get a chance.

Thank you!

Alex
