ModalAI Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

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

    Ask your questions right here!
    2
    10
    77
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Matthew WellnerM
      Matthew Wellner
      last edited by

      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
      ...
      
      Matthew WellnerM 1 Reply Last reply Reply Quote 0
      • Matthew WellnerM
        Matthew Wellner @Matthew Wellner
        last edited by

        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
        
        
        Matthew WellnerM 1 Reply Last reply Reply Quote 0
        • Matthew WellnerM
          Matthew Wellner @Matthew Wellner
          last edited by

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

          Alex KushleyevA 1 Reply Last reply Reply Quote 0
          • Alex KushleyevA
            Alex Kushleyev ModalAI Team @Matthew Wellner
            last edited by Alex Kushleyev

            @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

            Matthew WellnerM 1 Reply Last reply Reply Quote 0
            • Matthew WellnerM
              Matthew Wellner @Alex Kushleyev
              last edited by

              @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?

              Alex KushleyevA 1 Reply Last reply Reply Quote 0
              • Alex KushleyevA
                Alex Kushleyev ModalAI Team @Matthew Wellner
                last edited by

                @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

                Matthew WellnerM 1 Reply Last reply Reply Quote 0
                • Matthew WellnerM
                  Matthew Wellner @Alex Kushleyev
                  last edited by

                  @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 
                  
                  Alex KushleyevA 1 Reply Last reply Reply Quote 0
                  • Alex KushleyevA
                    Alex Kushleyev ModalAI Team @Matthew Wellner
                    last edited by

                    @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

                    Matthew WellnerM 1 Reply Last reply Reply Quote 0
                    • Matthew WellnerM
                      Matthew Wellner @Alex Kushleyev
                      last edited by

                      @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
                      ────────────────────────────────────────────────────────────────────────────────
                      
                      
                      Alex KushleyevA 1 Reply Last reply Reply Quote 0
                      • Alex KushleyevA
                        Alex Kushleyev ModalAI Team @Matthew Wellner
                        last edited by Alex Kushleyev

                        @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

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post
                        Powered by NodeBB | Contributors