# VOXL2 Camera Configuration not found

Source: https://forum.modalai.com/topic/3994/voxl2-camera-configuration-not-found
Category: General Questions (https://forum.modalai.com/category/2/general-questions)
Posted: 2024-12-03 20:54:22 UTC by jcai
Replies: 9 · Views: 2140

## jcai · 2024-12-03 20:54:22 UTC

Hello,

I'm using a VOXL2 (board only), a micro-coax camera adapter (M0173), and an IMX412 (M0161).

I'm following the documentation [here](https://docs.modalai.com/voxl2-coax-camera-bundles/). When configuring SKU, I can set 20 for VOXL2-board-only but camera configurations 26-30 don't appear. The same is true if I run voxl-configure-camera.

Any ideas as to the cause? All components are connected to the VOXL already.

```
VOXL currently thinks it is in the following hardware:

family code:   MCCA-M0054 (voxl2-board-only)
compute board: 4 (voxl2)
hw version:    1
cam config:    0
modem config:   ()
tx config:      ()
extras config:  ()
SKU:           MCCA-M0054-C0-M0-X0

If this is what you want, select 1 (accept and continue) to
leave it as-is. Otherwise, select the desired product family:

 1) accept and continue      12) voxlcam
 2) starling-2               13) seeker
 3) starling-2-max           14) rb5-flight
 4) starling                 15) flight-deck
 5) px4-autonomy-dev-kit     16) voxl-deck
 6) sentinel                 17) voxl2-flight-deck
 7) fpv                      18) voxl2-test-fixture
 8) D0010                    19) voxl2-mini-test-fixture
 9) stinger                  20) voxl2-board-only
10) D0015                    21) voxl2-mini-board-only
11) m500                     22) quit
#? 20
selected voxl2-board-only
------------------------------------------------------------------
If you would like to select a special camera config that differs
from the default for your product family, please select an option.
Simply hit ENTER to use the default

01 - ov7251 tracking ov7251 stereo
02 - ov7251 tracking
03 - ov7251 tracking ov7251 stereo imx214 hires
04 - ov7251 tracking imx214 hires
05 - pmd-tof ov7251 tracking
06 - D0005 Starling pmd-tof imx214 hires ov7251 tracking
08 - imx214
09 - pmd-tof
10 - ov7251 stereo
11 - D0006 Sentinel
12 - ov9782 stereo
13 - ov9782 stereo imx214 hires
14 - ov9782 stereo pmd-tof ov7251 tracking (copy)
15 - D0008 dual 9782 tracking
16 - pmd-tof ov7251 dual tracking imx214 hires
17 - D0010 pmd-tof imx412 hires ov7251 tracking ov9782 stereo
18 - D0008 triple ov9782
19 - D0005 without tof imx214 hires ov7251 tracking
20 - D0011 imx412 hires ar0144 tracking
21 - old C6
22 - D0013 voxl2 mini dual ar0144
23 - D0010 without stereo
24 - pmd-tof LIOW2 (new TOF)
25 - dual ar0144
31 - D0013 COAX dual ar0144 tracking
32 - D0008 triple ov9782 rotated
 C - use user-defined custom camera config in
     (/data/modalai/custom_camera_config.txt)
 q - Quit The Wizard

Simply hit ENTER to use the default

selection: ^C
```

Thanks,
Josh

## Reply by tom (ModalAI staff) · 2024-12-03 21:06:08 UTC

@jcai You'll need to re-flash the latest SDK and select a kernel option for M0173 support. Different kernels are required to unlock different camera configs

## Reply by jcai · 2024-12-04 15:41:39 UTC (in reply to tom)

@tom I just flashed 1.3.5 and was able to configure C28. However, there still seems to be an issue.

My camera is connected to J5 on the breakout, which should be hires_down. Using `voxl-inspect-cam`, the camera shows up as hires_front.

Furthermore, if I disable just tracking_front in the camera server config file, the server will fail to initialize hires_front. Since I only have one camera physically connected, the camera server will not find any cameras and fail to start.

## Reply by jcai · 2024-12-04 16:35:07 UTC (in reply to jcai)

Also, I have a custom kernel build (that wasn't being used during my issues in my last comment) created by following this guide: https://docs.modalai.com/voxl2-kernel-build-guide/

The only change I made in this kernel was to enable `CONFIG_MACVLAN=y` by editing `kona-perf_defconfig` in
```
apps_proc/poky/meta-voxl2-bsp/recipes-kernel/linux-msm/files/configs/m0054
```

However, as you said, this kernel version doesn't support the M0173 breakout board. How do I build a version that does while also adding my macvlan config?

## Reply by modaltb (ModalAI staff) · 2024-12-04 20:06:31 UTC (in reply to jcai)

Hi @jcai ,

Please build the kernel using the argument to specify a 'variant' of the kernel:

`./qrb5165-build.sh -m M0054 -v var00.1`

I'm using this `var00.1` variable to pull in these device tree files basically:
  https://gitlab.com/voxl-public/system-image-build/meta-voxl2-bsp/-/tree/qrb5165-ubun1.0-14.1a/recipes-kernel/linux-msm/files/dts/variant/m0054/var00.1
Specifically for cameras:
  https://gitlab.com/voxl-public/system-image-build/meta-voxl2-bsp/-/blob/qrb5165-ubun1.0-14.1a/recipes-kernel/linux-msm/files/dts/variant/m0054/var00.1/m0054-modalai-camera.dtsi?ref_type=heads#L4
This happens here:
  https://gitlab.com/voxl-public/system-image-build/meta-voxl2-bsp/-/blob/qrb5165-ubun1.0-14.1a/recipes-kernel/linux-msm/linux-msm_4.19.bbappend?ref_type=heads#L187

For reference, the kernel tracks and exports info about itself to filesystem using this:
   https://gitlab.com/voxl-public/system-image-build/meta-voxl2/-/tree/qrb5165-ubun1.0-14.1a/recipes-kernel/voxl-platform-mod

-Travis

## Reply by jcai · 2024-12-09 18:01:34 UTC (in reply to jcai)

@jcai said in [VOXL2 Camera Configuration not found](/post/19976):
> @tom I just flashed 1.3.5 and was able to configure C28. However, there still seems to be an issue.
> 
> My camera is connected to J5 on the breakout, which should be hires_down. Using `voxl-inspect-cam`, the camera shows up as hires_front.
> 
> Furthermore, if I disable just tracking_front in the camera server config file, the server will fail to initialize hires_front. Since I only have one camera physically connected, the camera server will not find any cameras and fail to start.

Thanks Travis, I was able to get a build with the correct configuration options as well as my own changes. However, the issues I described above are still present. Could this be a hardware fault?

## Reply by modaltb (ModalAI staff) · 2024-12-10 19:24:57 UTC (in reply to jcai)

@jcai are you using a single IMX412 off M0173 J5?

C28 will setup a additional 4 sensors that likely will create some 'noise' in the logs when they fail to probe (assuming above sentence is accurate).

The sensor off J5 is "sensor ID 2", so we will want to use something like `com.qti.sensormodule.imx412_fpv_2.bin`:

E.g.
`cp /usr/share/modalai/chi-cdk/imx412-fpv/com.qti.sensormodule.imx412_fpv_2.bin /usr/lib/camera`

If only a single sensor off J5, you won't want other com.qti.sensormodule*.bins in /usr/lib/camera/ 

After copying the .bin above to /usr/lib/camera, If you run `voxl-camera-server -l` , do you get a single sensor?

## Reply by jcai · 2024-12-12 16:19:13 UTC (in reply to modaltb)

@modaltb yup, a single IMX412 on M0173 J5.

I've removed all the other `com.qti.sensormodule*.bin` files. These are the outputs I get when I run `voxl-camera-server -l` and `voxl-camera-server` with and without tracking_front enabled in the config file.

As you can see, I'm still getting the same strange behaviour.

Default C28:
```
voxl2:/$ voxl-camera-server -l
existing instance of voxl-camera-server found, attempting to stop it
DEBUG:   Attempting to open the hal module
DEBUG:   SUCCESS: Camera module opened on attempt 0
DEBUG:   ----------- Number of cameras: 1

DEBUG:   Cam idx: 0, Cam slot: 2, Slave Address: 0x0034, Sensor Id: 0x0577
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: 1

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

ANDROID_SCALER_AVAILABLE_RAW_SIZES:
These are likely supported by the sensor
4056 x 3040
3840 x 2160
1920 x 1080
1920 x 1080
1920 x 1080
1280 x  720
1280 x  720

ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS:
These are NOT necessarily supported by the sensor
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  512 HAL_PIXEL_FORMAT_YCbCr_420_888
 640 x  512 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
4056 x 3040 HAL_PIXEL_FORMAT_RAW10
4056 x 3040 HAL_PIXEL_FORMAT_RAW12
4056 x 3040 HAL_PIXEL_FORMAT_RAW16
4056 x 3040 HAL_PIXEL_FORMAT_RAW_OPAQUE

ANDROID_SENSOR_INFO_SENSITIVITY_RANGE
        min = 100
        max = 35200

ANDROID_SENSOR_MAX_ANALOG_SENSITIVITY
        2200

ANDROID_SENSOR_INFO_EXPOSURE_TIME_RANGE
        min = 0ns
        max = 243753000ns

====================================
Number of cameras detected: 1
====================================
```
```
voxl2:/$ voxl-camera-server
detected system image 1.7.10
using new imx412 defaults
detected system image 1.7.10
using new imx412 defaults
=================================================================
configuration for 4 cameras:

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

    en_preview:          1
    pre_width:           1280
    pre_height:          800
    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
    exif_focal_length:   0.000000
    exif_focal_len_35mm_format:0
    exif_fnumber:        0.000000

    ae_mode:             lme_msv
    msv_exposure_min_us: 20
    msv_exposure_max_us: 33000
    standby_enabled:     0
    decimator:           1
    independent_exposure:0

cam #1
    name:                hires_front
    sensor type:         imx412
    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:   640
    small_video_height:  480

    en_large_video:      0
    large_video_width:   4056
    large_video_height:  3040

    en_snapshot:         0
    snap_width:          4056
    snap_height:         3040
    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
    standby_enabled:     0
    decimator:           1
    independent_exposure:0

cam #2
    name:                hires_down
    sensor type:         imx412
    isEnabled:           1
    camId:               2
    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:   640
    small_video_height:  480

    en_large_video:      1
    large_video_width:   4056
    large_video_height:  3040

    en_snapshot:         1
    snap_width:          4056
    snap_height:         3040
    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
    standby_enabled:     0
    decimator:           1
    independent_exposure:0

cam #3
    name:                tracking_down
    sensor type:         ar0144
    isEnabled:           1
    camId:               3
    camId2:              -1
    fps:                 30
    en_rotate:           0
    en_rotate2:          0

    en_preview:          1
    pre_width:           1280
    pre_height:          800
    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
    exif_focal_length:   0.000000
    exif_focal_len_35mm_format:0
    exif_fnumber:        0.000000

    ae_mode:             lme_msv
    msv_exposure_min_us: 20
    msv_exposure_max_us: 33000
    standby_enabled:     0
    decimator:           1
    independent_exposure:0

fsync_en:            1
fsync_gpio:          109
=================================================================
Starting Camera: tracking_front (id #0)
Connected to cpu-monitor
ERROR:   Camera 0 failed to find supported preview config: 1280x800
WARNING: Failed to start cam tracking_front due to invalid resolution
WARNING: assuming cam is missing and trying to compensate
Starting Camera: hires_front (originally id #1) with id offset: 1
gbm_create_device(156): Info: backend name is: msm_drm
Starting Camera: hires_down (originally id #2) with id offset: 1
WARNING: cam hires_down (id 1) does not seem to be alive
Starting Camera: tracking_down (originally id #3) with id offset: 1
WARNING: cam tracking_down (id 2) does not seem to be alive

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

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

C28 with tracking_front disabled:
```
voxl2:/$ voxl-camera-server -l
DEBUG:   Attempting to open the hal module
DEBUG:   SUCCESS: Camera module opened on attempt 0
DEBUG:   ----------- Number of cameras: 1

DEBUG:   Cam idx: 0, Cam slot: 2, Slave Address: 0x0034, Sensor Id: 0x0577
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: 1

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

ANDROID_SCALER_AVAILABLE_RAW_SIZES:
These are likely supported by the sensor
4056 x 3040
3840 x 2160
1920 x 1080
1920 x 1080
1920 x 1080
1280 x  720
1280 x  720

ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS:
These are NOT necessarily supported by the sensor
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  512 HAL_PIXEL_FORMAT_YCbCr_420_888
 640 x  512 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
4056 x 3040 HAL_PIXEL_FORMAT_RAW10
4056 x 3040 HAL_PIXEL_FORMAT_RAW12
4056 x 3040 HAL_PIXEL_FORMAT_RAW16
4056 x 3040 HAL_PIXEL_FORMAT_RAW_OPAQUE

ANDROID_SENSOR_INFO_SENSITIVITY_RANGE
        min = 100
        max = 35200

ANDROID_SENSOR_MAX_ANALOG_SENSITIVITY
        2200

ANDROID_SENSOR_INFO_EXPOSURE_TIME_RANGE
        min = 0ns
        max = 243753000ns

====================================
Number of cameras detected: 1
====================================
```
```
voxl2:/$ voxl-camera-server
detected system image 1.7.10
using new imx412 defaults
detected system image 1.7.10
using new imx412 defaults
=================================================================
configuration for 4 cameras:

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

    en_preview:          1
    pre_width:           1280
    pre_height:          800
    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
    exif_focal_length:   0.000000
    exif_focal_len_35mm_format:0
    exif_fnumber:        0.000000

    ae_mode:             lme_msv
    msv_exposure_min_us: 20
    msv_exposure_max_us: 33000
    standby_enabled:     0
    decimator:           1
    independent_exposure:0

cam #1
    name:                hires_front
    sensor type:         imx412
    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:   640
    small_video_height:  480

    en_large_video:      0
    large_video_width:   4056
    large_video_height:  3040

    en_snapshot:         0
    snap_width:          4056
    snap_height:         3040
    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
    standby_enabled:     0
    decimator:           1
    independent_exposure:0

cam #2
    name:                hires_down
    sensor type:         imx412
    isEnabled:           1
    camId:               2
    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:   640
    small_video_height:  480

    en_large_video:      1
    large_video_width:   4056
    large_video_height:  3040

    en_snapshot:         1
    snap_width:          4056
    snap_height:         3040
    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
    standby_enabled:     0
    decimator:           1
    independent_exposure:0

cam #3
    name:                tracking_down
    sensor type:         ar0144
    isEnabled:           1
    camId:               3
    camId2:              -1
    fps:                 30
    en_rotate:           0
    en_rotate2:          0

    en_preview:          1
    pre_width:           1280
    pre_height:          800
    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
    exif_focal_length:   0.000000
    exif_focal_len_35mm_format:0
    exif_fnumber:        0.000000

    ae_mode:             lme_msv
    msv_exposure_min_us: 20
    msv_exposure_max_us: 33000
    standby_enabled:     0
    decimator:           1
    independent_exposure:0

fsync_en:            1
fsync_gpio:          109
=================================================================
Skipping Camera: tracking_front, configuration marked disabled
Starting Camera: hires_front (id #1)
WARNING: cam hires_front (id 1) does not seem to be alive
Starting Camera: hires_down (id #2)
WARNING: cam hires_down (id 2) does not seem to be alive
Starting Camera: tracking_down (id #3)
WARNING: cam tracking_down (id 3) does not seem to be alive
ERROR:   failed to initialize any cameras

------ voxl-camera-server: Started 0 of 4 cameras

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

------ voxl-camera-server: Camera server is now stopping
Connected to cpu-monitor

------ voxl-camera-server: Camera server exited gracefully, returning -1
```

## Reply by Alex Kushleyev (ModalAI staff) · 2024-12-13 04:17:47 UTC (in reply to jcai)

@jcai , please back up your camera configuration file for your reference and then modify it.

Since you only have one camera connected, please remove all the camera configs except for one imx412 and change the camera id for that camera to 0.

The camera configuration file is located in `/etc/modalai/voxl-camera-server.conf`. It is probably going to be easier to edit the file in a text editor, unless you are comfortable with `vi` / `vim`

If you want to add back other cameras, you first add the sensormodules back to `/usr/lib/camera`, then perform `voxl-camera-server -l` scan and see which cameras are detected as which IDs. Then update camera config file to add back the camera you need and double check the camera IDs that are listed in the camera config should match what you saw in `voxl-camera-server -l`. you can tell which camera is which by looking at Slave Address and Sensor Id output of `voxl-camera-server -l`.

For example the signature for IMX412 is:
```
Slave Address: 0x0034, Sensor Id: 0x0577
```

When camera server starts up, it goes through all the sensormodules in `/usr/lib/camera` and tries to use them to detect cameras on corresponding camera slots (each sensormodule is specific to a camera slot). Then the camera IDs are assigned the following way: lets say you detected three cameras in slots 1, 3, 4, so they will correspond to camera IDs (to be used in camera server config) as 0,1,2 (in the order of slot ids).

Alex

## Reply by jcai · 2024-12-18 20:50:51 UTC (in reply to Alex Kushleyev)

@Alex-Kushleyev Thanks, everything looks alright now that I've removed the other cameras from the config file
