X-Plane Simulator¶
The OnSpeed X-Plane plugin runs the same audio engine and indexer
renderer as the panel-mounted Gen3 inside X-Plane 12. Aircraft-state
inputs come from X-Plane datarefs (sim/flightmodel/position/alpha
for AOA, sim/flightmodel/position/indicated_airspeed for IAS,
sim/flightmodel/forces/g_side for lateral G); output is OpenAL
audio on the sim PC, an embedded floating window with the M5 indexer
graphics, and an optional USB-serial stream that drives a physically
connected M5Stack.
What it does¶
- Tone generation — same
Envelope,AudioMixer,AudioOrchestrator, andPanningcode path as the firmware, viaonspeed_core::audio. Tones, pulse rates, transition timing, and 3D pan from lateral G match the panel box sample-for-sample. - Embedded indexer — a floating X-Plane window hosts the OnSpeed M5 indexer renderer. Five display modes (the same five the M5 firmware ships with): AOA + numbers, attitude, narrow AOA, decel gauge, and G-history. Click the indexer body to cycle modes, or use the menu.
- Physical M5 passthrough — when configured, every display-serial frame the plugin builds is also pushed to a USB-serial port at 115200 8N1. A Core2 plugged into the sim PC behaves the same way it does plugged into a real Gen3.
- Per-aircraft persistence — settings live at
Output/preferences/AOA-Tone-FlyOnSpeed-<acf>.prf, so the RV-10's AOA setpoints don't bleed into the Cessna 172.
Why use it¶
- Practice OnSpeed-driven approaches at home before flying them.
- Audition setpoint changes against a sim model before re-flying a calibration sortie.
- Drive a physical M5 from the sim — useful for development of the M5 firmware itself, and for pilots who want to rehearse with the same display they have in the panel.
- Fly the same audio cues from the same
onspeed_corecode that ships in the firmware. If a tone behavior is wrong in the sim it's wrong in the airplane, and vice versa.
What's not supported¶
- AOA convention. The plugin reads X-Plane's
alphadataref, which is wing AOA in degrees. The OnSpeed firmware works in body angle (see How OnSpeed Measures AOA). The two are linearly related per airframe but not equal. Plugin setpoints sit in wing-AOA units; firmware setpoints sit in body-angle units. Don't paste numbers between them without applying the wing-incidence offset. - Hardcoded setpoint defaults. The plugin ships with generic RV-class defaults (LDmax 6.0°, OnSpeedFast 7.3°, OnSpeedSlow 9.6°, StallWarn 12.5°). Auto-derivation from per-aircraft datarefs is tracked in #392. Edit the four AOA fields in the audio control window to match your airframe.
- No per-flap calibration. The firmware stores six setpoints per flap detent and switches sets when the lever moves. The plugin has one set of four setpoints, period. Per-flap support is tracked in #393.
- Boom probe / Madgwick / EKF6 — none of the firmware's sensor
fusion runs. The plugin reads X-Plane's already-fused alpha and
pipes it through a small median+mean smoother before handing it
to
ToneCalc.
Pages¶
- Install — download the
.xpl, drop it in the right per-arch directory underResources/plugins/. - Using the indexer — show/hide, mode cycling, what each of the five modes draws.
- Tethering a physical M5 — flash the M5 firmware, USB-C cable to the sim PC, pick the port, fly the sim with the same M5 you'd hold in the airplane.
- Per-aircraft settings —
.prflocation, fields, what each one does. - Troubleshooting — no sound, gray indexer, M5 not detected, settings not persisting.