

The RP2040-Lora is a microcontroller board developed by Waveshare (Part ID: RP2040-SX1262). It integrates the powerful Raspberry Pi RP2040 microcontroller with the SX1262 LoRa module, enabling long-range, low-power wireless communication. This combination makes it ideal for Internet of Things (IoT) applications, remote sensing, and other projects requiring reliable, long-distance data transmission.








| Parameter | Specification |
|---|---|
| Microcontroller | Raspberry Pi RP2040 |
| LoRa Module | SX1262 |
| Operating Voltage | 3.3V |
| Input Voltage Range | 5V (via USB-C) |
| Flash Memory | 2MB QSPI Flash |
| SRAM | 264KB |
| LoRa Frequency Bands | 868MHz (EU) / 915MHz (US) |
| Communication Interfaces | SPI, I2C, UART, GPIO |
| Power Consumption | Ultra-low power (depends on LoRa transmission) |
| Dimensions | 51mm x 21mm |
| Operating Temperature | -40°C to +85°C |
The RP2040-Lora features a 20-pin header for GPIO and communication interfaces. Below is the pinout:
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | 3V3 | 3.3V Power Output |
| 2 | GND | Ground |
| 3 | GP0 | General Purpose I/O (GPIO) |
| 4 | GP1 | General Purpose I/O (GPIO) |
| 5 | GP2 | General Purpose I/O (GPIO) |
| 6 | GP3 | General Purpose I/O (GPIO) |
| 7 | GP4 | General Purpose I/O (GPIO) |
| 8 | GP5 | General Purpose I/O (GPIO) |
| 9 | GP6 | General Purpose I/O (GPIO) |
| 10 | GP7 | General Purpose I/O (GPIO) |
| 11 | GP8 | General Purpose I/O (GPIO) |
| 12 | GP9 | General Purpose I/O (GPIO) |
| 13 | GP10 | General Purpose I/O (GPIO) |
| 14 | GP11 | General Purpose I/O (GPIO) |
| 15 | GP12 | General Purpose I/O (GPIO) |
| 16 | GP13 | General Purpose I/O (GPIO) |
| 17 | GP14 | General Purpose I/O (GPIO) |
| 18 | GP15 | General Purpose I/O (GPIO) |
| 19 | GP16 | General Purpose I/O (GPIO) |
| 20 | GP17 | General Purpose I/O (GPIO) |
Powering the Board:
Connecting Peripherals:
Programming the Board:
LoRa Communication:
Below is an example of how to use the RP2040-Lora with an Arduino UNO to send a LoRa message:
#include <SPI.h>
#include <LoRa.h>
// Define LoRa module pins
#define LORA_SCK 5 // SPI Clock
#define LORA_MISO 19 // SPI MISO
#define LORA_MOSI 27 // SPI MOSI
#define LORA_CS 18 // Chip Select
#define LORA_RST 14 // Reset
#define LORA_IRQ 26 // IRQ Pin
void setup() {
// Initialize serial communication
Serial.begin(9600);
while (!Serial);
// Initialize LoRa module
Serial.println("Initializing LoRa...");
if (!LoRa.begin(915E6)) { // Set frequency to 915 MHz
Serial.println("LoRa initialization failed!");
while (1);
}
Serial.println("LoRa initialized successfully.");
}
void loop() {
// Send a test message
Serial.println("Sending message...");
LoRa.beginPacket();
LoRa.print("Hello, LoRa!");
LoRa.endPacket();
// Wait for 5 seconds before sending the next message
delay(5000);
}
915E6 with 868E6 if operating in Europe.LoRa Module Not Initializing:
No Data Transmission:
High Power Consumption:
Programming Issues:
Q: Can I use the RP2040-Lora with LoRaWAN?
A: Yes, the SX1262 module supports LoRaWAN. You will need to implement a LoRaWAN stack or use a library that supports it.
Q: What is the maximum range of the RP2040-Lora?
A: The range depends on environmental factors, but it can reach up to 10 km in open areas with a clear line of sight.
Q: Can I power the board with a battery?
A: Yes, you can use a 3.7V LiPo battery with a suitable voltage regulator to provide 3.3V to the board.
Q: Is the RP2040-Lora compatible with MicroPython?
A: Yes, the RP2040 microcontroller supports MicroPython, and you can use it to program the board.