Skip to content

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

  1. Click on "Add build configuration."
  2. Select SDK and toolchain to be "nRF Connect SDK v3.2.2" and "nRF Connect SDK Toolchain v3.2.2" respectively.
  3. Select your target board.
  4. Add any overlays and Kconfig fragments needed for the build.
  5. Select optimization level.
  6. Press "Generate and Build."

CLI

Run the following commands to get into the correct environment:

$ cd firmware
$ nrfutil sdk-manager toolchain launch --ncs-version v3.2.2 --shell
$ source <path to ncs directory>/v3.2.2/zephyr/zephyr-env.sh
$ <west build command (refer to build configs>