diff --git a/lib/Hoymiles/src/HoymilesRadio.cpp b/lib/Hoymiles/src/HoymilesRadio.cpp index b584c93..32de888 100644 --- a/lib/Hoymiles/src/HoymilesRadio.cpp +++ b/lib/Hoymiles/src/HoymilesRadio.cpp @@ -8,8 +8,12 @@ void HoymilesRadio::init() { _dtuSerial.u64 = 0; + _hspi.reset(new SPIClass(HSPI)); _radio.reset(new RF24(HOYMILES_PIN_CE, HOYMILES_PIN_CS)); - _radio->begin(); + + _hspi->begin(HOYMILES_PIN_SCLK, HOYMILES_PIN_MISO, HOYMILES_PIN_MOSI, HOYMILES_PIN_CS); + _radio->begin(_hspi.get()); + _radio->setDataRate(RF24_250KBPS); _radio->enableDynamicPayloads(); _radio->setCRCLength(RF24_CRC_16); diff --git a/lib/Hoymiles/src/HoymilesRadio.h b/lib/Hoymiles/src/HoymilesRadio.h index 52434c2..bea5295 100644 --- a/lib/Hoymiles/src/HoymilesRadio.h +++ b/lib/Hoymiles/src/HoymilesRadio.h @@ -14,6 +14,18 @@ #define MAX_RESEND_COUNT 3 +#ifndef HOYMILES_PIN_MISO +#define HOYMILES_PIN_MISO 19 +#endif + +#ifndef HOYMILES_PIN_MOSI +#define HOYMILES_PIN_MOSI 23 +#endif + +#ifndef HOYMILES_PIN_SCLK +#define HOYMILES_PIN_SCLK 18 +#endif + #ifndef HOYMILES_PIN_IRQ #define HOYMILES_PIN_IRQ 16 #endif @@ -55,6 +67,7 @@ private: bool checkFragmentCrc(fragment_t* fragment); void dumpBuf(const char* info, uint8_t buf[], uint8_t len); + std::unique_ptr _hspi; std::unique_ptr _radio; uint8_t _rxChLst[5] = { 3, 23, 40, 61, 75 }; uint8_t _rxChIdx;