Configuring VOXL Cameras
When setting up a custom VOXL board for the first time or when changing camera configurations, you will need to configure VOXL’s software to make it aware of the physical camera configuration. This can easily be done by running the voxl-configure-cameras
script that’s included with the voxl-utils package.
voxl2:~$ voxl-configure-cameras
By default, without arguments given, this will prompt you for the configuration you are using from the list below:
Tool to configure camera server
Usage:
voxl-configure-cameras <config-id> - set up a specific cam config
voxl-configure-cameras sentinel_v1 - setup for Sentinel drone
voxl-configure-cameras fpv_revB - setup for fpv_revB
voxl-configure-cameras starling_v2 - setup for Starling
voxl-configure-cameras disable - disables voxl-camera-server
voxl-configure-cameras help - show this help text
If no config-id or arguments are given, the user will be
prompted with questions to help complete configuration
available camera config IDs are as follows:
0 None
1 tracking(ov7251) + Stereo(ov7251)
2 tracking(ov7251) Only
3 Hires(imx214) + Stereo(ov7251) + tracking(ov7251)
4 Hires(imx214) + tracking(ov7251)
5 TOF + tracking(ov7251)
6 Hires(imx214) + TOF + tracking(ov7251)
7 TOF + Stereo(ov7251) + tracking(ov7251)
8 Hires(imx214) Only
9 TOF Only
10 Stereo(ov7251) only
11 tracking(ov7251) + Hires(imx214) + Dual Stereo
12 Stereo(OV9782) only
13 Hires(imx214) + Stereo(ov7251)
14 Stereo(OV9782) + TOF + tracking(ov7251)
15 Dual OV9782
If you are using optional imx412 or imx678 units in place of the
default imx214 hires cameras, please use the following args to swap:
--imx412 or --imx678
To actually configure the cameras, add the correct integer argument like below:
voxl2:~$ voxl-configure-cameras 1
The following steps will done by the voxl-configure-cameras
script:
- A configuration file will be generated in VOXL’s file system at
/etc/modalai/voxl-camera-server.conf
- Correct sensormodule files will be copied from
/usr/share/modalai/chi-cdk/
to/usr/lib/camera/
and unused ones will be removed - Systemd service for
voxl-camera-server
will be registered to auto-start after reboot (equivalent tosystemctl enable voxl-camera-server
)
Due to the fact that the script messes with drivers and other low-level camera options, it is stongly recommended that you restart the board after running the script.
You can further customize the configuration (i.e. image resolutions) by editing the config file directly. We recommend reading the page on voxl-camera-server
for more information also.
Connect A New Camera
When a new camera is physically connected to VOXL2, it is not automatically detected by software. Please follow the steps below to enable a new camera that is added to an existing camera configuration
- identify the type of camera (such as IMX412, ov7251, AR0144, etc)
- based on where the new camera is actually connected, figure out the camera’s hardware slot ID
- For VOXL2 without M0173: link, see HW Sensor ID (0…5)
- VOXL2 J6L : slot 0, J6U : slot 1, J7L : slot 2, J7U : slot 3, J8L : slot 4, J8U : slot 5
- For VOXL2 + M0173: link link2:
- M0173 J1 : slot 0 (Front Tracking)
- M0173 J4 : slot 1 (Hires)
- M0173 J5 : slot 2 (Rear Tracking)
- M0173 J3 : slot 3 (TOF sensor)
- M0173 J2 : slot 6 (Down Tracking)
- VOXL2 J8L : slot 4 (can be used with M0076 or M0135, etc)
- VOXL2 J8U : slot 5 (can be used with M0076 or M0135, etc, but needs a kernel change due to a reset mapping change)
- For VOXL2 without M0173: link, see HW Sensor ID (0…5)
- copy the appropriate sensormodule from
/usr/share/modalai/chi-cdk/
to/usr/lib/camera
- check if camera is detected, see link
- you should see your new camera detected in the correct slot
- sensor i2c ID (WHOAMI register value) for all cameras is provided here
- also note the new camera IDs (not slot IDs). The camera IDs are sequentially assigned as the cameras are probed, so connecting the new camera can cause the camera IDs to shift
- update the camera IDs for previously existing cameras (in
/etc/modalai/voxl-camera-server.conf
)
- update the camera IDs for previously existing cameras (in
- add a new camera entry to
/etc/modalai/voxl-camera-server.conf
- if an additional camera is of the same type as another camera in the configuration, simply copy the whole entry and update the camera name and camera id and any settings you might want to change
- if the new camera is of a different type, you should at least try to start off with a similar configuration and update camera name, id, type
- if your new camera is present in another standard configuration, you can run
voxl-configure-cameras
and temporarily configure the system for that configuration, then checkvoxl-camera-server.conf
for the corresponding entry for your camera. After copying that entry, you can restore your original configuration and copy the new sensormodule again - keep in mind that running
voxl-configure-cameras
will change whichsensormodule
files (camera drivers) are present in/usr/lib/camera
and will re-writevoxl-camera-server.conf
(save changes before running it)
- if your new camera is present in another standard configuration, you can run
Useful Definitions
Camera ID
: Software ID, which is assigned to each camera as the camera is detected during probing state. Camera IDs start from zero and are consecutive.Slot ID
: Hardware ID that uniquely maps a camera to the hardware port on VOXL2. Slot ID of a camera remains the same regardless of what other cameras are connected.Sensor ID
: typically means the value of WHOAMI register, which is used to detect the camera via I2C (CCI) during camera probing stage as camera server starts up.