Chirpstack

Un article de Wikipédia, l'encyclopédie libre.
Chirpstack

Description de cette image, également commentée ci-après
Tableau de bord d'un objet connecté
Informations
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

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.

Il est notamment utilisé par Semtech, l'entreprise à l'origine de la technologie LoRa[4].

Fonctionnalités[modifier | modifier le code]

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 accepte les modes ABP (Activation By Personalization) et OTAA (Over-The-Air Activation).

Il expose une API (Application Programming Interface) gRPC.

Architecture[modifier | modifier le code]

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)[modifier | modifier le code]

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 persistantes, 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[modifier | modifier le code]

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[modifier | modifier le code]

La version 0.1.0 de LoRa Server est rendue publique le [5]. Jusqu'à la version 3, le logiciel est écrit majoritairement en langage Go.

En , la version 4, entièrement ré-écrite en Rust, devient publique[6].

Notes et références[modifier | modifier le code]

  1. (en) Daryl Malas, « ChirpStack: The New Open Source LoRa Server », sur CableLabs, (consulté le )
  2. (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 »
  3. (en) Orne Brocaar, « Chirpstack/LICENSE » Accès libre, sur GitHub
  4. (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 » Accès libre, sur Everynet, (consulté le )
  5. (en) « Release 0.1.0 · brocaar/chirpstack-network-server », sur GitHub (consulté le )
  6. (en) « [release] ChirpStack v4.0 », sur ChirpStack Community Forum, (consulté le )

Liens externes[modifier | modifier le code]