

Core code for Cubesat
- Size
- 64.7 × 56 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 19
- Nets
- 11
- Pads
- 46
- Tracks, vias
- 82, 125
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 7 (file 20221018)
- Created
- 20 Aug 2023
- Updated
- 11 Jun 2024
Overview
Power 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.7 × 56 mm with 19 parts on 11 nets, routed with 82 tracks and 125 vias.
It is built around the LM1117MP-5.0, AO3401A and IRLML6402. Its parts include 5 resistors, 3 transistors, 3 connectors, 2 capacitors and 1 IC.
Main components
3LM1117MP-5.0
SOT-223Voltage Regulators - Linear, Low Drop Out (LDO) RegulatorsTexas InstrumentsAO3401A
SOT-231 P-Channel 14nC@10V 30V 47mΩ@10V、60mΩ@4.5V、85mΩ@2.5V 4A 55pF 645pF 80pF 900mV SOT-23 MOSFETs ROHSAlpha & Omega SemiconductorMOSFETsIRLML6402
SOT-23-55℃~+150℃ 1 P-Channel 1.3W 110pF 12nC 145pF 20V 3.7A 400mV 633pF 65mΩ@4.5V P-Channel SOT-23 MOSFETs ROHSGuangdong HottechMOSFETs
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
19| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | 100k | Resistor_SMD:R_0603_1608Metric | R2, R3, R4, R5 |
| 4 | MountingHole | MountingHole:MountingHole_2.7mm | H1, H2, H3, H4 |
| 2 | 10uF | Capacitor_Tantalum_SMD:CP_EIA-3216-18_Kemet-A | C1, C2 |
| 2 | Conn_01x02_Pin | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J2, J3 |
| 1 | 1k | Resistor_SMD:R_0603_1608Metric | R1 |
| 1 | 2N7002 | Package_TO_SOT_SMD:SOT-23 | Q2 |
| 1 | AO3401A | Package_TO_SOT_SMD:SOT-23 | Q1 |
| 1 | IRLML6402 | Package_TO_SOT_SMD:SOT-23 | Q3 |
| 1 | LM1117MP-5.0 | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U1 |
| 1 | LOGO | Logo:Logo | G*** |
| 1 | USB_B_Micro | Connector_USB:USB_Micro-B_GCT_USB3076-30-A | J1 |
More from CristeaTeodorAndrei/CubeSat
2- 2 layers64.8 × 56 mm

- 2 layers64.8 × 56 mm

Similar boards
- 4 layers75.5 × 62 mm

Bspd
chithigun23/ANUFS-BSPD-2026
ANUFS's BSPD for 2026 Formula SAE ICE Car. The goal of this project is to be AEC-Q100/Q101/Q200 compliant.
120 parts1 - 4 layers126.6 × 37.7 mm

Gruzik2.0
NYDEREK/LineFollower_GRUZIK2.0-light
GRUZIK2.0 is simple light construction made for "line follower light" competition
50 parts101MIT - 2 layers20 × 107 mm

RawWavesV2
SherpaModular/RawWaves
Raw Waves is a eurorack synthesizer module that plays RAW or WAV sample files from a micro SDcard. It is a derivate work of "Radio Music" from Tom Whitwell. Raw Waves is released under a CC-by-SA 3.0 license.
55 parts26 - 2 layers44.4 × 29.3 mm

ElectronicTriggerUnit
aNThiCu/AirsoftETU
The code for a airsoft MOSFET board that includes the trigger , active break mode and semi-auto,full-auto detection.
36 parts8GPL-3.0 - 2 layers55.2 × 43.8 mm

Encabulator
imad-drs/mini_encabulator_PCB
A complete PCB design exercise demonstrating schematic capture, component selection, and board layout using KiCAD. This project implements a simple LED blinker with user-controllable blink rate.
17 parts3 - 2 layers45 × 72 mm

Relay
adarwoo/modbus_relay
A modbus RTU relay board with 3 relays for the CNC. This uses the ASX framework
43 parts1 - 2 layers51 × 51 mm

SuperGauge
KenwoodFox/SuperGauge
This repo contains all the firmware and hardware for the SuperGauge.
32 parts1 - 2 layers169.4 × 71 mm

Transmitter PCB
PrashantHalai-212/Transmitter_PCB
A Batman inspired Batarang shaped wireless transmitter board featuring an ATmega328P microcontroller, NRF24L01 module, and onboard CH340G USB programmer.
55 parts1MIT
Questions
How big is the Power PCB?
It measures 64.7 × 56 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Power use?
19 parts, built around the LM1117MP-5.0, AO3401A and IRLML6402. 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 Power KiCad files?
From the CristeaTeodorAndrei/CubeSat repository on GitHub, at the commit this page was made from: the board is CubeSat_HW/CubeSAT_Power/Power.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 Power 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).