-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Radio SX127x (LoRA) #11
Comments
Next I tried with RIOT. First I created the
But I've not committed it anywhere. The options here is to submit a PR to RIOT, or to add it somewhere in our tree, or maybe we can achieve the same using some defines. See the Next I tried This is an excerpt from the board attached to
And this is an excerpt from the board attached to
So it worked 🎉 With this we have verified that RIOT already supports the SX127x modules, and that it works with the feather-m0 board, it just needs the proper pin configuration. Regarding the configuration note that RIOT also has the feather-m0-lora board, but the pin configuration is not the same. Next step is to learn about the RIOT network stack. |
RIOT's netdev provides an abstraction layer over network drivers, so network stacks can be built on top of them.
Meanwhile in the other node:
As seen above the |
A few more things I've learnt:
RIOT supports LoraWAN, either with Semtech package, or integrated into RIOT network stack (GNRC). But this means joining the LoraWAN network, and it's probably not what we want. TODO:
|
The sx127x chips support 2 modes, LoRa and FSK. RIOT only supports the Lora mode, there's an open issue to add support for FSK, see RIOT-OS/RIOT#11333 The Waspmote API only works in Lora mode as well, this is what the documentation says:
Then we want to use LoRa as well, for the same reason. So RIOT not supporting FSK is not an issue. In FSK mode there's a register (0x33) to store the node address, but the same register is used for another purpose in LoRa mode. In the Waspmote API they store the node address only in memory, and the receiver code checks the destination address. So the link layer addressing is done at software level. Now I've to check the send/receive code in RIOT as we have to do L2 addressing in software (like Libelium does). |
Have investigated a bit more... Actually LoRaWAN belongs to the MAC (Media Access Control) layer of the network. So we could use it... but the big problem is it implements a single-hop star topology; and we have deployments where we need multi-hop, as some nodes don't have direct access to the gateway. Options... (1) Use LoRaWAN. (2) Use 802.15.4 (3) Build 802.15.4 on top of LoRa? Just for reference, this is something I found while searching:
Conclusion. From this analysis (2) is the way to go because multi-hop is a hard requirement, and solution (3) is probably unfeasible. Things I would like to do:
|
One year later I think we just have to implement |
Update: I got LoRa working with 2 nodes using RIOT's Instead of the change in a previous commit I've done this:
Not sure but I think the difference is using For the record I tested with
|
Tested as well sending with the upper layer, with
Then go to System -> Networking -> Configure LoRa PHY:
The frequency is not configurable from menuconfig, but I used the default. |
With the Feather M0 Adalogger we use the FeatherWing - RFM95W 900 MHz shield, this has the SX1276 chip. With the Waspmote we have a shield with the SX1272 chip.
RIOT has the sx127x driver which supports both the SX1272 and SX1276. By default it uses SX1276 but can be changed with the option
DRIVER=sx1272
First I've tested the Feather M0 using Arduino. To do so I've followed this guide, https://learn.adafruit.com/radio-featherwing/overview
As described in the guide I've wired 3 pins, but not like in the image from the guide. Like this:
In the example programs from the guide I made 2 changes:
Feather m0 w/wing
(this defines the 3 pins wired as in the image above)RF95_FREQ
to 868 for EuropeAnd it worked!
The text was updated successfully, but these errors were encountered: