All MPA services have configuration files in JSON format in
/etc/modalai/ and use libmodal_json to read and write these files. The /etc/ directory is wiped during a system image flash, ensuring MPA is returned to a known state when reflashed.
These configuration files are “self-maintaining” in the sense that during software updates, new config entries to support new features are automatically added to the config files by the service itself.
Every service has a complementary
voxl-configure-xyz bash script that can be used to enable or disable the service, as well as reset it to factory defaults. For a list of these config scripts, run:
voxl2:/$ ls /usr/bin/voxl-configure-* /usr/bin/voxl-configure-cameras /usr/bin/voxl-configure-mavcam /usr/bin/voxl-configure-qvio /usr/bin/voxl-configure-cpu-monitor /usr/bin/voxl-configure-mavlink-server /usr/bin/voxl-configure-remote-id /usr/bin/voxl-configure-dfs /usr/bin/voxl-configure-modem /usr/bin/voxl-configure-sku /usr/bin/voxl-configure-docker-support /usr/bin/voxl-configure-mpa /usr/bin/voxl-configure-streamer /usr/bin/voxl-configure-extrinsics /usr/bin/voxl-configure-pkg-manager /usr/bin/voxl-configure-tag-detector /usr/bin/voxl-configure-feature-tracker /usr/bin/voxl-configure-portal /usr/bin/voxl-configure-tflite /usr/bin/voxl-configure-flow-server /usr/bin/voxl-configure-px4 /usr/bin/voxl-configure-uvc /usr/bin/voxl-configure-imu /usr/bin/voxl-configure-px4-imu-server /usr/bin/voxl-configure-vision-hub /usr/bin/voxl-configure-lepton /usr/bin/voxl-configure-px4-params
Each service has different options, but they all follow a common theme. For example,
voxl-configure-px4-params is extremely elaborate with a wizard that helps the user configure PX4 parameters for different airframes, sensors, and flight behaviors.
On the other end, voxl-cpu-monitor is a very simple service that can either be on or off. The help text for voxl-configure-cpu looks like this:
voxl2:/$ voxl-configure-cpu-monitor --help Start wizard with prompts: voxl-configure-cpu-monitor Shortcut configuration arguments for scripted setup. factory_enable will reset the config file to factory defaults before enabling the service. voxl-configure-cpu-monitor disable voxl-configure-cpu-monitor factory_enable voxl-configure-cpu-monitor enable show this help message: voxl-configure-cpu-monitor help
These individual configure scripts are called in a particular sequence by voxl-configure-mpa to set up all services.