Skip to the content
2 layersCANSAT PCB, the printed circuit board in 3D

A comprehensive Ground Control System (GCS) firmware and satellite electronics PCB design for a CubeSat developed by the Students Satellite Program Team of IIT Kharagpur, competing in the ISRO In-Space competition.

Copper layers
2
Thickness
1.6 mm
Parts
8
Nets
51
Pads
80
Tracks, vias
92, 8
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
24 Oct 2025
Updated
16 May 2026

Overview

CANSAT PCB is an open-source printed circuit board by RoctorpalSandilya, from the RoctorpalSandilya/CANSAT-Ground-Control-System repository on GitHub. It is a 2-layer board with 8 parts on 51 nets, routed with 92 tracks and 8 vias.

It is built around the B2PS-VH, MTSW-118-06-G-D-050 and TSW-114-29-T-S. Its parts include 6 connectors and 1 crystal.

Main components

3

README

README.md

CANSAT Ground Control System

A comprehensive Ground Control System (GCS) firmware and satellite electronics PCB design for a CubeSat developed by the Students Satellite Program Team of IIT Kharagpur, competing in the ISRO In-Space competition.


📋 Project Overview

This repository contains the complete Ground Control System firmware and satellite electronics design for our CANSAT project. The CubeSat was developed as part of the Students Satellite Program Team at Indian Institute of Technology (IIT) Kharagpur and participates in the ISRO organized In-Space competition.

Key Components:

  • Ground Control System Firmware: Python-based software for satellite communication, telemetry, and command execution
  • Satellite Electronics PCB Design: Custom-designed circuit boards for satellite subsystems

🎯 Project Objectives

  1. Command & Control: Transmit commands from ground station to satellite
  2. Telemetry Reception: Receive and log real-time data from multiple satellite sensors
  3. Data Monitoring: Real-time visualization and analysis of satellite telemetry
  4. System Status: Monitor satellite subsystem health and operational parameters
  5. Mission Planning: Automated mission planning and execution capabilities

🗂️ Repository Structure

text
CANSAT-Ground-Control-System/
├── CANSAT/                          # Ground Control System Firmware
│   ├── communication_module/        # Serial/RF communication handlers
│   ├── telemetry/                   # Telemetry data processing
│   ├── command_execution/           # Command handling and execution
│   ├── gui/                         # Ground station GUI components
│   ├── utils/                       # Utility functions and helpers
│   └── main.py                      # Main GCS application
│
├── CANSAT_PCB/                      # Satellite Electronics PCB Designs
│   ├── schematic/                   # Electronic schematics
│   ├── layout/                      # PCB layout files
│   ├── gerber/                      # Manufacturing files
│   └── documentation/               # PCB design documentation
│
└── README.md                        # This file

🛰️ System Architecture

Ground Control System Components

  • Communication Interface: Handles RF/Serial communication with satellite
  • Telemetry Engine: Processes incoming sensor data and housekeeping information
  • Command Dispatcher: Executes scheduled and real-time commands
  • Data Logger: Records all telemetry for post-mission analysis
  • Monitoring Dashboard: Provides real-time visualization of satellite status

Satellite Electronics

  • Power Management Board: Battery management and power distribution
  • Communication Module: RF transceiver interface PCB
  • Sensor Interface Board: Multi-sensor data acquisition
  • Attitude Determination System: IMU and sensor integration
  • Payload Controller: Experimental payload interfacing

🔧 Technical Specifications

Ground Control System

  • Language: Python 3.x
  • Communication Protocols: Serial (UART), RF protocols
  • Data Format: Standardized telemetry packet structure
  • Platform: Cross-platform (Linux, Windows, macOS)

PCB Design

  • CAD Tool: KiCAD / Altium Designer
  • Design Standards: IPC-A-610 compliance
  • Manufacturing: Standard FR-4 substrate, professional fabrication
  • Components: Space-qualified and industrial-grade components

📡 Key Features

Ground Control System

✅ Real-time telemetry streaming and logging
✅ Command queue management with execution tracking
✅ Multi-sensor data visualization
✅ Satellite state estimation and monitoring
✅ Mission timeline management
✅ Data export in multiple formats (CSV, JSON)
✅ Error handling and automatic retry mechanisms
✅ Comprehensive event logging

PCB Design

✅ Modular subsystem design
✅ Redundant communication pathways
✅ Thermal management optimization
✅ EMI/RFI shielding
✅ Component protection and filtering
✅ On-board diagnostics circuits


🚀 Getting Started

Prerequisites

  • Python 3.7 or higher
  • pip (Python package manager)
  • Serial communication interface (USB-UART adapter or RF module)

Installation

  1. Clone the repository:
bash
git clone https://github.com/RoctorpalSandilya/CANSAT-Ground-Control-System.git
cd CANSAT-Ground-Control-System
  1. Install required dependencies:
bash
pip install -r requirements.txt
  1. Configure communication parameters:
bash
python -m CANSAT.config

Running the Ground Control System

bash
# Launch the main GCS application
python CANSAT/main.py

# Or run specific modules
python -m CANSAT.telemetry.processor

📊 Telemetry Data Format

Example telemetry packet structure:

