diff --git a/radio/src/pulses/sbus.cpp b/radio/src/pulses/sbus.cpp index 3a20ed436..bb757c1a9 100644 --- a/radio/src/pulses/sbus.cpp +++ b/radio/src/pulses/sbus.cpp @@ -107,6 +107,14 @@ inline int getChannelValue(uint8_t port, int channel) return channelOutputs[ch] + 2 * PPM_CH_CENTER(ch) - 2*PPM_CENTER; } +static void sbusFlush() +{ + if (extmodulePulsesData.dsm2.index & 1) + *extmodulePulsesData.dsm2.ptr++ = 60000; + else + *(extmodulePulsesData.dsm2.ptr - 1) = 60000; +} + void setupPulsesSbus() { #if defined(PPM_PIN_SERIAL) @@ -150,6 +158,5 @@ void setupPulsesSbus() // last byte, always 0x0 sendByteSbus(0x00); - putDsm2Flush(); - + sbusFlush(); } diff --git a/radio/src/storage/conversions/yaml/yaml_datastructs_funcs.cpp b/radio/src/storage/conversions/yaml/yaml_datastructs_funcs.cpp index 6d66fcf45..517fb9173 100644 --- a/radio/src/storage/conversions/yaml/yaml_datastructs_funcs.cpp +++ b/radio/src/storage/conversions/yaml/yaml_datastructs_funcs.cpp @@ -1133,6 +1133,7 @@ bool w_modSubtype(void* user, uint8_t* data, uint32_t bitoffs, } else if (md->type == MODULE_TYPE_FLYSKY) { str = yaml_output_enum(val, enum_FLYSKY_Subtypes); } else if (md->type == MODULE_TYPE_MULTIMODULE) { +#if defined(MULTIMODULE) // Use type/subType by the book (see MPM documentation) // TODO: remove that crappy translation and use the MPM // data as-is (no FrSky special casing) @@ -1145,7 +1146,7 @@ bool w_modSubtype(void* user, uint8_t* data, uint32_t bitoffs, if (!wf(opaque, str, strlen(str))) return false; if (!wf(opaque, ",", 1)) return false; str = yaml_unsigned2str(subtype); - +#endif } else if (md->type == MODULE_TYPE_DSM2) { str = yaml_output_enum(md->rfProtocol, enum_DSM2_Subtypes); } else { diff --git a/radio/src/storage/yaml/yaml_datastructs_funcs.cpp b/radio/src/storage/yaml/yaml_datastructs_funcs.cpp index b51017eaf..e2ed08fd1 100644 --- a/radio/src/storage/yaml/yaml_datastructs_funcs.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_funcs.cpp @@ -1645,6 +1645,7 @@ static void r_modSubtype(void* user, uint8_t* data, uint32_t bitoffs, } else if (md->type == MODULE_TYPE_FLYSKY) { md->subType = yaml_parse_enum(yaml_conv_220::enum_FLYSKY_Subtypes, val, val_len); } else if (md->type == MODULE_TYPE_MULTIMODULE) { +#if defined(MULTIMODULE) // Read type/subType by the book (see MPM documentation) // TODO: remove that crappy translation and use the MPM // data as-is (no FrSky special casing) @@ -1665,6 +1666,7 @@ static void r_modSubtype(void* user, uint8_t* data, uint32_t bitoffs, md->setMultiProtocol(type - 1); md->subType = subtype; } +#endif } else if (md->type == MODULE_TYPE_DSM2) { md->rfProtocol = yaml_parse_enum(yaml_conv_220::enum_DSM2_Subtypes, val, val_len); } else {