# SatNOGS-COMMS Open-Source CubeSat Communication > [! note]- > The content of this page is generated by audio/video transcription and text transformation from the content and links of this source. Source: [https://fosdem.org/2025/schedule/event/fosdem-2025-6024-satnogs-comms-an-open-source-communication-subsystem-for-cubesats/](https://fosdem.org/2025/schedule/event/fosdem-2025-6024-satnogs-comms-an-open-source-communication-subsystem-for-cubesats/) <video src="https://video.fosdem.org/2025/h1302/fosdem-2025-6024-satnogs-comms-an-open-source-communication-subsystem-for-cubesats.av1.webm" controls></video> ## Summary & Highlights: This session introduces SatNOGS-COMMS, an open-source communication subsystem for CubeSats, developed by the Libre Space Foundation and ESA. It highlights the use of advanced hardware and software to tackle CubeSat mission challenges, emphasizing accessibility and flexibility through open-source solutions. Key topics include the benefits of using C++ in embedded systems, fault-tolerant mechanisms for space environments, and user-defined code integration without altering the original codebase. The project is fully open-source, with all designs and documentation available on GitLab. **Introduction to SatNOGS-COMMS** SatNOGS-COMMS is an open-source communication subsystem for CubeSats, developed collaboratively by the Libre Space Foundation and the European Space Agency. It aims to enhance the accessibility and flexibility of CubeSat missions through an open ecosystem. **Technical Overview** The subsystem features an STM32H743 microcontroller and a ZYNQ-7020 FPGA for intensive computations, utilizing Zephyr RTOS with firmware written in C++17. The platform-agnostic architecture allows users to adapt the firmware to their preferred RTOS with minimal adjustments. **Software Engineering Decisions** The session delves into software engineering decisions, challenges, and the advantages of an open-source approach for space missions. It covers the use of C++ in embedded systems, exception handling for safety and reliability, and fault-tolerant mechanisms for space operations. **Open-Source Ecosystem** The project is entirely open-source, with hardware designs, software, simulations, and documentation available on GitLab. This transparency allows for community involvement and continuous improvement. **Mission Applications** SatNOGS-COMMS is suitable for LEO CubeSat missions up to 600 kilometers, with seamless integration into the SatNOGS network. It supports various frequency bands and is designed for a wide range of CubeSat missions. ## Importance for an eco-social transformation SatNOGS-COMMS represents a significant step towards eco-social transformation by promoting open-source solutions in space exploration. It emphasizes collaboration, transparency, and accessibility, allowing diverse communities to participate in space technology development. For eco-social designers, the project offers insights into using open-source platforms like Zephyr RTOS and C++ for sustainable technological solutions. Challenges include ensuring widespread adoption and overcoming technical and regulatory hurdles in space technology. The project encourages the use of open-source tools and platforms, fostering innovation and collaboration in the space sector. ## Slides: | | | | --- | --- | | ![[FOSDEM 2025/assets/SatNOGSCOMMS-An-OpenSource-Communication-Subsystem/preview_001.jpg\|300]] | SatNOGS-COMMS is an open-source communication subsystem designed for CubeSats, presented at FOSDEM 2025 by Manolis Surligas from the Libre Space Foundation. | ![[FOSDEM 2025/assets/SatNOGSCOMMS-An-OpenSource-Communication-Subsystem/preview_002.jpg\|300]] | SatNOGS is a network of ground stations with a modular setup, based on software-defined radio (SDR) technology. It is a completely open-source stack covering VHF, UHF, L-Band, and S-Band frequencies, with plans to expand to X-band. | ![[FOSDEM 2025/assets/SatNOGSCOMMS-An-OpenSource-Communication-Subsystem/preview_003.jpg\|300]] | SatNOGS-COMMS, co-funded by the Libre Space Foundation and ESA, features UHF and S-Band transceivers, an STM32H7 microcontroller, and a ZYNQ-7020 FPGA. It's suitable for LEO missions up to 600 km and offers seamless integration with the SatNOGS network. | ![[FOSDEM 2025/assets/SatNOGSCOMMS-An-OpenSource-Communication-Subsystem/preview_004.jpg\|300]] | The SatNOGS-COMMS transceiver is a key component in enabling CubeSat missions, offering advanced communication capabilities through open-source and open-hardware designs. | ![[FOSDEM 2025/assets/SatNOGSCOMMS-An-OpenSource-Communication-Subsystem/preview_005.jpg\|300]] | The RF frontend of SatNOGS-COMMS supports UHF and S-Band frequencies, with power outputs ranging from 26 to 32 dBm. It complies with SFCG 21–2R4 emission standards and features a low noise figure of 1.4 dB. | ![[FOSDEM 2025/assets/SatNOGSCOMMS-An-OpenSource-Communication-Subsystem/preview_006.jpg\|300]] | The UHF RF frontend includes various filters, switches, and detectors to manage signal processing. It supports cognitive radio functions and ensures robust communication capabilities for CubeSat missions. | ![[FOSDEM 2025/assets/SatNOGSCOMMS-An-OpenSource-Communication-Subsystem/preview_007.jpg\|300]] | The S-Band RF frontend of SatNOGS-COMMS includes cognitive radio capabilities, multiple RF filters, and power detectors. It supports a wide range of bandwidths and ensures reliable communication for space missions. | ![[FOSDEM 2025/assets/SatNOGSCOMMS-An-OpenSource-Communication-Subsystem/preview_008.jpg\|300]] | SatNOGS-COMMS is equipped with multiple I/O interfaces, including CAN, SPI, I2C, UART, and Ethernet, along with antenna deployment interfaces and clock inputs, supporting diverse CubeSat mission requirements. | ![[FOSDEM 2025/assets/SatNOGSCOMMS-An-OpenSource-Communication-Subsystem/preview_009.jpg\|300]] | The Curium-1 mission, launched on Ariane 6, utilized SatNOGS-COMMS for communication. Despite initial challenges with antenna deployment, the mission provided valuable insights for future CubeSat projects. | ![[FOSDEM 2025/assets/SatNOGSCOMMS-An-OpenSource-Communication-Subsystem/preview_010.jpg\|300]] | The PHASMA mission, using SatNOGS-COMMS, involves two 3U CubeSats for spectrum monitoring. Scheduled for Q3 2025 on Transporter-15, it highlights the subsystem's versatility in space applications. | ![[FOSDEM 2025/assets/SatNOGSCOMMS-An-OpenSource-Communication-Subsystem/preview_011.jpg\|300]] | SatNOGS-COMMS onboard software is designed for seamless integration and operation, utilizing modern programming practices and open-source frameworks for reliable CubeSat communication. | ![[FOSDEM 2025/assets/SatNOGSCOMMS-An-OpenSource-Communication-Subsystem/preview_012.jpg\|300]] | The libsatnogs-comms software is platform-agnostic, available as a CMake interface library, and uses C++17. It provides an abstract interface for platform-specific operations, ensuring flexibility in CubeSat missions. | ![[FOSDEM 2025/assets/SatNOGSCOMMS-An-OpenSource-Communication-Subsystem/preview_013.jpg\|300]] | Zephyr-RTOS is chosen for its modernity, active development, and modularity. It supports a large community and offers numerous modules, making it ideal for SatNOGS-COMMS onboard software. | ![[FOSDEM 2025/assets/SatNOGSCOMMS-An-OpenSource-Communication-Subsystem/preview_014.jpg\|300]] | Zephyr-RTOS components used in SatNOGS-COMMS include ADC, DAC, GPIO, UART, SPI, and various others, ensuring comprehensive functionality for CubeSat missions. | ![[FOSDEM 2025/assets/SatNOGSCOMMS-An-OpenSource-Communication-Subsystem/preview_015.jpg\|300]] | Devicetree support in SatNOGS-COMMS allows for customization across different missions, ensuring a robust codebase even if the system-on-chip changes, enhancing mission flexibility. | ![[FOSDEM 2025/assets/SatNOGSCOMMS-An-OpenSource-Communication-Subsystem/preview_016.jpg\|300]] | SatNOGS-COMMS supports over 30 configurations for various I/O interfaces and subsystems without code modifications, demonstrating its adaptability for diverse CubeSat missions. | ![[FOSDEM 2025/assets/SatNOGSCOMMS-An-OpenSource-Communication-Subsystem/preview_017.jpg\|300]] | The use of C++ in SatNOGS-COMMS enhances reliability through better code organization, safer abstraction layers, and the RAII idiom, crucial for unattended CubeSat operations. | ![[FOSDEM 2025/assets/SatNOGSCOMMS-An-OpenSource-Communication-Subsystem/preview_018.jpg\|300]] | C++ features like references, template metaprogramming, and exceptions contribute to readable, maintainable code with compile-time checks, essential for robust CubeSat software. | ![[FOSDEM 2025/assets/SatNOGSCOMMS-An-OpenSource-Communication-Subsystem/preview_019.jpg\|300]] | Challenges with C++ in space applications include avoiding STL and dynamic memory allocation. SatNOGS-COMMS addresses these with alternative libraries and approaches. | ![[FOSDEM 2025/assets/SatNOGSCOMMS-An-OpenSource-Communication-Subsystem/preview_020.jpg\|300]] | The Standard Template Library (STL) poses challenges for space applications due to dynamic memory usage, prompting alternative solutions in SatNOGS-COMMS. | ![[FOSDEM 2025/assets/SatNOGSCOMMS-An-OpenSource-Communication-Subsystem/preview_021.jpg\|300]] | The etlcpp library, used in SatNOGS-COMMS, provides an STL-like experience without dynamic memory allocation, supporting error handling and enhancing code reliability. | ![[FOSDEM 2025/assets/SatNOGSCOMMS-An-OpenSource-Communication-Subsystem/preview_022.jpg\|300]] | Error handling in SatNOGS-COMMS is critical, with a unified system logging errors for troubleshooting. It ensures operators can identify and resolve issues from the ground. | ![[FOSDEM 2025/assets/SatNOGSCOMMS-An-OpenSource-Communication-Subsystem/preview_023.jpg\|300]] | SatNOGS-COMMS employs a unified error/logging system with multiple backends, supporting exceptions of different severity levels to ensure reliable CubeSat operations. | ![[FOSDEM 2025/assets/SatNOGSCOMMS-An-OpenSource-Communication-Subsystem/preview_024.jpg\|300]] | Error handling in SatNOGS-COMMS is designed to address various operational challenges, ensuring robust communication and data integrity in space missions. | ![[FOSDEM 2025/assets/SatNOGSCOMMS-An-OpenSource-Communication-Subsystem/preview_025.jpg\|300]] | SatNOGS-COMMS emphasizes effective error handling strategies, crucial for maintaining reliable communication and operation in the challenging space environment. | ![[FOSDEM 2025/assets/SatNOGSCOMMS-An-OpenSource-Communication-Subsystem/preview_026.jpg\|300]] | Despite common concerns, exceptions in SatNOGS-COMMS are optimized to minimize performance impact, ensuring efficient error handling without significant slowdown. | ![[FOSDEM 2025/assets/SatNOGSCOMMS-An-OpenSource-Communication-Subsystem/preview_027.jpg\|300]] | For more information on SatNOGS-COMMS, visit the project's GitLab page or join the conversation on Matrix. Meet the team at their booth during FOSDEM 2025. ## Links [Project repository](https://gitlab.com/librespacefoundation/satnogs-comms) [Main firmware repository](https://gitlab.com/librespacefoundation/satnogs-comms) [Hardware repository](https://gitlab.com/librespacefoundation/satnogs-comms) [Video recording (AV1/WebM)](https://video.fosdem.org/2025/h1302/fosdem-2025-6024-satnogs-comms-an-open-source-communication-subsystem-for-cubesats.av1.webm) [Video recording (MP4)](https://video.fosdem.org/2025/h1302/fosdem-2025-6024-satnogs-comms-an-open-source-communication-subsystem-for-cubesats.av1.mp4) [Video recording subtitle file (VTT)](https://video.fosdem.org/2025/h1302/fosdem-2025-6024-satnogs-comms-an-open-source-communication-subsystem-for-cubesats.vtt)