RFM69_LowPowerLab/Examples/TxPowerTest_Receiver/TxPowerTest_Receiver.ino

67 lines
2.3 KiB
Arduino
Raw Normal View History

2021-08-30 21:53:12 +01:00
// TxPowerMeasurement_Receiver for RFM69 transceiver radios
// This will switch on the Receiver and continuously sample RSSI
// It also dials the AGC gain to the max value to simulate distance,
// useful when bench testing to avoid RSSI saturation at high TX power levels
// **********************************************************************************
// Copyright Felix Rusu 2021, http://www.LowPowerLab.com/contact
// **********************************************************************************
#include <RFM69.h> //get it here: https://www.github.com/lowpowerlab/rfm69
2021-08-31 21:06:48 +01:00
#include <RFM69registers.h> //get it here: https://www.github.com/lowpowerlab/rfm69
2021-08-30 21:53:12 +01:00
#define NODEID 1 //must be unique for each node on same network (range up to 254, 255 is used for broadcast)
#define NETWORKID 100 //the same on all nodes that talk to each other (range up to 255)
//Match frequency to the hardware version of the radio on your Moteino (uncomment one):
//#define FREQUENCY RF69_433MHZ
#define FREQUENCY RF69_915MHZ
#define FREQUENCY_EXACT 915500000
#define IS_RFM69HW_HCW //uncomment only for RFM69HCW! Leave out if you have RFM69CW!
#define SERIAL_BAUD 500000
#define DEBUG(input) Serial.print(input)
#define DEBUGln(input) Serial.println(input)
#define DEBUGHEX(input, param) Serial.print(input, param)
RFM69 radio; //#if defined (__AVR_ATmega32U4__) RFM69 radio(8,7);
int MODE;
void setup() {
Serial.begin(SERIAL_BAUD);
pinMode(LED_BUILTIN, OUTPUT);
DEBUGln("START RFM69_NODE_RX_TEST!");
if (!radio.initialize(FREQUENCY,NODEID,NETWORKID))
DEBUGln("radio.init() FAIL");
else
DEBUGln("radio.init() SUCCESS");
#ifdef IS_RFM69HW_HCW
radio.setHighPower(); //only for RFM69HW/HCW!
#endif
#ifdef FREQUENCY_EXACT
radio.setFrequency(FREQUENCY_EXACT); //set frequency to some custom frequency
#endif
DEBUG("\nListening at %lu Mhz..."); DEBUGln(radio.getFrequency()/1000000L);
//when bench testing, simulate "distance" between TX/RX radios
radio.setLNA(RF_LNA_GAINSELECT_MAXMINUS48);
radio.receiveDone(); //enable RX mode
}
void loop() {
if (Serial.available() > 0) {
char input = Serial.read();
if (input == 'r') //d=dump register values
radio.readAllRegsCompact();
if (input == 'R') //d=dump register values
radio.readAllRegs();
}
delay(200);
Serial.println(radio.readRSSI());
}