Contributions logicielles au projet RIOT OS pour le New Space

From air
Jump to navigation Jump to search

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 et langages : C, Make, Eclipse CDT, Visual Studio, Carte STM32 Nucleo et ESP32.

ThingSat

- 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

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.

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:

- Bump [Semtech LoRaMAC] to support the LoRaWAN 1.0.4 specification - Add support for the LoRaWAN 1.1 specification - 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.

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)