M0184 Software Guide
Table of contents
Summary
Components
Component/Repo | Notes |
---|---|
elrs-build-docker | Docker container that can clone/build FW with ease |
VOXL SDK | Used to deploy all required software/firmware components to VOXL / ELRS hardware |
ExpressLRS | Fork of Express LRS supporting ELRSv1 (goal is to mainline) that runs on ELRS v1 (M0184) |
crsf_rc | PX4 driver running in voxl-px4 that communicates over CRSF to ELRS v1 hardware |
voxl-elrs | VOXL2 command line utility, used to update FW/config on ELRS v1 from VOXL2, part of the SDK |
FW bootloader | Open source ExpressLRS bootloader |
Software Block Diagram
Use Cases
voxl-elrs Utility
See voxl-elrs
utility on target.
Setting Up PWM Pins
Up to four PWM pins can be configured. Examples of config files that can be loaded in:
Setting PWM Over IP
Summary
SDK 1.4.6 or newer required.
Using a Transmitter as a USB joystick, you can setup a switches to buttons and map these to PWM channels physical on the M0184 radio, supporting the ability to set PWM values over IP connections.
PX4 Params
RC_CRSF_BUTTON1
through RC_CRSF_BUTTON8
- Selects a button as input that will be mapped to a PWM channel output
RC_CRSF_PWMCHN1
through RC_CRSF_PWMCHN8
- Selects a PWM channel output for button1 through button8
RC_CRSF_PWMVAL1
through RC_CRSF_PWMVAL8
- Selects a PWM channel output value for button1 through button8. See PWM value mappings here.
Example
Let’s say a LED bar was soldered to PWM pin P0, and configured for RC channel 7 (for example Stinger Vision FPV).
A PWM value of 1000 turns it off, a value of 1500 turns it to IR, and a value of 2000 turns it to visible light.
On an RC trasnmitter, we configure a 3-pos switch to map to buttons 1, 2 and 3.
In voxl-px4, we set PX4 params using params/v1.14/radio_helpers/pwm_via_elrs.params
:
- RC_CRSF_BUTTON1 to 1, RC_CRSF_PWMCHN1 to 7, RC_CRSF_PWMVAL1 to 191* (This maps to 1000)
- RC_CRSF_BUTTON2 to 2, RC_CRSF_PWMCHN2 to 7, RC_CRSF_PWMVAL2 to 992* (This maps to 1500)
- RC_CRSF_BUTTON3 to 3, RC_CRSF_PWMCHN3 to 7, RC_CRSF_PWMVAL3 to 1792* (This maps to 2000)
Failsafe
- When IP connection is connection and lost - TODO
- When IP connection is connected and RC connection gained and lost - TODO