From 18b537c3596ea44d4c9d67caaa2fd5752ad8e947 Mon Sep 17 00:00:00 2001 From: Paul Warren Date: Sat, 31 Dec 2022 14:23:45 +1100 Subject: [PATCH] Different RFM69 library --- platformio.ini | 2 +- src/main.cpp | 84 ++++++++++++++++---------------------------------- 2 files changed, 27 insertions(+), 59 deletions(-) diff --git a/platformio.ini b/platformio.ini index 393623b..5ce7218 100644 --- a/platformio.ini +++ b/platformio.ini @@ -15,5 +15,5 @@ framework = arduino upload_speed = 57600 upload_port = /dev/ttyUSB0 lib_deps = - lowpowerlab/RFM69@^1.5.2 lowpowerlab/SPIFlash@^101.1.3 + jf002/cfRFM69@^0.1.2 diff --git a/src/main.cpp b/src/main.cpp index 82b8937..54278c8 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,78 +1,46 @@ #include #include -#include -#include +#include -#define NODEID 122 -#define FREQUENCY RF69_915MHZ #define SERIAL_BAUD 115200 -//#define IS_RFM69HW_HCW -RFM69 radio; +using namespace Codingfield::Communication; -int networkID = 1; -long tryCount = 0; -int packetCount = 0; -bool found = false; - -//SPIFlash flash(SS_FLASHMEM, 0xEF30); - -void initRadio() { - radio.initialize(FREQUENCY,NODEID,networkID); - radio.spyMode(true); - //radio.setFrequency(915230000); -} +SPIClass spi(HSPI); +std::unique_ptr radio; void setup() { Serial.begin(SERIAL_BAUD); delay(10); Serial.println("Init started"); - initRadio(); - char buff[50]; - sprintf(buff, "\nListening at %d Mhz...", FREQUENCY==RF69_433MHZ ? 433 : FREQUENCY==RF69_868MHZ ? 868 : 915); - Serial.println(buff); - - byte temperature = radio.readTemperature(-1); // -1 = user cal factor, adjust for correct ambient - Serial.print( "Radio Temp is "); - Serial.print(temperature); - Serial.println("C"); + spi.begin(); + radio.reset(new RFM69($spi, 15)); - uint32_t freq = radio.getFrequency(); - Serial.print("Listening Frequency: "); - Serial.println(freq); + if(radio->IsRfm69()) { + auto temperature = radio->ReadTemperature(); + Serial.println("Temp: " + String(temperature)); - // Turn off LED - pinMode(LED_BUILTIN, OUTPUT); - digitalWrite(LED_BUILTIN, LOW); + radio->SetOperatingMode(RFM69::Standby); + radio->SetDataModulation(RFM69::ModulationShapings::NoShaping, + RFM69::ModulationTypes::FSK, + RFM69DataModes::Packet); + radio->setBitRate(0x0116); // 115200 + radio->setFrequencyDevian(0x047C); // 70kHz + radio->setFrequency(0x00d913e8); // 915.25MHz + + radio->SetOperatingMode(); + + + + } else { + Serial.println("No RFM69 found"); + } Serial.println("Starting loop()"); } void loop() { - - if (radio.receiveDone()) - { - Serial.print("#["); - Serial.print(++packetCount); - Serial.print(']'); - Serial.print('[');Serial.print(radio.SENDERID, DEC);Serial.print("] "); - Serial.print("to [");Serial.print(radio.TARGETID, DEC);Serial.print("] "); - for (byte i = 0; i < radio.DATALEN; i++) - Serial.print((char)radio.DATA[i]); - Serial.print(" [RX_RSSI:");Serial.print(radio.RSSI);Serial.print("]"); - } - tryCount++; - - if (tryCount > 180000) { - Serial.print("Network: "); - Serial.print(networkID); - Serial.println(" No packets heard, incrementing"); - tryCount = 0; - networkID++; - if (networkID == 256) - networkID=1; - initRadio(); - } - + delay(1000); + Serial.println("Loop"); }