Difference between revisions of "SatNOGS Client Development"

From SatNOGS Wiki
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
{{Outdated}}
 +
 
==Intro==
 
==Intro==
 
This page describes the setup of a development environment for the
 
This page describes the setup of a development environment for the
Line 18: Line 20:
  
 
===Setting up a gr-satnogs development environment===
 
===Setting up a gr-satnogs development environment===
 +
 +
OUTDATED since [https://gitlab.com/librespacefoundation/satnogs/satnogs-client-ansible/-/commit/336a3206fbeec8e1a5257ce375578f31a92988e4 satnogs-client-ansible@336a320]!
  
 
*Fork gr-satnogs
 
*Fork gr-satnogs
Line 39: Line 43:
 
#Profit.
 
#Profit.
  
<br />
+
===Miscellaneous development notes===
 +
 
 +
*[[How to bodge an immediate observation in for testing purposes]]
 +
 
 
[[Category:Develop]]
 
[[Category:Develop]]
 
[[Category:Software]]
 
[[Category:Software]]

Latest revision as of 12:09, 11 January 2025

Important.png
IMPORTANT: The content of this page is outdated. If you have checked or updated this page and found the content to be suitable, please remove this notice.

Intro

This page describes the setup of a development environment for the SatNOGS ground station reference setup based on satnogs-client-ansible. It is assumed you have already setup your ground station as explained in SatNOGS_Client_Setup.

satnogs-flowgraphs

For each Satellite Transmitter Mode there is a specific flowgraph in this package. There are generic (e.g. CW) and satellite-specific flowgraphs. The Satellite-Transmitter-Mode-to-flowgraph mapping is defined in satnogs-client. This package is using gr-soapy for SDR hardware support and gr-satnogs for required GNURadio blocks.

gr-satnogs

The gnuradio Out-Of-Tree module gr-satnogs provides blocks required by satnogs-flowgraphs. The gitlab-CI automatically builds the package in docker containers, configured by the .gitlab-ci.yml. The built packages for releases are pushed to the librespace:satnogs package repository, the built package for the latest development version on master is pushed to the librespace:satnogs-unstable package repository.

To use a modified gr-satnogs module on a SatNOGS ground station, it’s recommended to clone your fork on your station, build the patched gr-satnogs packages and install it.

To install the latest development version of gr-satnogs on your station, set experimental=True or configure in satnogs-setup.


Setting up a gr-satnogs development environment

OUTDATED since satnogs-client-ansible@336a320!

  • Fork gr-satnogs
  • Fork gr-satnogs-package
  • Adjust the repository url of gr-satnogs in gr-satnogs-package/debian/debian/rules#L22
  • Adjust the repository url in the version detection in gr-satnogs-package/.gitlab-ci.yml#L13 ,#L30 ,#L47
  • Wait for the gitlab-CI to build your first version of gr-satnogs-package (~45 min)
  • Install your freshly built gr-satnogs-package by pointing the SATNOGS_RADIO_GR_SATNOGS_PACKAGE in satnogs-setup to the built artifact/debian package of your architecture (e.g. armhf, amd64). The build artifacts are available in your gr-satnogs-package fork by clicking CI/CD, selecting there the latest pipeline, the latest build-job and then in the right column Browse, path build/debian/output/$your_arch/gr-satnogs_$your_arch.deb

satnogs-client

The satnogs-client is a python package, and gets installed by satnogs-setup in a python virtual environment using pip. The development is done in the master branch.

Please note that satnogs-client and satnogs-flowgraphs must be installed in compatible versions, due to (frequent) changes in the arguments available in the demodulation scripts, see Compatibility.

Setting up a satnogs-client development environment

  1. Fork satnogs-client
  2. Clone the repository on your development machine
  3. Create a new branch (e.g. station123) with your changes & push it
  4. Run satnogs-setup and change the value of SATNOGS_CLIENT_URL to point to your repository and branch as described in SatNOGS_Client_Setup#Advanced_Setup
  5. Hit "Apply" in satnogs-setup to finally install your satnogs-client version
  6. Profit.

Miscellaneous development notes