diff --git a/radio/src/pulses/pulses.cpp b/radio/src/pulses/pulses.cpp index 82f039f54..f8a6124b0 100755 --- a/radio/src/pulses/pulses.cpp +++ b/radio/src/pulses/pulses.cpp @@ -584,8 +584,8 @@ bool setupPulsesInternalModule() if (moduleState[INTERNAL_MODULE].protocol != protocol) { intmoduleStop(); - moduleState[INTERNAL_MODULE].protocol = protocol; enablePulsesInternalModule(protocol); + moduleState[INTERNAL_MODULE].protocol = protocol; return false; } else { @@ -612,8 +612,8 @@ bool setupPulsesExternalModule() if (moduleState[EXTERNAL_MODULE].protocol != protocol) { extmoduleStop(); - moduleState[EXTERNAL_MODULE].protocol = protocol; enablePulsesExternalModule(protocol); + moduleState[EXTERNAL_MODULE].protocol = protocol; return false; } else { diff --git a/radio/src/telemetry/telemetry.cpp b/radio/src/telemetry/telemetry.cpp index 846e49592..b472721e3 100644 --- a/radio/src/telemetry/telemetry.cpp +++ b/radio/src/telemetry/telemetry.cpp @@ -133,18 +133,22 @@ void telemetryWakeup() #endif #if defined(INTERNAL_MODULE_MULTI) - if (intmoduleFifo.pop(data)) { - LOG_TELEMETRY_WRITE_START(); - do { - processMultiTelemetryData(data, INTERNAL_MODULE); - LOG_TELEMETRY_WRITE_BYTE(data); - } while (intmoduleFifo.pop(data)); - } + if (isModuleMultimodule(INTERNAL_MODULE)) { + if (intmoduleFifo.pop(data)) { + LOG_TELEMETRY_WRITE_START(); + do { + processMultiTelemetryData(data, INTERNAL_MODULE); + LOG_TELEMETRY_WRITE_BYTE(data); + } while (intmoduleFifo.pop(data)); + } #if defined(MULTI_PROTOLIST) - if (MultiRfProtocols::instance(INTERNAL_MODULE)->isScanning()) { - MultiRfProtocols::instance(INTERNAL_MODULE)->scanReply(); - } + if ((moduleState[INTERNAL_MODULE].protocol == + PROTOCOL_CHANNELS_MULTIMODULE) && + MultiRfProtocols::instance(INTERNAL_MODULE)->isScanning()) { + MultiRfProtocols::instance(INTERNAL_MODULE)->scanReply(); + } #endif + } #endif #if defined(PCBNV14) @@ -170,11 +174,13 @@ void telemetryWakeup() #if defined(MULTI_PROTOLIST) if (isModuleMultimodule(EXTERNAL_MODULE) && - MultiRfProtocols::instance(EXTERNAL_MODULE)->isScanning()) { - MultiRfProtocols::instance(EXTERNAL_MODULE)->scanReply(); + (moduleState[EXTERNAL_MODULE].protocol == + PROTOCOL_CHANNELS_MULTIMODULE) && + MultiRfProtocols::instance(EXTERNAL_MODULE)->isScanning()) { + MultiRfProtocols::instance(EXTERNAL_MODULE)->scanReply(); } #endif - + #elif defined(PCBSKY9X) if (telemetryProtocol == PROTOCOL_TELEMETRY_FRSKY_D_SECONDARY) { while (telemetrySecondPortReceive(data)) {