Link Search Menu Expand Document

VOXL 2 - D0006 Architectures

Table of contents

  1. VOXL2 - D0006-C11-M13-T1
    1. Hardware
      1. Summary
      2. Components
      3. HW Block Diagram
      4. HW Theory of Operation
    2. Software
      1. Platform Release 0.9.5
        1. Summary
        2. MPA Configuration Command
        3. SW Block Diagrams
        4. SW Theory of Operation

VOXL2 - D0006-C11-M13-T1



The D0006-C11-M13-T1 configuration is used in the base Sentinel reference drone model.

  • D0006 - Sentinel Family
  • C11 - Image Sensor Config 11, QTY2 pair of ov7251 stereo sensors, ov7251 tracking sensor, imx214 hires sensor
  • M13 - WiFi modem config
  • T1 - DSMX receiver config


The following core hardware is used for that configuration (note in this guide we are excluding the motor, battery, transmitter):

Part NumberKit Contents
MDK-M0054-1–1-C11M0054 - VOXL2
 M0084/M0025-2/M0014 - Hires (IMX214)/Tracking (ov7251) sensors and flex
 QTY2 M0076/M0074/M0010/M0015 - Stereo pair (ov7251) and flex
MDK-M0041-1-B-01VOXL Power Module v3 and cable
MDK-M0117-1-01VOXL ESC
MDK-M0094-2-01GPS / Mag / RC Module
MDK-M0078-2-02Wi-Fi Modem Add-On

HW Block Diagram

Below describes the compute HW block diagram for the D0006-C11-M13-T1 configuration.


HW Theory of Operation


The VOXL Power Module (MDK-M0041) accepts 2S-6S batteries as input, and passes this straight through to the VOXL ESC (MDK-M0117) and also regulates the voltage down to 5VDC.

Output form the power module (M0041-J1), the 5V/6A rated regulator powers VOXL2 (MDK-M0054) and provides power monitoring information over I2C (to voxl-px4 over DSP, not apps_proc) through the power connector (M0054-J4).

Debug Connections

Once powered, a user can connect to a linux based terminal though the USBC connector (M0054-J9) using Android Debug bridge (adb).

Additionaly, once intially setup over adb, a user can interact with VOXL2 over a network (ssh, voxl-portal) using the Wi-Fi add-on kit (MDK-M0078).

Image Sensors

Two streo pairs (ov7521, VGA, black and white, 30FPS) connect to VOXL2 (M0054-J6 and M0054-J8) using interposers M0076, M0074 and M0010.

A tracking sensor (ov7521, VGA, black and white, 30FPS) and hires (imx214, 4K, 30FPS) connect to VOXL2 M0054-J7 using the M0084 dual camera flex.

Flight Controller

The VOXL ESC (MDK-M0117) communicates over UART to voxl-px4 between M0117-J2 and M0054-J18.

The VOXL2 GPS/Mag/RC bind assembly (MDK-M0094) is a possible solution for GPS (UART) Mag (I2C) and RC (UART). Both communicate to voxl-px4 over a UART and I2C (exposed from DSP, not apps_proc) This kit uses Ublox Neo-M8N/IST8310 from Holybro.

The RC is Spektrum DSMX (mainly for legacy reasons, as a bunch of past product has used it. For this reason, we continued to use it. The snapdragon processors can’t make a UART RX into an TX at run time. For this reason, we have to use a GPIO to handle binding the RC, hench the little M0094 binding board you see in this assembly.)


The following VOXL2 Platform Releases have been validated with the hardware above

Platform Release 0.9.5


Release Date2023-Mar-30
Download, see Protected Downloads > VOXL2 Platform Releases > VOXL2 Platform 0.9.5.
File namevoxl2_platform_0.9.5.tar.gz
System Image / VOXL SDK1.5.5 / 0.9.5
PX4VOXL PX4 1.12 based branch

MPA Configuration Command

To setup the VOXL SDK to use the above hardware configuration, run the MPA command listed below.

MPA commandvoxl-configure-mpa -p --family MRB-D0006-4-V1-C11

SW Block Diagrams

Below are two block diagrams covering

- view this drawing in fullsize, view drawing source (using this tool)
- view this drawing in fullsize, view drawing source (using this tool)

SW Theory of Operation


VOXL2 runs Linux (Ubuntu 18). A collection of user space applications run on bootup as systemd services to facilitate the various requirements of the architecture. These applications (open source, mainly C/C++) communicate between each other using linux named pipes using the light weight Modal Pipe Architecture.

To facilitate installation and setup, ModalAI ships Platform Releases that allow a simple setup.

Platform Release

The VOXL2 Platform Release is a basically a zip file that contains an install script, the VOXL2 System Image (kernel, root file system) and the VOXL SDK, which is a collection of open source software packages.

The VOXL SDK comes with a voxl-configure-mpa tool that can be used to configure the software to work out of the box on a given hardware architecture, such as this D0006.


In Platform Release 0.9, voxl-px4 is based off of PX4 1.12 and located in this branch. More developer information is available in the VOXL2 PX4 Developer Guide. More user information is available in the VOXL2 PX4 User Guide.

All communications to ground control stations from voxl-px4 are facilitated through voxl-mavlink-server and voxl-vision-px4 over an IP link. See quick start video.

Below are links to some of the drivers that are called out above.

Power Monitoringsrc/drivers/power_monitor/voxlpmM0054-J4
IMUsrc/drivers/imu/invensense/icm42688pinternal IMU
BAROsrc/drivers/barometer/icp10100internal BARO
RCsrc/drivers/spektrum_rcM0054-J19 pins 10/11
GPSsrc/drivers/gpsM0054-J19, GNSS pins 2/2, Mag pins 4/5

Other Services

Below are links and summaries of the other services that are expected to be running by default:

voxl-camera-serverHAL3 based application used to serve up MIPI camera frames to multiple MPA clients, such as voxl-portalM0054 J6/J7/J8, MPA
voxl-mavlink-serverprovides an MPA interface to perform MAVLink communication to/from a PX4 flight controller over UART or UDPIP/UART/MPA
voxl-vision-px4Acts as the main hub managing communication between VOXL MPA services and autopilots such as PX4 and ArdupilotIP/MPA
voxl-imu-serverFor computer vision use cases, this application serves up IMU data to be fused with vision data (different IMU than PX4)SPI/MPA
voxl-portalembedded web server with ever expanding feature setMPA/HTTP/REST
voxl-qvio-serverQVIO processing serverMPA
voxl-cpu-monitorTool used to monitor CPU usage and account for Snapdragon scaling, etc.MPA
voxl-wait-for-fsHelper service to flush files to disk on cycleNA