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

From air
Jump to navigation Jump to search
(Created page with "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 Outils...")
 
 
(15 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)
== Implement a SUIT Status Tracker / Firmware Server ==
 
   
  +
Dans votre cas, les communications entre le segment vol et le segment sol se font en modulation LoRa 2.4GHz.
[SUIT](https://datatracker.ietf.org/doc/rfc9019/) is a new standard looking to
 
bring secure standarized firmwares updates to constrained Devices.
 
   
  +
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).
RIOT supports [SUIT updates](https://github.com/RIOT-OS/RIOT/tree/master/examples/suit_update),
 
but the example is based on a simple file-server. Most deployement would include the
 
fonctionalities of the Status Tracker and Firmware Server.
 
   
  +
La plateforme matérielle pour les tests sera:
- Status Tracker:
 
   
  +
* Segment Vol
1. It communicates the availability of a new firmware version.
 
  +
** OBC : Nucleo F446RE + Shield CAN BUS + Lecteur SDCard + Real Time Clock + Module GPS + Module SX1280 LoRa 2.4 GHz + Module Gyroscope (mesure d'attitude)
This information will flow from the server to the client.
 
  +
** Payload : Nucleo F446RE + Shield CAN BUS + Camera Arduino (en option)
  +
* 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).
2. It conveys information about the software and hardware
 
characteristics of the device. The information flow is from
 
the client to the server.
 
   
  +
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.
3. It can remotely trigger the firmware update process. The
 
information flow is from the server to the client.
 
 
- Firmware Server:
 
   
1. Stores firmware images and manifests and distributes them.
 
   
  +
[[Image:TinyGS2G4.jpg|center|400px|TinyGS2G4]]
This requires improovements to RIOT SUIT support as information about the Status
 
Trackers needs to be available, and it needs to periodically and securely convay
 
information on the current firmware version it is running.
 
 
TODO: more details ...
 
 
== Participe in an OpenSource Project ==
 
 
- 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 ...
 
 
== SenML, SAUL, MQTT Integrations ==
 
 
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.
 
 
Popular communication protocols used in IoT include MQTT and COAP, RIOT supports both of them offering
 
often multiple implementations. What's missing is a module integrating SAUL, SenML and different IoT
 
communication protocols in such a way that setting up a IoT sensing application in a standarized way.
 
 
- [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)
 
 
 
* [Semtech LoRaMAC]: https://github.com/Lora-net/LoRaMac-node
 
* [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