bac-hardware/README.md
2026-03-11 08:17:15 +01:00

15 KiB
Raw Permalink Blame History

Build a CubeSat Hardware

This repository contains the open hardware designs for the CubeSat architecture developed as part of the Build a CubeSat (BAC) project. It includes power systems, SBC and MCU carrier boards, mechanical panels, interconnect standards, and various utility PCBs — all created using KiCad.

The Build a CubeSat project is an effort to design an affordable and accessible open-source CubeSat ecosystem. The goal is to enable modular, reproducible hardware for educational, experimental, and research purposes — both on the bench and in near-space environments.

All designs in this repository are experimental and not rated for spaceflight. They are intended for use in ground-based development, lab testing, and high-altitude balloon experiments.

Development is ongoing and documented on YouTube. Contributions, forks, and collaboration are welcome. If you have questions, suggestions, or bug reports, feel free to open an issue.

The best way to get involved, ask questions or just follow the development is to join the Discord.

Unless noted otherwise in specific subfolders (e.g. in cases of forks), all hardware designs in this repository are licensed under CC BY-SA 4.0.

Overview

This repo includes all major hardware components of the CubeSat platform:

Boards

  • MCU Microcontroller carrier boards (e.g. MicroMod, custom MCUs)
  • EPS Power management, battery charger, regulators, and connectors
  • SBC Carrier board for Raspberry Pi CM5 module

Panels

  • PV Panel Solar panel carrier with slots and pin cutouts (mainly mechanical, currently in need of redesign)
  • Hatch Panel Breakout panel with connector access
  • ADCS Placeholder PCBs for XY plane magnetorquers

Other

  • bacBus Custom M.2-based interconnect standard (mechanical format: M.2 Key-M)
  • Utilities USB adapters and other support boards used for testing, interfacing, or system extension

Manufacturing Releases

  • 🚧 Development: Not yet released
  • 🧪 Testing: Released, but not fully tested yet
  • Released: Works as expected
  • Do Not Use: Non-functional, fixes pending
  • 🪦 Deprecated: End of life, will not be updated or fixed
  • 📁 Archived: Moved to https://codeberg.org/buildacubesat-archive/bac-hardware
  • 📦 External: Third party contributions

Manufacturing files (Gerbers, BOMs, ordering instructions for PCBWay) are provided in the Codeberg release section.

LFS

Footprint 3D models are stored using LFS (large file storage). If you clone the repo without having LFS installed locally, you will get empty pointer files instead of 3D models. Please refer to the Codeberg Docs on how to install and work with LFS.

Pruning

On January 15 2026, the repo was pruned to prevent bloat. Before that, a snapshot was stored in this public archive repo: https://codeberg.org/buildacubesat-archive/bac-hardware

Hardware Overview

EPS

Render Board Name Status Latest Release Version Date Schematic BOM Ordering Info
render Main Board (Minimal) Do Not Use eps-main-board-minimal-v1r1 v1r1 2025-04-03 PDF Yes Yes (PCBWay)
render Buck Module TPSM5D1806 🧪 Testing eps-buck-module-tpsm5d1806-v2r1 v2r1 2026-01-29 PDF Yes Yes (PCBWay)
render Charger Module BQ25306 🧪 Testing eps-charger-module-bq25306-v1r2 v1r2.2 2026-01-29 PDF Yes Yes (PCBWay)
render Battery Contact 18650 2s2p Released eps-battery-contact-18650-2s2p-v1r2 v1r2 2025-04-03 PDF No Yes (PCBWay)

MCU

Render Board Name Status Latest Release Version Date Schematic BOM Ordering Info
render MicroMod Main Board (Dual Function, Single bacBus) 📁 Archived mcu-micromod-main-board-dual-function-single-bacbus-v1r1 v1r1 2025-04-03 PDF Yes Yes (PCBWay)

SBC

Render Board Name Status Latest Release Version Date Schematic BOM Ordering Info
render CM5 Carrier Board Do Not Use sbc-cm5-carrier-board-v1r1 v1r1 2025-04-03 PDF Yes Yes (PCBWay)

Panels

Render Board Name Status Latest Release Version Date Schematic BOM Ordering Info
render Panel Hatch Do Not Use (update due in 3Q2026)            
render Panel PV Do Not Use (update due in 3Q2026)            
render Magnetorquer Placeholder XY 1U Released adcs-magnetorquer-placeholder-xy-1U-v1r2 v1r2 2025-04-03 No No Yes (PCBWay)
render Magnetorquer Placeholder XY 1.5U Released adcs-magnetorquer-placeholder-xy-1.5U-v1r2 v1r2 2025-04-03 No No Yes (PCBWay)
render Magnetorquer Placeholder XY 2U Released adcs-magnetorquer-placeholder-xy-2U-v1r2 v1r2 2025-04-03 No No Yes (PCBWay)
render Magnetorquer Placeholder XY 3U Released adcs-magnetorquer-placeholder-xy-3U-v1r2 v1r2 2025-04-03 No No Yes (PCBWay)

bacBus

Render Board Name Status Latest Release Version Date Schematic BOM Ordering Info
render Interconnect 17.5mm 🧪 Testing bacbus-interconnect-17.5mm-v1r1 v1r1 2025-12-08 PDF No Yes, panelized (PCBWay)

Utilities

Render Board Name Status Latest Release Version Date Schematic BOM Ordering Info
render Breadboard Do Not Use utilities-breadboard-v1r1 v1r1 2025-05-21 PDF Yes Yes (PCBWay)
  EPS Module Tester (Butter Robotics) 📦 External v1r1 PDF (GitHub) No No

File Structure

Each board subfolder is structured like this:

<subsystem>/
  <board-name>/
    graphics/       # DXF edge cuts, preview renders, etc.
    kicad*/         # KiCad project files with version indicated
    docs/           # PDFs and such, if any are needed
    README.md       # Board-specific documentation

Usage

  • Use KiCad 9+ to open and edit the designs.
  • Releases with manufacturing files are hosted on Codeberg as tagged versions and ready for ordering from a fab house (PCBWay is recommended)
  • Boards follow a versioning scheme: v<version>r<revision>[.<patch>] (e.g. v1r2 or v3r4.1).

Licensing

All hardware is licensed under CC BY-SA 4.0, unless a subfolder states otherwise (e.g., in forks).

Contributing

Contributions to the Build a CubeSat hardware ecosystem are highly appreciated! To keep things structured, heres how you can contribute:

Fixes & Improvements to Existing Designs

If youre fixing a bug, optimizing an existing design, or making incremental improvements, please:

  1. Create a new feature branch in this repository (git checkout -b feature/your-feature-name).
  2. Commit your changes (git commit -m 'Brief description of change').
  3. Push to the branch (git push origin feature/your-feature-name).
  4. Submit a Pull Request (PR) with a clear description of the changes. Keep your PRs focused one fix or improvement per PR is ideal.

New Designs & Community Contributions

  • If youre designing something new, like a module, testing jig, expansion board, or an accessory:
    • Create your own repository (e.g., on Codeberg, GitHub, or another platform).
    • Feel free to share a link in our community discussions or open an issue to let us know about it!
    • If your project is relevant to the community, I will gladly reference it in the docs.

This approach helps keep the core project focused while encouraging community-driven innovation. Thanks for contributing! 🙌

Supporting This Project

I am truly grateful for your insights about how these PCBs could be improved.

If youd like to support the Build a CubeSat project further, consider these options: