diff --git a/examples/kiss_modem/main.cpp b/examples/kiss_modem/main.cpp index adb20146..514897c3 100644 --- a/examples/kiss_modem/main.cpp +++ b/examples/kiss_modem/main.cpp @@ -11,6 +11,9 @@ #elif defined(ESP32) #include #endif +#if defined(KISS_UART_RX) && defined(KISS_UART_TX) + #include +#endif #define NOISE_FLOOR_CALIB_INTERVAL_MS 2000 #define AGC_RESET_INTERVAL_MS 30000 @@ -91,14 +94,35 @@ void setup() { rng.begin(radio_get_rng_seed()); loadOrCreateIdentity(); + sensors.begin(); + +#if defined(KISS_UART_RX) && defined(KISS_UART_TX) +#if defined(ESP32) + Serial1.setPins(KISS_UART_RX, KISS_UART_TX); + Serial1.begin(115200); +#elif defined(NRF52_PLATFORM) + ((Uart *)&Serial1)->setPins(KISS_UART_RX, KISS_UART_TX); + Serial1.begin(115200); +#elif defined(RP2040_PLATFORM) + ((SerialUART *)&Serial1)->setRX(KISS_UART_RX); + ((SerialUART *)&Serial1)->setTX(KISS_UART_TX); + Serial1.begin(115200); +#elif defined(STM32_PLATFORM) + ((HardwareSerial *)&Serial1)->setRx(KISS_UART_RX); + ((HardwareSerial *)&Serial1)->setTx(KISS_UART_TX); + Serial1.begin(115200); +#else + #error "KISS UART not supported on this platform" +#endif + modem = new KissModem(Serial1, identity, rng, radio_driver, board, sensors); +#else Serial.begin(115200); uint32_t start = millis(); while (!Serial && millis() - start < 3000) delay(10); delay(100); - - sensors.begin(); - modem = new KissModem(Serial, identity, rng, radio_driver, board, sensors); +#endif + modem->setRadioCallback(onSetRadio); modem->setTxPowerCallback(onSetTxPower); modem->setGetCurrentRssiCallback(onGetCurrentRssi);