Difference between revisions of "Contributions logicielles au projet RIOT OS pour le New Space"

From air
Jump to navigation Jump to search
 
(14 intermediate revisions by the same user not shown)
Line 1: Line 1:
Le but de ce projet est de réaliser, de tester et de contribuer des implémentations open-source pour le projet RIOT OS qui est un système d'exploitation open-source
+
Le but de ce projet est de réaliser, de tester et de contribuer l'implémentation d'une Plateforme logiciel open-source pour nano-satellite avec le projet RIOT OS qui est un système d'exploitation open-source.
   
 
Outils et langages : C, Make, Eclipse CDT, Visual Studio, Carte STM32 Nucleo et ESP32.
 
Outils et langages : C, Make, Eclipse CDT, Visual Studio, Carte STM32 Nucleo et ESP32.
   
  +
Le « Newspace » désigne une nouvelle approche de l’industrie spatiale, fondée sur la capacité de plus en plus courante de pouvoir envoyer des micro-satellites (aka cubesats) en orbite autour de la Terre. Le temps et le coût de développement de ces micro-satellites sont réduits grâce l'utilisation de composants sur étagère aux dimensions standard qui sont fixés dans des structures aux dimensions standards (plusieurs cubes de 10x10x10 cms).
== ThingSat ==
 
   
  +
[[Image:ATISE.jpg|center|400px|ATISE]] [[Image:STORK1.jpg|center|400px|STORK1]]
- ThingSat Updates
 
- SUIT over LoRa
 
- Only send diff: https://github.com/jue89/tiny-vcdiff
 
- Compresssed payloads:
 
- ThingSat firmware backups:
 
- Memory Technology Devices
 
- Fatfs
 
   
== Update Semtech LoRaMAC Node Package ==
 
   
  +
