# Custom voxl-camera-server config service aborts itself

Source: https://forum.modalai.com/topic/5426/custom-voxl-camera-server-config-service-aborts-itself
Category: ESCs, Sensors and Accessories (https://forum.modalai.com/category/15/escs-sensors-and-accessories)
Posted: 2026-09-21 19:09:18 UTC by ApoorvThapliyal
Replies: 0 · Views: 12

## ApoorvThapliyal · 2026-09-21 19:09:18 UTC

**Hardware:** (board / drone / SKU, serial # if you have it)
VOXL2 (Custom drone)

**Software version:** (paste the output of `voxl-version`)
```bash
dpkg-query: package 'voxl-suite' is not installed and no information is available
Use dpkg --info (= dpkg-deb --info) to examine archive files,
and dpkg --contents (= dpkg-deb --contents) to list their contents.
--------------------------------------------------------------------------------
system-image: 1.8.02-M0054-14.1a-perf
kernel:       #1 SMP PREEMPT Mon Nov 11 22:47:44 UTC 2024 4.19.125
--------------------------------------------------------------------------------
hw platform:  M0054
mach.var:     1.0.1
--------------------------------------------------------------------------------
voxl-suite:
--------------------------------------------------------------------------------
Packages:
Repo:  http://voxl-packages.modalai.com/ qrb5165 sdk-1.6
Last Updated: 2026-09-08 20:00:54
List:
kernel-module-voxl-fsync-mod-4.19.125     1.0-r0
kernel-module-voxl-gpio-mod-4.19.125      1.0-r0
kernel-module-voxl-platform-mod-4.19.125  1.0-r0
libfc-sensor                              1.0.12-202603311017
libmodal-cv                               0.6.1
libmodal-exposure                         0.1.5
libmodal-flow                             1.0.5
libmodal-journal                          0.2.7
libmodal-json                             0.4.8
libmodal-pipe                             2.14.12
libqrb5165-io                             0.6.3
libvoxl-cci-direct                        0.4.0
libvoxl-codec                             0.1.1
libvoxl-cutils                            0.1.6
modalai-slpi                              1.2.3-202604071122
mv-voxl                                   0.1-r0
qrb5165-bind                              0.1-r0
qrb5165-dfs-server                        0.2.0
qrb5165-imu-server                        1.2.4
qrb5165-mini-tof-server                   0.2.2-apoorv
qrb5165-rangefinder-server                0.1.6
qrb5165-slpi-test-sig                     01-r0
qrb5165-system-tweaks                     0.3.4
qrb5165-tflite                            2.8.0-2
voxl-bind-spektrum                        0.1.1
voxl-camera-calibration                   0.6.2
voxl-camera-server                        2.2.29
voxl-ceres-solver                         2:2.0.0-3
voxl-configurator                         1.1.35
voxl-cpu-monitor                          0.7.7
voxl-docker-support                       1.3.1
voxl-elrs                                 1.1.7
voxl-esc                                  1.6.3
voxl-esptool                              0.2.1
voxl-fsync-mod                            1.0-r0
voxl-gphoto2-server                       0.0.10
voxl-gpio-mod                             1.0-r0
voxl-io-server                            0.1.3
voxl-jpeg-turbo                           2.1.3-7
voxl-lepton-server                        1.4.1
voxl-libgeographic                        1.0.0
voxl-libgphoto2                           0.0.4
voxl-libuvc                               1.0.7
voxl-logger                               0.6.5-202607281100
voxl-mapper                               0.2.4
voxl-mavcam-manager                       0.6.1
voxl-mavlink                              0.1.6
voxl-mavlink-server                       1.4.16
voxl-microdds-agent                       3.0.0-0
voxl-modem                                1.2.5
voxl-mongoose                             7.19.0-1
voxl-mpa-to-ros2                          0.0.7-202511100959
voxl-mpa-tools                            1.5.8
voxl-nlopt                                2.5.0-5
voxl-open-vins-server                     0.6.2
voxl-opencv                               4.5.5-3
voxl-osd                                  0.4.12
voxl-platform-mod                         1.0-r0
voxl-portal                               0.9.4
voxl-px4                                  1.14.0-2.0.134
voxl-px4-imu-server                       0.1.2
voxl-px4-params                           0.9.15
voxl-remote-id                            0.0.9
voxl-reset-slpi                           0.0.4-202603311011
voxl-ros2-foxy                            0.0.1-202511141235
voxl-streamer                             0.8.1
voxl-tag-detector                         0.1.0-custom
voxl-tflite-server                        0.5.1
voxl-utils                                1.4.4
voxl-uvc-server                           0.1.8
voxl-vision-hub                           1.9.21
voxl-voxblox                              1.1.5
voxl-vtx                                  2.2.42
voxl2-io                                  0.0.3
voxl2-system-image                        1.8.02-r0
voxl2-wlan                                1.0-r0
--------------------------------------------------------------------------------
```

**Configuration / services:** (paste the output of `voxl-inspect-services`)
```bash
voxl2:~$ 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   |     1.2%
 voxl-dfs-server          | Disabled  | Not Running |
 voxl-imu-server          |  Enabled  |   Running   |     3.1%
 voxl-io-server           | Disabled  | Not Running |
 voxl-lepton-server       | Disabled  | Not Running |
 voxl-logger-auto         | Disabled  | Not Running |
 voxl-logger              | Disabled  | Not Running |
 voxl-mapper              | Disabled  | Not Running |
 voxl-mavcam-manager      | Disabled  | Not Running |
 voxl-mavlink-server      |  Enabled  |   Running   |     3.1%
 voxl-microdds-agent      |  Enabled  |   Running   |     6.5%
 voxl-mini-tof-server     | Disabled  | Not Running |
 voxl-modem-doodle        | Disabled  | Not Running |
 voxl-modem               | Disabled  | Not Running |
 voxl-mpa-to-ros2         |  Enabled  |   Running   |     0.0%
 voxl-open-vins-server    | Disabled  | Not Running |
 voxl-osd                 | Disabled  | Not Running |
 voxl-portal              |  Enabled  |   Running   |     0.1%
 voxl-px4-imu-server      | Disabled  | Not Running |
 voxl-px4                 |  Enabled  |   Running   |    44.4%
 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            |  Enabled  |   Running   |     0.0%
 voxl-tag-detector        |  Enabled  |   Running   |     0.0%
 voxl-tflite-server       | Disabled  | Not Running |
 voxl-time-sync           | Disabled  | Not Running |
 voxl-uvc-server          | Disabled  | Not Running |
 voxl-vision-hub          |  Enabled  |   Running   |     2.2%
 voxl-vrx                 | Disabled  | Not Running |
 voxl-vtx                 | Disabled  | Not Running |
 voxl-wait-for-fs         |  Enabled  |  Completed  |
```

**What I am trying to do:**
Run a tracking down and tracking front camera

**What actually happens:** (error messages, behavior)
When running voxl-camera-server, the service just aborts, log below:
```bash
voxl2:~$ voxl-camera-server
Setting MISP AWB to Auto
MISP channels enabled in defaults : 0
MISP channels enabled in config file: 0
Setting MISP AWB to Auto
MISP channels enabled in defaults : 0
MISP channels enabled in config file: 0
=================================================================
configuration for 2 cameras:

cam #0
    name:                tracking_front
    type:                ar0144
    bayer_type:          0
    enabled:             1
    camera_id:           0
    camera_id_second:    -1
    fps:                 30
    en_rotate:           0
    en_rotate2:          0

    en_preview:          1
    en_raw_preview:      1
    preview_width:       1280
    preview_height:      800

    en_misp:             1
    misp_width:          1280
    misp_height:         800
    demosaic:            auto

    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: 12000
    gain_min           : 54
    gain_max           : 8000
    standby_enabled:     0
    decimator:           1
    independent_exposure:0

cam #1
    name:                tracking_down
    type:                ar0144
    bayer_type:          0
    enabled:             1
    camera_id:           1
    camera_id_second:    -1
    fps:                 30
    en_rotate:           0
    en_rotate2:          0

    en_preview:          1
    en_raw_preview:      1
    preview_width:       1280
    preview_height:      800

    en_misp:             1
    misp_width:          1280
    misp_height:         800
    demosaic:            auto

    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: 12000
    gain_min           : 54
    gain_max           : 8000
    standby_enabled:     0
    decimator:           1
    independent_exposure:0

fsync_en:            0
fsync_gpio:          109
=================================================================
Cam idx: 0, Cam slot: 1, Slave Address: 0x0030, Sensor Id: 0x0356
Cam idx: 1, Cam slot: 6, Slave Address: 0x0030, Sensor Id: 0x0356
thread is locked to cores: 4 5 6 7
connected to mavlink pipe
Connected to cpu-monitor
Starting Camera: tracking_front (id #0)
ModalExposureMSV: initializing for camera name tracking_front type ar0144
gbm_create_device(156): Info: backend name is: msm_drm
MISP Initializing for camera tracking_front
 Detected 1 platform(s)
 Detected 1 GPU device(s)
Estimated imu dt = 0.000977s
ERROR in json_from_yaml, failed to open file
MISP: Loading intrinsics cal file tracking_front_intrinsics.yml for camera tracking_front, ret -1
WARNING: Lens calibration for camera tracking_front is missing (tracking_front_intrinsics.yml). Using defaults:
Creating VOXL Video Encoder: 1280x800 H265, CH_OUT: -1776841196, numInputBufs: 16
gbm_create_device(156): Info: backend name is: msm_drm
WARNING: OMX SetTargetBitrate: H265 CBR requires bps >= 3.0Mbit (1200000 bps provided). Using FPS hack. scale = 2.500000
Starting Camera: tracking_down (id #1)
ModalExposureMSV: initializing for camera name tracking_down type ar0144
MISP Initializing for camera tracking_down
ERROR in json_from_yaml, failed to open file
MISP: Loading intrinsics cal file tracking_down_intrinsics.yml for camera tracking_down, ret -1
WARNING: Lens calibration for camera tracking_down is missing (tracking_down_intrinsics.yml). Using defaults:
Creating VOXL Video Encoder: 1280x800 H265, CH_OUT: -1759368012, numInputBufs: 16
gbm_create_device(156): Info: backend name is: msm_drm
WARNING: OMX SetTargetBitrate: H265 CBR requires bps >= 3.0Mbit (1200000 bps provided). Using FPS hack. scale = 2.500000

------ voxl-camera-server: Started 2 of 2 cameras

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

The last `Aborted` comes after a couple of seconds

What is interesting to note, is that the camera server start working after a couple of `systemctl restart voxl-camera-server` commands, both the tracking down and tracking front camera feeds show up in `voxl-portal`

**Steps to reproduce:**
Heres how my `/data/modalai/custom_acmera_config.txt` is defined: 
```bash
#!/bin/bash

################################################################################
#
# This file allows setting of custom camera configurations by defining what
# sensors are plugged into which port.
#
# There is no guarantee that any arbitrary configuration will work. Only the
# predefined camera configs at https://docs.modalai.com/voxl2-camera-configs/
# are supported.
#
# each slot can be one of the following sensors:
#
# pmd-tof
# pmd-tof-liow2
# ov7251
# ov7251-combo
# ov9782
# ov9782-combo
# ar0144
# ar0144-fsin (for use with m0173 and Starling 2 only)
# ar0144-fsin-combo (for use with m0173 and Starling 2 only)
# ar0144-12bit
# ar0144-12bit-fsin (for use with m0173 and Starling 2 only)
# ar0144-12bit-fsin-combo (for use with m0173 and Starling 2 only)
# imx214
# imx412
# imx412-fpv (low latency mode)
# imx678
#
#
# When using a combo mode pair, you must also add a JX_COMBO_MODE field which
# specifies is the pair is to be set up as either a stereo pair ordered
# left-right, right-left, or treated as two independent cameras. If you are
# using a combo-mode flex but only physically connect one of the two cameras
# then select "single" it does not matter which one you connect.
#
# For example:
# J6_LOWER_COMBO_MODE="left-right"
# J6_LOWER_COMBO_MODE="right-left"
# J6_LOWER_COMBO_MODE="independent"
# J6_LOWER_COMBO_MODE="single"
#
# when running "independent" combo mode, also add a NAME2 field for the second cam
# e.g J6_LOWER_NAME2="tracking_rear"
#
# for all sensors except TOF, you can specify a "rotate" flag to
# rotate the image 180 degrees e.g. J6_LOWER_ROTATE="true" or "false"
# for stereo pairs (e.g. ov7251 combo or ar0144-slave-strereo) you can specify
# "rotate-first-only" or "rotate-second-only" to only rotate one, other wise
# when setting the rotate option to "true" both will be rotated.
#
#
# Once configured, this file should live in /data/modalai/custom_camera-config.txt
# then run voxl-configure-cameras custom to load it in
#
#
# cp /usr/share/modalai/voxl-camera-server/custom_camera_config.txt /data/modalai/
#
# We also suggest changing your /data/modalai/sku.txt file to have a camera
# config term "CC" such as MRB-D0005-4-V2-CC
################################################################################

J6_LOWER_SENSOR=""
J6_LOWER_NAME=""
J6_LOWER_ROTATE="false"

J6_UPPER_SENSOR="ar0144"
J6_UPPER_NAME="tracking_front"
J6_UPPER_ROTATE="false"

J6_LOWER_COMBO1_SENSOR="ar0144-fsin-combo"
J6_LOWER_COMBO1_NAME="tracking_down"
J6_LOWER_COMBO1_ROTATE="false"

J7_LOWER_SENSOR=""
J7_LOWER_NAME=""
J7_LOWER_ROTATE="false"

J7_UPPER_SENSOR=""
J7_UPPER_NAME=""
J7_UPPER_ROTATE="false"

J8_LOWER_SENSOR=""
J8_LOWER_NAME=""
J8_LOWER_ROTATE="false"

J8_UPPER_SENSOR=""
J8_UPPER_NAME=""
J8_UPPER_ROTATE="false"
```

**Logs / pictures:** (attach files; PX4 logs -> https://logs.px4.io)

Heres how the `voxl-camera-server.conf` is defined: 
```bash
/**
 * 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,
	"fsync_en":	false,
	"fsync_gpio":	109,
	"cameras":	[{
			"type":	"ar0144",
			"name":	"tracking_front",
			"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_irPeriod":	0,
			"misp_venc_irPeriodType":	1,
			"misp_venc_mbps":	1.2,
			"misp_awb":	"auto",
			"misp_gamma":	1,
			"misp_zoom":	1,
			"demosaic":	"auto",
			"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.6,
			"ae_ignore_fraction":	0.2,
			"ae_slope":	0.05,
			"ae_exposure_period":	1,
			"ae_gain_period":	1
		}, {
			"type":	"ar0144",
			"name":	"tracking_down",
			"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_irPeriod":	0,
			"misp_venc_irPeriodType":	1,
			"misp_venc_mbps":	1.2,
			"misp_awb":	"auto",
			"misp_gamma":	1,
			"misp_zoom":	1,
			"demosaic":	"auto",
			"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.6,
			"ae_ignore_fraction":	0.2,
			"ae_slope":	0.05,
			"ae_exposure_period":	1,
			"ae_gain_period":	1
		}]
}
```
