This repository contains device-profiles for LoRaWAN devices grouped by vendor. A device-profile contains important information about the capabilities of the device. For example which LoRaWAN mac-version has been implemented, which regions are supported, if the device supports Class-B or Class-C, etc... The aim is to build a complete list of LoRaWAN device-profiles that then can be imported by ChirpStack or potentially any other LNS.
Unfortuantely the https://github.com/thethingsnetwork/lorawan-devices repository can no longer be used as a whole. The open-source license has been removed and users are not allowed to extract and/or reuse the Device Repositoryas as a whole or a substantial part of its content. This prevents ChirpStack users (and other LNS providers) from importing this repository into their database.
The goal of this repository is to provide an open-source database of LoRaWAN device-profiles that can be freely imported.
- Create a fork of this repository (if not done already).
- Clone your local fork to your computer.
- Please make sure that you have Docker Compose installed.
- In the root of this repository, execute
docker compose up
. - Once
Starting server, bind: 0.0.0.0:8090
appears, open the web-interface in your browser by navigating to http://localhost:8090.
- In the left menu, click the Add vendor button.
- Fill in the form and click Submit.
- Select a vendor in the left menu (if no vendor is selected).
- Click Profiles in the left menu.
- Click the Add profile menu entry.
- Fill in the form and click Submit.
- Select a vendor in the left menu (if no vendor is selected).
- Click Codecs in the left menu.
- Click the Add codec menu entry.
- Fill in the form, before clicking Submit it is a good idea to click Run codec tests.
- Select a vendor in the left menu (if no vendor is selected).
- Click Devices in the left menu.
- Click the Add device menu entry.
- Fill in the form and add at least one firmware version by clicking the Add firmware version button.
- For each firmware version you can select one or multiple profiles and optionally a codec.
- Select a vendor in the left menu (if no vendor is selected).
- Click Update vendor in the left menu.
- Update the vendor by selecting the devices that you added in the previous step.
- Click Submit.
Once you have added the vendor(s), profile(s), codec(s) and device(s) you wish
to add to this repository you must commit the changes using git
, push these
to your fork of this repository and create a pull-request in GitHub.
Example structure for an example-vendor
with an example
device:
vendors/
└── example-vendor
├── codecs
│ ├── example.js
│ ├── test_decode_example.json
│ └── test_encode_example.json
├── devices
│ └── example.toml
├── profiles
│ └── example-EU868.toml
└── vendor.toml
Please take a look at the vendors/example-vendor
example documented
configuration files.
This is the root of the example vendor. It must contain a vendor.toml
file. This vendor.toml
.
This directory contains the payload codecs. Codecs can be used by one or multiple devices. E.g. some vendors have a generic payload codec.
Each codec is expected to have tests for encoding and decoding. If the
codec filename is example.js
, then you should create two test-files
called test_decode_example.json
(thus + test_decode_
prefix and .json
extension) and test_encode_example.json
.
This directory contains the devices. Each device will have its own .toml
configuration.
This directory contains the profiles. These profiles can be used by one or multiple devices. The profile also defines the region.
This repository is distributed under the MIT license. See also LICENSE
.