Skip to content

CRSF (ExpressLRS / Crossfire)

CRSF (Crossfire Serial Frame) is the protocol ExpressLRS and TBS Crossfire receivers speak. Magic Box outputs it on the UART jack at 420 kbaud 8N1, just like a regular radio handset would.

  1. Open the Web UI from your phone or laptop.
  2. Go to Settings → Output protocol.
  3. Pick CRSF.
  4. Save. The change applies on next boot.
Magic Box --CRSF wire--> TX module --((RF))--> Receiver ---> Servos / FC

Magic Box plays the role a radio handset would — it hands channels to an ExpressLRS or Crossfire TX module over CRSF, the module beams them to the receiver, and the receiver drives whatever your model needs (servos directly for line-of-sight planes, channels into a flight controller for FPV / autopilot setups).

Once the TX module reports a healthy link (its OLED, LED, or WebUI tells you), the receiver is talking. From there it’s the receiver’s job to feed your model — Magic Box’s part of the chain is done.

Magic BoxTX module sideWorks?
v2.0Any ExpressLRS module (Bandit Micro / Lite / Nano on ELRS 3.x+)
v2.0TBS Crossfire JR / Nano / Tracer
v1.4ExpressLRS module with UART inverted checked in its WebUI
v1.4TBS Crossfire (no inverted-input toggle on the module)❌ — use ExpressLRS or stay on SBUS

Magic Box v1.4’s UART is hardwired inverted, which is the opposite of what most CRSF receivers expect. ExpressLRS modules on ELRS 3.x+ have a UART inverted checkbox in their Options tab — tick it and the module accepts v1.4’s inverted stream verbatim. TBS Crossfire modules don’t expose this option, so on v1.4 the path is ExpressLRS or nothing.

Aux-channel resolution through ELRS / Crossfire

Section titled “Aux-channel resolution through ELRS / Crossfire”

The CRSF stream Magic Box emits on the wire carries all 16 channels at the same 11-bit resolution. When that stream goes over the air through ExpressLRS or TBS Crossfire, the air protocol packs the channels densely to fit RF bandwidth: sticks (channels 1–4, AETR) stay at full 10-bit resolution, but aux channels 5–16 get quantized by the air-protocol’s switch mode (in ELRS: a few bits per channel in “Hybrid”, ~7 bits in “Wide”). That’s an RF design choice baked into ELRS and Crossfire — not a Magic Box limitation.

Practically: continuous control on sticks works as expected. Aux switches behave like switches — they snap to the discrete positions the air protocol allows (2-pos, 3-pos, 6-pos). To pick “Wide” switch mode and tune ELRS packet rate / TX power, you need a radio with EdgeTX and the ExpressLRS Lua script — those settings live in the module’s per-model config which only an EdgeTX handset can write. Without a radio, the module runs on its built-in defaults (typically 200 Hz Hybrid), which is fine for most setups.

Channel range at the FC — 988–2012 µs (native CRSF)

Section titled “Channel range at the FC — 988–2012 µs (native CRSF)”

When you pick CRSF, your FC sees PWM in the 988–2012 µs range, not 1000–2000 µs. Magic Box’s internal 1000–2000 µs is mapped linearly to CRSF channel values 172–1811, and the FC re-expands those to 988–2012 µs PWM. Center (1500 µs) is exact; the ±12 µs offset shows up only at the extremes — and it’s identical on TBS Crossfire, ExpressLRS, and Ghost setups. You’re getting native CRSF dynamic range, slightly wider than legacy PPM. Want exact 1000–2000 µs endpoints? Use SBUS or IBUS. Full explanation in the FAQ.

The Magic Box-to-module wiring is the same for any digital output — see External TX Modules for the stereo cable layout, the UART pad alternative, and power options.


  • Need an analog output instead? See PPM.
  • SBUS is the simplest digital path — see SBUS.
  • FlySky receivers? See IBUS.
  • Specifically wiring up an ELRS or Crossfire module? See External TX Modules.