Skip to content
No description, website, or topics provided.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

This is a simple AVR-based LoRa receiver that connects to a standard Epson-compatible 2-line LCD to display basic telemetry data from a high altitude balloon.


The LoRa module (e.g. RFM98) connects via SPI. Since LoRa modules are 3.3V logic it's best to use an Arduino with 3.3V logic, such as the Arduino Mini Pro.

Optionally, a simple GPS receiver can be added, to provide the distance and direction to the HAB. Any GPS module that provides RS232 NMEA data at 9600 baud, over 3.3V logic level signals, should be fine.

Any 2-line EPson-compatible LCD should be fine. Only 16 columns are used.


Arduino A0 - Switch (other side GND)
Arduino Rx - GPS Tx NMEA 9600 baud
Arduino  2 - RFM DIO5
Arduino  3 - RFM DIO0
Arduino  4 - LCD D4
Arduino  5 - LCD D5
Arduino  6 - LCD D6
Arduino  7 - LCD D7
Arduino  8 - LCD EN
Arduino  9 - LCD RS
Arduino 10 - RFM NSS
Arduino 11 - RFM MOSI
Arduino 12 - RFM MISO
Arduino 13 - RFM CLK


The software has 5 screens:

GPS Position
HAB Position
Direction/Distance to HAB
Frequency display/edit
Mode display/edit
Frequency offset display/edit

GPS Position screen shows the time (mm:ss), your latitude, longitude and altitude, assuming GPS has a lock

HAB Position screen shows HAB Altitude, packet RSSI, Latitude, Longitude. After 5 secs RSSI is replaced by live RSSI bar; after 10 seconds altitude is replaced by time since packet was received.

Direction/Distance to HAB shows clock direction and horizontal distance.

Frequency display/edit screen shows the manually settable frequency. To adjust, hold button till display changes, then press button briefly to step through the available frequencies (434.000 to 434.650MHz in 25kHz steps) When done, press and hoild button to save.

Mode display/edit screen shows the LoRa mode which is "Slow" (mode 0 in my tracker software), "Fast" (mode 1) or "TDM" (mode 2). As above, hold button down to enter/exit edit mode, and press button briefly to change the setting in edit mode.

Frequency offset display/edit screen shows the frequency offset applied when setting the LoRa module frequency. These modules can be away from the nominal frequency by a few kHz and this screen allows you to apply an offset of up to +/-5kHz. If the device receives packets whilst on this screen, the frequency offset from the transmission is displayed, making it easy to reduce that to zero.

The software includes AFC (automatic frequency control) to keep the receiver locked to the transmitter. On startup the module is set to the configured frequency and offset. Once a packet is received, the frequency error is measured and if it's more than +/- 500Hz then the module is retuned.

To avoid confusion when setting the frequency offset, AFC is disabled and the AFC offset is reset to zero when the frequency offset screen is placed in edit mode. This allows the manual offset to be set without AFC adjusting the LoRa module's frequency.


28/02/2018 - Fixed AFC, added frequency offset screen, added mode 2 (TDM), tified up serial output, fixed RSSI calculation

22/06/2015 - Freq control, AFC, UKHAS CRC16 check

05/06/2015 - LCD/button user interface, GPS, direction-finding

11/09/2014 - First release

You can’t perform that action at this time.