-
-
Notifications
You must be signed in to change notification settings - Fork 455
chore: refresh MPM defs to 1.3.4.31 #6515
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
0d66819 to
efc3d0d
Compare
|
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: 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, // =>NRF24L01Solution: define the protocol in 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: 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.: |
99e7fee to
b4845da
Compare
b4845da to
ab904db
Compare
|
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 |
|
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 |
ab904db to
038d721
Compare
038d721 to
265e248
Compare

Fixes #6514
Summary of changes:
New Protocols Added:
Modified Existing Protocols:
@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