Link Search Menu Expand Document

VOXL 2 and VOXL 2 Mini System Image

Table of contents

  1. Summary
  2. System Image Changelog
  3. Force VOXL 2 into Fastboot
  4. Missing ADB?


What is it?

The system image is essentially “the operating system”, and consists of the kernel, root file system, and various firmware files for the other processors on board.

How to Install

The system image ships in VOXL SDK releases. Please see here for instructions.

Supported Targets

This documentation supports VOXL 2 (M0054) and VOXL 2 Mini (M0104).

System Image Changelog

Version / ReleaseBuild InfoChanges

SDK Version: 1.3.0
Release Date: 2024-06-03
- M0104: Fix issue with hires sensors on slots 0-2
- Change GPIO 110-114 to default inputs to leave floating (fixes ov7251 stereo sync isuue)
- Add var00.1 and var02.1 for M0173 support
- Default gpio109 for fsync for M0173 supported kernels
- use 88XXau_ohd instead of 88XXau_wfb

Camera (camx/chi-cdk):
- backport fix to select multiple tuning files
- imx412_fpv resolution updates - add 4056x3040 30fps
- ov9782 tuning updates
- C26-C28: add cameraId 6 in prep for M0173
- C27: add slave mode enabled AR0144 for M0173 (slots combo 0, 2, combo 6) - C28: add IMX412 slot 6
(no mini release)
SDK Version: 1.2.0
Release Date: 2024-04-15
- add support for M0104-2 via `var02` variant

Camera (camx/chi-cdk):
- `imx412_fpv` low latency binaries
- `imx678` latency reduction
- ship royale-5-8-spectre-6-10
- `irs2975` binaries (beta level support)
- `boson_2` binary (alpha level support)
- added neofetch, libsdl2-dev

(no mini release)
SDK Version: 1.1.3
Release Date: 2024-02-26
- add `voxl-fysnc-mod` kernel module
- add `voxl-gpio-mod` kernel module
--- GPIO now exporting to /sys/class/gpio
- convert SE13 from 4W to 2W UART, freeing GPIO36/37
- add `voxl-platform-mod` kernel module
--- see `/sys/module/voxl_platform_mod/parameters`
- add new target 'M0054-2' support (same rootfs as M0054-1)
- new kernel
- new devcfg.mbn

Camera (camx/chi-cdk):
- update `ar0144` binaries
voxl2_SDK_1.1.0, voxl2_SDK_1.1.1, voxl2_SDK_1.1.2
SDK Version: 1.1.0-1.1.2
Release Date: 2023-11-13
Build Date: TBD
- disable usb-autosuspend via karg
- M0104: convert SPI14 to UART (/dev/ttyHS0) - M0104: remove non-existing peripherals located on B2Bs/camera group 2 - enable /dev/i2c-5, J5 Pins 98/99 (SDA/SCL) (GPIO 8/9)
- disable pcie2 in favor of enabling GPIO 85/86/87/88 on J5
- refactor camera-dtsi for readability
Camera (camx/chi-cdk):
- ship `ov7251-fsin` and `ov7251-fsout` binaries
- ship `imx335` binaries
- ship `irs1645_2` and `irs1645_3` bins
- ship `imx412_flip` and `imx678_flip` bins
- update `imx412` timing to support M0107 based sensor
- add 4056x3040 and 4208x3120 to camx supported resolutions
- update ov7251 max gain/exposure settings
- ship tuned.imx214_m0024 at `/usr/share/modalai/chi-cdk/tuned/`
- ship `ar0144` at `/usr/share/modalai/chi-cdk/ar0144`
- update SLPI to 1.1.10 - fix potential buffer overflow bug, increase pass though UART buffer
SDK Version: 1.0.0
Release Date: 2023-07-xx
Build Date: 2023-05-19
- now using refactored `meta-voxl2-bsp` supporting M0054/M0104
- add VOXL2 Mini (M0104) support

- use `/usr/share/modalai/chi-cdk` to ship camera sensormodule binaries

- add 8821cu.ko
- update libfc_sensor 1.0.2 to 1.0.4

- ModalAI SLPI upgraded to 1.1-7
Platform Release 0.9.5
SDK Version: 0.9.5
Release Date: 2023-03-30
Build Date: 2023-03-22
- update IMX678 config:
- 3840x2160@30 - use 4 lane mode at 891 Mbps
- 1920x1080@30 - use 4 lane mode at 720 Mbps
- enable more camera configs (see [here](/voxl2-camera-configs/))
- revert defaultFpsMax backend flag (use case selection is broken when enabled)
(internal only)
Build Date: 2023-02-16 HLOS
- Increase SLPI memory
- Install `voxl-esc` python depends (pip3,pyserial,numpy)
- add nano

- ModalAI SLPI upgraded to 1.1-6
- Increase SLPI memory
- Added 420k baud rate UART for SLPI (native ELRS baud rate)
(internal only)
Build Date: 2023-02-03 BSP (See [Linux User Guide](/voxl2-linux-user-guide/) for details)
- VOXL2 (M0054)
- configure GPIO 152 as output, default high, on J5 pin 44 for M0130 (along with GPIO 153, 154, 155 while at it)
- configure SE1 for I2C `/dev/i2c-4` J7 (camera group 1)
- enable new GPIO 110/114 pins on J6
- enable new GPIO 6/7 pins on J7
- enable new GPIO 12/13 pins on J8
- enable SE2 (I2C) on J5 pins 8,9 as `/dev/i2c-0`
- enable SE11 (SPI) on J5 pin 53,56 as `/dev/spidev11.0`
- update TZ to devcfg ver8
- see [voxl2-qups](/voxl2-qups/) for details

