What is Multi Protocol Module?
The Multiprotocol Module is a radio transmitter module which enables the radio transmitter to control many different receivers that are controlled with various protocols and various systems – such as FrSky, Flysky, Futaba, Spectrum, Bayang and many many more.
More information about the multi protocol module concept and project details can be found on the project GitHub page: https://github.com/pascallanger/DIY-Multiprotocol-TX-Module
Types of multi protocol modules
The most widespread are external multi protocol modules, compatible with JR module bay. These are Jumper JP4IN1, iRangeX 4in1, etc modules. There are also compact external multi protocol modules, that are compatible with the FrSky Lite module bay. These are FrSky Vantac MPM Multimodule, URUAV MX5 Lite, iRangeX IRX4 Lite modules. There are also internal multi protocol modules for specific transmitters such as Jumper T16.
Why would I need to update the firmware?
Multiprotocol firmware is constantly improving by the developers of this great Open Source project
As a small example in Multiprotocol v126.96.36.199 developers added automatic tuning of RF frequency during binding the FrSky receivers. Great feature saving a lot of manual work. In Multiprotocol v188.8.131.52 developers added 2.4GHz spectrum analyzer available in the 2.3 OpenTX version. Of course there is the much larger list of the changes, updates and protocol implementations, that developers have made.
Full list of releases and the change log is here: https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/releases
If you have updated the OpenTX firmware on your radio and you see the warning message “Upg. advised” in the model setup page 2 in the Status line, that means upgrade of the multiprotocol module firmware is recommended.
The MULTI-Module firmware version on Jumper T16/T18 and Radiomaster TX16S can be checked by looking at the Module Status line in the Model Setup menu on the radio:
If the OpenTX knows that there is newer Multirprotocol version available, then Module update recommended will be flashing alternately with the version number in the Module Status.
How to update external multi protocol module?
There are 2 options how to update the external multi protocol module:
From a radio running OpenTX (or erSkyTX)
Using Flash Multi application
It should be possible to update the multi protocol module from the radio if the firmware version on the module is v184.108.40.206 or newer and OpenTX 2.3.3 or newer.
You can update any version of the module firmware with the Flash Multi application.
Update external multi protocol module using the OpenTX radio
Download the right firmware file from here: https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/releases. There are a lot of firmware file options available, but in general if you have the Jumper JP4IN1, iRangeX IRX4, etc. external multi protocol module, and a radio running OpenTX or JumperTX, then you should download the file named
multi-stm-opentx-[channel-order]-inv-[version].bin. Or just use the firmware file selector here: https://downloads.multi-module.org/ (see the more info about the firmware file selector below).
Put the downloaded firmware *.bin file on the radio SD card. It does not matter where will you save is, but I usually put all the firmware files in the [FIRMWARE] folder on SD card.
Note: You may need to shorten the firmware file if it does not appear on the radio screen. There is a filename length restriction.
Turn on the radio. Go to system menu and select the SD CARD contents page. Navigate to the [FIRMWARE] folder.
Select the firmware file
Long press the [Enter] button (or scroll wheel on some radios) and select the Flash Ext. Multi from the appeared menu.
Wait for the flashing process to finish.
You can check the multiprotocol module firmware in the model setup menu page 2, in the Status line (here we see v.220.127.116.11):
Note: You may need to re-bind the receivers to your multiprotocol module after the update process.
Update external multi protocol module using Flash Multi
Download the Flash-Multi utility from here: https://github.com/benlye/flash-multi/releases
Download the right firmware file from here: https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/releases. TOr just use the firmware file selector here: https://downloads.multi-module.org/ .
Connect the external multi protocol module by USB mini cable (or USB Micro cable on Lite modules). You should see a new Serial Port device in the device manager:
Start the Flash-Multi.exe utility. Select the Serial port in the drop down. Select the downloaded firmware file:
Press the [Upload] button and wait for the flashing process to complete
You have successfully flashed the multiprotocol firmware to external module!
Note: You may need to re-bind the receivers to your multiprotocol module after the update process.
Multiprotocol Firmware Download Page
One of the Multiprotocol developers, Ben Lye, has made a brilliant page with firmware file selector. This page makes the finding of the right firmware file so much easier.
Multiprotocol Firmware Download Page: : https://downloads.multi-module.org/
There you only need to select your radio multimodule type, channel order and firmware version. Here is the screenshot of the selector:
- The external JP4IN1 module will not need the USB adapter to update. There is a mini USB port on the module which could upgrade firmware directly.
- The internal JP4IN1 module which is version V18.104.22.168 or above will not need the USB adapter to update the firmware as the bootloader is already installed.
MultiProtocol firmware change log
Change Log since v22.214.171.124
- New sub protocol for Pelikan: Lite
- New sub protocol for Bayang: QX100
- New protocol Q90C: this protocol has limited features. If you have a TX then contact me on GitHub or RCGroups.
- Protocol DSM RX: changed Aileron and Rudder direction to match original radio convention.
- Protocol HoTT:
- LBT implemented.
- Full telemetry support including auto sensors discovery.
- Full sensors text config.
- Available in OpenTX 2.3.8N226
- New sub protocols Sync and No_Sync:
- Sync offers better telemetry performance but the RXs/sensors must use the latest firmware.
- No_Sync is for compatibility mode with old receiver firmwares but you should upgrade…
- New protocol DSM RX: To be used as a source for Multi/trainer available in OpenTX. Auto detect DSM2/X 11/22ms and 1024/2048 formats at bind time
- New protocol JJRC345
- HoTT: Full telemetry support including auto sensors discovery. Full sensors text config. It should be available in OpenTX 2.3.8N226
- Devo: add basic telemetry TX RSSI, A1 and A2
- New protocol eSky 150 v2
- FrSky D16 LBT v1.x & 2.1: adjust LBT detection threshold and LBT power to match ETSI requirements
Change Log since v126.96.36.199
- Protocols appearing in alphabetic order, only available in the latest OpenTX 2.3.8 nightlies (not published yet)
- Video in action: https://youtu.be/eiExuVHtWDw
- Only show protocols which are installed in the Multi module
- the only exception is FrSky D8 and V8 which will still appear if disabled but will show up as invalid
- RX protocols have now a disable LNA feature and less unuseful settings
- New protocol Skyartec
Multi v188.8.131.52 has been released on GitHub: https://github.com/pascallanger/DIY-…odule/releases
Change Log since v184.108.40.206
- Protocol FrSkyX and FrSkyX2: improve TX to RX SPort code – Thanks Mike for pointing it out
- Protocol FrSkyL: New
- Compatible model: L9R RX
- Protocol: FrSkyL (66)
- Sub protocols: LR12 36ms and LR12_6CH 18ms
- Extended limits supported
- Telemetry: no
- Protocol FrSky_RX: RX addition of D16v2.1 FCC/LBT
- Auto detection of the protocol used by a TX transmitting FrSkyD/D8, FrSkyX/D16 v1.xxx FCC/LBT or FrSkyX/D16 v2.1.0 FCC/LBT at bind time..
- For FrSkyX/D16, RX num must match on the master and slave. This enables a multi student configuration for example.
- Protocol FrSky_RX: new subprotocol CloneTX
- This subprotocol makes a clone of a TX identifier transmitting FrSkyD/D8, FrSkyX/D16 v1.xxx FCC/LBT and FrSkyX/D16 v2.1.0 FCC/LBT.
- There are 3 slots available, 1 slot for D8 cloning, 1 slot for FrSkyX (D16v1) cloning and 1 slot for FrSkyX2 (D16v2.1.0) cloning.
- The same TX or different TXs can be used for each slot but a maximum of 1 per slot.
- If you launch the FrSky_RX/CloneTX protocol and do a bind with a TX transmitting with the D8 protocol, it will be saved in the slot D8. Same for D16v1 and D16v2.1 .
- Then the system will alow you to enable cloning as you wish for each model using the FrSkyD/X/X2 “Cloned” subprotocol. This way you can have models working with the original MPM indentifier and models which are shared by both the cloned TX and MPM.
- OpenTX 2.3.8 N184 (nightly) or later is needed to have access to the new FrSky “D8Cloned” and “D16Cloned” subprotocols, D16v2.1 “Cloned” is available under FrSkyX2/Cloned.
- For FrSkyX and FrSkyX2, RX number has to be adjusted on each model to match the original TX model
- For FrSkyD, only the RX number used during bind is cloned -> you can’t use RX num anymore
Change Log since latest release 220.127.116.11:
- Protocol FrSkyX: add bind options CH1-8/CH9-16 & Telem ON/OFF => need an OpenTX nightly build
- Protocol Flyzone: add channel 5
- Protocol Bayang RX: improved RX code and timing
- Protocol FrSky RX: fix bind which could fail if another FrSky TX was transmitting around
- Protocols using the XN297L@250K emulation layer (V911S, KF606, GD00x,…): XN297L@250kbps is emulated by default with the NRF24L01. If option (freq tune) is different from 0, the CC2500 module (if installed) will be used instead with option being the usual frequency tuning.
- New protocol Pelikan: number 60, no sub protocol, 8 channels AETR, extended limit supported => still work in progress
- New protocol Tiger: model Tiger drone 1400782, number 61, no sub protocol, CH5 Flip, CH6 Light
- Fix erskyTX module status
- Direct inputs: only available when using PPM and STM32, possibility to solder 2 or 3 position switches on some of the free pins of the STM32 to add more channels
- XN297Dump: new auto sub protocol, it will automatically:
- find XN297L packet -> bitrate, scrambling, enhanced…
- use address to filter incoming packets
- find all frequencies
- determine channel order (basic)
- help to find out the changes by only displaying packets when there is a change in the packet
2019-12-17: Article created
2020-04-21: Additional flash method added