Software contribution

From SatNOGS Wiki

If you are skilled in Python, Web Development (CSS/JS), or gnuradio we need your help! To find out how to help see each module below. You can also find us on our forum or on irc/matrix in #satnogs-dev

SatNOGS Client

python logo

Skills required: Python

The SatNOGS client is written in Python, targeting raspberry pi as the reference architecture. It interfaces with the following applications:

  • rotctld (Rotator control, part of hamlib)
  • rigctld (Rig frequency control, part of hamlib)
  • gr-satnogs (custom SatNOGS gnuradio scripts)

Architecture documentation:

Code repository:

Dev setup guide: SatNOGS_Client_Development#satnogs-client

Note that development happens on the "0" branch, with periodic merges to master for release; PRs should be submitted against the "0" branch.

SatNOGS Client image / setup script

ansible logo

Skills required: Linux administration, .deb packaging, Ansible

We provide a custom raspbian image for Raspberry Pi using pi-gen and a satnogs-setup script that configures the client via Ansible. In addition we package gr-satnogs as a .deb through GitLab CI. If you would like to help out check out our repositories below:


gnuradio logo

Skills required: gnuradio companion, C/C++, SDR

If you are skilled in writing custom gnuradio modules/blocks or piecing together gnuradio scripts in gnuradio-companion then gr-satnogs can use your help!

Code repository:

Dev setup guide: SatNOGS_Client_Development#gr-satnogs_and_gr-satnogs-package


django logo

Skills required: Python / Django / CSS

The SatNOGS DB is written in Django (a Python web framework).

Installation documentation:

Contribute documentation:

API documentation:

Code repository:

SatNOGS Network

django logo

Skills required: Python / Django / CSS / JS

The SatNOGS Network is written in Django (a Python web framework), and makes heavier use of javascript and d3.js for scheduling and visualizations.

Installation documentation:

Contribute documentation:

Code repository: