From 0767c0b0e8fecdf46e88be95fb7965f96fc8c8d1 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Sun, 29 May 2022 19:30:20 -0500 Subject: [PATCH] Converted to jgromes/RadioLib upstream and pegged to latest ref (#1472) * Converted to jgromes/RadioLib upstream and pegged to latest ref --- .github/workflows/main.yml | 146 ------------------------------ platformio.ini | 24 +++-- src/mesh/RF95Interface.cpp | 35 ++++--- src/mesh/RF95Interface.h | 5 +- src/mesh/RadioLibInterface.cpp | 4 +- src/mesh/RadioLibInterface.h | 2 +- src/mesh/RadioLibRF95.cpp | 6 +- src/mesh/RadioLibRF95.h | 2 +- src/mesh/SX126xInterface.cpp | 49 +++++----- variants/portduino/platformio.ini | 30 +++--- variants/portduino/variant.h | 16 +++- 11 files changed, 96 insertions(+), 223 deletions(-) delete mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml deleted file mode 100644 index 46911d88a..000000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,146 +0,0 @@ -name: Continuous Integration (Legacy serial build) -on: - # Triggers the workflow on push or pull request events but only for the master branch - workflow_dispatch: - -jobs: - ci-check: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v3 - with: - submodules: "recursive" - ref: ${{github.event.pull_request.head.ref}} - repository: ${{github.event.pull_request.head.repo.full_name}} - - - name: Install cppcheck - run: | - sudo apt-get install -y cppcheck - - - name: Setup Python - uses: actions/setup-python@v2 - with: - python-version: 3.x - - - name: Cache python libs - uses: actions/cache@v1 - id: cache-pip # needed in if test - with: - path: ~/.cache/pip - key: ${{ runner.os }}-pip - - - name: Upgrade python tools and install platformio - run: | - python -m pip install --upgrade pip - pip install -U platformio - - - name: Upgrade platformio - run: | - pio upgrade - - - name: Check everything - run: bin/check-all.sh - - ci-build: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v3 - with: - submodules: "recursive" - ref: ${{github.event.pull_request.head.ref}} - repository: ${{github.event.pull_request.head.repo.full_name}} - - - name: Setup Python - uses: actions/setup-python@v2 - with: - python-version: 3.x - - - name: Cache python libs - uses: actions/cache@v1 - id: cache-pip # needed in if test - with: - path: ~/.cache/pip - key: ${{ runner.os }}-pip - - - name: Upgrade python tools - # We actually want to run this every time - # if: steps.cache-pip.outputs.cache-hit != 'true' - run: | - python -m pip install --upgrade pip - pip install -U platformio meshtastic adafruit-nrfutil - - # - name: Cache platformio - # uses: actions/cache@v1 - # id: cache-platformio # needed in if test - # with: - # path: ~/.platformio - # key: ${{ runner.os }}-platformio - - - name: Upgrade platformio - run: | - pio upgrade - - - name: Pull web ui - uses: dsaltares/fetch-gh-release-asset@master - with: - repo: "meshtastic/meshtastic-web" - file: "build.tar" - target: "build.tar" - token: ${{ secrets.GITHUB_TOKEN }} - - - name: Unpack web ui - run: | - tar -xf build.tar -C data/static - rm build.tar - - # We now run integration test before other build steps (to quickly see runtime failures) - - name: Build for native - run: platformio run -e native - - name: Integration test - run: | - .pio/build/native/program & - sleep 20 # 5 seconds was not enough - echo "Simulator started, launching python test..." - python3 -c 'from meshtastic.test import testSimulator; testSimulator()' - - - name: Cat bin/build-all.sh - run: | - cat bin/build-all.sh - - - name: Build everything - run: bin/build-all.sh - - - name: Get release version string - run: echo "::set-output name=version::$(./bin/buildinfo.py long)" - id: version - - - name: Store binaries as an artifact - uses: actions/upload-artifact@v2 - with: - name: firmware-${{ steps.version.outputs.version }}.zip - path: release/archive/firmware-${{ steps.version.outputs.version }}.zip - retention-days: 90 - - - name: Store debugging elf files as an artifact - uses: actions/upload-artifact@v2 - with: - name: debug-elfs - path: release/archive/elfs-*.zip - retention-days: 7 - - - name: Download firmware.zip - uses: actions/download-artifact@master - with: - name: firmware-${{ steps.version.outputs.version }}.zip - path: ./ - - - name: Pull request artifacts - if: ${{ github.event_name == 'pull_request_target' || github.event_name == 'pull_request' }} - uses: gavv/pull-request-artifacts@v1.0.0 - with: - commit: ${{ (github.event.pull_request_target || github.event.pull_request).head.sha }} - repo-token: ${{ secrets.GITHUB_TOKEN }} - artifacts-branch: artifacts - artifacts: ./firmware-${{ steps.version.outputs.version }}.zip diff --git a/platformio.ini b/platformio.ini index 392f996ea..1ff5e92ce 100644 --- a/platformio.ini +++ b/platformio.ini @@ -44,15 +44,11 @@ lib_deps = mathertel/OneButton@^2.0.3 ; OneButton library for non-blocking button debounce 1202 ; CRC32, explicitly needed because dependency is missing in the ble ota update lib https://github.com/meshtastic/arduino-fsm.git - https://github.com/meshtastic/RadioLib.git#5582ac30578ff3f53f20630a00b2a8a4b8f92c74 https://github.com/meshtastic/TinyGPSPlus.git - https://github.com/meshtastic/AXP202X_Library.git#8404abb6d4b486748636bc6ad72d2a47baaf5460 Wire ; explicitly needed here because the AXP202 library forgets to add it SPI https://github.com/meshtastic/ArduinoThread.git#72921ac222eed6f526ba1682023cee290d9aa1b3 - PubSubClient nanopb/Nanopb@^0.4.6 - meshtastic/json11@^1.0.2 ; Used for the code analysis in PIO Home / Inspect check_tool = cppcheck @@ -63,12 +59,21 @@ check_skip_packages = yes framework = arduino lib_deps = ${env.lib_deps} + ; Portduino is using meshtastic fork for now + https://github.com/jgromes/RadioLib.git#3df3b092ebf412bd0b26524e7b296733bd6a62f7 build_flags = ${env.build_flags} -Os # -DRADIOLIB_GODMODE build_src_filter = ${env.build_src_filter} - -; Common libs for environmental measurements (not included in native / portduino) -[environmental] +; Common libs for communicating over TCP/IP networks such as MQTT +[networking_base] +lib_deps = + PubSubClient + meshtastic/json11@^1.0.2 + +; Common libs for environmental measurements in telemetry module +; (not included in native / portduino) +[environmental_base] lib_deps = adafruit/Adafruit BusIO@^1.11.4 adafruit/DHT sensor library@^1.4.1 @@ -97,11 +102,14 @@ build_flags = -DAXP_DEBUG_PORT=Serial -DUSE_NEW_ESP32_BLUETOOTH lib_deps = ${arduino_base.lib_deps} - ${environmental.lib_deps} + ${networking_base.lib_deps} + ${environmental_base.lib_deps} https://github.com/meshtastic/esp32_https_server.git h2zero/NimBLE-Arduino@1.3.7 arduino-libraries/NTPClient@^3.1.0 lorol/LittleFS_esp32@^1.0.6 + https://github.com/meshtastic/AXP202X_Library.git#8404abb6d4b486748636bc6ad72d2a47baaf5460 + lib_ignore = segger_rtt ESP32 BLE Arduino @@ -141,7 +149,7 @@ extends = nrf52_base build_flags = ${nrf52_base.build_flags} lib_deps = ${arduino_base.lib_deps} - ${environmental.lib_deps} + ${environmental_base.lib_deps} https://github.com/Kongduino/Adafruit_nRFCrypto.git ; Note: By default no lora device is created for this build - it uses a simulated interface diff --git a/src/mesh/RF95Interface.cpp b/src/mesh/RF95Interface.cpp index a96b95100..2a0789dfd 100644 --- a/src/mesh/RF95Interface.cpp +++ b/src/mesh/RF95Interface.cpp @@ -76,13 +76,13 @@ bool RF95Interface::init() DEBUG_MSG("Current limit set to %f\n", currentLimit); DEBUG_MSG("Current limit set result %d\n", res); - if (res == ERR_NONE) - res = lora->setCRC(SX126X_LORA_CRC_ON); + if (res == RADIOLIB_ERR_NONE) + res = lora->setCRC(RADIOLIB_SX126X_LORA_CRC_ON); - if (res == ERR_NONE) + if (res == RADIOLIB_ERR_NONE) startReceive(); // start receiving - return res == ERR_NONE; + return res == RADIOLIB_ERR_NONE; } void INTERRUPT_ATTR RF95Interface::disableInterrupt() @@ -99,39 +99,39 @@ bool RF95Interface::reconfigure() // configure publicly accessible settings int err = lora->setSpreadingFactor(sf); - if (err != ERR_NONE) + if (err != RADIOLIB_ERR_NONE) RECORD_CRITICALERROR(CriticalErrorCode_InvalidRadioSetting); err = lora->setBandwidth(bw); - if (err != ERR_NONE) + if (err != RADIOLIB_ERR_NONE) RECORD_CRITICALERROR(CriticalErrorCode_InvalidRadioSetting); err = lora->setCodingRate(cr); - if (err != ERR_NONE) + if (err != RADIOLIB_ERR_NONE) RECORD_CRITICALERROR(CriticalErrorCode_InvalidRadioSetting); err = lora->setSyncWord(syncWord); - assert(err == ERR_NONE); + assert(err == RADIOLIB_ERR_NONE); err = lora->setCurrentLimit(currentLimit); - assert(err == ERR_NONE); + assert(err == RADIOLIB_ERR_NONE); err = lora->setPreambleLength(preambleLength); - assert(err == ERR_NONE); + assert(err == RADIOLIB_ERR_NONE); err = lora->setFrequency(getFreq()); - if (err != ERR_NONE) + if (err != RADIOLIB_ERR_NONE) RECORD_CRITICALERROR(CriticalErrorCode_InvalidRadioSetting); if (power > MAX_POWER) // This chip has lower power limits than some power = MAX_POWER; err = lora->setOutputPower(power); - if (err != ERR_NONE) + if (err != RADIOLIB_ERR_NONE) RECORD_CRITICALERROR(CriticalErrorCode_InvalidRadioSetting); startReceive(); // restart receiving - return ERR_NONE; + return RADIOLIB_ERR_NONE; } /** @@ -147,7 +147,7 @@ void RF95Interface::addReceiveMetadata(MeshPacket *mp) void RF95Interface::setStandby() { int err = lora->standby(); - assert(err == ERR_NONE); + assert(err == RADIOLIB_ERR_NONE); isReceiving = false; // If we were receiving, not any more disableInterrupt(); @@ -168,7 +168,7 @@ void RF95Interface::startReceive() setTransmitEnable(false); setStandby(); int err = lora->startReceive(); - assert(err == ERR_NONE); + assert(err == RADIOLIB_ERR_NONE); isReceiving = true; @@ -184,12 +184,11 @@ bool RF95Interface::isChannelActive() setStandby(); // needed for smooth transition result = lora->scanChannel(); - if (result == PREAMBLE_DETECTED) { + if (result == RADIOLIB_PREAMBLE_DETECTED) { // DEBUG_MSG("Channel is busy!\n"); return true; } - - assert(result != ERR_WRONG_MODEM); + assert(result != RADIOLIB_ERR_WRONG_MODEM); // DEBUG_MSG("Channel is free!\n"); return false; diff --git a/src/mesh/RF95Interface.h b/src/mesh/RF95Interface.h index 5e666ae8b..575786a77 100644 --- a/src/mesh/RF95Interface.h +++ b/src/mesh/RF95Interface.h @@ -13,8 +13,9 @@ class RF95Interface : public RadioLibInterface public: RF95Interface(RADIOLIB_PIN_TYPE cs, RADIOLIB_PIN_TYPE irq, RADIOLIB_PIN_TYPE rst, SPIClass &spi); - - bool isIRQPending() override { return lora->getPendingIRQ(); } + + //TODO: Verify that this irq flag works with RFM95 / SX1276 radios the way it used to + bool isIRQPending() override { return lora->getIRQFlags() & RADIOLIB_SX127X_MASK_IRQ_FLAG_VALID_HEADER; } /// Initialise the Driver transport hardware and software. /// Make sure the Driver is properly configured before calling init(). diff --git a/src/mesh/RadioLibInterface.cpp b/src/mesh/RadioLibInterface.cpp index c665ea350..5d049a291 100644 --- a/src/mesh/RadioLibInterface.cpp +++ b/src/mesh/RadioLibInterface.cpp @@ -308,7 +308,7 @@ ErrorCode RadioLibInterface::send(MeshPacket *p) xmitMsec = getPacketTime(length); int state = iface->readData(radiobuf, length); - if (state != ERR_NONE) { + if (state != RADIOLIB_ERR_NONE) { DEBUG_MSG("ignoring received packet due to error=%d\n", state); rxBad++; @@ -374,7 +374,7 @@ ErrorCode RadioLibInterface::send(MeshPacket *p) size_t numbytes = beginSending(txp); int res = iface->startTransmit(radiobuf, numbytes); - if (res != ERR_NONE) { + if (res != RADIOLIB_ERR_NONE) { RECORD_CRITICALERROR(CriticalErrorCode_RadioSpiBug); // This send failed, but make sure to 'complete' it properly diff --git a/src/mesh/RadioLibInterface.h b/src/mesh/RadioLibInterface.h index 0f59c1fab..35abcc74b 100644 --- a/src/mesh/RadioLibInterface.h +++ b/src/mesh/RadioLibInterface.h @@ -54,7 +54,7 @@ class LockingModule : public Module \param numBytes Number of bytes to transfer. */ - virtual void SPItransfer(uint8_t cmd, uint8_t reg, uint8_t *dataOut, uint8_t *dataIn, uint8_t numBytes) override; + virtual void SPItransfer(uint8_t cmd, uint8_t reg, uint8_t *dataOut, uint8_t *dataIn, uint8_t numBytes); }; class RadioLibInterface : public RadioInterface, protected concurrency::NotifiedWorkerThread diff --git a/src/mesh/RadioLibRF95.cpp b/src/mesh/RadioLibRF95.cpp index dcb987d1b..93f078918 100644 --- a/src/mesh/RadioLibRF95.cpp +++ b/src/mesh/RadioLibRF95.cpp @@ -15,7 +15,7 @@ int16_t RadioLibRF95::begin(float freq, float bw, uint8_t sf, uint8_t cr, uint8_ { // execute common part int16_t state = SX127x::begin(RF95_CHIP_VERSION, syncWord, preambleLength); - if (state != ERR_NONE) + if (state != RADIOLIB_ERR_NONE) state = SX127x::begin(RF95_ALT_VERSION, syncWord, preambleLength); RADIOLIB_ASSERT(state); @@ -30,7 +30,7 @@ int16_t RadioLibRF95::begin(float freq, float bw, uint8_t sf, uint8_t cr, uint8_ RADIOLIB_ASSERT(state); #ifdef RF95_TCXO - state = _mod->SPIsetRegValue(SX127X_REG_TCXO, 0x10 | _mod->SPIgetRegValue(SX127X_REG_TCXO)); + state = _mod->SPIsetRegValue(RADIOLIB_SX127X_REG_TCXO, 0x10 | _mod->SPIgetRegValue(RADIOLIB_SX127X_REG_TCXO)); RADIOLIB_ASSERT(state); #endif @@ -72,7 +72,7 @@ int16_t RadioLibRF95::setFrequency(float freq) bool RadioLibRF95::isReceiving() { // 0x0b == Look for header info valid, signal synchronized or signal detected - uint8_t reg = readReg(SX127X_REG_MODEM_STAT); + uint8_t reg = readReg(RADIOLIB_SX127X_REG_MODEM_STAT); // Serial.printf("reg %x\n", reg); return (reg & (RH_RF95_MODEM_STATUS_SIGNAL_DETECTED | RH_RF95_MODEM_STATUS_SIGNAL_SYNCHRONIZED | RH_RF95_MODEM_STATUS_HEADER_INFO_VALID)) != 0; diff --git a/src/mesh/RadioLibRF95.h b/src/mesh/RadioLibRF95.h index 519554302..ff8164ef2 100644 --- a/src/mesh/RadioLibRF95.h +++ b/src/mesh/RadioLibRF95.h @@ -43,7 +43,7 @@ class RadioLibRF95: public SX1278 { \returns \ref status_codes */ - int16_t begin(float freq = 915.0, float bw = 125.0, uint8_t sf = 9, uint8_t cr = 7, uint8_t syncWord = SX127X_SYNC_WORD, int8_t power = 17, uint16_t preambleLength = 8, uint8_t gain = 0); + int16_t begin(float freq = 915.0, float bw = 125.0, uint8_t sf = 9, uint8_t cr = 7, uint8_t syncWord = RADIOLIB_SX127X_SYNC_WORD, int8_t power = 17, uint16_t preambleLength = 8, uint8_t gain = 0); // configuration methods diff --git a/src/mesh/SX126xInterface.cpp b/src/mesh/SX126xInterface.cpp index c051a193d..61f939313 100644 --- a/src/mesh/SX126xInterface.cpp +++ b/src/mesh/SX126xInterface.cpp @@ -64,7 +64,7 @@ bool SX126xInterface::init() #ifdef SX126X_TXEN // lora.begin sets Dio2 as RF switch control, which is not true if we are manually controlling RX and TX - if (res == ERR_NONE) + if (res == RADIOLIB_ERR_NONE) res = lora.setDio2AsRfSwitch(true); #endif @@ -72,7 +72,7 @@ bool SX126xInterface::init() // Read/write a register we are not using (only used for FSK mode) to test SPI comms uint8_t crcLSB = 0; int err = lora.readRegister(SX126X_REG_CRC_POLYNOMIAL_LSB, &crcLSB, 1); - if(err != ERR_NONE) + if(err != RADIOLIB_ERR_NONE) RECORD_CRITICALERROR(CriticalErrorCode_SX1262Failure); //if(crcLSB != 0x0f) @@ -80,11 +80,11 @@ bool SX126xInterface::init() crcLSB = 0x5a; err = lora.writeRegister(SX126X_REG_CRC_POLYNOMIAL_LSB, &crcLSB, 1); - if(err != ERR_NONE) + if(err != RADIOLIB_ERR_NONE) RECORD_CRITICALERROR(CriticalErrorCode_SX1262Failure); err = lora.readRegister(SX126X_REG_CRC_POLYNOMIAL_LSB, &crcLSB, 1); - if(err != ERR_NONE) + if(err != RADIOLIB_ERR_NONE) RECORD_CRITICALERROR(CriticalErrorCode_SX1262Failure); if(crcLSB != 0x5a) @@ -92,13 +92,13 @@ bool SX126xInterface::init() // If we got this far register accesses (and therefore SPI comms) are good #endif - if (res == ERR_NONE) - res = lora.setCRC(SX126X_LORA_CRC_ON); + if (res == RADIOLIB_ERR_NONE) + res = lora.setCRC(RADIOLIB_SX126X_LORA_CRC_ON); - if (res == ERR_NONE) + if (res == RADIOLIB_ERR_NONE) startReceive(); // start receiving - return res == ERR_NONE; + return res == RADIOLIB_ERR_NONE; } template @@ -111,42 +111,43 @@ bool SX126xInterface::reconfigure() // configure publicly accessible settings int err = lora.setSpreadingFactor(sf); - if (err != ERR_NONE) + if (err != RADIOLIB_ERR_NONE) RECORD_CRITICALERROR(CriticalErrorCode_InvalidRadioSetting); err = lora.setBandwidth(bw); - if (err != ERR_NONE) + if (err != RADIOLIB_ERR_NONE) RECORD_CRITICALERROR(CriticalErrorCode_InvalidRadioSetting); err = lora.setCodingRate(cr); - if (err != ERR_NONE) + if (err != RADIOLIB_ERR_NONE) RECORD_CRITICALERROR(CriticalErrorCode_InvalidRadioSetting); // Hmm - seems to lower SNR when the signal levels are high. Leaving off for now... - err = lora.setRxGain(true); - assert(err == ERR_NONE); + // TODO: Confirm gain registers are okay now + // err = lora.setRxGain(true); + // assert(err == RADIOLIB_ERR_NONE); err = lora.setSyncWord(syncWord); - assert(err == ERR_NONE); + assert(err == RADIOLIB_ERR_NONE); err = lora.setCurrentLimit(currentLimit); - assert(err == ERR_NONE); + assert(err == RADIOLIB_ERR_NONE); err = lora.setPreambleLength(preambleLength); - assert(err == ERR_NONE); + assert(err == RADIOLIB_ERR_NONE); err = lora.setFrequency(getFreq()); - if (err != ERR_NONE) + if (err != RADIOLIB_ERR_NONE) RECORD_CRITICALERROR(CriticalErrorCode_InvalidRadioSetting); if (power > 22) // This chip has lower power limits than some power = 22; err = lora.setOutputPower(power); - assert(err == ERR_NONE); + assert(err == RADIOLIB_ERR_NONE); startReceive(); // restart receiving - return ERR_NONE; + return RADIOLIB_ERR_NONE; } template @@ -161,7 +162,7 @@ void SX126xInterface::setStandby() checkNotification(); // handle any pending interrupts before we force standby int err = lora.standby(); - assert(err == ERR_NONE); + assert(err == RADIOLIB_ERR_NONE); #ifdef SX126X_RXEN // we have RXEN/TXEN control - turn off RX and TX power digitalWrite(SX126X_RXEN, LOW); @@ -223,7 +224,7 @@ void SX126xInterface::startReceive() // int err = lora.startReceive(); int err = lora.startReceiveDutyCycleAuto(); // We use a 32 bit preamble so this should save some power by letting radio sit in // standby mostly. - assert(err == ERR_NONE); + assert(err == RADIOLIB_ERR_NONE); isReceiving = true; @@ -241,10 +242,10 @@ bool SX126xInterface::isChannelActive() setStandby(); result = lora.scanChannel(); - if (result == PREAMBLE_DETECTED) + if (result == RADIOLIB_PREAMBLE_DETECTED) return true; - assert(result != ERR_WRONG_MODEM); + assert(result != RADIOLIB_ERR_WRONG_MODEM); return false; } @@ -259,7 +260,7 @@ bool SX126xInterface::isActivelyReceiving() // never even get a valid header, so we don't want preamble to get set and stay set due to noise on the network. uint16_t irq = lora.getIrqStatus(); - bool hasPreamble = (irq & SX126X_IRQ_HEADER_VALID); + bool hasPreamble = (irq & RADIOLIB_SX126X_IRQ_HEADER_VALID); // this is not correct - often always true - need to add an extra conditional // size_t bytesPending = lora.getPacketLength(); diff --git a/variants/portduino/platformio.ini b/variants/portduino/platformio.ini index 375c2c454..0030ae4b6 100644 --- a/variants/portduino/platformio.ini +++ b/variants/portduino/platformio.ini @@ -1,6 +1,5 @@ ; The Portduino based sim environment on top of any host OS, all hardware will be simulated -[env:native] -platform = https://github.com/meshtastic/platform-native.git +[portduino_base] build_src_filter = ${env.build_src_filter} - @@ -10,28 +9,25 @@ build_src_filter = - - +<../variants/portduino> +lib_deps = + ${env.lib_deps} + ${networking_base.lib_deps} + rweather/Crypto + https://github.com/meshtastic/RadioLib.git#5582ac30578ff3f53f20630a00b2a8a4b8f92c74 + +[env:native] +platform = https://github.com/meshtastic/platform-native.git build_flags = ${arduino_base.build_flags} -O0 -I variants/portduino framework = arduino board = cross_platform -lib_deps = - ${arduino_base.lib_deps} - rweather/Crypto +lib_deps = ${portduino_base.lib_deps} +build_src_filter = ${portduino_base.build_src_filter} ; The Portduino based sim environment on top of a linux OS and touching linux hardware devices [env:linux] platform = https://github.com/meshtastic/platform-native.git -build_src_filter = - ${env.build_src_filter} - - - - - - - - - - - - - +<../variants/portduino> build_flags = ${arduino_base.build_flags} -O0 -lgpiod -I variants/portduino framework = arduino board = linux_hardware -lib_deps = - ${arduino_base.lib_deps} - rweather/Crypto +lib_deps = ${portduino_base.lib_deps} +build_src_filter = ${portduino_base.build_src_filter} \ No newline at end of file diff --git a/variants/portduino/variant.h b/variants/portduino/variant.h index 18758cb01..ea827868a 100644 --- a/variants/portduino/variant.h +++ b/variants/portduino/variant.h @@ -23,4 +23,18 @@ #define SX126X_BUSY LORA_DIO2 #define SX126X_RESET LORA_RESET // HOPE RFM90 does not have a TCXO therefore not SX126X_E22 -#endif \ No newline at end of file +#endif + +// Temporary shim for radio lib macros until we upgrade to upstream for portduino +#define RADIOLIB_PREAMBLE_DETECTED PREAMBLE_DETECTED + +#define RADIOLIB_ERR_NONE ERR_NONE +#define RADIOLIB_ERR_WRONG_MODEM ERR_WRONG_MODEM + +#define RADIOLIB_SX126X_IRQ_HEADER_VALID SX126X_IRQ_HEADER_VALID +#define RADIOLIB_SX126X_LORA_CRC_ON SX126X_LORA_CRC_ON + +#define RADIOLIB_SX127X_REG_TCXO SX127X_REG_TCXO +#define RADIOLIB_SX127X_REG_MODEM_STAT SX127X_REG_MODEM_STAT +#define RADIOLIB_SX127X_SYNC_WORD SX127X_SYNC_WORD +#define RADIOLIB_SX127X_MASK_IRQ_FLAG_VALID_HEADER SX127X_MASK_IRQ_FLAG_VALID_HEADER \ No newline at end of file