LoRa RX

Updated on 4 September 2021
dev board Arduino UNO
features LoRa RX SPI
This tutorial is more than 1 year old. If the steps below do not work, then please check the latest versions and the documentations of the individual tools used.

Before starting

Dependancies

Ensure the following dependancies are downloaded and available:

Pre-requisites

Try these simpler or similar examples:

Code

Download code lora-rx.ino
#include <SPI.h>
#include <LoRa.h>

void setup() {
  Serial.begin(9600);
  while (!Serial) {}

  Serial.println("LoRa Receiver");

  if (!LoRa.begin(433E6)) {
    Serial.println("Starting LoRa failed!");
    while (1) {}
  }
}

void loop() {
  int packetSize = LoRa.parsePacket();
  if (packetSize) {
    Serial.print("Received packet '");

    while (LoRa.available()) {
      Serial.print((char)LoRa.read());
    }

    Serial.print("' with RSSI ");
    Serial.println(LoRa.packetRssi());
  }
}

Makefile

BOARD?=arduino:avr:uno
PORT?=/dev/cu.usbmodem14201

.PHONY: default lint all flash clean

default: lint all flash clean

lint:
	cpplint --extensions=ino --filter=-legal/copyright,-readability/casting,-runtime/int *.ino

all:
	arduino-cli compile --fqbn $(BOARD) ./

flash:
	arduino-cli upload -p $(PORT) --fqbn $(BOARD) ./

clean:
	rm -f .*.hex
	rm -f .*.elf

Prototype

A photo of the actual setup.

LoRa RX prototype

Schematic

Wire up the hardware accordingly

LoRa RX schematic

Serial console

Serial output from the firmware.

LoRa RX serial console

Description

Receive hello from a LoRa point with 433 MHz. Use this with transmitting from a LoRa point.

References

Watch