Chirpstack
Chirpstack (anciennement LoRa Server[1]) est un logiciel open source et gratuit permettant de créer, administrer et maintenir un réseau de télécommunication[2] privé pour faire communiquer des objets compatibles avec le protocole LoRaWAN. Il est distribué sous licence MIT[3] par Orne Brocaar.
Créateur | Orne Brocaar |
---|---|
Première version | |
Dernière version | 4.3 () |
Version avancée | 4.4-test.1 |
DĂ©pĂ´t | https://github.com/chirpstack/chirpstack |
État du projet | En développement actif |
Écrit en | Rust |
Langues | anglais |
Politique de distribution | gratuit |
Licence | MIT |
Documentation | https://www.chirpstack.io/docs/ |
Site web | https://www.chirpstack.io/ |
Chronologie des versions
Il est notamment utilisé par Semtech, l'entreprise à l'origine de la technologie LoRa[4].
Fonctionnalités
Les principales fonctionnalités de Chirpstack sont les suivantes :
- Gestion des tenants
- Gestion des utilisateurs
- Gestion du parc de passerelles
- Gestion du parc d'objets
- Réception, validation, décryptage et décodage des données montantes (uplink)
- Envoi des commandes descendantes (downlink)
- Gestion des paramètres radio des objets
- Décodage des données
- Envoi des données vers des systèmes tiers
Chirpsack permet de créer ses propres algorithme d'ADR (Adaptative Data Rate). Il prend en charge les objets de classe A, B et C, et accèpte les modes ABP (Activation By Personalization) et OTAA (Over-The-Air Activation).
Il expose une API (Application Programming Interface) gRPC.
Architecture
Chirpstack est composé de plusieurs composants logiciels qui communiquent entre eux :
- Le serveur de réseau (network server) est le composant central qui permet de traiter les paquets de données reçues par les passerelles LoRaWAN.
- Les agents logiciels de passerelle permettent de faire communiquer les passerelles avec le serveur de réseau.
Serveur de réseau (network server)
Il s'agit du composant principal du système.
Le serveur de réseau est écrit en Rust. Il utilise une base de données PostgreSQL pour le stockage des informations persitantes, et Redis pour le stockage des données ayant une date d'expiration ou une durée de vie limitée.
Il communique avec les agents logiciels de passerelle grâce à un serveur MQTT.
L'interface d'administration inter-agit avec le serveur de réseau à travers une API (Application Programming Interface) gRPC.
Agents logiciels de passerelle
Les agents logiciels de passerelle servent à faire communiquer les passerelles avec le serveur de réseau au travers du protocole MQTT. Ils peuvent être installés directement sur les passerelles, ou être mutualisés en étant installés sur un serveur.
Historique du projet
La version 0.1.0 de LoRa Server est rendue publique le 6 Mars 2016[5]. Jusqu'Ă la version 3, le logiciel est Ă©crit majoritairement en langage Go.
En Septembre 2022, la version 4, entièrement ré-écrite en Rust, devient publique[6].
Notes et références
- (en) Daryl Malas, « ChirpStack: The New Open Source LoRa Server », sur CableLabs, (consulté le )
- (en) Bruno Mendes, Shani Du Plessis, Dário Passos et Noélia Correia, « Framework for the Integration of Transmission Optimization Components into LoRaWAN Stack » [PDF], sur ResearchGate : « Chirpstack, which is an open-source LoRa Wide Area Network server stack »
- (en) Orne Brocaar, « Chirpstack/LICENSE » , sur Github
- (en-US) « Everynet Collaborates with Semtech and Chirpstack on Early Access to Everynet’s National Network in the U.S. fromSemtech’s LoRaWAN-Network Server » , sur Everynet, (consulté le )
- (en) « Release 0.1.0 · brocaar/chirpstack-network-server », sur GitHub (consulté le )
- (en) « [release] ChirpStack v4.0 », sur ChirpStack Community Forum, (consulté le )