Betaflight receiver setup for ELRS, CRSF, SBUS and SPI
The Receiver tab in FlySpark shows live channel bars and the settings that turn stick movement into roll, pitch, yaw and throttle. On Betaflight you choose the receiver mode and serial protocol, including CRSF for Crossfire and ExpressLRS, set an SPI receiver's protocol and binding phrase, and set the stick endpoints. INAV has its own receiver settings on the same tab, including telemetry and an optional GSM text module.
These tabs are part of the FlySpark configurator. In Chrome or Edge, connect over USB or Bluetooth. The Android app also connects over USB OTG or a Wi-Fi MSP bridge. The iPhone app uses Bluetooth or Wi-Fi, because an iPhone has no USB host. A browser cannot open the craft's Wi-Fi. Edits collect in the save bar.
Free. Hardware connections need Chrome or Edge on a computer; phones use the FlySpark app.
- Free
- Nothing to install
- Demo without hardware
In short
Betaflight receiver setup chooses how the radio reaches the flight controller and how the sticks are scaled. FlySpark's Receiver tab does this for Betaflight and INAV, including CRSF, SBUS and an ExpressLRS SPI binding phrase, in Chrome or Edge and in the Android and iPhone apps.
Key facts
- Serial protocols include CRSF for Crossfire and ExpressLRS, SBUS, iBus, FPort, SRXL2 and Ghost.
- An SPI ExpressLRS receiver stores a binding phrase as a six-byte UID, not the phrase text.
- Spektrum satellite bind pulses are sent once at the next power-up. 9 is DSMX and 5 is DSM2.
- Stick low, centre and high are in microseconds. Values outside low and high count as full stick.
- RC smoothing's automatic cutoff is selected by setting the cutoff to 0.
- The channel map is on the same tab as the live channel bars.
Betaflight
INAV
ArduPilot
PX4- BLHeli_S
Bluejay
AM32
ExpressLRS
EdgeTX
DroneCAN
MAVLink
Try it
Move the sticks
Throttle follows the slider. The other bars are the sticks moving.
Betaflight
Features
- 01
Live channel bars
Roll, pitch, yaw, throttle and the AUX channels move on screen while the radio is on, so a wrong channel map is visible before you arm.
- 02
Serial protocol
When a serial receiver is selected, the protocol list includes CRSF (Crossfire / ELRS), SBUS, iBus, FrSky FPort, Spektrum SRXL2, ImmersionRC Ghost, Spektrum 1024 and 2048, SUMD, SUMH, XBus, Jeti EX Bus and a target-custom entry.
- 03
SPI ExpressLRS
Boards with a built-in SPI receiver show the SPI protocol. For ExpressLRS on MSP API 1.45 or newer, a binding phrase is hashed to the six UID bytes the board stores. The phrase itself is not kept.
- 04
Channel map
The map assigns which incoming channel is roll, pitch, yaw, throttle and each AUX. It sits under the live bars.
- 05
Stick endpoints
Stick low, stick centre and stick high are in microseconds. Roll and pitch deadband, yaw deadband, and the 3D throttle deadband for reversible motors are on the same card.
- 06
RC smoothing
Smoothing follows the steps between radio packets. A cutoff of 0 lets the flight controller pick a cutoff from the link rate. The layout of these fields changes on MSP API 1.47 and newer.
- 07
USB joystick
The USB card can make the board appear as a game controller as well as the setup link, after a reboot. Off leaves USB as a serial connection only. This needs a USB port, so it does not apply to an iPhone connection.
- 08
INAV telemetry
On INAV the tab adds telemetry inversion, one-wire S.Port, telemetry by switch, S.Port fuel units, LTM rate, MAVLink 1 or 2 with stream rates, HoTT alarm timing and the iBus sensor layout.
Betaflight controls on the Receiver tab
Names below match the Betaflight Receiver tab. A card that does not apply to the selected receiver is hidden.
RSSI channel. Choose Disabled, or an AUX channel from AUX 1 onward. This is the channel whose value Betaflight should treat as RSSI.
Spektrum satellite bind. Bind pulses from 0 to 10 are sent on the receiver UART at the next power-up, then the value returns to 0. Other receiver types ignore it. 0 is off, 9 binds DSMX and 5 binds DSM2. The frame rate is chosen on the transmitter.
MSP sticks. When the receiver mode is MSP, on-screen sticks are offered so a craft with no radio can still be moved for a bench check.
Air mode start throttle. Air mode stays off until the throttle reaches this percentage, then it stays on until you disarm. 0 turns air mode on as soon as you arm.
FPV camera angle. Set this to how far the camera is tilted up, from 0 to 90 degrees. Roll and yaw mix while FPV Angle Mix is on. 0 leaves them unmixed.
3D throttle deadband. Only for reversible motors. Throttle within this many microseconds of centre holds the motors stopped.
SPI binding UID. After you type the phrase, the tab shows the six numbers it hashed to. All zeros means not bound. The phrase field clears itself if it no longer matches the stored UID.
ExpressLRS on a UART and ExpressLRS on SPI
An external ExpressLRS receiver on a UART uses the serial protocol CRSF (Crossfire / ELRS). The binding phrase for that receiver is not typed on this tab. It is set on the receiver, usually over its own Wi-Fi, which the ExpressLRS configurator does from the Android or iPhone app. The ELRS Lua menu changes packet rate and power from the radio side.
A receiver chip soldered on the flight controller is the SPI receiver card. It appears only when the SPI receiver feature is on and the board reports an SPI protocol. ExpressLRS there uses the binding phrase field on this tab. FlySpark hashes the phrase the same way the firmware does and writes the six UID bytes. Takeoff still needs the same phrase on the transmitter module.
The Ports tab has to agree with this one. A serial receiver needs a UART set to Serial RX. Setting CRSF here while the UART is still free means the bars will not move. SPI receivers do not use that UART function.
INAV on the same tab
INAV's receiver settings are a different card set on the Receiver tab of the INAV configurator. Telemetry protocol is chosen on the Ports tab. This screen then sets inversion, one-wire S.Port, whether a shared MSP port switches to telemetry with a mode instead of on arming, and the MAVLink stream rates. A rate of 0 turns that MAVLink stream off.
The iBus sensor layout must match the transmitter firmware. The standard layout is for an FS-i6 or FS-i6S. The other layouts are for modded FlySky i6 firmware, including GPS speed, GPS altitude and hali9 variants. Choosing the wrong layout does not stop the sticks. It scrambles the sensors the radio displays.
A GSM SIM module appears only when the firmware has the SIM settings. The port function is SIM (text) telemetry. The module texts position and status to the ground-station number and answers calls or messages from that number. An empty number means the first caller becomes the ground station. Send options cover continuous, failsafe, poor GPS, hard knocks and low battery.
At a glance
Receiver specifications
| Firmware | Betaflight and INAV |
|---|---|
| Serial protocols | CRSF, SBUS, iBus, FPort, SRXL2, Ghost, Spektrum 1024 and 2048, SUMD, SUMH, XBus, Jeti EX Bus, target custom |
| SPI ExpressLRS | Binding phrase hashed to six UID bytes, MSP API 1.45 or newer |
| Spektrum bind | 0 off, 5 DSM2, 9 DSMX, sent once at next power-up |
| Stick endpoints | Low, centre and high in microseconds, plus roll, pitch, yaw and 3D throttle deadbands |
| Connection | USB or Bluetooth in Chrome or Edge; Android adds USB OTG and Wi-Fi; iPhone uses Bluetooth or Wi-Fi |
Betaflight
How to set a Betaflight serial receiver
Connect
Open the Betaflight configurator in Chrome, Edge or the app and connect.
Ports
On the Ports tab, set the receiver's UART to Serial RX. Save and reboot if asked.
Protocol
On the Receiver tab, choose a serial receiver and the protocol. ExpressLRS and Crossfire both use CRSF.
Bind
Bind from the radio, or for an SPI ExpressLRS receiver type the same binding phrase as the transmitter and check the UID is not all zeros.
Map and endpoints
Watch the channel bars. Fix the channel map if roll moves the pitch bar. Set stick low, centre and high to match the radio's travel.
Save
Write the save bar and reboot if FlySpark asks. Confirm the bars still track after the reboot.
Guide 01
Bind an SPI ExpressLRS receiver
Only boards with a built-in SPI receiver show this card.
Turn on the SPI receiver feature and reboot so the card appears.
Set the SPI protocol to ExpressLRS. It has to match the transmitter module.
Type the transmitter's binding phrase. The UID line should become six numbers, not all zeros.
Save and reboot. The footer says the SPI receiver takes effect after the reboot.
Move the sticks and watch the channel bars.
Troubleshooting
Common problems and fixes
Problem
The SPI receiver card is missing
Fix
The SPI receiver feature is off, or this board has no SPI receiver. A UART ExpressLRS receiver uses the serial protocol list instead.
Problem
Binding phrase will not stay
Fix
The phrase field clears when it no longer matches the stored UID. Type it again and save. The board keeps the UID, not the text.
Problem
Bars move on the wrong axis
Fix
Change the channel map. The live bars update as you edit, before you save.
Problem
USB joystick does not appear
Fix
The toggle takes effect after a reboot, and only on a USB connection. Bluetooth and iPhone links stay serial or radio only.
Glossary
Glossary of terms
- CRSF
- The serial protocol used by TBS Crossfire and by ExpressLRS receivers on a UART.
- SPI receiver
- A receiver chip on the flight controller, set on the SPI card rather than on a UART.
- Channel map
- Which incoming channel drives roll, pitch, yaw, throttle and each AUX.
- RC smoothing
- Filtering of the steps between radio packets. Cutoff 0 lets the firmware choose.
FAQ
Frequently asked questions
Which protocol is ExpressLRS?
On a UART, ExpressLRS uses CRSF (Crossfire / ELRS) in the serial protocol list. A built-in SPI ExpressLRS receiver uses the SPI protocol list and the binding phrase on this tab.
Where do I type the ExpressLRS binding phrase?
For a UART receiver, in the ExpressLRS configurator over the receiver's Wi-Fi, from the Android or iPhone app. For SPI ExpressLRS, in the binding phrase field on the Receiver tab. The board stores the hashed UID.
What do Spektrum bind pulses do?
They are sent on the receiver UART at the next power-up, then cleared. 9 binds DSMX and 5 binds DSM2. Other receiver types ignore the number.
Why do the sticks not move?
The UART is not set to Serial RX, the protocol does not match the receiver, the craft is unbound, or for SPI the feature is off so the SPI card is hidden.
What is RC smoothing cutoff 0?
Zero tells the flight controller to choose the cutoff from the link rate. The field layout changes on MSP API 1.47 and newer.
Can I set this on an iPhone?
Yes, over Bluetooth or a Wi-Fi MSP bridge. The USB joystick option needs a USB port, so it does not apply to an iPhone connection.
Does the channel map include AUX?
Yes. Channels after throttle are AUX 1 onward, and the RSSI channel picker uses those same names.
Is this the ELRS Lua script?
No. Packet rate, telemetry ratio and TX power are the ELRS Lua menu. This tab is the flight controller's receiver configuration.
References
Sources
The official documentation behind the background facts on this page.
- Betaflight Setup GuideBetaflight · betaflight.com
- Betaflight WikiBetaflight · betaflight.com
- FailsafeBetaflight · betaflight.com



