LoRa Handheld Receiver

One of the nice things about the LoRa devices is that they do all the modulation and demodulation internally.  So whereas a traditional RTTY balloon tracker needs a PC at the receiving end (or a high end mobile phone or tablet), a LoRa receiver can be made with a simple microcontroller.  Anything that can talk SPI (a simple serial protocol) will do.

So I decided to do just that, using:

  • Arduino Mini Pro 3.3V / 8MHz
  • Epson-compatible 16×2 LCD
  • RFM98W module
  • Boost converter
  • 3.7V LiPo
  • USB LiPo charger

The Epson LCDs need 5V otherwise the display is blank.  In theory (i.e. according to specification) they need to be driven from 5V logic but in practice 3.3V logic works.  This is good because the RFM98W needs 3.3V logic and is not compatible with 5V logic.  So although it should be necessary to use a 5V Arduino (to keep the LCD happy) and use level shifters between Arduino and RFM98W, I found that it all works happily with 3.3V logic.

Basic wiring information is in the source code which you can grab here.

I put the lot in a case designed for Arduino and LCD, placing an SMA socket at the top (to connect an aerial) and a USB charging socket at the bottom.  I need to add a power switch (I didn’t have a suitable one to hand) then it’s finished.

These are all the parts connected and fixed to the case:

P1090772(the 2 red wires at the bottom will go to a power switch when I have one).  Bottom-right is a USB charger for the LiPo, and to the left is a step-up to convert the LiPo voltage (3-4V roughly) to 5V.  That then drives the LCD and the LDO on the Arduino, which then steps down to 3.3V for the processor and the RFM98W.  That connects to an SMA socket at the top of the case:

P1090770The software waits for a telemetry packet from the LoRa receiver.  It then decodes the packet and displays the latitude, longitide, altitude and RSSI (signal strength).  After a few seconds the altitude and RSSI are replaced by a “time since last packet” display, and a live signal strength bargraph:

P1090766The software is incomplete (e.g. no facility to change frequency) but that will come soon.




This entry was posted in Weather Balloon. Bookmark the permalink.

8 Responses to LoRa Handheld Receiver

  1. Janus says:

    I would be really interested if you posted details about the LoRa module. Also, even more interesting would be if you got into detail about the configuration and programming of the module.

  2. Istvan says:

    Nice job there!
    I would really appreciate as well, if you would share how to configure those RFM modules, how to pair them etc…

    Thanks in advance!
    Best regards

  3. Mike says:

    Hi Dave,

    great work there. I am looking to make a similar handheld, but one that will work two-way – send a signal, then receive data. Do you think the SX1275 is appropriate for that, being essentially half-duplex?

    • David Akerman says:

      Yes you can do that. Send a packet, receive at the other end, formulate and send a reply.

  4. David says:

    Hi Dave!
    Do I understand your setup correctly that you are running a separate GPS module, which is sending the location information through the LoRa module RFM98W right?
    Ie – you aren’t doing triangulation/location tracking based on the LoRa communication packets (like some pinging systems). Pretty NEAT!

    • David Akerman says:

      Yes the balloon tracker has GPS, and transmits its location to the receiver. The receiver has its own GPS so it knows where it is, where the balloon is, and can calculate the distance and direction to the balloon.

  5. Amitabh says:

    Pretty good work !
    BTW, what type of range are you getting ? LOS or NLOS ?

Leave a Reply

Your email address will not be published.