Payload packet handling pipeline for the S-band Transmitter, developed by Hardik Singhal, Shivansh Gupta, and Amrit Mishra as SpaceLab summer interns, under the mentorship of Lucas Ryan.
Overview • Architecture • Building & Running • Documentation • License
This module implements the packet handling pipeline for the S-band Transmitter payload: reading payload data, fragmenting it into transmission-sized chunks, ordering it through a FIFO queue, encoding it into NGHam frames, and monitoring pipeline telemetry (queue occupancy, generation/transmission rates, overflow counts). It is implemented as four FreeRTOS tasks and validated on the FreeRTOS POSIX/Linux simulator prior to MCU integration.
The pipeline is split into four FreeRTOS tasks, connected by two queues:
- Payload Reader / Fragmenter — reads payload data per occultation event and splits it into fixed-size chunks.
- FIFO Queue Manager — forwards chunks in order, preserving transmission sequence.
- NGHam Encoder — serializes and encodes each chunk into a transmittable NGHam frame (CRC16 + Reed-Solomon FEC).
- Telemetry Monitor — samples queue occupancy and updates generation/transmission rates and overflow counters in a shared, mutex-protected telemetry struct.
cd firmware
make
./build/telemetry_pipelineProtocol notes (NGHam packet structure, SPP, extension packets) and FreeRTOS reference material are available in doc/.
This project is open-source under two licenses: GNU General Public License v3.0 for firmware sources, and CC BY-SA 4.0 for the documentation. Some third-party files and libraries (e.g. the FreeRTOS kernel) are subject to their own specific terms and licenses.
