Link Search Menu Expand Document

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 to systemctl 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)
  • 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)
  • 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 check voxl-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 which sensormodule files (camera drivers) are present in /usr/lib/camera and will re-write voxl-camera-server.conf (save changes before running it)

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.