M0084 with VOXL2 Mini Unable to detecto camera on Upper Slot
-
I have a VOXL 2 Mini and am trying to use an ar0144 and a imx412 on the M0084 cable on J6. I was unable to get whatever camera I put on JU to be detected when I ran voxl-camera-server. I reverted to testing with two ar0144 cameras to reduce variables. I also tested with another M0084 cable I had and the issue persisted. I also tested on J7 and had the same issue. Let me know if there is something I am missing to fix this or more information is needed.
VOXL2 Mini Info:
system-image: 1.8.06-M0104-14.1a-perf kernel: #1 SMP PREEMPT Wed Oct 22 05:43:49 UTC 2025 4.19.125 ──────────────────────────────────────────────────────────────────────────────── hw platform: M0104 mach.var: 2.0.2 SKU: TF-M0104-6-V1-C6 ──────────────────────────────────────────────────────────────────────────────── voxl-suite: 1.6.0Current /data/modalai/custom_camera_config.txt:
J6_LOWER_SENSOR="ar0144" J6_LOWER_NAME="tracking1" J6_LOWER_ROTATE="false" J6_UPPER_SENSOR="ar0144" J6_UPPER_NAME="tracking2" J6_UPPER_ROTATE="false"Current /etc/modalai/voxl-camera-server.conf from running voxl-configure-cameras:
{ "version": 0.1, "fsync_en": false, "fsync_gpio": 109, "cameras": [{ "type": "ar0144", "name": "tracking1", "enabled": true, "camera_id": 0, "fps": 30, "en_rotate": false, "en_preview": true, "preview_width": 1280, "preview_height": 800, "en_raw_preview": true, "en_misp": true, "misp_width": 1280, "misp_height": 800, "misp_venc_enable": true, "misp_venc_mode": "h265", "misp_venc_br_ctrl": "cbr", "misp_venc_Qfixed": 38, "misp_venc_Qmin": 15, "misp_venc_Qmax": 50, "misp_venc_nPframes": 9, "misp_venc_mbps": 1.2, "misp_venc_osd": false, "misp_awb": "auto", "misp_gamma": 1, "misp_zoom": 1, "ae_mode": "lme_msv", "gain_min": 54, "gain_max": 8000, "ae_desired_msv": 60, "exposure_min_us": 20, "exposure_max_us": 12000, "exposure_soft_min_us": 5000, "ae_filter_alpha": 0.600000023841858, "ae_ignore_fraction": 0.20000000298023224, "ae_slope": 0.05000000074505806, "ae_exposure_period": 1, "ae_gain_period": 1 }, { "type": "ar0144", "name": "tracking2", "enabled": true, "camera_id": 1, "fps": 30, "en_rotate": false, "en_preview": true, "preview_width": 1280, "preview_height": 800, "en_raw_preview": true, "en_misp": true, "misp_width": 1280, "misp_height": 800, "misp_venc_enable": true, "misp_venc_mode": "h265", "misp_venc_br_ctrl": "cbr", "misp_venc_Qfixed": 38, "misp_venc_Qmin": 15, "misp_venc_Qmax": 50, "misp_venc_nPframes": 9, "misp_venc_mbps": 1.2, "misp_venc_osd": false, "misp_awb": "auto", "misp_gamma": 1, "misp_zoom": 1, "ae_mode": "lme_msv", "gain_min": 54, "gain_max": 8000, "ae_desired_msv": 60, "exposure_min_us": 20, "exposure_max_us": 12000, "exposure_soft_min_us": 5000, "ae_filter_alpha": 0.600000023841858, "ae_ignore_fraction": 0.20000000298023224, "ae_slope": 0.05000000074505806, "ae_exposure_period": 1, "ae_gain_period": 1 }] }Output of dmesg -w when I run voxl-camera-server -l
[ 42.046949] CAM_ERR: CAM-MEM: cam_mem_mgr_create_debug_fs: 126 failed to create dentry [ 42.059621] CAM_INFO: CAM-HFI: cam_hfi_init: 878 Init IO1 : [0x10c00000 0xcf300000] IO2 [0xe0200000 0x1ed00000] [ 42.069812] CAM_INFO: CAM-ICP: cam_icp_mgr_hw_open: 3879 FW download done successfully [ 42.069836] CAM_INFO: CAM-ICP: cam_icp_mgr_process_dbg_buf: 2572 FW_DBG:CICP_FW_E : HFI :QC_IMAGE_VERSION_STRING=CICP.FW.1.0-00079,OEM_IMAGE_VERSION_STRING=CRM,BUILD_TIME: Oct 17 2019 05:49:19,CACHE_ENABLED at icphostinterface.c:636 QC_IMAGE_VERSION_STRING=CICP.FW.1.0-00079 OEM_IMAGE_VERSION_STRING=CRM [ 42.069855] CAM_INFO: CAM-ICP: cam_icp_mgr_process_dbg_buf: 2572 FW_DBG:CICP_FW_E : HFI :ELF variant: CACHE-ENABLED:T480:API_V2:USE_CDM_1_1: , API version: 0x2000049 at icphostinterface.c:637 QC_IMAGE_VERSION_STRING=CICP.FW.1.0-00079 OEM_IMAGE_VERSION_STRING=CRM [ 42.096646] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor0: Linked as a consumer to regulator.58 [ 42.098798] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor0: Linked as a consumer to regulator.56 [ 42.100172] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor0: Linked as a consumer to regulator.60 [ 42.100223] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor0: Linked as a consumer to regulator.79 [ 42.123534] CAM_INFO: CAM-SENSOR: cam_sensor_driver_cmd: 918 Probe success,slot:0,slave_addr:0x30,sensor_id:0x356 [ 42.123597] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor0: Dropping the link to regulator.79 [ 42.127655] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor0: Dropping the link to regulator.60 [ 42.127690] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor0: Dropping the link to regulator.56 [ 42.127719] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor0: Dropping the link to regulator.58 [ 42.137439] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor1: Linked as a consumer to regulator.58 [ 42.139590] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor1: Linked as a consumer to regulator.56 [ 42.141850] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor1: Linked as a consumer to regulator.60 [ 42.141938] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor1: Linked as a consumer to regulator.79 [ 42.167191] CAM_ERR: CAM-CCI: cam_cci_irq: 264 Base: pK-error, M1_Q1 NACK ERROR: 0x40000000 [ 42.167345] CAM_ERR: CAM-CCI: cam_cci_read: 1329 ERROR with Slave 0x30: [ 42.167361] CAM_ERR: CAM-CCI: cam_cci_read_bytes: 1613 failed to read rc:-22 [ 42.167374] CAM_ERR: CAM-SENSOR: cam_cci_i2c_read: 35 rc = -22 [ 42.167389] CAM_WARN: CAM-SENSOR: cam_sensor_match_id: 707 read id: 0x0 expected id 0x356: [ 42.167602] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor1: Dropping the link to regulator.79 [ 42.172372] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor1: Dropping the link to regulator.60 [ 42.172686] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor1: Dropping the link to regulator.56 [ 42.172868] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor1: Dropping the link to regulator.58 [ 42.242714] CAM_WARN: CAM-CRM: cam_req_mgr_close: 160 release invoked associated userspace process has diedPhoto of setup:

-
You have the wrong kernel variant installed (2.0.2 instead of 2.0.0) on your voxl2 mini. You should re-install the SDK and select the correct kernel.
On the VOXL2 Mini, kernel versions 2.0.0 and 2.0.2 are ModalAI hardware/kernel variant identifiers (mach.var) used to select the correct device-tree and hardware configuration for different carrier/camera setups.
The key practical difference is:
Variant | Intended Hardware Configuration
2.0.0 | Standard VOXL2 Mini configuration / legacy non-coax adapters (what you are using)
2.0.2 | VOXL2 Mini configured for the M0188, M0194, M0195 and other u-coax camera adaptersWhen flashing the SDK, the installer exposes this as:
- Standard VOXL2 Mini (2.0.0)
- VOXL2 Mini with M0188 Camera Breakout Board (2.0.2)
Alex
-
@Alex-Kushleyev Thank you that fixed it for J6. Is there a reason the same config doesn't work on J7? Ideally was hoping to use J7 since it works better for our layout purposes.
I can get J6U-ar0144 and J6L-imx412 to work but not J7U-ar0144 and J7L-imx412 or J7U-imx412 and J7L-ar0144. For both it cannot find the lower sensor.
Also is there a reason the imx412 driver does not exist for J6 upper?