VOXL 2 IO Developer Guide
Table of contents
Overview
Hardware
- A battery powers VOXL2 (
M0054
) through a Power Module (M0041
), and the battery also powers the ESCs/Motors - VOXL2 J19 connects to VOXL2 IO J4 to provide both power and communications using a UART
- VOXL2 IO connects to an RC receiver (either J2 or J3, depending on user’s receiver type)
- VOXL2 IO J1 connects to a PWM breakboard board (
M0022
) and ‘communicates’ to the ESCs using PWM, which in turn spin the motors
Software
High Level Idea
VOXL2 runs PX4 and VOXL2 IO runs PX4IO. They share a register map and keep it synchronized. The VOXL2 IO has a control loop that includes mixing, and reacts to updates that are from VOXL2s px4io
driver which populates the register map based updates to subscriptions.
Rumning on VOXL2
- On VOXL2 (
M0054
), thepx4io
driver runs on the sDSP/SLPI proc - The
px4io
driver creates a bit of a hybrid device which has a few similarities aspwm_output
device - The
voxl-px4.config
script starts the detection and configuration process, including loading a mixer, which actually runs on VOXL2 IO (M0065
) - The
px4io
driver subscribes to various topics and updates the ‘registers’ on the VOXL2 IO board by sending commands over UART following a simple protocol
Rumning on VOXL2 IO
- Upon bootup, VOXL2 (
M0054
) detects the VOXL2 IO (M0065
) board, and configures the VOXL2 IO board including loading of a mixer - A control loop takes place, which involves checking various flags, updating status based upon updates from VOXL2, checking for inputs, handling outputs, etc