Skip to content

Buneabt/GWU-Sat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

142 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GWU-Sat

A 3U CubeSat designed for Low Earth Orbit — carrying experimental vaccum arch thruster units.
Amateur Radio Callsign: KQ4NPQ | George Washington University

Disclaimer:
A satellite project of 1 cannot be accomplished without the help of a long list of mentors guiding the way while using AI to drastically cut down on learning time and implementation of ideas. Using the tools at our disposal many mission critical tasks have been achieved in a short timeline.


Overview

GWU_SAT_FinalPoster pptx

GWU-Sat is a student-built 3U CubeSat developed at George Washington University. The primary mission objective is to test experimental vaccum arc thruster units in LEO. The satellite integrates a primary UHF communication link, a standalone LoRa digipeater, and supporting subsystems including an EPS, OBC, and thruster controller.

The OBC firmware is written in C and targets a Pumpkin PPM D2 (dsPIC33FJ256GP710), running under the Salvo RTOS. All flight-critical code attempt to follow NASA's 10 Rules for Safety-Critical Software.


Hardware

Subsystem Hardware
OBC Pumpkin PPM D2 (dsPIC33FJ256GP710, 8MHz FOSC) on Pumpkin CubeSat Kit Dev Board
EPS AAC Clyde Space Starbuck-NANO w/ integrated battery
UHF Transceiver EnduroSat UHF II (ESTTC protocol, I2C @ 0x22)
Thruster Controller Adafruit ItsyBitsy 5V (ATmega32u4), I2C slave @ 0x05
Digipeater Adafruit Feather 32u4 + RFM95 LoRa module
Packet Logger Adafruit M0 Adalogger
Ground Station Kenwood TH-D7 + 436CP30 Yagi + Yaesu G-5500 rotator

Software Architecture

  • RTOS: Salvo (PIC flavor, large memory model, pro-lib)
  • Compiler: MPLAB X + MCC30
  • Language: C (NASA safety-critical rules enforced)
  • Project path: Main_Build/Salvo/Example/PIC/PIC24/Simulator/Tut/Tut5/MCC30

Note: Salvo library files are not included in this repository and must be acquired separately.

Active Tasks

Task Description
task_system One-shot system initialization, destroys itself on completion
task_idle Entered when no other tasks are runnable
task_status_check Periodic component health polling
task_thrusters_1 Thruster command and status management

I2C Component Routing

Address Component
0x01 OBC (internal)
0x02 Telemetry
0x03 EPS
0x04 UHF Transceiver
0x05 Thruster Controller

Protocol Notes

  • AX.25 payload max: 66 bytes
  • OBC command flag: 0xAA (chosen for HDLC bit-stuffing safety — 10101010 never triggers stuffing)
  • ESTTC protocol used for transceiver communication
  • Digipeater is fully standalone — powered from EPS with no OBC data connection

Communication

  • Uplink/Downlink: UHF at 436.42 MHz (IARU coordinated)
  • Digipeater: LoRa-based standalone digipeater at the same frequency allocation
  • Ground Software: Direwolf software TNC + Kenwood TH-D7

Progress

Core Infrastructure

  • Simulator runs successfully in MPLAB X
  • Introductory tasks: StartSystem, SystemInit
  • Compiles and flashes to PPM D2 via PICkit 3
  • Serial output confirmed from Pumpkin Dev Board
  • Basic system tasks running

Component Testing

  • OBC — Alive; 12-hour long-haul sims passed
  • UHF Transceiver — Procured and tested
  • EPS — Procured and tested
  • Battery — Procured and tested
  • ADCS — Not yet tested

Startup & Telemetry

  • Ping all individual components on startup
  • System timer running
  • multi-hour long-haul test per version
  • 32-byte general status telemetry packet implemented and downlinked
  • Command processing pipeline (I2C_CommandIncoming)
  • Global shutdown (0x01 0x07) with last-gasp telemetry + pwrsav

Digipeater

  • Link budget analysis (CommsDocs)
  • Working LoRa digipeater at 436.42 MHz
  • 3D printed CubeSat mount (Models Folder)
  • Integrated into 3V and GND power buses

Thrusters

  • Thruster subroutine inside Main.c and satellite_defs.h
  • ItsyBitsy firmware producing clean ~20Hz PWM pulse signal
  • I2C thruster status command (0x05 0x01) working
  • Physical thruster attached to system and worked validating ground -> OBC -> thruster command flow

Upcoming

  • Resolve remaining thruster status bytes returning 0xFF (requestEvent truncation fix)
  • Datalogging task
  • Solar panel configuration (8× independent BCR inputs)
  • Ground station mechanical assembly (mast, LMR-400 cabling, rotator)

License

This project is developed by Bogdan Bunea at The George Washington University

About

Codebase for GWU-Sat

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors