feat(mpm): increase Spektrum/DSM max channels to 16 (2.12) (#7632)

Co-authored-by: Peter Feerick <5500713+pfeerick@users.noreply.github.com>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Frankie Arzu
2026-08-19 23:43:15 +00:00
committed by Peter Feerick
co-authored by Peter Feerick Claude Sonnet 5
parent 5a75b5146d
commit 0819f8d5c0
3 changed files with 3 additions and 7 deletions
+1 -5
View File
@@ -365,11 +365,7 @@ int ModuleData::getMaxChannelCount()
case PULSES_DSMX:
return 6;
case PULSES_MULTIMODULE:
if (multi.rfProtocol == MODULE_SUBTYPE_MULTI_DSM2)
return 12;
else
return 16;
break;
return 16;
case PULSES_FLYSKY_AFHDS2A:
return 14;
case PULSES_FLYSKY_AFHDS3:
+1 -1
View File
@@ -66,7 +66,7 @@ int8_t maxModuleChannels_M8(uint8_t moduleIdx)
return 8; // always 16 channels in FCC / FLEX
}
} else if (isModuleMultimoduleDSM2(moduleIdx)) {
return 4; // 12 channels
return 8; // 16 channels with new MultiModule Firmware. Older firmware will still work up to 12ch.
} else if (isModuleDSMP(moduleIdx)) {
return 4; // 12 channels
} else {
+1 -1
View File
@@ -366,7 +366,7 @@ void sendFrameProtocolHeader(uint8_t*& p_buf, uint8_t module, bool failsafe)
optionValue |= 0x40; // 11ms servo refresh
if (g_model.moduleData[module].multi.optionValue & 0x04)
optionValue |= 0x20; // Cloned
optionValue |= sentModuleChannels(module); //add number of channels
optionValue |= sentModuleChannels(module) & 0x0F; //add number of channels, make sure is only 4 bits, 0 means 16 channels.
}
// Set the highest bit of option byte in AFHDS2A protocol to instruct MULTI to passthrough telemetry bytes instead