Skip to content

Advanced Topics

Daniel edited this page Mar 5, 2026 · 3 revisions

This section covers advanced concepts and internal behavior of MSRC.
It is intended for users who want a deeper understanding of telemetry, sensors, and system performance.


Telemetry Architecture

MSRC supports different telemetry protocols, which may use either polling or push mechanisms.

  • Polling protocols (e.g. Smartport, XBUS, Jeti EX)
    The receiver requests telemetry data at fixed intervals.

  • Push protocols (e.g. CRSF/ELRS)
    MSRC sends telemetry data continuously without explicit requests.

Update Rates

Telemetry update rates depend on:

  • The selected protocol
  • The type of sensor
  • Available bandwidth

MSRC automatically adjusts update rates to fit protocol limitations.
Some sensors (e.g. GPS) use slower update rates than fast-changing data like RPM.


GPS Deep Dive

Fix, Home Position, and Distance

GPS data is only valid when a fix is available.

  • Fix = valid GPS position
  • Home position is set when the first valid fix is received
  • Distance to home may be calculated:
    • In MSRC (depending on protocol)
    • In the transmitter (e.g. OpenTX/EdgeTX)

Small variations in position (1–3 meters) are normal due to GPS accuracy.

UBLOX Auto Configuration

When UBLOX protocol is selected:

  • Baud rate and update rate are configured automatically at boot
  • Configuration is stored in the GPS module (persistent)

Requirements:

  • GPS RX connected to GPIO 14
  • Supported baud rates:
    • 115200, 57600, 38400, 9600

After configuration, the RX line may be disconnected.


ESC Deep Dive

Auto Detect

Some ESC protocols support auto-detection:

  • Detects ESC model and firmware
  • Sets scaling parameters automatically

If auto-detect fails, parameters must be set manually.

Voltage and Current Scaling

ESC telemetry may provide raw values.

To obtain correct readings:

  • Use Voltage Divisor
  • Use Current Multiplier

Calibration in MSRC is recommended over transmitter calibration for better resolution.

ESC Init Delay

Some ESCs require a delay before telemetry is available.

If the ESC does not arm:

  • Enable ESC Init Delay
  • Or power MSRC after the ESC is initialized

I2C Deep Dive

Pull-ups

I2C lines (SDA/SCL) require pull-up resistors.

  • Typical values: 4.7kΞ© – 10kΞ©
  • Some receivers already include pull-ups

Incorrect pull-ups may result in:

  • No telemetry
  • Unstable communication

Boot Timing and Clock Stretch (XBUS)

Some receivers boot faster than MSRC.

If the receiver polls before MSRC is ready, telemetry will fail.

Solutions:

  1. Power receiver after MSRC
  2. Use manual clock stretch (switch)
  3. Use transistor-based clock stretch
  4. Enable XBUS Clock Stretch

Analog Sensors and Airspeed

ADC Limits

The RP2040 ADC range is:

0–3.3V

Input voltage must not exceed this limit.

Voltage Divider

To measure higher voltages:

Vout = Vin Γ— R2 / (R1 + R2)

Ensure:

  • Vout < 3.3V
  • Total impedance < 10kΞ©

Use metal resistors for accuracy.

Current Sensors

Two types are supported:

  • Hall effect sensors (e.g. ACS773, ACS756)
  • Shunt resistor sensors

Calibration is done using the Current Multiplier.

Airspeed Measurement

A differential pressure sensor (MPXV7002) is used.

  • Sensor must be powered at 5V
  • Output must remain within 3.3V ADC range

Maximum measurable airspeed is approximately 131 km/h.

Airspeed Calculation

Airspeed is calculated as:

TAS = sqrt(2 Γ— Ξ”P / ρ)

Where:

  • Ξ”P is differential pressure
  • ρ is air density

If a barometer is present, air density is calculated dynamically.


Multi-Module Setup

INA3221 (LiPo Monitoring)

Each INA3221 supports 3 cells.

Multiple modules can be connected via I2C:

  • Address 0x40 β†’ cells 1–3
  • Address 0x41 β†’ cells 4–6

Addresses must be unique.

Multiple MSRC Boards

Some protocols limit the number of telemetry values (e.g. Jeti EX).

If more sensors are required:

  • Use multiple MSRC boards
  • Connect to different telemetry ports
  • Or use a telemetry expander

Debug and Performance

Debug Mode

Debug mode can be enabled in MSRC Link.

It provides:

  • Sensor data logs
  • Communication status
  • Error information

Useful for diagnosing issues.

CPU Load

Each enabled sensor consumes processing time.

To optimize performance:

  • Disable unused sensors
  • Avoid unnecessary calculations
  • Reduce telemetry load if needed

High CPU load may result in:

  • Delayed telemetry
  • Missed packets

← Sensors
β†’ Troubleshooting

Clone this wiki locally