Skip to content

Conversation

@pfeerick
Copy link
Member

@pfeerick pfeerick commented Aug 14, 2025

Fixes #6514

Summary of changes:

  • update MPM proto list from 1.3.3.33 to 1.3.4.31
  • will affect Companion/Simulator proto lists and radio with no MULTI connected

New Protocols Added:

  • BlueFly (94) - No subtypes
  • BumbleB (95) - No subtypes
  • SGF22 (96) - 3 subtypes: F22, F22S, J20
  • Kyosho3 (97) - No subtypes
  • XK2 (98) - 2 subtypes: X4, P10
  • YuXiang (99) - No subtypes
  • JiaBaiLe (101) - 2 subtypes: STD, GYRO
  • H36 (102) - No subtypes

Modified Existing Protocols:

  • DSM (5): Added 2 new subtypes (DSMR, DSM2_SFC) - now 8 subtypes total
  • SLT (10): Added 2 new subtypes (V1_4ch, RF Sim) - now 7 subtypes total
  • HONTAI (25): Added XKK170 subtype - now 5 subtypes total
  • Traxxas (42): Changed subtype from "RX6519" to "TQ"
  • FX (57): Added Q560 subtype - now 4 subtypes total
  • EazyRC (60): Renamed from "Tiger" (protocol name change)
  • XK (61): Added "Cars" subtype - now 3 subtypes total
  • RadioLink (73): Added RC4G subtype - now 4 subtypes total
  • MT99XX2 (91): Added SU35 subtype - now 2 subtypes total

@mha1 Does the changes look about right to you? These are the two multi files if you want to compare them yourself.

Multi_1.3.3.33.txt
Multi_1.3.4.31.txt

@pfeerick pfeerick added the house keeping 🧹 Cleanup of code and house keeping label Aug 14, 2025
@pfeerick pfeerick force-pushed the pfeerick/update-mpm-defs-1.3.4.31 branch from 0d66819 to efc3d0d Compare August 14, 2025 01:46
@mha1
Copy link
Contributor

mha1 commented Aug 14, 2025

Hi Peter,

I started the same activity yesterday but haven't PR'd it because testing with the simulator is currently not possible due to a bug probably in libsim, see https://discord.com/channels/839849772864503828/909552654328406056/1405299901520416888. Check out https://github.com/mha1/edgetx/tree/update_MPM_defaults_1.3.4.31 for what I did additinally/different.

Here's a summary:

This is the most critical issue. Multi.txt leaves gaps for defined but not selectable protocols .Notice the gap in 1.3.4.31 multi.txt between YuXiang and JIABAILE. We need to account for this gap. Otherwise all the index calculations are wrong and lead to "???" in Companion and simu crashes.

MPM/Multi.txt:

98,Kyosho3
99,XK2,X4,P10
100,YuXiang
102,JIABAILE,STD,GYRO
103,H36

MPM/Multiprotocol.h:

	PROTO_KYOSHO3	= 98,	// =>CYRF6936
	PROTO_XK2		= 99,	// =>CC2500 & NRF24L01
	PROTO_YUXIANG	= 100,	// =>NRF24L01
	PROTO_PINECONE	= 101,	// =>CC2500 & NRF24L01 <-- this is the one not being selectable
	PROTO_JIABAILE	= 102,	// =>NRF24L01
	PROTO_H36		= 103,	// =>NRF24L01

Solution: define the protocol in enum ModuleSubtypeMulti (even if not selectable), give it a proto name in , leave out of the list of Protos. This keeps indexes in line with the MPM's indexes

  MODULE_SUBTYPE_MULTI_XK2,
  MODULE_SUBTYPE_MULTI_YUXIANG,
  MODULE_SBUTYPE_MULTI_PINECON, // 100
  MODULE_SUBTYPE_MULTI_JIABAILE,
  MODULE_SUBTYPE_MULTI_H36,
  "Xerall","MT99XX2","Kyosho2","Scorpio","BlueFly","BumbleB","SGF22","Kyosho3","XK2","YuXiang",\
  "Pinecon","JIABAILE","H36"
  {MODULE_SUBTYPE_MULTI_XK2,        1, false, false,  STR_SUBTYPE_XK2,       STR_MULTI_RFTUNE},
  {MODULE_SUBTYPE_MULTI_YUXIANG,    0, false, false,  NO_SUBTYPE,            nullptr},
  // MODULE_SUBTYPE_PINECONE non selectable and masked out for selection
  {MODULE_SUBTYPE_MULTI_JIABAILE,   1, false, false,  STR_SUBTYPE_JIABAILE,  nullptr},
  {MODULE_SUBTYPE_MULTI_H36,        0, false, false,  NO_SUBTYPE,            nullptr},

FrskyX and FrSkyX2 so far shared the subprotocols. They now have slightly different names. I created a dedicated FrSkyX2 subprotocol list and used it for protocol FrskyX2 to be in line with multi.txt:

