

CubeSAT Experiments
Core code for Cubesat
- Size
- 64.8 × 56 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 14
- Nets
- 14
- Pads
- 28
- Tracks, vias
- 26, 103
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 7 (file 20221018)
- Created
- 20 Aug 2023
- Updated
- 11 Jun 2024
Overview
CubeSAT Experiments is an open-source printed circuit board by CristeaTeodorAndrei, from the CristeaTeodorAndrei/CubeSat repository on GitHub, published under the MIT licence. It is a 2-layer board of 64.8 × 56 mm with 14 parts on 14 nets, routed with 26 tracks and 103 vias.
It is built around the KT-0603R and SZYY0402YG. Its parts include 4 connectors, 2 resistors and 2 diodes.
Main components
2KT-0603R
0603-40℃~+85℃ 1.6mm x 0.8mm square LED 1.8V~2.4V 120° 20mA 300mcd 40mW 615nm~630nm 645nm Discrete Diode Red Water Clear 0603 LED Indication - Discrete ROHSHubei KENTO ElecLED Indication - DiscreteSZYY0402YG
0402-40℃~+85℃ 1.8V~2.4V 120° 20mA 571nm~572nm 58mcd Discrete Diode Yellow Green 0402 LED Indication - Discrete ROHSYongyu PhotoelectricLED Indication - Discrete
README
README.mdCubeSat
Introduction
About CubeSat
A CubeSat is a compact but sophisticated space platform, meticulously engineered to achieve its scientific goals. These miniaturised satellites are created with precision and purpose, representing a cost-effective and efficient approach to space exploration. Their primary role involves specific scientific, technological or educational missions.
Equipped with payloads, sensors and specialised instruments, CubeSats are deployed to collect critical data, monitor phenomena or conduct experiments in space. Their modular nature allows for versatility, enabling CubeSats to address a wide range of research objectives, from observing Earth to studying cosmic phenomena.
They contribute to advancing our understanding of the cosmos, demonstrating that innovation can thrive even within the confines of a compact form factor.
About the project
The project was developed with the objective of understanding the complexity of space systems, approaching the different problems that arise in this field and solving them in the most energy and cost efficient way.
The future of this project consists in creating a stable platform that allows future improvements so that young students in this domain can develop.
CubeSat specifications
Hardware specs
1. Raspberry PI 4 Model B
2. MPU6050 Accelerometer and Gyroscope Sensor
3. BMP280 Pressure Sensor
4. Raspberry Pi Camera Module 2
5. NRF20L01 Wireless Module
6. Battery System UPS Software specs
OBSW was developed in Python, and the operating system on which the software runs is Raspberian on which some software optimizations have been applied.
The project is structured in 4 phases:
- Activating Remote Control Phase
- Optimization phase
- Testing phase
- OBSW phase
Each of these phases has a well-defined objective and must be fulfilled before the final code runs.
Guideline
Activating Remote Control Phase
Keep in mind that each script that will run will be sent as a command through the GCM.
Power on the GCM, run the script and open the receiver Interface.
- The Interface should prompt a successful connection message.
- A warning message should appear to notify the failure to connect with the OBC.
Power on the OBC.
- Both GREEN and RED LEDs should be ON indicating that OBC is active and ready for requests.
- A succesful connection message should appear on GCM's Interface to ensure that communcations with the OBC is active and can proceed to the optimization phase.
GCM will try to connect with the OBC every 5 seconds.
Optimization Phase
In order to reduce energy usage and ensure efficient performance of the whole system, a number of optimizations have been implemented:
- Deactivating Wi-Fi Module
- Deactivating Bluetooth Module
- Deactivating Update Module
- Deactivating UI
By requesting the OBC to run the script Optimization.py via GCM all of those optimizations will be applied and after that the OBC will reboot.
After restarting the system, the GREEN LED will turn ON and RED LED OFF to indicate successful optimization and a confirmation message should appear in GCM's Interface.
OBC can proceed to the testing phase.
Testing Phase
By requesting the OBC to run the script Test.py, the OBC begins testing sequence and a custom TM is sent back to the GCM that indicates the sensors has been detected.
If the RFM is not working or is not responding the RED LED will blink continuously.
If the RFM is working the GREEN LED will blink continuously and a TM will be send to the GCM with the following format:
- [0x00, 0x00, 0x00, 0x00]
TM's params should have the following values:
- (First) 0x00 - MPU6050 has been detected.
- 0x01 - MPU6050 has not been detected.
- (Second) 0x00 - BMP280 has been detected.
- 0x01 - BMP280 has not been detected.
- (Third) 0x00 - Camera Module has been detected.
- 0x01 - Camera Module has not been detected.
- (Fourth) 0x00 - Power supply voltage is nominal.
- 0x05 - The OBC is undervoltage and the power supply should be verified.
If the TM's values are not nominal OBSW will repeat the test every 5 seconds.
OBC can proceed to the running phase or main code.
Running phase
In the phase of running the main code all CubeSat components should work according to the parameters.
By requesting the OBC to run the main code OBSW.py nominal TMs should appear in GCM's Interface.
As discussed in the SDCard chapter before the CubeSat leaves the range of the GCM the OBSW will send a warning message that it will soon disconnect and the data will be written locally.
That's the final state for the CubeSat before the flight.
TMTC Format
A nominal TM should have the following format:
- [TimeStamp, Voltage, Temperature, Load, AccX, AccY, AccZ, GyroX, GyroY, GyroZ, Altitude, Pressure]
TM's params should have the following values:
- TimeStamp [seconds] float (Eg. 1.00) and represent the relative time.
- Voltage float (Eg. 1.2) and represent the core voltage.
- Temperature[degrees] float (Eg. 57.01) and represent the OBC's temperature.
- Load [%] integer (Eg. 5%) and represent the OBC's load.
- Acceleration{X,Y,Z}[m/s^2] float (Eg. 10.32) and represent the acceleration on each axis.
- Gyro{X,Y,Z}[deg/s] float (Eg. 11.01) and represent the rotation on each axis.
- Altitude[meters] integer (Eg. 1100) and represent the altitude of the CubeSat.
- Pressure[hPa] float (Eg. 1013.89) and represent the pressure applied to the CubeSat.
One TM is sent every 5 seconds.
Keep in mind that TMTC will only be available for a period of time until the CubeSat moves out of range of the GCM.
SDCard
Cubesat will have a Raspberry Pi Camera Module 2 connected and the record will be stored on the SD Card.
Because the RFM allows communication over a relatively short distance with the GCM the flight parameters will be stored on the OBC's internal SD Card.
The OBSW will notify the approaching maximum range and detect the loss of GCM connection, and the data will be passed in .txt format.
Acronyms
- OBSW - OnBoard Software
- UI - User Interface
- OBC - OnBoard Computer
- TMTC - Telemetry/Telecommand
- GCM - Ground Communication Module
- RFM - Radio Frequency Module
About me
Parts
14| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | MountingHole | MountingHole:MountingHole_2.7mm | H1, H2, H3, H4 |
| 3 | Conn_01x02_Pin | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J2, J3, J4 |
| 2 | LOGO | Logo:Logo | G***, G*** |
| 1 | 180R | Resistor_SMD:R_0603_1608Metric | R2 |
| 1 | 220R | Resistor_SMD:R_0603_1608Metric | R1 |
| 1 | C2286 | LED_SMD:LED_0603_1608Metric | D1 |
| 1 | C434449 | LED_SMD:LED_0603_1608Metric | D2 |
| 1 | Conn_01x10_Pin | Connector_PinHeader_2.54mm:PinHeader_1x10_P2.54mm_Vertical | J1 |
Questions
How big is the CubeSAT Experiments PCB?
It measures 64.8 × 56 mm and has 2 copper layers, 1.6 mm thick.
What parts does the CubeSAT Experiments use?
14 parts, built around the KT-0603R and SZYY0402YG. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the CubeSAT Experiments KiCad files?
From the CristeaTeodorAndrei/CubeSat repository on GitHub, at the commit this page was made from: the board is CubeSat_HW/CubeSAT_Experiments/CubeSAT_Experiments.kicad_pcb and its schematic CubeSat_HW/CubeSAT/CubeSAT.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the CubeSAT Experiments design in my own project?
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).
More from CristeaTeodorAndrei/CubeSat
2- 2 layers64.7 × 56 mm

- 2 layers64.8 × 56 mm

Similar boards
- 2 layers90.5 × 50 mm

Main control board
jamro/tiny-engineer
A small desktop robot that brings an AI coding assistant to life, physically acting out when it reads files, thinks, writes code, and finishes work.
42 parts1.1k - 6 layers90 × 153 mm

Blackpants
o7-machinehum/Blackpants
Open blackpants.kicadpro for the active A523 schematic and PCB. It replaces the A33 hierarchy and uses AXP717C + AXP323 with 2GB LPDDR4.
300 parts189MIT - 2 layers54 × 11.6 mm

- 6 layers84 × 98 mm

FujiNet-5200-Rev0
FujiNetWIFI/fujinet-hardware
Schematics and design files for FujiNet hardware
145 parts142 - 4 layers70 × 70 mm

Ai camera
maxlab-io/tokay-lite-pcb
Tokay AI Camera - ESP32 camera development board
161 parts130CERN-OHL-P-2.0 - 4 layers25 × 40 mm

- 2 layers223.5 × 160 mm

- 4 layers53 × 39 mm

Avclan mockingboard rounded
halleysfifthinc/AVCLAN-Mockingboard
Emulate a CD Changer on a Toyota AVC LAN network
43 parts65GPL-3.0