Lab Notes: LoRa Activities and Experiments

This page documents my experiences using LoRa. It’s purposefully brief and contains less details than my lab notebooks. I’m pleased to provide additional information; just contact me using the contact page.

September 2020: I knew about LoRa for several years, but never took the time to investigate. As part of the CTE: Mission CubeSat challenge, Bjarke Gotfredsen of provided a series for webcasts where he strongly advocated for the use of LoRa by cubesats. I was intrigued and upon further investigation, discovered FOSSA Systems was using LoRa on their open source pico-sats. So I ordered several LoRa radios from Adafruit.

October 2020: Using a pair of 433MHz FRM96W LoRa transceivers (yes, I’m a licensed operator, KK6NOW), I’ve successfully implemented FOSSA ground station and satellite software.

November 2020: During my discussions with FOSSA, they suggested I explore a sister project on GitHub that used HiLetGo ESP32 / LoRa based hardware. So I ordered a pair from Amazon and the software installed flawlessly. Until the FOSSA picosat was launched (early 2021), they decided to track the Russian satellite Norby. I’m one of 3 stations in the US and the only one on the West Coast receiving and uploading telemetry data. Without us, Norby’s operators would be “blind” for 1/3 of Norby’s orbit around the earth.

December 2020: Continuing to follow and document my research into LoRa cubesats, I discovered AmbaSat, a low cost, spriteSat for the “rest of us”. It will use The Things Network (TTN) as earth stations to receive telemetry data. Once again, I ordered one and waited 4 weeks for it to arrive. Meanwhile, I learned how to use TTN. I’m using an Arduino based, open-source project (TNNmaper) that maps the range of TNN gateways as the basis of my experiments and adding an IMU and UV sensor to duplicate the functions of the AmbaSat.

I quickly realized that Arduinos and ESP32s are not powerful enough to use as LoRaWAN gateways. I built a single channel gateway with a Raspberry Pi3 and a LoRa shield using these instructions from AdaFruit with limited success. The issue is that a single channel gateway only receives one frequency where as the LoRaWAN client “frequency hops”, transmitting on a different frequency with each packet. I’m now using the fully functional RAK Wireless gateway.

YouTube videos, projects and tutorials I found to be useful are posted here.

January 2021: Receiving my AmbaSat kit, I went to work following the instructions provided. All went well until I attempted to load the “Blink” program — loader failed with multiple sync errors. After much troubleshooting (documented here on their forum), we determine the problem was with the CH340 USB->TTL programmer. Fortunately I had a FTDI programming cable from Adafruit which worked. (NOTE: It sometimes doesn’t work the first time, but will on the second. It appears to be a timing issue suggested in the forum.) AmbaSat is sending me a new CH340.

After getting Blink running , I tried the AmbaSat-TTN program which communicates with The Things Network. It’s configured to use the EU LoRa frequencies. Fortunately, the RAK gateway supports all LoRa regions, so it was easy to reconfigure. And the program worked and I could see the packets on the TTN console! (NOTES: the data values are hardcoded. There is a 18 minute delay between packet transmissions. The data doesn’t appear on your AmbaSat console, yet.)

Wanting to be legal in the US, I reconfigured the AmbaSat software to transmit on the US standard of 915MHz. This resulted in compilation errors – multiple undefined constants. The fix was easy and is documented here.

I now have  Michael Kamprath’s excellent code running on my AmbaSat and communicating with my gateway. I’ve documented the procedure for creating the TTN application to decode the data here:

Also created a graphical dashboard using TTN and The procedure is documented here:

March 2021: Upgraded my TinyGS ground station and received my first valid LoRa message from SDSAT.

%d bloggers like this: