06. Receiver protocol - dgatf/msrc GitHub Wiki
The following Rx protocols are supported:
- Frsky Smartport: inverted serial, 57600 bps
- Frsky D: inverted serial, 9200 bps
- Spektrum XBUS: I2C
- Spektrum SRXL V5: serial, 115200 bps
- Flysky IBUS: serial, 115200 bps
- Futaba SBUS2: inverted serial, 100000 bps
- Multiplex Sensor Bus: serial, 38400 bps
- Jeti Ex Bus: serial 125000, 250000 bps
- Hitec: I2C
- Serial Monitor. This is not a Rx protocol, but a serial monitor on GPIO5
- ELRS/CRSF: serial, 416666 bps
- Sanwa: serial, 115200 bps
- Hott: serial 19200 bps
- Spektrum SRXL2: serial 115200 bps
- JR DMSS: serial 250000, 2 stop bits
Connect MSRC to Smartport.
Connect MSRC the telemetry port.
Auto-config may be used to detect the new sensors.
XBUS port
For older telemetry receivers with only XBUS port like TM1000 and TM1100, pull up resistors are needed. For newer receivers with both XBUS and SRXL2 ports, pull up resistors are not needed. In either case it has to be the correct option, otherwise XBUS won't work. So, if no telemetry shown in transmitter try the other option (with or without pull ups). One of the two posibilities will work. (Thanks RCG_KevinB from RCGroups for solving this issue).
With old receivers this does not affect, but newer receivers boot faster and could be an issue.
If no telemetry is shown, may be MSRC is booting too slow and the first poll from the receiver is not answered. There are several ways to fix this:
- Power on the receiver after MSRC has started
- I2C clock stretch. Pull down the SCL line until MSRC has started, then open the switch. You can use a manual switch or a NPN transistor (e.g. PN2222ABU). If using a transistor you need to enable XBUS Clock Stretch to open the transistor switch after boot. If using manual switch, open the switch after boot, to finish the clock stretch
Clock stretch XBUS with manual switch
Spektrum SRXL is bidirectional with telemetry, other SRXL are unidirectional. See SRXL.
Spektrum SRXL
Connect MSRC to sensor port.
Slots sensor mapping for Futaba transmitters:
Slot | Sensor |
---|---|
0 | RX voltage (reserved) |
1 | Temperature 1 (SBS-01T/TE) |
2 | RPM (type magnet)(SBS-01RB/RM/RO) |
3-4 | Vario-F1672 |
6-7 | Voltage (SBS-01V) |
8-15 | GPS-F1675 (2) |
16 | Air speed (SBS-01TAS) |
17-23 | Unused |
24-26 | Current 1 (SBS-01C) |
27-29(2) | Current 2 (SBS-01C) |
30(2) | Temperature 2 (SBS-01T/TE) |
31 | Unused |
(1) Do not select default GPS
(2) Non default slots
Select protocol: FASSTest 18CH or T-FHSS
Connect to SBUS2 port
Connect to Sensor port
Sensor bus port
Configure receiver pin (E1 or E2) as Ex Bus. The maximum number of sensors (values) is 15. If more sensors are needed, use an another MSRC board and connect to E2 or to a Jeti Telemetry Expander.
Use 6k pullup resistors.
If Vin is a regulated 5V source (e.g. receiver, BEC), pull ups can be connected to Vin/RAW instead Vcc.
Wire colors in the images bellow:
- Yellow wire is SCL (gpio3)
- Red is SDA (gpio2)
- Black is GND
Hitec Optima 7
Hitec Optima 9
This is not a Rx protocol. No sensors are enabled.
Enable a serial monitor at GPIO 1 or 5 with the selected parameters.
Available sensors with ELRS/CRSF are: Airspeed, RPM, temp, cells, GPS, vario and battery (voltage, current and consumption).
Connect receiver Rx to RP2040 GPIO 0. No need to connect receiver Tx.
Available sensors:
- ESC temperature.
- Motor temperature. In case the ESC provides BEC temperature, it is linked to this telemetry value. To measure motor temperature, enable analog temperature and use a ntc termistor attached to the motor. It overrides BEC temperature if available from the ESC.
- Rpms.
- Voltage.
Coonect to the telemetry port marked with a T. Depending on the model, there is a dedicated port for telemetry (e.g. GR-32) or it uses a servo channel (e.g. GR-12).
If the receiver goes into bind mode or there is no telemetry, add a 10k pullup to the signal line.
See SRXL2 specifications.
SRXL2 connectors
Connect to XBUS port.