text
[SYNC][TYPE][TIMESTAMP][SENSOR_DATA][CHECKSUM][END]
- SYNC: 2 bytes (0xAA, 0xBB)
- TYPE: 1 byte (telemetry type identifier)
- TIMESTAMP: 4 bytes (mission elapsed time)
- SENSOR_DATA: Variable length sensor readings
- CHECKSUM: 2 bytes (CRC16)
- END: 2 bytes (0xCC, 0xDD)

🛠️ Commands Available

CommandDescriptionFormat
ARMArm satellite systemsARM [SUBSYSTEM]
POWERControl power statesPOWER [ON/OFF] [SUBSYSTEM]
RESETReset satellite moduleRESET [MODULE]
DATA_REQUESTRequest telemetry dataDATA_REQUEST [SENSOR_TYPE]
CONFIGConfigure parametersCONFIG [PARAM] [VALUE]

📁 PCB Design Documentation

The CANSAT_PCB/ directory contains:

  • Schematic files: Complete circuit schematics for all subsystems
  • Layout files: PCB routing and component placement
  • Gerber files: Manufacturing-ready files for fabrication
  • Bill of Materials (BOM): Component list with suppliers
  • Design notes: Rationale and specifications for design choices

📈 Mission Phases

  1. Pre-Launch: System verification, calibration, and final checks
  2. Launch & Ascent: Telemetry verification, system monitoring
  3. Orbital Operations: Scientific payload operations, housekeeping data collection
  4. Descent: Controlled deorbit, telemetry during reentry
  5. Recovery: Beacon tracking, data retrieval, post-mission analysis

🔍 Data Analysis & Logging

All telemetry is automatically logged with timestamps for post-mission analysis:

  • Raw sensor data
  • Processed measurements
  • Command execution logs
  • System event logs
  • Error and anomaly reports

Log files are stored in:

text
./data/logs/[MISSION_DATE]/telemetry_[TIMESTAMP].csv

🤝 Contributing

Contributions are welcome! Please follow these guidelines:

  1. Create a feature branch from main
  2. Document your changes comprehensively
  3. Include test cases for new functionality
  4. Submit a pull request with detailed description

📝 License

This project is developed under the Students Satellite Program at IIT Kharagpur for the ISRO In-Space competition. Please contact the team for licensing information.


👥 Team

Students Satellite Program Team
Indian Institute of Technology (IIT) Kharagpur

Project Lead: Rocktorpal Sandilya

  • Ground Control System Development
  • PCB Design & Electronics

📞 Contact & Support

For questions, issues, or contributions, please:

  • Open an issue on GitHub
  • Contact the team through the Students Satellite Program office at IIT Kharagpur

🎓 Acknowledgments

  • Indian Space Research Organisation (ISRO) for organizing the In-Space competition
  • IIT Kharagpur Students Satellite Program Team for collaborative efforts
  • All contributors and supporters of this mission

📚 References & Resources


Last Updated: May 16, 2026
Status: Active Development
Version: 1.0

Parts

8
QtyValueFootprintReferences
2MTSW-108-09-T-S-5258x1 header:SAMTEC_MTSW-108-09-T-S-525J2, J3
1B2PS-VH2 JST:B2PS-VHX1
1HTSW-106-20-SM-S6X1header:SAMTEC_HTSW-106-20-SM-SJ4
1MTSW-105-24-L-S-2525x1 header:SAMTEC_MTSW-105-24-L-S-252J6
1MTSW-118-06-G-D-050Kicad:MTSW-118-06-G-D-050J1
1TSW-114-29-T-SNaVIC:navicJ7

The 7 most common of 8 parts.

Similar boards

  • 2 layers50 × 87 mmStackChanPwd, the printed circuit board in 3D

    StackChanPwd

    lipoyang/StackChanPwd

    M5Stack-embedded super cute humanoid controller unit

    47 parts6Apache-2.0
  • 4 layers124 × 62 mmCarte puissance, the printed circuit board in 3D

    Carte puissance

    INSA-GEI/gei-nxpcup-4w-pwr

    Power part for 4 wheels model car used in NXPCUP contest at INSA-GEI

    110 partsMIT
  • 2 layers195 × 70 mm0231C, the printed circuit board in 3D

    0231C

    hamayanShowa-ele/kicad_share

    kicad share data.

    88 parts
  • 4 layers29.2 × 71.9 mmKRUPS FemtoSat, the printed circuit board in 3D

    KRUPS FemtoSat

    krups/RockSatX-GHOST-Hardware

    Hardware files for the 2025 RockSat-X GHOST mission

    38 parts
  • 2 layers20.5 × 24.8 mmPi interface, the printed circuit board in 3D

    Pi interface

    opulo-inc/lumenpnp

    The LumenPnP is an open source pick and place machine.

    8 parts3.7k

Questions

What parts does the CANSAT PCB use?

8 parts, built around the B2PS-VH, MTSW-118-06-G-D-050 and TSW-114-29-T-S. 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 CANSAT PCB KiCad files?

From the RoctorpalSandilya/CANSAT-Ground-Control-System repository on GitHub, at the commit this page was made from: the board is CANSAT_PCB/CANSAT_PCB.kicad_pcb and its schematic CANSAT_PCB/CANSAT_PCB.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the CANSAT PCB design in my own project?

Its repository states no licence, so its author keeps all rights: ask RoctorpalSandilya before reusing the design.