atomvm / atomvm_lora

Apache License 2.0
4 stars 0 forks source link

LoraWAN support #1

Open danifv opened 5 months ago

danifv commented 5 months ago

Hello, as a follow-up to the discussion started at https://github.com/atomvm/AtomVM/discussions/1125, I'd be interested to know what it would take to have LoraWAN support to AtomVM.
I saw that support is present in FreeRTOS [1]. Is it possible to use its API or any implementation already available for the hardware?
My end goal is to experiment with setups consisting of AtomVM and LoraWAN as soon as I can, but I'd be interested in contributing to an erlang implementation as well.

[1] https://www.freertos.org/lorawan/index.html

UncleGrumpy commented 5 months ago

It would probably take more work to port the vanilla FreeRTOS implementation to esp32, than starting with a library written for ESP-IDF natively, like lmic-esp-idf, but since the core LoRa functionality is already implemented in this repository that would be repeating much of the work that has already been done.

I do not believe any more C code is needed (either nifs, or ports) to implement the rest of the LoRaWAN protocol, that can be implemented in Erlang, utilizing the hardware functionality exposed by this driver.

UncleGrumpy commented 2 months ago

I just came across this application: https://github.com/gotthardp/lorawan-server

It definitely won’t work with AtomVM out of the box, it uses mnesia extensively, and this is something I don’t expect AtomVM to be able to support any time soon. Several of the connectors may be difficult to support, but mqtt should be quite feasible. It may be helpful as a guide for implementing the lorawan protocol.

I will look into this closer when I have more time available.