Skip to product information
1 of 5

LoRa Module (LR1262)

LoRa Module (LR1262)

SKU:AX22-0057

Send data far beyond Wi-Fi range. Built around Elecrow’s LR1262 with the Semtech SX1262 LoRa transceiver, this module delivers long-range, low-power wireless communication with up to +22 dBm transmit power and sensitivity down to -148 dBm. It supports LoRa and LoRaWAN across 850–930 MHz, making it ideal for remote sensors, telemetry, outdoor projects, and device-to-device links. Includes an SMA connector and external antenna, ready to get on the air.

Included antenna is tuned for 868-915MHz!

Regular price $16.99
Regular price Sale price $16.99
Sale Sold out
View full details

Technical Details

* Elecrow LR1262 LoRa module based on Semtech SX1262
* Long-range LoRa / LoRaWAN wireless communication
* 850–930 MHz ISM band support, suitable for 868 MHz and 915 MHz regions
* Up to +22 dBm transmit power
* Receiver sensitivity down to −148 dBm
* Up to 170 dB link budget
* LoRa, (G)FSK and GMSK modulation support
* SF5–SF12 spreading factor support
* 0.018–62.5 kbps data rate
* Industrial-grade 32 MHz TCXO for frequency stability
* Ultra-low-power operation, down to 1.62 µA in sleep mode
* SPI communication interface
* SMA antenna connector
* 22 mm × 22 mm square
* 4× ⌀2.7 mm Mounting Holes
* Arduino IDE Compatible
* MicroPython Compatible
* MicroBlocks Compatible

Material Datasheet →

Pinout

Technical Resources

LoRa Module (LR1262) - (AX22-0057)
🖱️ Click & drag to rotate
#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;
  }
}