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?
-
@awagner , I believe on VOXL2 Mini should be able to support any 4 cameras on the J6L, J6U, J7L, J7U (specifically the AR0144 (M0149) and IMX412 (M0107), which I assume you are using)
Can you please clarify the error that you are seeing? Is the issue the lack of correct sensormodule or something else? (you can check if correct sensormodules are present in
/usr/lib/cameraafter configuring the cameras). As a reminder, the J6L, maps to slot 0, J6U, slot 1, J7L slot 2 and J7U slot 3.Are you able to connect the 2 AR0144 cameras to J6 and J7?
What is your goal - how many of each cameras do you need to use? We can test it.
Alex