VOXL 2 - D0006 Architecture (Sentinel)
Table of contents
VOXL2 - D0006-C11-M13-T1
Hardware
Summary
The D0006-C11-M13-T1
configuration is used in the base Sentinel reference drone model.
D0006
- Sentinel FamilyC11
- Image Sensor Config 11, QTY2 pair of ov7251 stereo sensors, ov7251 tracking sensor, imx214 hires sensorM13
- WiFi modem configT1
- DSMX receiver config
Components
The following core hardware is used for that configuration (note in this guide we are excluding the motor, battery, transmitter):
Part Number | Kit Contents |
---|---|
MDK-M0054-1–1-C11 | M0054 - 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-01 | VOXL Power Module v3 and cable |
MDK-M0117-1-01 | VOXL ESC |
MDK-M0094-2-01 | GPS / Mag / RC Module |
MDK-M0078-2-02 | Wi-Fi Modem Add-On |
HW Block Diagram
Below describes the compute HW block diagram for the D0006-C11-M13-T1
configuration.
- view this drawing in fullsize, view drawing source (using this tool)
- for more information on connecting the image sensors, see video here and or image here
HW Theory of Operation
Power
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).
Additionally, once initially 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 stereo 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.)
Software
The following VOXL2 Platform Releases have been validated with the hardware above
VOXL2 SDK 1.1.3
Summary
Release Date | 2023-Mar-30 |
Download location | developer.modalai.com, see Protected Downloads > VOXL2 Platform Releases > VOXL2 SDK 1.1.3 . |
File name | voxl2_SDK_1.1.3.tar.gz |
System Image / VOXL SDK | 1.7.4 / 1.1.3 |
PX4 | VOXL PX4 1.14 based branch |
MPA Configuration Command
To setup the VOXL SDK to use the above hardware configuration, run the MPA command listed below.
MPA command | voxl-configure-mpa -p --family MRB-D0006-4-V1-C11 |
SW Block Diagrams
Below are two block diagrams covering
voxl-camera-server | - view this drawing in fullsize, view drawing source (using this tool) |
voxl-px4 | - view this drawing in fullsize, view drawing source (using this tool) |
SW Theory of Operation
Summary
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 (SDK) that allow a simple setup.
SDK
The VOXL2 SDK is a 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-sku
tool that can be used to configure the software to work out of the box on a given hardware architecture, such as this D0006
.
voxl-px4
In SDK 1.1.3, voxl-px4
is based off of PX4 1.14 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.
Use | Driver | Interface |
---|---|---|
Power Monitoring | src/drivers/power_monitor/voxlpm | M0054-J4 |
ESC | src/drivers/uart_esc/modalai_esc | M0054-J18 |
IMU | src/drivers/imu/invensense/icm42688p | internal IMU |
BARO | src/drivers/barometer/icp10100 | internal BARO |
RC | src/drivers/spektrum_rc | M0054-J19 pins 10/11 |
GPS | src/drivers/gps | M0054-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:
Service | Summary | Interface |
---|---|---|
voxl-camera-server | HAL3 based application used to serve up MIPI camera frames to multiple MPA clients, such as voxl-portal | M0054 J6/J7/J8 , MPA |
voxl-mavlink-server | provides an MPA interface to perform MAVLink communication to/from a PX4 flight controller over UART or UDP | IP/UART/MPA |
voxl-vision-hub | Acts as the main hub managing communication between VOXL MPA services and autopilots such as PX4 and Ardupilot | IP/MPA |
voxl-imu-server | For computer vision use cases, this application serves up IMU data to be fused with vision data (different IMU than PX4) | SPI/MPA |
voxl-portal | embedded web server with ever expanding feature set | MPA/HTTP/REST |
voxl-qvio-server | QVIO processing server | MPA |
voxl-cpu-monitor | Tool used to monitor CPU usage and account for Snapdragon scaling, etc. | MPA |
voxl-wait-for-fs | Helper service to flush files to disk on cycle | NA |