# VOXL 2 Mini Not Detecting Cameras

Source: https://forum.modalai.com/topic/2917/voxl-2-mini-not-detecting-cameras
Category: General Questions (https://forum.modalai.com/category/2/general-questions)
Posted: 2023-12-04 15:14:59 UTC by LucaVertiq
Replies: 9 · Views: 2286

## LucaVertiq · 2023-12-04 15:14:59 UTC

Hello, I'm attempting to bring up the VOXL 2 Mini for a project. I'm plugged in the hires and tracking cameras in as shown here:
https://docs.modalai.com/voxl2-mini-image-sensors/#mdk-m0104-1-c4---hires-tracking

voxl-version output is shown below.

```
voxl2-mini:~$ voxl-version
--------------------------------------------------------------------------------
system-image: 1.7.1-M0104-14.1a-perf-nightly-20231025
kernel:       #1 SMP PREEMPT Thu Oct 26 04:23:26 UTC 2023 4.19.125
--------------------------------------------------------------------------------
hw version:   M0104
--------------------------------------------------------------------------------
voxl-suite:   1.1.1
--------------------------------------------------------------------------------
Packages:
Repo:  http://voxl-packages.modalai.com/ ./dists/qrb5165/sdk-1.1/binary-arm64/
Last Updated: 2023-03-02 12:58:41
WARNING: repo file has changed since last update,
        packages may have originated from a different repo
List:
        libmodal-cv                 0.4.0
        libmodal-exposure           0.1.0
        libmodal-journal            0.2.2
        libmodal-json               0.4.3
        libmodal-pipe               2.9.2
        libqrb5165-io               0.4.2
        libvoxl-cci-direct          0.2.1
        libvoxl-cutils              0.1.1
        mv-voxl                     0.1-r0
        qrb5165-bind                0.1-r0
        qrb5165-dfs-server          0.2.0
        qrb5165-imu-server          1.0.0
        qrb5165-rangefinder-server  0.1.0
        qrb5165-slpi-test-sig       01-r0
        qrb5165-system-tweaks       0.2.3
        qrb5165-tflite              2.8.0-2
        voxl-bind-spektrum          0.1.0
        voxl-camera-calibration     0.5.3
        voxl-camera-server          1.8.7
        voxl-configurator           0.4.5
        voxl-cpu-monitor            0.4.7
        voxl-docker-support         1.3.0
        voxl-elrs                   0.1.3
        voxl-esc                    1.3.6
        voxl-feature-tracker        0.3.2
        voxl-flow-server            0.3.3
        voxl-gphoto2-server         0.0.10
        voxl-jpeg-turbo             2.1.3-5
        voxl-lepton-server          1.2.0
        voxl-libgphoto2             0.0.4
        voxl-libuvc                 1.0.7
        voxl-logger                 0.3.5
        voxl-mavcam-manager         0.5.3
        voxl-mavlink                0.1.1
        voxl-mavlink-server         1.3.2
        voxl-modem                  1.0.8
        voxl-mongoose               7.7.0-1
        voxl-mpa-to-ros             0.3.7
        voxl-mpa-tools              1.1.3
        voxl-opencv                 4.5.5-2
        voxl-portal                 0.6.2
        voxl-px4                    1.14.0-2.0.59
        voxl-px4-imu-server         0.1.2
        voxl-px4-params             0.3.2
        voxl-qvio-server            1.0.0
        voxl-remote-id              0.0.9
        voxl-streamer               0.7.4
        voxl-suite                  1.1.1
        voxl-tag-detector           0.0.4
        voxl-tflite-server          0.3.1
        voxl-utils                  1.3.3
        voxl-uvc-server             0.1.6
        voxl-vision-hub             1.7.2
        voxl2-system-image          1.7.1-r0
        voxl2-wlan                  1.0-r0
--------------------------------------------------------------------------------
```

Services shown here:
```
voxl2-mini:~$ voxl-inspect-services
Scanning services...

 Service Name             |  Enabled  |   Running   |  CPU Usage
-------------------------------------------------------------------
 docker-autorun           | Disabled  | Not Running |
 modallink-relink         | Disabled  | Not Running |
 voxl-camera-server       |  Enabled  | Not Running |
 voxl-cpu-monitor         |  Enabled  |   Running   |     0.1%
 voxl-dfs-server          | Disabled  | Not Running |
 voxl-feature-tracker     | Disabled  | Not Running |
 voxl-flow-server         | Disabled  | Not Running |
 voxl-imu-server          |  Enabled  |   Running   |     0.0%
 voxl-lepton-server       | Disabled  | Not Running |
 voxl-mavcam-manager      | Disabled  | Not Running |
 voxl-mavlink-server      |  Enabled  |   Running   |     0.4%
 voxl-modem               | Disabled  | Not Running |
 voxl-portal              |  Enabled  |   Running   |     0.2%
 voxl-px4-imu-server      | Disabled  | Not Running |
 voxl-px4                 | Disabled  | Not Running |
 voxl-qvio-server         | Disabled  | Not Running |
 voxl-rangefinder-server  | Disabled  | Not Running |
 voxl-remote-id           | Disabled  | Not Running |
 voxl-softap              | Disabled  | Not Running |
 voxl-static-ip           | Disabled  | Not Running |
 voxl-streamer            | Disabled  | Not Running |
 voxl-tag-detector        | Disabled  | Not Running |
 voxl-tflite-server       | Disabled  | Not Running |
 voxl-time-sync           | Disabled  | Not Running |
 voxl-uvc-server          | Disabled  | Not Running |
 voxl-vision-hub          |  Enabled  |   Running   |     0.9%
 voxl-wait-for-fs         |  Enabled  |  Completed  |
```

Before running the camera server I used:
```
 voxl-configure-cameras 4
Camera Configuration: 4

camera server config helper list:
tracking:ov7251:0:
hires:imx214:1:

driver binary list:
/usr/share/modalai/chi-cdk/ov7251/com.qti.sensormodule.ov7251_2.bin
/usr/share/modalai/chi-cdk/imx214/com.qti.sensormodule.imx214_3.bin

calling camera-server-config-helper tracking:ov7251:0: hires:imx214:1:
detected system image 1.7.1
using new imx214 defaults
successfully wrote this camera config to disk:
=================================================================
configuration for 2 cameras:

cam #0
    name:                tracking
    sensor type:         ov7251
    isEnabled:           1
    camId:               0
    camId2:              -1
    fps:                 30
    en_rotate:           0
    en_rotate2:          0

    en_preview:          1
    pre_width:           640
    pre_height:          480
    en_raw_preview:      1

    en_small_video:      0
    small_video_width:   -1
    small_video_height:  -1

    en_large_video:      0
    large_video_width:   -1
    large_video_height:  -1

    en_snapshot:         0
    snap_width:          -1
    snap_height:         -1

    ae_mode:             lme_msv
    standby_enabled:     0
    decimator:           1
    independent_exposure:0

cam #1
    name:                hires
    sensor type:         imx214
    isEnabled:           1
    camId:               1
    camId2:              -1
    fps:                 30
    en_rotate:           0
    en_rotate2:          0

    en_preview:          0
    pre_width:           640
    pre_height:          480
    en_raw_preview:      0

    en_small_video:      1
    small_video_width:   1024
    small_video_height:  768

    en_large_video:      1
    large_video_width:   4208
    large_video_height:  3120

    en_snapshot:         1
    snap_width:          4208
    snap_height:         3120

    ae_mode:             isp
    standby_enabled:     0
    decimator:           1
    independent_exposure:0

=================================================================
camera_server_config_helper is done
copying required camera drivers in place
/usr/share/modalai/chi-cdk/ov7251/com.qti.sensormodule.ov7251_2.bin
/usr/share/modalai/chi-cdk/imx214/com.qti.sensormodule.imx214_3.bin
enabling voxl-camera-server

------------------------------------------------------------------
Done Configuring Cameras
Please power cycle VOXL to load new drivers
camera server will start on next reboot
------------------------------------------------------------------
```

voxl-camera-server --list shows no cameras:
```
voxl2-mini:~$ voxl-camera-server --list
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
```

DMESG shows this each time I run camera server:
```
[ 2918.263294] CAM_ERR: CAM-MEM: cam_mem_mgr_create_debug_fs: 126 failed to create dentry
[ 2918.295287] CAM_INFO: CAM-HFI: cam_hfi_init: 878 Init IO1 : [0x10c00000 0xcf300000] IO2 [0xe0200000 0x1ed00000]
[ 2918.305642] 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
[ 2918.305653] CAM_INFO: CAM-ICP: cam_icp_mgr_hw_open: 3879 FW download done successfully
[ 2918.305661] 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
[ 2918.372954] qcom,camera ac50000.qcom,cci:qcom,cam-sensor2: Linked as a consumer to regulator.60
[ 2918.373051] qcom,camera ac50000.qcom,cci:qcom,cam-sensor2: Linked as a consumer to regulator.79
[ 2918.397175] CAM_INFO: CAM-SENSOR: cam_sensor_set_alt_id: 731 [Applying Alternative Address] : Sensor Index   : 3611762868
[ 2918.397187] CAM_INFO: CAM-SENSOR: cam_sensor_set_alt_id: 732 [Applying Alternative Address] : Slave Address  : 0xE2
[ 2918.397195] CAM_INFO: CAM-SENSOR: cam_sensor_set_alt_id: 733 [Applying Alternative Address] : Slave sensor id: 0x7750
[ 2918.397203] CAM_INFO: CAM-SENSOR: cam_sensor_set_alt_id: 734 [Applying Alternative Address] : cci_client sid : 0x71
[ 2918.397394] CAM_ERR: CAM-CCI: cam_cci_irq: 232 Base:        pK-error, M0_Q0 NACK ERROR: 0x8000000
[ 2918.397453] CAM_ERR: CAM-CCI: cam_cci_wait: 270 failed rc -22
[ 2918.397462] CAM_ERR: CAM-CCI: cam_cci_transfer_end: 345 failed rc -22
[ 2918.397473] CAM_ERR: CAM-CCI: cam_cci_data_queue: 870 Slave: 0xe0 failed rc -22
[ 2918.397479] CAM_ERR: CAM-CCI: cam_cci_i2c_write: 1450 failed rc: -22
[ 2918.397489] CAM_ERR: CAM-SENSOR: cam_cci_i2c_write_table_cmd: 123 Failed rc = -22
[ 2918.397498] CAM_ERR: CAM-SENSOR: cam_sensor_set_alt_id: 768 [Applying Alternative Address] : Probe : camera_io_dev_write failed: rc=-22
[ 2918.397596] CAM_ERR: CAM-CCI: cam_cci_read: 1340 read_words = 0, exp words = 1
[ 2918.397619] CAM_ERR: CAM-CCI: cam_cci_read_bytes: 1613 failed to read rc:-22
[ 2918.397643] CAM_ERR: CAM-SENSOR: cam_cci_i2c_read: 35 rc = -22
[ 2918.397661] CAM_ERR: CAM-CCI: cam_cci_irq: 238 Base:        pK-error, M0_Q1 NACK ERROR: 0x10000000
[ 2918.397682] CAM_WARN: CAM-SENSOR: cam_sensor_match_id: 707 read id: 0x0 expected id 0x7750:
[ 2918.397846] qcom,camera ac50000.qcom,cci:qcom,cam-sensor2: Dropping the link to regulator.79
[ 2918.402060] qcom,camera ac50000.qcom,cci:qcom,cam-sensor2: Dropping the link to regulator.60
[ 2918.430268] qcom,camera ac50000.qcom,cci:qcom,cam-sensor3: Linked as a consumer to regulator.55
[ 2918.430803] qcom,camera ac50000.qcom,cci:qcom,cam-sensor3: Linked as a consumer to regulator.60
[ 2918.430946] qcom,camera ac50000.qcom,cci:qcom,cam-sensor3: Linked as a consumer to regulator.79
[ 2918.448589] CAM_ERR: CAM-CCI: cam_cci_irq: 264 Base:        pK-error, M1_Q1 NACK ERROR: 0x40000000
[ 2918.448773] CAM_ERR: CAM-CCI: cam_cci_read: 1329 ERROR with Slave 0x20:
[ 2918.448784] CAM_ERR: CAM-CCI: cam_cci_read_bytes: 1613 failed to read rc:-22
[ 2918.448792] CAM_ERR: CAM-SENSOR: cam_cci_i2c_read: 35 rc = -22
[ 2918.448800] CAM_WARN: CAM-SENSOR: cam_sensor_match_id: 707 read id: 0x0 expected id 0x214:
[ 2918.448930] qcom,camera ac50000.qcom,cci:qcom,cam-sensor3: Dropping the link to regulator.79
[ 2918.452959] qcom,camera ac50000.qcom,cci:qcom,cam-sensor3: Dropping the link to regulator.60
[ 2918.453101] qcom,camera ac50000.qcom,cci:qcom,cam-sensor3: Dropping the link to regulator.55
[ 2918.502038] CAM_WARN: CAM-CRM: cam_req_mgr_close: 160 release invoked associated userspace process has died
```

Could I have some guidance on where to go next?

Thanks!

## Reply by Moderator (ModalAI staff) · 2023-12-04 18:07:47 UTC

@LucaVertiq can you please take a picture of your setup? It's likely that either the flex cables are installed backwards or not fully seated

## Reply by LucaVertiq · 2023-12-04 18:16:23 UTC (in reply to Moderator)

@Moderator Sure thing. Does this look right?![PXL_20231204_180950909.MP.jpg](https://forum.modalai.com/assets/uploads/files/1701713778514-pxl_20231204_180950909.mp.jpg) ![PXL_20231204_180935102.jpg](https://forum.modalai.com/assets/uploads/files/1701713778572-pxl_20231204_180935102.jpg) ![PXL_20231204_180929838.MP.jpg](https://forum.modalai.com/assets/uploads/files/1701713778598-pxl_20231204_180929838.mp.jpg)

## Reply by LucaVertiq · 2023-12-05 15:17:11 UTC

@Moderator I've attempted both cameras by themselves with proper configuration as well on the same interposer and no dice.

## Reply by Nathan Raras (ModalAI staff) · 2023-12-05 21:46:28 UTC (in reply to LucaVertiq)

@LucaVertiq I was able to replicate the same setup by following the documentation you provided. Running this command, which is documented at the bottom of the C4 camera configuration, switches the camera ids so that hires is on 0 and tracking is on 1 rather than vice versa. I was able to detect the two cameras but too could not get voxl-camera-server running yet. Hope this helps a bit!![Screenshot from 2023-12-05 11-59-23.png](https://forum.modalai.com/assets/uploads/files/1701812596701-screenshot-from-2023-12-05-11-59-23.png) 
![Screenshot from 2023-12-05 12-01-01.png](https://forum.modalai.com/assets/uploads/files/1701812605856-screenshot-from-2023-12-05-12-01-01.png)

## Reply by LucaVertiq · 2023-12-06 15:09:47 UTC (in reply to Nathan Raras)

@Nathan-Raras Thanks for testing that. When I did run that command and reboot I ended up with the same results as I had before.
```
voxl2-mini:~$ 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
```
Here's my voxl-camera-server.conf
Is there anything obviously wrong?
```
 cat /etc/modalai/voxl-camera-server.conf
/**
 * voxl-camera-server Configuration File
 *
 * Each camera has configurations for up to 4 HAL3 streams:
 *    - `preview` stream for raw unprocessed images from CV cameras
 *    - `small_video` 720p (ish) h264/h265 compressed for fpv video streaming
 *    - `large_video` 4k (ish) h264/h265 for onboard video recording to disk
 *    - `snapshot` ISP-processed JPG snapshots that get saved to disk
 *
 * on QRB5165 platforms (VOXL2 and VOXL2 mini) you can only have 3 of the 4 enabled
 *
 * This file is generated from default values by voxl-configure-cameras.
 * Do not expect arbitrary resolutions to work, the ISP and video compression
 * pipelines only support very specific resolutions.
 *
 * The default video compression mode is cqp or Constant Quantization Parameter
 *
 *
 *
 */
{
        "version":      0.1,
        "cameras":      [{
                        "type": "imx214",
                        "name": "hires",
                        "enabled":      true,
                        "camera_id":    0,
                        "fps":  30,
                        "en_preview":   false,
                        "preview_width":        640,
                        "preview_height":       480,
                        "en_raw_preview":       false,
                        "en_small_video":       true,
                        "small_video_width":    1024,
                        "small_video_height":   768,
                        "small_venc_mode":      "h265",
                        "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,
                        "en_large_video":       true,
                        "large_video_width":    4208,
                        "large_video_height":   3120,
                        "large_venc_mode":      "h265",
                        "large_venc_br_ctrl":   "cqp",
                        "large_venc_Qfixed":    38,
                        "large_venc_Qmin":      15,
                        "large_venc_Qmax":      50,
                        "large_venc_nPframes":  29,
                        "large_venc_mbps":      30,
                        "en_snapshot":  true,
                        "en_snapshot_width":    4208,
                        "en_snapshot_height":   3120,
                        "ae_mode":      "isp"
                }, {
                        "type": "ov7251",
                        "name": "tracking0",
                        "enabled":      true,
                        "camera_id":    1,
                        "fps":  30,
                        "en_rotate":    false,
                        "en_preview":   true,
                        "preview_width":        640,
                        "preview_height":       480,
                        "en_raw_preview":       true,
                        "ae_mode":      "lme_msv",
                        "ae_desired_msv":       60,
                        "exposure_min_us":      20,
                        "exposure_max_us":      33000,
                        "gain_min":     54,
                        "gain_max":     8000,
                        "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
                }]
}
```

## Reply by Nathan Raras (ModalAI staff) · 2023-12-06 19:52:28 UTC (in reply to LucaVertiq)

@LucaVertiq It seems that we had switched the image sensor binaries for 1.1.1 in which the tracking camera is connected to JL and hires is connected to JU as follows: ![Screenshot from 2023-12-06 11-42-10.png](https://forum.modalai.com/assets/uploads/files/1701891742766-screenshot-from-2023-12-06-11-42-10.png) 

After running the C4 configuration, you should be able to see the cameras enumerate when running: 
```
voxl-camera-server -l
```
![Screenshot from 2023-12-06 11-46-52.png](https://forum.modalai.com/assets/uploads/files/1701892103925-screenshot-from-2023-12-06-11-46-52.png) 

To view the pipes for each camera, we can run voxl-camera-server in debug mode using: 
```
voxl-camera-server -d0
```
and in a seperate terminal, run: 
```
voxl-inspect-cam -a
```
![Screenshot from 2023-12-06 11-51-07.png](https://forum.modalai.com/assets/uploads/files/1701892273575-screenshot-from-2023-12-06-11-51-07.png) 

Hope this helps!

## Reply by LucaVertiq · 2023-12-07 15:01:26 UTC (in reply to Nathan Raras)

@Nathan-Raras We're getting somewhere! So after running:
```
voxl-configure-cameras 04
```
and rebooting I now get this on list:

```
voxl2-mini:~$ 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: 0x00E2, Sensor Id: 0x7750
DEBUG:   Cam idx: 1, Cam slot: 3, Slave Address: 0x0020, Sensor Id: 0x0214
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

====================================
Stats for camera: 0

ANDROID_SCALER_AVAILABLE_RAW_SIZES:
These are likely supported by the sensor
 640 x  480
 640 x  480
 640 x  480

ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS:
These are NOT necessarily supported by the sensor
 640 x  480 HAL_PIXEL_FORMAT_YCbCr_420_888
 640 x  480 HAL_PIXEL_FORMAT_BLOB
 640 x  400 HAL_PIXEL_FORMAT_YCbCr_420_888
 640 x  400 HAL_PIXEL_FORMAT_BLOB
 640 x  360 HAL_PIXEL_FORMAT_YCbCr_420_888
 640 x  360 HAL_PIXEL_FORMAT_BLOB
 352 x  288 HAL_PIXEL_FORMAT_YCbCr_420_888
 352 x  288 HAL_PIXEL_FORMAT_BLOB
 320 x  240 HAL_PIXEL_FORMAT_YCbCr_420_888
 320 x  240 HAL_PIXEL_FORMAT_BLOB
 240 x  320 HAL_PIXEL_FORMAT_YCbCr_420_888
 240 x  320 HAL_PIXEL_FORMAT_BLOB
 176 x  144 HAL_PIXEL_FORMAT_YCbCr_420_888
 176 x  144 HAL_PIXEL_FORMAT_BLOB
 640 x  480 HAL_PIXEL_FORMAT_RAW10
 640 x  480 HAL_PIXEL_FORMAT_RAW12
 640 x  480 HAL_PIXEL_FORMAT_RAW16
 640 x  480 HAL_PIXEL_FORMAT_RAW_OPAQUE

ANDROID_SENSOR_INFO_SENSITIVITY_RANGE
        min = 54
        max = 3451

ANDROID_SENSOR_MAX_ANALOG_SENSITIVITY
        3451

ANDROID_SENSOR_INFO_EXPOSURE_TIME_RANGE
        min = 0ns
        max = 1266732525ns

====================================
Stats for camera: 1

ANDROID_SCALER_AVAILABLE_RAW_SIZES:
These are likely supported by the sensor
4208 x 3120
3840 x 2160
1920 x 1080
1920 x 1080

ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS:
These are NOT necessarily supported by the sensor
4208 x 3120 HAL_PIXEL_FORMAT_YCbCr_420_888
4208 x 3120 HAL_PIXEL_FORMAT_BLOB
4160 x 3120 HAL_PIXEL_FORMAT_YCbCr_420_888
4160 x 3120 HAL_PIXEL_FORMAT_BLOB
4096 x 2304 HAL_PIXEL_FORMAT_YCbCr_420_888
4096 x 2304 HAL_PIXEL_FORMAT_BLOB
4096 x 2160 HAL_PIXEL_FORMAT_YCbCr_420_888
4096 x 2160 HAL_PIXEL_FORMAT_BLOB
4056 x 3040 HAL_PIXEL_FORMAT_YCbCr_420_888
4056 x 3040 HAL_PIXEL_FORMAT_BLOB
4000 x 3000 HAL_PIXEL_FORMAT_YCbCr_420_888
4000 x 3000 HAL_PIXEL_FORMAT_BLOB
3840 x 2160 HAL_PIXEL_FORMAT_YCbCr_420_888
3840 x 2160 HAL_PIXEL_FORMAT_BLOB
3264 x 2448 HAL_PIXEL_FORMAT_YCbCr_420_888
3264 x 2448 HAL_PIXEL_FORMAT_BLOB
3200 x 2400 HAL_PIXEL_FORMAT_YCbCr_420_888
3200 x 2400 HAL_PIXEL_FORMAT_BLOB
2976 x 2976 HAL_PIXEL_FORMAT_YCbCr_420_888
2976 x 2976 HAL_PIXEL_FORMAT_BLOB
2688 x 1512 HAL_PIXEL_FORMAT_YCbCr_420_888
2688 x 1512 HAL_PIXEL_FORMAT_BLOB
2592 x 1944 HAL_PIXEL_FORMAT_YCbCr_420_888
2592 x 1944 HAL_PIXEL_FORMAT_BLOB
2048 x 1536 HAL_PIXEL_FORMAT_YCbCr_420_888
2048 x 1536 HAL_PIXEL_FORMAT_BLOB
1920 x 1440 HAL_PIXEL_FORMAT_YCbCr_420_888
1920 x 1440 HAL_PIXEL_FORMAT_BLOB
1928 x 1208 HAL_PIXEL_FORMAT_YCbCr_420_888
1928 x 1208 HAL_PIXEL_FORMAT_BLOB
1920 x 1080 HAL_PIXEL_FORMAT_YCbCr_420_888
1920 x 1080 HAL_PIXEL_FORMAT_BLOB
1600 x 1200 HAL_PIXEL_FORMAT_YCbCr_420_888
1600 x 1200 HAL_PIXEL_FORMAT_BLOB
1440 x 1080 HAL_PIXEL_FORMAT_YCbCr_420_888
1440 x 1080 HAL_PIXEL_FORMAT_BLOB
1280 x  960 HAL_PIXEL_FORMAT_YCbCr_420_888
1280 x  960 HAL_PIXEL_FORMAT_BLOB
1280 x  800 HAL_PIXEL_FORMAT_YCbCr_420_888
1280 x  800 HAL_PIXEL_FORMAT_BLOB
1280 x  768 HAL_PIXEL_FORMAT_YCbCr_420_888
1280 x  768 HAL_PIXEL_FORMAT_BLOB
1280 x  720 HAL_PIXEL_FORMAT_YCbCr_420_888
1280 x  720 HAL_PIXEL_FORMAT_BLOB
1080 x 1080 HAL_PIXEL_FORMAT_YCbCr_420_888
1080 x 1080 HAL_PIXEL_FORMAT_BLOB
1024 x  738 HAL_PIXEL_FORMAT_YCbCr_420_888
1024 x  738 HAL_PIXEL_FORMAT_BLOB
1024 x  768 HAL_PIXEL_FORMAT_YCbCr_420_888
1024 x  768 HAL_PIXEL_FORMAT_BLOB
 864 x  480 HAL_PIXEL_FORMAT_YCbCr_420_888
 864 x  480 HAL_PIXEL_FORMAT_BLOB
 800 x  600 HAL_PIXEL_FORMAT_YCbCr_420_888
 800 x  600 HAL_PIXEL_FORMAT_BLOB
 800 x  480 HAL_PIXEL_FORMAT_YCbCr_420_888
 800 x  480 HAL_PIXEL_FORMAT_BLOB
 720 x 1280 HAL_PIXEL_FORMAT_YCbCr_420_888
 720 x 1280 HAL_PIXEL_FORMAT_BLOB
 720 x  480 HAL_PIXEL_FORMAT_YCbCr_420_888
 720 x  480 HAL_PIXEL_FORMAT_BLOB
 640 x  480 HAL_PIXEL_FORMAT_YCbCr_420_888
 640 x  480 HAL_PIXEL_FORMAT_BLOB
 640 x  400 HAL_PIXEL_FORMAT_YCbCr_420_888
 640 x  400 HAL_PIXEL_FORMAT_BLOB
 640 x  360 HAL_PIXEL_FORMAT_YCbCr_420_888
 640 x  360 HAL_PIXEL_FORMAT_BLOB
 352 x  288 HAL_PIXEL_FORMAT_YCbCr_420_888
 352 x  288 HAL_PIXEL_FORMAT_BLOB
 320 x  240 HAL_PIXEL_FORMAT_YCbCr_420_888
 320 x  240 HAL_PIXEL_FORMAT_BLOB
 240 x  320 HAL_PIXEL_FORMAT_YCbCr_420_888
 240 x  320 HAL_PIXEL_FORMAT_BLOB
 176 x  144 HAL_PIXEL_FORMAT_YCbCr_420_888
 176 x  144 HAL_PIXEL_FORMAT_BLOB
4208 x 3120 HAL_PIXEL_FORMAT_RAW10
4208 x 3120 HAL_PIXEL_FORMAT_RAW12
4208 x 3120 HAL_PIXEL_FORMAT_RAW16
4208 x 3120 HAL_PIXEL_FORMAT_RAW_OPAQUE

ANDROID_SENSOR_INFO_SENSITIVITY_RANGE
        min = 54
        max = 431

ANDROID_SENSOR_MAX_ANALOG_SENSITIVITY
        431

ANDROID_SENSOR_INFO_EXPOSURE_TIME_RANGE
        min = 10449ns
        max = 683714540ns

====================================
Number of cameras detected: 2
====================================
voxl2-mini:~$
```

It's detecting the cameras! Woo!

But on reboot with the camera server enabled it still crashed. Running the camera server gets something, but then says aborted after a few seconds
```
voxl2-mini:~$ voxl-camera-server
GPS server Connected
detected system image 1.7.1
using new imx214 defaults
=================================================================
configuration for 2 cameras:

cam #0
    name:                tracking
    sensor type:         ov7251
    isEnabled:           1
    camId:               0
    camId2:              -1
    fps:                 30
    en_rotate:           0
    en_rotate2:          0

    en_preview:          1
    pre_width:           640
    pre_height:          480
    en_raw_preview:      1

    en_small_video:      0
    small_video_width:   -1
    small_video_height:  -1

    en_large_video:      0
    large_video_width:   -1
    large_video_height:  -1

    en_snapshot:         0
    snap_width:          -1
    snap_height:         -1

    ae_mode:             lme_msv
    standby_enabled:     0
    decimator:           1
    independent_exposure:0

cam #1
    name:                hires
    sensor type:         imx214
    isEnabled:           1
    camId:               1
    camId2:              -1
    fps:                 30
    en_rotate:           0
    en_rotate2:          0

    en_preview:          0
    pre_width:           640
    pre_height:          480
    en_raw_preview:      0

    en_small_video:      1
    small_video_width:   1024
    small_video_height:  768

    en_large_video:      1
    large_video_width:   4208
    large_video_height:  3120

    en_snapshot:         1
    snap_width:          4208
    snap_height:         3120

    ae_mode:             isp
    standby_enabled:     0
    decimator:           1
    independent_exposure:0

=================================================================
Starting Camera: tracking
Using gain limits min: 54 max: 3451
gbm_create_device(156): Info: backend name is: msm_drm
Starting Camera: hires
Using gain limits min: 54 max: 431
WARNING: Port Def 0:
        Count Min: 8
        Count Actual: 16
        Size: 0x180000
        Buffers Contiguous: Yes
        Buffer Alignment: 0
WARNING: Port Def 1:
        Count Min: 4
        Count Actual: 16
        Size: 0x5a0000
        Buffers Contiguous: No
        Buffer Alignment: 0
gbm_create_device(156): Info: backend name is: msm_drm
gbm_create_device(156): Info: backend name is: msm_drm
gbm_create_device(156): Info: backend name is: msm_drm
gbm_create_device(156): Info: backend name is: msm_drm
gbm_create_device(156): Info: backend name is: msm_drm
gbm_create_device(156): Info: backend name is: msm_drm
gbm_create_device(156): Info: backend name is: msm_drm
gbm_create_device(156): Info: backend name is: msm_drm
gbm_create_device(156): Info: backend name is: msm_drm
gbm_create_device(156): Info: backend name is: msm_drm
gbm_create_device(156): Info: backend name is: msm_drm
gbm_create_device(156): Info: backend name is: msm_drm
gbm_create_device(156): Info: backend name is: msm_drm
gbm_create_device(156): Info: backend name is: msm_drm
gbm_create_device(156): Info: backend name is: msm_drm
gbm_create_device(156): Info: backend name is: msm_drm
WARNING: Port Def 0:
        Count Min: 8
        Count Actual: 16
        Size: 0x17a0000
        Buffers Contiguous: Yes
        Buffer Alignment: 0
WARNING: Port Def 1:
        Count Min: 4
        Count Actual: 16
        Size: 0x5ec000
        Buffers Contiguous: No
        Buffer Alignment: 0
gbm_create_device(156): Info: backend name is: msm_drm
gbm_create_device(156): Info: backend name is: msm_drm
gbm_create_device(156): Info: backend name is: msm_drm
gbm_create_device(156): Info: backend name is: msm_drm
gbm_create_device(156): Info: backend name is: msm_drm
gbm_create_device(156): Info: backend name is: msm_drm
gbm_create_device(156): Info: backend name is: msm_drm
gbm_create_device(156): Info: backend name is: msm_drm
gbm_create_device(156): Info: backend name is: msm_drm
gbm_create_device(156): Info: backend name is: msm_drm
gbm_create_device(156): Info: backend name is: msm_drm
gbm_create_device(156): Info: backend name is: msm_drm
gbm_create_device(156): Info: backend name is: msm_drm
gbm_create_device(156): Info: backend name is: msm_drm
gbm_create_device(156): Info: backend name is: msm_drm
gbm_create_device(156): Info: backend name is: msm_drm

------ voxl-camera-server: Camera server is now running
Aborted
```

Can't fit the verbose output in the forum post, but I've saved it. I can't seem to attach it to a forum post though.

## Reply by LucaVertiq · 2023-12-07 15:17:39 UTC (in reply to LucaVertiq)

EDIT: It all works! I think I have a better understanding of how things work now? When I was only detecting one camera, the camera was on the upper connector and I had to have it as the first camera in the config for it to work. When I re-seated the cable and could detect two cameras I had to have the first cam in the config be the tracking one from the lower connector and the hires be on the upper. Now it all works. Thanks for the help!

@Nathan-Raras Now after a few reboots and changing things I'm detecting the hires, but no tracking, but it's not crashing.

I'm just going to put my voxl-camera-server.conf file here, and the binaries that are in /usr/lib/camera. 
```
voxl2-mini:~$ ls /usr/lib/camera/
com.qti.eeprom.cmk_imx577.so       com.qti.sensor.ov7251_front_left.so        com.qti.sensor.ov9782_front_right.so
com.qti.sensor.ar0144.so           com.qti.sensor.ov7251_front_left_flip.so   com.qti.sensor.ov9782_front_right_flip.so
com.qti.sensor.cmk_imx577.so       com.qti.sensor.ov7251_front_right.so       com.qti.sensor.ov9782_rear_left.so
com.qti.sensor.cmk_imx577_flip.so  com.qti.sensor.ov7251_front_right_flip.so  com.qti.sensor.ov9782_rear_left_flip.so
com.qti.sensor.imx214.so           com.qti.sensor.ov7251_fsin.so              com.qti.sensor.ov9782_rear_right.so
com.qti.sensor.imx214_flip.so      com.qti.sensor.ov7251_fsout.so             com.qti.sensor.ov9782_rear_right_flip.so
com.qti.sensor.imx335.so           com.qti.sensor.ov7251_rear_left.so         com.qti.sensormodule.imx214_3.bin
com.qti.sensor.imx377.so           com.qti.sensor.ov7251_rear_left_flip.so    com.qti.sensormodule.ov7251_2.bin
com.qti.sensor.imx678.so           com.qti.sensor.ov7251_rear_right.so        com.qti.tuned.cmk_imx577.bin
com.qti.sensor.imx678_flip.so      com.qti.sensor.ov7251_rear_right_flip.so   com.qti.tuned.cmk_ov9282.bin
com.qti.sensor.imx678_mod.so       com.qti.sensor.ov9782.so                   com.qti.tuned.default.bin
com.qti.sensor.irs1645.so          com.qti.sensor.ov9782_front_left.so        com.qti.tuned.sony_imx335.bin
com.qti.sensor.ov7251.so           com.qti.sensor.ov9782_front_left_flip.so   components
```

```
voxl2-mini:~$ cat /etc/modalai/voxl-camera-server.conf
/**
 * voxl-camera-server Configuration File
 *
 * Each camera has configurations for up to 4 HAL3 streams:
 *    - `preview` stream for raw unprocessed images from CV cameras
 *    - `small_video` 720p (ish) h264/h265 compressed for fpv video streaming
 *    - `large_video` 4k (ish) h264/h265 for onboard video recording to disk
 *    - `snapshot` ISP-processed JPG snapshots that get saved to disk
 *
 * on QRB5165 platforms (VOXL2 and VOXL2 mini) you can only have 3 of the 4 enabled
 *
 * This file is generated from default values by voxl-configure-cameras.
 * Do not expect arbitrary resolutions to work, the ISP and video compression
 * pipelines only support very specific resolutions.
 *
 * The default video compression mode is cqp or Constant Quantization Parameter
 *
 *
 *
 */
{
        "version":      0.1,
        "cameras":      [{
                        "type": "imx214",
                        "name": "hires",
                        "enabled":      true,
                        "camera_id":    0,
                        "fps":  30,
                        "en_preview":   false,
                        "preview_width":        640,
                        "preview_height":       480,
                        "en_raw_preview":       false,
                        "en_small_video":       true,
                        "small_video_width":    1024,
                        "small_video_height":   768,
                        "small_venc_mode":      "h265",
                        "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,
                        "en_large_video":       true,
                        "large_video_width":    4208,
                        "large_video_height":   3120,
                        "large_venc_mode":      "h265",
                        "large_venc_br_ctrl":   "cqp",
                        "large_venc_Qfixed":    38,
                        "large_venc_Qmin":      15,
                        "large_venc_Qmax":      50,
                        "large_venc_nPframes":  29,
                        "large_venc_mbps":      30,
                        "en_snapshot":  true,
                        "en_snapshot_width":    4208,
                        "en_snapshot_height":   3120,
                        "ae_mode":      "isp"
                }, {
                        "type": "ov7251",
                        "name": "tracking",
                        "enabled":      true,
                        "camera_id":    1,
                        "fps":  30,
                        "en_rotate":    false,
                        "en_preview":   true,
                        "preview_width":        640,
                        "preview_height":       480,
                        "en_raw_preview":       true,
                        "ae_mode":      "lme_msv",
                        "ae_desired_msv":       60,
                        "exposure_min_us":      20,
                        "exposure_max_us":      33000,
                        "gain_min":     54,
                        "gain_max":     8000,
                        "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
                }]
}
```

## Reply by Nathan Raras (ModalAI staff) · 2023-12-12 19:49:26 UTC (in reply to LucaVertiq)

@LucaVertiq Looking at your voxl-camera-server.conf file, it looks like the configurations are flipped in which tracking should be on camera_id: 0 and hires should be on camera_id: 1. Deleting the camera drivers in /usr/lib/camera and reconfiguring should fix that issue in your voxl-camera-server.conf file
```
rm com.qti.sensormodule.imx214_3.bin
```
```
rm com.qti.sensormodule.ov7251_2.bin 

```
```
voxl-configure-cameras 04
```