Le CSUG ([https://www.csug.fr/csug-centre-spatial-universitaire-de-grenoble/accueil-98826.kjsp Centre Spatial Universitaire de Grenoble]) a déjà en orbite 2 projets de cubesat : Amical et Thingsat. Dans le cas de Thingsat, une partie du logiciel a été développé au moyen du système d'exploitation [https://github.com/RIOT-OS/RIOT RIOT OS] spécialisés pour les systèmes embarqués à base de microcontrôleurs.
RIOT supports LoRaWAN through a in the house stack [GNRC LoRaWAN] and through the [Semtech LoRaMAC] package.
 
The later is stuck on version V4.4.1 which implements the LoRaWAN specification 1.0.2. Since then 1.1 and
 
1.0.4 have been releaced, including among others security updates.
 
   
  +
L'objectif du projet est de concevoir une plateforme d'émulation complète d'un cubesat (aka segment vol) et de son segment sol (ie la station de reception et d'émission au sol).
RIOT current support for [Semtech LoRaMAC] package will be the starting point, updatting the package to
 
version > V4.7.0. It can be decoupled into two stages:
 
   
  +
L'architecture d'un segment vol (cubesat) est constitué de :
- Bump [Semtech LoRaMAC] to support the LoRaWAN 1.0.4 specification
 
  +
* l'Onboard Computer (OBC) qui pilote un module de communication et un module de controle de l'attitude (ADCS). Il reçoit du segment des commandes à exécuter (maintien d'une attitude, manoeuvre quand il comporte des propulseurs, envoie de commandes vers les charges utiles) et envoie des télémetries (niveau de batterie, attitude ...)
- Add support for the LoRaWAN 1.1 specification
 
  +
* les charges utiles (Payload) qui executent les missions du satellite (en general, des prises de photo avec des imageurs dans plusieurs spectres de lumière).
- Explore and add support for FUOTA, a good starting point are Semtech Loramac examples:
 
- https://github.com/Lora-net/LoRaMac-node/tree/master/src/apps/LoRaMac/fuota-test-01
 
- Add lib for [LoRaWAN App Clock Sync](https://lora-alliance.org/resource_hub/lorawan-application-layer-clock-synchronization-specification-v1-0-0/)
 
- Add lib for LoRaWAN utilities (OTAA incremental procedure, Blind ADR ...)
 
- Add driver for SX1302
 
- Add Semtech UDP Packet Forwarder (for SX1302) : requires mainly a JSON parser lib.
 
   
  +
Les communications entre l'OBC et les charges utils se font au moyen d'un bus CAN (bus industriel utilisé dans tous les véhicules terrestres)
== Participe in an OpenSource Project ==
 
   
  +
Dans votre cas, les communications entre le segment vol et le segment sol se font en modulation LoRa 2.4GHz.
- Bug fixing, see [issues](https://github.com/RIOT-OS/RIOT/issues)
 
- Update / extend existing support for inference libraries on RIOT
 
- Add driver support:
 
- [ ] [GNSS modules](https://github.com/RIOT-OS/RIOT/issues/17253)
 
- [ ] [MPR121 Touch Sensor](https://github.com/RIOT-OS/RIOT/issues/17249)
 
- [ ] [A3G425OD digital gyroscope and temperature sensor](https://github.com/RIOT-OS/RIOT/issues/17058)
 
- [ ] [STTS751 temperature sensor](https://github.com/RIOT-OS/RIOT/issues/17054)
 
- [ ] [LSM6DS3 6-Axis Accelerometer&Gyroscope](https://github.com/RIOT-OS/RIOT/issues/17053)
 
- Add modules:
 
- TLE ([Two-Line Element](https://en.wikipedia.org/wiki/Two-line_element_set) for satellite tracking and visibility window prediction for transmission)
 
- [LibCSP](https://github.com/libcsp/libcsp) (CubeSat Protocol) over CAN Bus
 
- LibCSP utilities
 
- Add developement BOARD support:
 
- [ ] [Wio Terminal](https://www.google.com/search?channel=fs&client=ubuntu&q=seeedstudio+wio+terminal)
 
- etc ...
 
   
  +
Le travail consistera à récupérer et à assembler une partie des modules logiciels et pilotes de périphériques fournis par RIOT OS (SDCard, FatFS, SUIT, LoRaWAN, Gyroscope, GPS, Bus CAN ...) ou développé par le CSUG pour la mission Thingsat (SX1280, OBC, LibCSP, ...) pour réaliser les firmwares de l'OBC et de charges utiles (générique, spécialisée à prise de photos).
== SenML, SAUL, MQTT Integrations ==
 
   
  +
La plateforme matérielle pour les tests sera:
The IoT, previously known as WSN (wireless sensor network) still finds many use cases in sensors
 
networks. These usecases share a common base: need to convey a value, information of when/where the
 
value was taken, and what that value corresponds too. Standarizing the way this is done, and doing so
 
in a simple exntensible fashion has been done through [SenML](). SenML is defined by a data model for
 
measurements and simple metadata about measurements and devices. It has recently been integrated into
 
RIOT with a simple example using [SAUL](https://api.riot-os.org/group__drivers__saul.html), RIOTs sensors
 
and actuators abstraction layer.
 
   
  +
* Segment Vol
Popular communication protocols used in IoT include MQTT and COAP, RIOT supports both of them offering
 
  +
** OBC : Nucleo F446RE + Shield CAN BUS + Lecteur SDCard + Real Time Clock + Module GPS + Module SX1280 LoRa 2.4 GHz + Module Gyroscope (mesure d'attitude)
often multiple implementations. What's missing is a module integrating SAUL, SenML and different IoT
 
  +
** Payload : Nucleo F446RE + Shield CAN BUS + Camera Arduino (en option)
communication protocols in such a way that setting up a IoT sensing application in a standarized way.
 
  +
* Segment Sol: [https://github.com/thingsat/tinygs_2g4station/blob/main/README.md Nucleo F446RE ou ESP32 + Module GPS + Module SX1280 LoRa 2.4 GHz]
   
  +
Cette plateforme de test servira à l'intégration en continue (CI) des mises à jour de firmware de l'OBC ou des charges utiles afin de préparer le déploiement de la mise à jour à travers l'espace (Firmware Update Over The Space).
- [paho-mqtt](https://github.com/RIOT-OS/RIOT/tree/master/examples/paho-mqtt)
 
- [SenML](https://github.com/RIOT-OS/RIOT/pull/16384)
 
- [SAUL](https://api.riot-os.org/group__drivers__saul.html)
 
- [COAP]
 
- [pyaiot](https://github.com/pyaiot/pyaiot)
 
   
  +
Ce projet servira de "blueprint" open-source pour des projets de micro-satellites du CSUG et d'autres centres spatiaux universitaires français et européens.
   
  +
* [Semtech LoRaMAC]: https://github.com/Lora-net/LoRaMac-node
 
  +
[[Image:TinyGS2G4.jpg|center|400px|TinyGS2G4]]
* [GNRC LoRaWAN]: https://api.riot-os.org/group__net__gnrc__lorawan.html
 

Latest revision as of 12:45, 26 January 2022

Le but de ce projet est de réaliser, de tester et de contribuer l'implémentation d'une Plateforme logiciel open-source pour nano-satellite avec le projet RIOT OS qui est un système d'exploitation open-source.

Outils et langages : C, Make, Eclipse CDT, Visual Studio, Carte STM32 Nucleo et ESP32.

Le « Newspace » désigne une nouvelle approche de l’industrie spatiale, fondée sur la capacité de plus en plus courante de pouvoir envoyer des micro-satellites (aka cubesats) en orbite autour de la Terre. Le temps et le coût de développement de ces micro-satellites sont réduits grâce l'utilisation de composants sur étagère aux dimensions standard qui sont fixés dans des structures aux dimensions standards (plusieurs cubes de 10x10x10 cms).

ATISE
STORK1


Le CSUG (Centre Spatial Universitaire de Grenoble) a déjà en orbite 2 projets de cubesat : Amical et Thingsat. Dans le cas de Thingsat, une partie du logiciel a été développé au moyen du système d'exploitation RIOT OS spécialisés pour les systèmes embarqués à base de microcontrôleurs.

L'objectif du projet est de concevoir une plateforme d'émulation complète d'un cubesat (aka segment vol) et de son segment sol (ie la station de reception et d'émission au sol).

L'architecture d'un segment vol (cubesat) est constitué de :

  • l'Onboard Computer (OBC) qui pilote un module de communication et un module de controle de l'attitude (ADCS). Il reçoit du segment des commandes à exécuter (maintien d'une attitude, manoeuvre quand il comporte des propulseurs, envoie de commandes vers les charges utiles) et envoie des télémetries (niveau de batterie, attitude ...)
  • les charges utiles (Payload) qui executent les missions du satellite (en general, des prises de photo avec des imageurs dans plusieurs spectres de lumière).

Les communications entre l'OBC et les charges utils se font au moyen d'un bus CAN (bus industriel utilisé dans tous les véhicules terrestres)

Dans votre cas, les communications entre le segment vol et le segment sol se font en modulation LoRa 2.4GHz.

Le travail consistera à récupérer et à assembler une partie des modules logiciels et pilotes de périphériques fournis par RIOT OS (SDCard, FatFS, SUIT, LoRaWAN, Gyroscope, GPS, Bus CAN ...) ou développé par le CSUG pour la mission Thingsat (SX1280, OBC, LibCSP, ...) pour réaliser les firmwares de l'OBC et de charges utiles (générique, spécialisée à prise de photos).

La plateforme matérielle pour les tests sera:

Cette plateforme de test servira à l'intégration en continue (CI) des mises à jour de firmware de l'OBC ou des charges utiles afin de préparer le déploiement de la mise à jour à travers l'espace (Firmware Update Over The Space).

Ce projet servira de "blueprint" open-source pour des projets de micro-satellites du CSUG et d'autres centres spatiaux universitaires français et européens.


TinyGS2G4