-
Notifications
You must be signed in to change notification settings - Fork 58
Advanced Topics
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.
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.
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 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.
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.
Some ESC protocols support auto-detection:
- Detects ESC model and firmware
- Sets scaling parameters automatically
If auto-detect fails, parameters must be set manually.
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.
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 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
Some receivers boot faster than MSRC.
If the receiver polls before MSRC is ready, telemetry will fail.
Solutions:
- Power receiver after MSRC
- Use manual clock stretch (switch)
- Use transistor-based clock stretch
- Enable XBUS Clock Stretch
The RP2040 ADC range is:
0β3.3V
Input voltage must not exceed this limit.
To measure higher voltages:
Vout = Vin Γ R2 / (R1 + R2)
Ensure:
- Vout < 3.3V
- Total impedance < 10kΞ©
Use metal resistors for accuracy.
Two types are supported:
- Hall effect sensors (e.g. ACS773, ACS756)
- Shunt resistor sensors
Calibration is done using the Current Multiplier.
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 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.
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.
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 mode can be enabled in MSRC Link.
It provides:
- Sensor data logs
- Communication status
- Error information
Useful for diagnosing issues.
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