Skip to content

Mechanical, electrical, and software for a satellite groundstation

License

Notifications You must be signed in to change notification settings

lowdrant/mySatComm

Repository files navigation

mySatComm

Homebrew groundstation for receiving data from satellites. Servos are controlled via Raspberry Pi; DSP is handled through the GNU Radio and GPredict. Go here to see STL models in GitHub.

Project Overview

This is a farm-to-table amateur radio project composed of 3 major subprojects:

  • Mechanical Design
    • Antenna Rig
    • Orientation Controller
  • Command & Control Software
    • Servomotor low-level control
    • GPredict command interface
    • Rotator trajectory generation
  • Digital Signal Processing
    • Radio demodulation and doppler shifting
    • Information decoding

Installation

Clone this repo to your Raspberry Pi and run install.sh. All Python dependencies will be installed in a virtual environment at $HOME/.satcomm. Additionally,

To uninstall, run the corresponding uninstall.sh script.

On your PC, install GPredict, GNU Radio, and download the SDR folder.

Using the programs

  1. Create a GPredict module tracking some satellites of interest. Be sure to look at the manual and website.

  2. Configure GPredict to interface with your Raspberry Pi as a networked rotator (you'll need its IP address).

  3. Configue GPredict to work with your SDR. If you don't have a go-to, I recommend using the NooElec NESDR Mini 2.

  4. Wait for a satellite to pass within range, then activate GPredict radio and rotator control programs and run ./run.sh on your Pi.

  5. Watch it go!

Software/Retailer Links

  • GPredict - Satellite tracking and antenna actuation software
  • PiGPIO - Provides hardware-timed GPIO control on Raspberry Pi
  • Raspberry Pi - Hobbyist-oriented single-board computer
  • SolidWorks - CAD software
  • SainSmart - Robotic components manufacturer

Project Subfolders

Mechanical Quick Reference

Software Quick Reference

Design Decisions

Antenna

  • 3-element linearly polarized yagi antenna
    • Directionality recommended for satellite reception
    • Circular polarization is annoying (for me) to get right
  • Homebrew dipole antenna base made from PVC, AWG14 wire, and screws
    • COTS parts increase accessiblity and homebrew aesthetic
    • Thicker wire chosen for increased rigidity

Controller

  • Custom housing
    • Convenient mount point for rotator
    • Minimizes wiring connecting Pi and servos
    • 3D printed for rapid prototyping
  • Solderboard Pi shield
    • More reliable wiring of servo battery power
    • Faster connect/disconnect of servos from Pi

Software

  • GPredict
    • Open source satellite tracking software
    • Computes necessary antenna orientation automatically
    • Sends antenna orientation commands over TCP/IP
    • Manual here
  • PiGPIO
    • Provides almost-hardware-timed PWM (important for servo control)
    • PWM less noisy and more reliable than RPi-GPIO or wiringPi
    • Simple Python interface

SDR Sources & Acknowledgements

Author

Marion Anderson - lowdrant

License

This project is licensed under the MIT License - see the LICENSE file for details