Skip to content

Commit

Permalink
Update README.
Browse files Browse the repository at this point in the history
  • Loading branch information
brocaar committed Aug 30, 2024
1 parent 788ad7c commit 1a4cb70
Showing 1 changed file with 79 additions and 1 deletion.
80 changes: 79 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,80 @@
# LoRaWAN(R) device-profiles repository
# LoRaWAN(R) device-profiles

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.

## Why not use the TTN lorawan-devices repository?

Unfortuantely the [https://github.com/thethingsnetwork/lorawan-devices](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.

## Structure

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.

### `vendors/example-vendor`

This is the root of the example vendor. It must contain a `vendor.toml`
file. This `vendor.toml`.

### `vendors/example-vendor/codecs`

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`.

### `vendors/example-vendor/devices`

This directory contains the devices. Each device will have its own `.toml`
configuration.

### `vendors/example-vendor/profiles`

This directory contains the profiles. These profiles can be used by one
or multiple devices. The profile also defines the region.

## Running the test

To run the test-runner, execute:

```
make test
```

This will run all tests within a Docker Compose environment.

## License

This repository is distributed under the MIT license. See also `LICENSE`.

0 comments on commit 1a4cb70

Please sign in to comment.