Arduino Example Snippet
#include <RadioLib.h>
SPIClass loraSPI(FSPI);
SX1262 radio = new Module(P1_IO1, P1_IO0, RADIOLIB_NC, P1_IO2, loraSPI);
int txCount = 0;
bool transmitting = true;
unsigned long phaseStart = 0;
void setup() {
Serial.begin(115200);
loraSPI.begin(SCK, MISO, MOSI);
int st = radio.begin(915.0, 125.0, 7, 5, 0x12, 22, 8, 1.8);
if (st != RADIOLIB_ERR_NONE) {
Serial.print("LoRa begin failed: ");
Serial.println(st);
while (true);
}
radio.setDio2AsRfSwitch(true);
Serial.println("LoRa ready — 915 MHz SF7 BW125");
phaseStart = millis();
}
void loop() {
unsigned long now = millis();
if (transmitting) {
// — TX phase: send one packet then switch to RX for 1 s —
char msg[32];
snprintf(msg, sizeof(msg), "ping %d", txCount++);
int st = radio.transmit(msg);
if (st == RADIOLIB_ERR_NONE) {
Serial.print("Sent: ");
Serial.println(msg);
} else {
Serial.print("TX error: ");
Serial.println(st);
}
transmitting = false;
phaseStart = now;
} else {
// — RX phase: poll for 1 s —
String recv;
int st = radio.receive(recv, 1000); // blocking, 1 s timeout
if (st == RADIOLIB_ERR_NONE) {
Serial.print("Recv: ");
Serial.println(recv);
Serial.print(" RSSI: "); Serial.print(radio.getRSSI()); Serial.println(" dBm");
Serial.print(" SNR: "); Serial.print(radio.getSNR()); Serial.println(" dB");
} else if (st != RADIOLIB_ERR_RX_TIMEOUT) {
Serial.print("RX error: ");
Serial.println(st);
}
transmitting = true;
}
}