diff --git a/radio/src/pulses/modules_helpers.cpp b/radio/src/pulses/modules_helpers.cpp index f0234c87909..326bc104b0c 100644 --- a/radio/src/pulses/modules_helpers.cpp +++ b/radio/src/pulses/modules_helpers.cpp @@ -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 { diff --git a/radio/src/pulses/multi.cpp b/radio/src/pulses/multi.cpp index f5ed79b9ebd..c6ead62c83e 100644 --- a/radio/src/pulses/multi.cpp +++ b/radio/src/pulses/multi.cpp @@ -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