Hello @enric-cervera-mateu ,
Good news: you don't need to install any special ModalAI firmware on the iFlight Commando 8. ModalAI does not provide transmitter firmware — the Commando 8 ships pre-loaded with EdgeTX and a built-in ELRS module, which is exactly what you need to control a VOXL 2 Starling.
Here is what you actually need to do:
1. Make sure you have the right frequency variant
The Starling V2 ships with a 915 MHz BetaFPV ELRS receiver. You must use a Commando 8 with a matching band:
If your drone has the 915 MHz receiver → get the iFlight Commando 8 ELRS 868/915 MHz V2
If your drone has a 2.4 GHz receiver → get the iFlight Commando 8 ELRS 2.4 GHz V2
Mixing bands (e.g., 2.4 GHz TX with 915 MHz RX) will prevent binding entirely.
2. Match ELRS firmware versions
The ELRS firmware version on the transmitter module and the receiver must share the same major version (e.g., both on 3.x). Mixing 3.x and 2.x is not supported.
Check the TX firmware version in EdgeTX: go to SYS → Hardware → TX Module or the ELRS Lua script.
Check the receiver firmware version via the voxl-elrs tool on the drone (see Step 4).
If versions don't match, update both using the ExpressLRS Configurator for the TX module, and voxl-elrs for the receiver.
3. Bind the transmitter to the receiver
Two methods work with ELRS:
Method A — Binding phrase (recommended):
Both the TX module and receiver must be flashed with the same binding phrase. If the original controller used a binding phrase, you'll need to reflash the receiver on the drone with a new phrase that matches what you set on the Commando 8.
Method B — Button bind:
Power on the drone. Within 30 seconds, press and hold the bind button on the ELRS receiver.
On the Commando 8, start binding from the ELRS Lua script (Tools menu in EdgeTX).
The receiver LED will change when binding succeeds.
Power-cycle the drone after binding. (Skipping this step causes "Detected 0 radio channels" errors.)
4. Configure the VOXL 2 software
SSH into the VOXL 2 and edit the PX4 configuration file:
vi /etc/modalai/voxl-px4.conf
Set the RC protocol to CRSF:
RC=CRSF_RAW
Then restart the PX4 service:
systemctl restart voxl-px4
5. Verify RC input
After binding and restarting, verify channels are publishing:
px4-listener input_rc
If no channels appear, check:
Power-cycle was done after binding
journalctl -b -u voxl-px4 for driver errors
Physical wiring on connector J19 (receiver TX → RC_UART_RX, receiver RX → RC_UART_TX, 5V, GND)
Wiring reference (J19 on VOXL 2)
Receiver pin
VOXL 2 J19 pin
5V
VDC_5V_LOCAL
GND
GND
TX
RC_UART_RX
RX
RC_UART_TX (needed for voxl-elrs firmware updates)
For the full wiring diagram and RC configuration reference, see the official docs:
RC Configs: https://docs.modalai.com/voxl2-rc-configs/
voxl-elrs tool: https://docs.modalai.com/voxl-elrs/
If you continue to have binding issues (particularly if the receiver is still bound to the original lost controller), you may need to reflash the receiver to clear the old binding phrase. The voxl-elrs tool can help with this for BetaFPV receivers.
Sources
https://docs.modalai.com/voxl2-rc-configs/ — VOXL 2 RC controller configuration, wiring, supported protocols
https://forum.modalai.com/topic/3066/elrs — ModalAI forum thread on ELRS setup with VOXL 2 Starling
https://forum.modalai.com/post/17958 — Forum post on switching Starling 2 from Ghost Atto to ELRS
https://shop.iflight.com/Commando8-Radio-Transmitter-ELRS-V2-Pro2092 — iFlight Commando 8 ELRS V2 product page
https://github.com/ExpressLRS/ExpressLRS — ExpressLRS project (for Configurator tool)