Wiki

MSP Protocol

MSP Protocol

MultiWii Serial Protocol — how the Configurator talks to OrniFlight.

Overview

OrniFlight extends the Betaflight MSP with ornithopter-specific messages. The authoritative specification lives in the firmware repository at src/main/msp/.

Current version: apiVersion 1.46 (OrniFlight v0.4.6)

Key Messages

MSP_PID_ADVANCED (112 / 0x70)

The main ONDAS tuning message. Grown from 48 bytes (legacy) to 87 bytes (1.46).

API Version Size New Contents
1.33 48 Legacy PID advanced
1.42 59 + itermRelaxCutoff, 10 ONDAS v2 gains
1.43 71 + servo_mount_angle[4], phase_shift[4], prescience, espelho, saudade, ssff
1.44 75 + servo_speed, max_amplitude, flap_magnitude, wing_origin_offset[4]
1.45 82 + freq_channel, freq_min_hz, freq_max_hz, flight_mode, flutter_gain, flutter_hz, throttle_bypass
1.46 87 + profile_index, ferocity_downstroke, ferocity_upstroke, aeroelastic_glide, aeroelastic_flap

MSP_SERVO_CONFIGURATIONS (120 / 0x78)

Servo configuration with 4 ONDAS trailing bytes: glide_deg + ONDAS v1 triplet.

Backward Compatibility

All API versions are backward-compatible. A 48-byte sender talks to a 1.46 receiver — extra fields default to sensible values.

Wire Format

All multi-byte values are little-endian. Signed values stored as value + 128 on the wire. Unsigned gain values (0–100) are direct. Array lengths preceded by u8 count.


See docs/MSP_FIRMWARE_INTERFACE.md in the firmware repository for the complete specification.