diff --git a/src/modules/SX1231.cpp b/src/modules/SX1231.cpp index 2408d9fc..7ff71649 100644 --- a/src/modules/SX1231.cpp +++ b/src/modules/SX1231.cpp @@ -80,5 +80,20 @@ uint8_t SX1231::begin(float freq = 434.0, float br = 48.0, float rxBw = 125.0, f return(state); } + // SX1231 V2a only + if(_chipRevision == SX1231_CHIP_REVISION_2_A) { + // modify default OOK threshold value + state = _mod->SPIsetRegValue(SX1231_REG_TEST_OOK, SX1231_OOK_DELTA_THRESHOLHD); + if(state != ERR_NONE) { + return(state); + } + + // enable OCP with 95 mA limit + state = _mod->SPIsetRegValue(RF69_REG_OCP, SX1231_OOK_DELTA_THRESHOLHD, RF69_OCP_ON | RF69_OCP_TRIM, 4, 0); + if(state != ERR_NONE) { + return(state); + } + } + return(ERR_NONE); } diff --git a/src/modules/SX1231.h b/src/modules/SX1231.h index bdf9391d..895b16c1 100644 --- a/src/modules/SX1231.h +++ b/src/modules/SX1231.h @@ -9,6 +9,12 @@ #define SX1231_CHIP_REVISION_2_B 0x22 #define SX1231_CHIP_REVISION_2_C 0x23 +//SX1231 specific register map +#define SX1231_REG_TEST_OOK 0x6E + +//SX1231_REG_TEST_OOK +#define SX1231_OOK_DELTA_THRESHOLHD 0x0C + class SX1231: public RF69 { public: // constructor