INAV Telemetry Configuration
I. Introduction
Telemetry allows you to monitor your aircraft's status in real-time during flight, such as battery voltage, GPS position, and other information that can be sent to your RC transmitter. Telemetry can be set to Always On or Enabled After Arming.
If the serial port used for telemetry is also used for other functions, the telemetry function for that port will only be enabled after arming. To enable telemetry, use the feature TELEMETRY command:
feature TELEMETRYCurrently, multiple telemetry protocols are supported, including:
- FrSky
- Graupner HoTT V4
- SmartPort (S.Port)
- LightTelemetry (LTM)
- MAVLink
- IBUS
- Crossfire (CRSF)
- GSM SMS
All telemetry protocols are based on serial communication. Please configure the required protocol in the serial port settings.
Multiple telemetry protocols can be enabled simultaneously, but only one of the same type can be enabled, for example: SmartPort + LTM or MAVLink + CRSF.
II. SmartPort (S.Port) Telemetry
SmartPort is the telemetry system used by the latest generation of FrSky transmitters, compatible with Taranis Q X7, X9D, X9D+, X9E, XJR when paired with the following receivers:
- X4R(SB), X8R, XSR, R-XSR, XSR-M, XSR-E older D series receivers.
Important
⚠️ SmartPort uses an inverted serial protocol, and not all flight controllers can connect directly. Support varies depending on the flight controller chip:
| Flight Controller Chip | Direct Connection | Receiver Inversion Mod | Software Serial Support | External Inverter Required |
|---|---|---|---|---|
| STM32F4 | ❌(*) | ✅ | ✅ | ✅ |
| STM32F7 | ✅ | Not Required | ✅ | Not Required |
| STM32H7 | ✅ | Not Required | ✅ | Not Required |
| \* If the STM32F4 flight controller has a hardware inverter, direct connection is also supported. SmartPort serial rate: 57600 bps |
2.1 Connection Methods
Direct Connection for F7 / H7 Flight Controllers:
Simply connect the flight controller's TX pin to the SmartPort receiver:
set telemetry_inverted = OFF
set telemetry_halfduplex = ONReceiver "Inversion Mod" Method (for X4R, XSR, etc.):
Some receivers can be hardware modified to output non-inverted SmartPort signals.
In this case, connect the non-inverted signal to the serial port TX pin and set:
set telemetry_inverted = ON
set telemetry_halfduplex = ONSoftware Serial Connection
Software-emulated serial allows you to connect to a SmartPort receiver without hardware modification to the receiver.
You only need to connect the flight controller's TX pin to the receiver's SmartPort pin.
Configure as follows:
set telemetry_inverted = OFF
set telemetry_halfduplex = ONIf the above methods don't work, use the following approach:
Connect the RX and TX pins through a resistor, recommended value is 1kΩ (tested values of 100Ω, 1kΩ, 10Ω all work).
Connection diagram as follows: SmartPort ---> RX (CH5 pin) ---> 1kΩ resistor ---> TX (CH6 pin)
Configuration remains as follows:
set telemetry_inverted = OFFConnecting SmartPort with External Hardware Inverter (for STM32F1 / F4)
You can use a DIY UART inverter to connect a SmartPort receiver to F1 or F4 series flight controllers without hardware modification to the receiver.
This inverter can be built with bipolar transistors:
Building a SmartPort inverter with unipolar transistors:
Important
⚠️ **Warning: The selected UART pin must support 5V **. If it doesn't, use a 3.3V power supply (but this solution has not been verified).
Important
When using an external inverter, the following configuration must be applied:
set telemetry_halfduplex = OFF
set telemetry_inverted = ON2.2 Available SmartPort (S.Port) Sensor Data
| Sensor Code | Description |
|---|---|
| GSpd | Current ground speed (calculated from GPS) |
| VFAS | Actual battery voltage (vbat) value |
| Curr | Real-time current consumption (in Amperes) |
| Alt | Barometric altitude relative to takeoff point |
| Fuel | Battery percentage (if smartport_fuel_unit = PERCENT), otherwise used capacity (mAh) |
| GPS | GPS coordinates |
| VSpd | Vertical speed (in cm/s) |
| Hdg | Heading angle (0° North, 180° South) |
| AccX/Y/Z | Accelerometer data (not sent if frsky_pitch_roll = ON) |
| Flight Mode Encoding (ID: 470) | |
| 5-digit code ABCDE, where digits are additive (e.g., C bit set to 6 indicates altitude hold + position hold activated): |
- A bit: 1 = Flaperon mode, 2 = Auto tuning, 4 = Failsafe
- B bit: 1 = One-key return, 2 = Waypoint navigation, 4 = Headless mode
- C bit: 1 = Heading hold, 2 = Altitude hold, 4 = Position hold
- D bit: 1 = Level mode, 2 = Horizon mode, 4 = Channel passthrough
- E bit: 1 = Can arm, 2 = Disarm prevented, 4 = Armed
Important
⚠️ Note: This ID was originally Tmp1, changed to 470 starting from INAV 8.0. To use the old ID, set: set frsky_use_legacy_gps_mode_sensor_ids = ON (not recommended, will be removed in INAV 10.0)
GPS Status Encoding (ID: 480)
4-digit code ABCD, typical GPS lock status is: 3906
- A bit: 1 = GPS lock, 2 = Home point lock, 4 = Home point reset (can be combined)
- B bit: HDOP accuracy (0~9, 9 being best)
- C+D bits: Number of locked satellites (e.g., 14 satellites: C=1, D=4)
Important
⚠️ Note: This ID was originally Tmp2, now 480, it is recommended to update tools and scripts.
Other Sensors
| ID | Meaning |
|---|---|
| GAlt | GPS altitude (above sea level) |
| ASpd | True airspeed (measured by pitot tube, in Knots×10) |
| A4 | Average cell voltage (not minimum voltage) |
| 0420 | Distance to home point (in meters) |
| 0430 | Pitch angle × 10 (requires frsky_pitch_roll = ON) |
| 0440 | Roll angle × 10 (requires frsky_pitch_roll = ON) |
| 0450 | Flight vector angle or ground heading × 10 |
| 0460 | Bearing × 10 |
III. HoTT Telemetry
INAV's support for HoTT telemetry only simulates data for the following two module types:
- Electric Aviation Module (EAM)
- GPS Module
Requirements - Ensure your transmitter and receiver have been updated with the latest Graupner firmware.
- Some older transmitters (like MX-20) require manual enabling of EAM and GPS modules in the telemetry menu.
Connection Method (Recommended)
Important
✅ Suitable for newer INAV versions, or serial ports (like UART) that support single-wire communication:
- HoTT TX/RX → Direct connection to serial port TX pin
- Serial port RX left unconnected
- Set in CLI:
set telemetry_halfduplex = OFF
saveCompatibility Method (Old approach, for reference only)
If the FC cannot directly handle single-wire communication (TX/RX on separate lines), then hardware modification + diode signal mixing is required:
Connection Scheme:
HoTT TX/RX → Serial port RX (direct connection)
HoTT TX/RX → Diode → Serial port TX (connection through diode)
CLI settings:
set telemetry_halfduplex = ON
saveIV. LightTelemetry (LTM) Telemetry Protocol
LTM (LightTelemetry) is a lightweight, unidirectional serial telemetry protocol commonly used for:
- OSD modules
- Ground station systems
- Antenna trackers
INAV's support for LTM includes sending multiple different data frames, suitable for low-bandwidth, long-range telemetry scenarios.
LTM Supported Data Frames
| Frame Type | Description |
| --- | --- |
| G-FRAME | GPS information (latitude, longitude, ground speed, altitude, satellite count) |
| A-FRAME | Attitude information (pitch, roll, heading) |
| S-FRAME | Status information (voltage, current+, RSSI, airspeed+, flight status) (Note: items with "+" are not implemented in INAV) |
| O-FRAME | GPS position of origin (Home point), including latitude, longitude, and altitude |
| N-FRAME | Navigation information (GPS mode, navigation mode, navigation action, waypoint number, navigation error, navigation flag) |
| X-FRAME | Additional information (currently only HDOP is supported) |
Feature Description - Transmit Only: No feedback functionality, suitable for unidirectional communication links.
- Operates well at low rates: Uses 9600 baud by default, but can stably operate even at 2400, making it very suitable for SoftSerial.
- Suitable for long-range telemetry: Low rates can extend the communication distance of telemetry links.
Bandwidth Settings (ltm_update_rate)
Update rate (affecting bandwidth usage) can be set via CLI parameterltm_update_rate:
| Setting | Bandwidth Requirement | Required Baud Rate | Description |
| --- | --- | --- | --- |
| NORMAL | 303 bytes/sec | ≥4800 bps | Traditional rate |
| MEDIUM | 164 bytes/sec | ≥2400 bps | Recommended for medium distances |
| SLOW | 105 bytes/sec | ≥1200 bps | More suitable for long-range links (e.g., 433MHz) |
V. MAVLink Telemetry Protocol
MAVLink (Micro Air Vehicle Link) is a lightweight message encapsulation protocol widely used for:
- Ground stations (such as Mission Planner, QGroundControl)
- OSD modules
- Antenna tracking systems
- Compatible platforms: PX4, PIXHAWK, APM, Parrot AR.Drone, etc.
MAVLink Implementation Features in INAV - ✅ Transmit-Only: MAVLink in INAV is for unidirectional data output.
- ✅ Supports MAVLink v1 and v2 protocol versions
- ✅ Can operate on SoftSerial with minimum baud rate requirement of 19200, suitable for low-rate, long-range telemetry scenarios
VI. Cellular SMS Telemetry
INAV supports using SimCom SIM800 series cellular modules to send flight telemetry data via SMS (Text Message).
Feature Overview
- Flight controller status can be obtained by calling the module number or sending SMS.
- The module can send telemetry SMS at fixed intervals; send SMS when detecting acceleration events (such as impact, free fall, landing); receive SMS commands to set the flight controller to Return-to-Home (RTH) mode
SMS content example:
12.34V 2.0A ALT:5 SPD:10/13.6 DIS:78/19833 HDG:16 SAT:21 SIG:9 ANG maps.google.com/?q=6FG22222%2B222| Content Field | Meaning |
|---|---|
| 12.34V | Battery voltage |
| 2.0A | Current current |
| ALT:5 | Current altitude (meters) |
| SPD:10/13.6 | Current speed / Average speed (m/s) |
| DIS:78/19833 | Distance from home / Total flight distance (meters) |
| HDG:16 | Heading angle (°) |
| SAT:21 | Satellite count |
| SIG:9 | Cellular signal quality (0-31, recommended ≥10) |
| ANG | Current flight mode |
| maps.google.com | Real-time GPS coordinate position link |
| CLI Parameter Configuration Description |
- sim_transmit_flags: Set transmission conditions (string flags)
- T: Continuous transmission
- F: Send in Failsafe mode
- A: Send when flight altitude is below sim_low_altitude
- G: Send when GPS signal quality is too low
- sim_low_altitude: Low altitude threshold (unit: meters)
- sim_transmit_interval: Transmission interval, default 60 seconds
- acc_event_threshold_high: High acceleration threshold (impact detection)
- acc_event_threshold_low: Low acceleration threshold (free fall detection)
- acc_event_threshold_neg_x: Negative X-axis acceleration threshold (fixed-wing landing detection)
SMS Control Commands - Content starting with RTH: Toggle forced Return-to-Home (RTH) switch
- Sending regular text: Set new sim_transmit_flags (overwriting existing values)
- Sending empty SMS: Disable SMS transmission (equivalent to clearing all flags)
Velocity Event Indicators
When acceleration event related CLI parameters are enabled, SMS will include the following indicators at the beginning:
| Indicator | Meaning |
| --- | --- |
| HIT! | Impact / High G event |
| DROP | Free fall / Low G event |
| HIT | Landing / Backward acceleration event (mainly for fixed-wing) |
7. IBus Telemetry
IBus is FlySky's telemetry protocol. INAV supports sending flight data to the RC transmitter via IBus.
Connection method: Connect the TX pin of a bidirectional serial port on the flight controller to the IBus SENS pin of the receiver.
IBus's TX and RX share one line, so the RX pin cannot be used for other serial ports. It operates at a fixed baud rate of 115200, requiring hardware UART.
The IBus protocol allows multiple sensors to be connected in daisy chain, and telemetry data might be overwritten by sensor data.
7.1 IBUS Telemetry Support Status
- Default enabled: IBUS telemetry is enabled by default in most firmware.
- Disabled exception: ALIENWIIF3 RMDO targets explicitly disable it through #undef TELEMETRY_IBUS in target.h.
7.2 Available Telemetry Sensors (Numbered)
| Number | Type | Data Description (Unit) |
|---|---|---|
| 1 | Internal voltage | No practical use |
| 2 | Voltage | Battery voltage |
| 3 | Temperature | Prioritizes barometer temperature, otherwise reads gyroscope temperature (°C) |
| 4 | Status | Status bit information |
| 5 | Heading angle | Direction angle (°) |
| 6 | Current | Current current (A) |
| 7 | Altitude | Current altitude (m) |
| 8 | Home direction | Direction to home point (°) |
| 9 | Home distance | Distance to home point (m) |
| 10 | GPS heading | GPS Course Over Ground |
| 11 | GPS altitude | GPS altitude (m) |
| 12 | Latitude后半 | Last 4 decimal places of latitude, e.g., 5678 represents -12.345678 |
| 13 | Longitude后半 | Same as above |
| 14 | Latitude前半 | First 2 integer places of latitude, e.g., -12.45 |
| 15 | Longitude前半 | Same as above |
| 16 | GPS speed | km/h, can be changed to m/s in some modes (see CLI explanation below) |
| 1x3 | Transmitter voltage/error rate | Not available |
Important
Note: Sensors 8-16 are only available when GPS is enabled at compile time
7.3 GPS Status Field Parsing (STATUS)
- FIX (GPS positioning status): 1: No fix; 2: 2D fix; 3: 3D fix; 6: No fix + home point locked; 8: 3D fix + home point locked
- HDOP (positioning accuracy): 0: 0-9m (good); 8: 80-90m; 9: >90m (poor)
- Mode (flight mode): 0: PASSTHROUGH; 1: ARMED (rate); 2: HORIZON; 3: ANGLE; 4: WAYPOINT; 5: ALT HOLD; 6: POS HOLD; 7: RTH; 8: LAUNCH; 9: FAILSAFE
Important
✅ For example: 12803 = 12 satellites, 3D fix, home point locked, good HDOP, currently in ANGLE mode
7.4 CLI Parameter Settingsibus_telemetry_type
Different telemetry type numbers support different sensor combinations, which is especially important for users who enable 10 channels and GPS support for FlySky i6.
| Type Number | Features or Compatible Firmware |
|---|---|
| 0 | Standard sensor type (FS-i6/FS-i6S) |
| 1 | GPS speed in km/h type |
| 2 | GPS altitude in ALT type |
| 3 | Each sensor uses independent ID (compatible with 10ch_Mavlink_MOD) |
| 4 | Supports 4-byte sensors (requires RX firmware >= v1.6) |
| 5 | Adds fields like CLIMB, MODE (compatible with fix_updater) |
| 6 | Extended support (see hali9_updater) |
| 7 | Similar to 6, adds GPS_STATUS, ARMED and MODE |
| 8 | Same as 7, but reverses ARMED status |
| 131~136 | Same as 3~8, but GPS speed unit changed to m/s |
Important
It is recommended to use firmware that supports the most fields, such as FS-i6 10ch Mavlink MOD firmware with types 3-8.
7.5 IBUS RX and Telemetry Usage Instructions (Single Port)
In INAV firmware, IBUS receiver and telemetry communication can only use one UART port, and settings need to be configured according to the intended use:
A. Only Using IBUS Receiver (RX)
- Connection method: Flysky's IBUS-SERVO (receiver output) → Flight controller's UART RX pin
- Configuration method (INAV Configurator):
- Enable Serial RX in this UART port
- Receiver Mode: Set to RX_SERIAL
- Serial Receiver Provider: Select IBUS
B. Only Using IBUS Telemetry
- Connection method: Flysky's IBUS-SENS (telemetry input) → Flight controller's UART TX pin
- Configuration method (INAV Configurator): Enable Telemetry function in this UART port and enable TELEMETRY in Features
C. Using IBUS Receiver + Telemetry (Shared Port)
Since IBUS receiver and telemetry share the physical bus, bidirectional communication needs to be implemented through the following hardware circuit:
- R = 10KΩ: The [R] in the diagram should actually be a 10KΩ resistor for current limiting to prevent signal conflicts.
- 1N4148 diode: Needs to be connected on the Servo line (receiver output) → TX signal line, with the diode's cathode (end with stripe) facing the receiver's IBUS-Servo pin to prevent TX return current from interfering with the receiver's Servo output.
Connection Principle:
| Signal Flow | Description |
| --- | --- |
| Flight controller TX → Receiver Sensor (telemetry) | Sends Telemetry data through 10KΩ resistor |
| Receiver Servo → Flight controller TX (receiving data) | Allows unidirectional data to enter TX through 1N4148 diode |
| RX → Not connected | Since it's single-wire communication, this method doesn't need to use the RX pin |
8. SBUS2 Telemetry
SBUS2 telemetry requires connecting the TX pin of a hardware serial port (that supports reverse signal) on the flight controller to the SBUS2 pin on Futaba T-FHSS or FASSTest series receivers. This method has been tested with T16IZ transmitter paired with R7108SB and R3204SB receivers.
- UART TX → Connected to Futaba receiver's SBUS2 telemetry port through bidirectional communication line.
- UART RX → Not connected, remains unused [not connected], because SBUS2 uses single-wire bidirectional communication, so TX is sufficient.

————This article is referenced from the INAV official website: https://github.com/iNavFlight/inav/blob/master/docs/Telemetry.md