diff --git a/src/modules/SX127x/SX127x.cpp b/src/modules/SX127x/SX127x.cpp index b508cd7c..18612c4a 100644 --- a/src/modules/SX127x/SX127x.cpp +++ b/src/modules/SX127x/SX127x.cpp @@ -1178,7 +1178,12 @@ bool SX127x::findChip(uint8_t ver) { } int16_t SX127x::setMode(uint8_t mode) { - return(_mod->SPIsetRegValue(SX127X_REG_OP_MODE, mode, 2, 0, 5)); + uint8_t checkMask = 0xFF; + if((getActiveModem() == SX127X_FSK_OOK) && (mode == SX127X_RX)) { + // disable checking of RX bit in FSK RX mode, as it sometimes seem to fail (#276) + checkMask = 0xFE; + } + return(_mod->SPIsetRegValue(SX127X_REG_OP_MODE, mode, 2, 0, 5, checkMask)); } int16_t SX127x::getActiveModem() {