15,FrskyX,CH_16,CH_8,EU_16,EU_8,Cloned,Clon_8
64,FrskyX2,CH_16,CH_8,EU_16,EU_8,Cloned
STRLIST(STR_SUBTYPE_FRSKYX,    {"CH_16","CH_8","EU_16","EU_8","Cloned","Clon_8"})
STRLIST(STR_SUBTYPE_FRSKYX2,   {"CH_16","CH_8","EU_16","EU_8","Cloned"})

There's more protocols that now have subprotocols:

STRLIST(STR_SUBTYPE_REALACC,   {"R11"})
STRLIST(STR_SUBTYPE_E016HV2,   {"E016Hv2"})

XNDUMP now has four instead of five subprotocols:

STRLIST(STR_SUBTYPE_XN297DUMP, {"250K","1M","2M","AUTO"})
  {MODULE_SUBTYPE_MULTI_XN297DUMP,  3, false, false,  STR_SUBTYPE_XN297DUMP, STR_MULTI_RFCHAN},

BLUEFLY, BUMBLEB and XK2 need option STR_MULTI_RFTUNE

  {MODULE_SUBTYPE_MULTI_KYOSHO2,    0, false, false,  STR_SUBTYPE_KYOSHO2,   nullptr},
  {MODULE_SUBTYPE_MULTI_SCORPIO,    0, false, true,   NO_SUBTYPE,            nullptr},
  {MODULE_SUBTYPE_MULTI_BLUEFLY,    0, false, false,  NO_SUBTYPE,            STR_MULTI_RFTUNE},
  {MODULE_SUBTYPE_MULTI_BUMBLEB,    0, false, false,  NO_SUBTYPE,            STR_MULTI_RFTUNE},
  {MODULE_SUBTYPE_MULTI_SGF22,      2, false, false,  STR_SUBTYPE_SFG22,     nullptr},
  {MODULE_SUBTYPE_MULTI_KYOSHO3,    0, false, false,  NO_SUBTYPE,            nullptr},
  {MODULE_SUBTYPE_MULTI_XK2,        1, false, false,  STR_SUBTYPE_XK2,       STR_MULTI_RFTUNE},
  {MODULE_SUBTYPE_MULTI_YUXIANG,    0, false, false,  NO_SUBTYPE,            nullptr},

And there's a lot of protocols that have the same number of subprotocols but names have changed slightly, e.g.:
image

@pfeerick pfeerick force-pushed the pfeerick/update-mpm-defs-1.3.4.31 branch 2 times, most recently from 99e7fee to b4845da Compare October 22, 2025 03:04
@pfeerick pfeerick force-pushed the pfeerick/update-mpm-defs-1.3.4.31 branch from b4845da to ab904db Compare November 2, 2025 02:29
@pagrey
Copy link

pagrey commented Nov 3, 2025

Some subprotocols like DSM and FrSkyX change names depending on how the module is compiled and aren't correctly reflected in Multi.txt. I think Multi.txt shows 8 options for DSM and only seven are available depending on the MULTI_EU flag.

I don't know if it's the right way to do it but I used Multi_Protos.ino to get the names of the protocols and subprotocols instead of the text file. I think that's where the module gets the information. It's probably not useful but I use the latest version, I know you have to go with an official release but when I put it together I noticed the DSM stuff.

https://github.com/pagrey/edgetx/tree/pagrey/update-mpm-defs-1.3.4.52

@pfeerick
Copy link
Member Author

pfeerick commented Nov 4, 2025

This is in part only relevant when configuring the MPM "without" it present (i.e.module not inserted, simulator)... so protocols/subprojects will be shown that aren't valid for certain firmware builds... but if the MPM is online, they won't be shown.

You are right to question the validity of multi.txt though, as it looks like Frsky X and Frsky X2 are still identical (per multi_protos.ino AND Protocols_Details.md), but the first two sub-protocols are dropped if it is EU firmware. To me, this reads like a five year old "bug" in multi.txt 😮 You can see it was added only once here in the implementation commit, but there are other references to say that "cloned_8" applies to both X and 2... pascallanger/DIY-Multiprotocol-TX-Module@f502ba3#diff-953f83f5c33ba8e706163692ba97a97b1ab6576dc09da45fad04413d71aa1418

@pfeerick pfeerick added this to the 2.12.0 milestone Dec 22, 2025
@pfeerick pfeerick force-pushed the pfeerick/update-mpm-defs-1.3.4.31 branch from ab904db to 038d721 Compare December 22, 2025 23:22
@pfeerick pfeerick force-pushed the pfeerick/update-mpm-defs-1.3.4.31 branch from 038d721 to 265e248 Compare January 4, 2026 08:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

house keeping 🧹 Cleanup of code and house keeping

Projects

None yet

Development

Successfully merging this pull request may close these issues.

MT12 Companion is not displaying MPM DSM subptype 2SFC

4 participants