- Added IMX678 Support (M0054-J8, HW sensor ID 4/5 (addresses 0x34/0x20))
- 1920 x 1080 @ 30 FPS
- 3840 x 2160 @ 30 FPS
- ov7251 60/90/120 FPS configs added as dormant (need to add camx proper support)

- Added service file that changes SLPI restart level to avoid board crash when SLPI crashes

- ModalAI SLPI upgraded to 1.1-4
Platform Release 0.9
Date: 2022-11-11 Ubuntu:
- add `i2c-tools`
- Journalctl system max use limit now set to 1000M

- Add A65 TOF Module (irs10x0c sensor) support on all 6 camera interfaces
- ov7251 drivers are now 8-bit

XBL (secondary bootloader):
- Fix occasional error showing "battery's capacity is very low" during flashing

- ModalAI SLPI upgraded to 1.1-2

Flashing Script:
- Made system image flash script compatible with bash 4 and older versions
Date: 2022-08-11 Meta:
- Included missing fastrpc binaries for adsp and cdsp in dspso partition

- Update IMX214 drivers to support other resolutions other than 640x480
- Added ALPHA LEVEL support for 5 concurrent ov9782 (needs tuning)

- M0054/M0052 - enable 2W UART on J3 pins 3/5 (legacy B2B) for apps proc usage
- M0052 - breaking change: change qup5 from SPI to UART. This is exposed on J8. Now /dev/spidev5.0 is gone.
- M0054 Mappings are as follows:
- `/dev/ttyHS0` - J8 Camera Connector
- `/dev/ttyHS1` - J3 B2B pins 3/5
- `/dev/ttyHS2` - J5 HS B2B pins 48/49
- M0052 Mappings are as follows:
- `/dev/ttyHS0` - internal SOM WiFi
- `/dev/ttyHS1` - J2 RC input for PX4
- `/dev/ttyHS2` - J19 GNSS input for PX4
- `/dev/ttyHS3` - J8 Camera Connector
- `/dev/ttyHS4` - J3 B2B pins 3/5
- `/dev/ttyHS5` - J5 HS B2B pins 48/49

- M0054, version 6: update devcfg for UART on qup7 (md5sum: 3698389194c899953c4e337a7b48cb97)
- M0052, version 6: update devcfg for UART on qup7 (md5sum: cf613de37db6e7d2bb245f4d17cab79e)
NA Ubuntu:
- added jq pciutils aircrack-ng packages

- add dormant 88XXau_wfb.ko driver at /etc/ Users who choose to use it can install it manually and use voxl-wifi-broadcast
- regulatory domain tweaks to support wifibroadcast options
- Update spidev buffer size to 16K
NA Changes:
- System:
- Bash environment executed during ssh session start
- ModalAI partitions now include MACHINE type prefix
- ModalAI SLPI 1.1-0 now flashed in system image via DSP and Firmware partitions
- Kernel
- fix for hal3 timestamp drift error
- enable LAN95XX driver
- chi-cdk
- ov9782: add front/rear and tracking support
- ov7251: fix for missing gain in hal3 metadata
Date: 2022-04-18 Changes:
- ROS sources and key included in root filesystem
- XBL now flashed during system image install
- Binaries can now be executed in the data partition
Date: 2022-04-15 Changes:
- Update chi-cdk - ov7251 FSYNC registers from mm-camera
- Add rndis host driver to kernel
- Enable SPI
- /dev/spidev3.0 - internal IMU
- /dev/spidev14.0 - external SPI
- /dev/spidev0.0, /dev/spidev1.0, and /dev/spidev5.0 - camera groups 0, 1 and 2
- Updated device’s HLOS partitions
- Updated userdata ( /data ) partition to 64GB
- Added 64KB modalai_conf ( /etc/modalai ) partition
- Added 64KB modalai_cal ( /data/modalai ) partition
- Reduced system ( / ) partition to 47.875GB
- System image flash
- devcfg.mbn is now flashed during system image flash
- NHLOS is now flashed during system image flash
- LUN0 GPT can be flashed during system image flash
- System image root filesystem additions
- Px4-support and libfc now included in rootfs
- ModalAI metabuild info now in /firmware/verinfo/ver_info.txt
- Remove /etc/voxl-platform-info.json meta file creation, ModalAI metabuild info includes this information now
- Removed old incompatible tdk binaries
- Added Stable ModalAI sources list, library search paths, and qrb5165-bind to root filesystem
- Included docker sources list and key
Date: 2022-03-09 Changes:
- add rtl8188eus driver for tp-link support
- remove all opencv 3.2 packages
- apt autoremove and clean removing 400MB! of cached debs
- permit root ssh login
- add platform_name file for bash formatting
- remove ldconfig crying about wayland sink not a symlink
Date: 2022-02-18 Changes:
- Modified mv-voxl 32-bit shared object files permissions as they were set incorrectly
- Added ```/etc/voxl-platform-info.json``` file which includes build and platform metadata
Date: 2022-02-09 Changes:
- Initial Release

Force VOXL 2 into Fastboot


This procedure is for use if the normal update procedure above is not working.



  • Unplug VOXL 2 from power
  • Unplug VOXL 2 from USBC
  • Using something soft like a BBQ skewer or toothpick, press and hold the momentary button SW1 down, as shown in this image:


  • While holding SW1 down, power on VOXL 2
  • Keep holding SW1 down for about 5 seconds and then let go
  • Attach VOXL 2 to USBC connected to host computer
  • Run the fastboot devices command and verify the device is showing up
❯ fastboot devices
f8bb8d44	fastboot
  • Now, you should be able to proceed with the ./ command from the Platform Release zip file.

Missing ADB?

See here