chirpstack-gateway-os icon indicating copy to clipboard operation
chirpstack-gateway-os copied to clipboard

OpenWrt based gateway images including ChirpStack components.

ChirpStack Gateway OS

The ChirpStack Gateway OS is an embedded OS for LoRa gateways. It is part of the ChirpStack open-source LoRaWAN Network Server stack.

The goal of the ChirpStack Gateway OS is to provide firmware images that are easy to setup, maintain and customize.

Images

chirpstack-gateway-os-base

An image providing the Semtech Packet Forwarder and ChirpStack Gateway Bridge.

Provides the following features:

chirpstack-gateway-os-full

An image providing a complete LoRaWAN network-server running on the gateway.

Provides the following features:

Targets

Raspberry Pi

  • Raspberry Pi Zero W
  • Raspberry Pi 1
  • Raspberry Pi 3
  • Raspberry Pi 4

Shields / kits

Using

Login

The default username is admin with password admin.

Gateway configuration

Execute the following command as admin user:

sudo gateway-config

Building images

A Docker Compose based build environment is provided for compiling the images.

Note: Compiling these images require a fair amount of CPU power, RAM and disk space. As a reference, the pre-compiled images are built using a 8 x Core i7 machine with 16GB RAM running Manjaro Linux with 200GB reserved for the build environment.

Initial setup

Run the following command to fetch the git submodules and setup directory permissions (to write back from the Docker container):

# update the submodules
make submodules

# setup permissions
make permissions

Run the following command to set the /build folder permissions:

# on the host
docker-compose run --rm busybox

# within the container
chown 999:999 /build

Building

Run the following command to setup the build environment:

# on the host
docker-compose run --rm yocto bash

# within the container

# initialize the yocto / openembedded build environment
source oe-init-build-env /build/ /chirpstack-gateway-os/bitbake/


# build the chirpstack-gateway-os-base image
bitbake chirpstack-gateway-os-base

In case of error:

docker.credentials.errors.InitializationError: docker-credential-secretservice not installed or not available in PATH

Make sure that the golang-docker-credential-helpers is installed. On Ubuntu you can install it with:

sudo apt install golang-docker-credential-helpers

Configuration

By default, Raspberry Pi3 is configured as the target platform. You need to update the following configuration files to configure a different target:

  • /build/config/local.conf
  • /build/config/bblayers.conf

Good to know

SD Card wearout

Although ChirpStack Network Server and ChirpStack Application Server try to minimize the number of database writes, there will be regular writes to the SD Card (PostgreSQL and Redis snapshots). According to Is it true that a SD/MMC Card does wear levelling with its own controller? it might make a difference which SD Card brand you use.

Versioning

The major version (major.minor.patch) of this project represents the major version of the provided ChirpStack Network Server stack.