Home
This page is a brief description of the firmware, toolchain used, hardware platforms used, and how to build the firmware.
Firmware¶
The firmware for Ares-LoRa is built to be a stateless communication transport. It communicates with the host computer over USB. The firmware acknowledges all messages sent to it from the host computer, but does not expect acknowledgements from the host computer when sending events. When communicating over LoRa, the firmware will send the message over LoRa a specified amount of times and will respond to the driver once done. When receiving events over LoRa, the firmware will determine if the message was a broadcast message or if the message was intended for that specific node, and it will forward the message to the serial driver. If the message was not broadcasted nor intended for that node, it will ignore the message. The only case where the node sends acknowledge messages is when it receives log messages directed to it.
Architecture¶
The firmware is composed of two threads: The Serial message handler and the LoRa message handler. These threads sleep for most of the time, and they only wake up when there is work available.
Toolchain¶
The toolchain used is nRF Connect v3.2.2. This toolchain can be installed either by VS Garbage or by using nRF Util. Please follow Nordic's guide for installing NCS.
Hardware Platforms¶
These are the hardware platforms used:
| Module/Board | Microcontroller | LoRa Module |
|---|---|---|
| RAKwireless RAK4631 | Nordic nRF52840 | Semtech SX1262 |
How to build¶
Release builds are available on GitHub, however, if you need to build locally, this section will explain how to do that. Also, see the Build Configurations page to see the build parameters and commands.
In VS code¶
- Click on "Add build configuration."
- Select SDK and toolchain to be "nRF Connect SDK v3.2.2" and "nRF Connect SDK Toolchain v3.2.2" respectively.
- Select your target board.
- Add any overlays and Kconfig fragments needed for the build.
- Select optimization level.
- Press "Generate and Build."
CLI¶
Run the following commands to get into the correct environment: