I am working on a LoRaWAN project with the balenaFin, RAK2245 LoRa concentrator and a Notecard from Blues Wireless which is a cellular device. I am running this project on balenaOS with multiple containers, including one running the basics station packet forwarder. The Gateway is connected to The Things Stack and publishing data from LoRa end nodes, but I would like to also capture packets and send those to the Notecard for forwarding to the Notehub.io cloud service.
The Notecard is not a raw socket modem and I don’t want to, for this project, use it to replace Wi-Fi at the balenaOS level for all network communications. The goal is to capture LoRa packets from my end nodes and forward only those to the Notecard.
My question is: What is the most straight-forward way to do this?
Options I’ve considered include:
- Modify the basics station source to send packets to a web socket in another container. I’ve poked around in the basicstation source, but it feels needlessly complex and hacky to take this approach.
- Implement my own (Python-based) LoRa network server and replace the Things Stack completely. I tried just forwarding everything to my simple websocket, but that didn’t work and I expect I would need to fully implement the LNS protocol on the web socket server in order to do this. Is that correct, and if so, does anyone have any pointers to guides or even open-source LNS implementations I could look at?
- Use Chirp Stack as the Network and Application server and capture packets using gprc or MQTT. I’ve started going down this path, and am creating a set of containers for the various pieces, but I am not sure if I’m not overdoing it, and I didn’t want to take The Things Stack completely out of the mix.
Thanks for reading, any help is appreciated!