<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.satnogs.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kerel</id>
	<title>SatNOGS Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.satnogs.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kerel"/>
	<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/Special:Contributions/Kerel"/>
	<updated>2026-04-29T21:13:06Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.32.0</generator>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Decode_Telemetry_and_Packets&amp;diff=2406</id>
		<title>Decode Telemetry and Packets</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Decode_Telemetry_and_Packets&amp;diff=2406"/>
		<updated>2019-01-05T22:24:24Z</updated>

		<summary type="html">&lt;p&gt;Kerel: /* How to */ Add pipe usage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are several tools available to decode telemetry and packets. SatNOGS provides some built-in demodulators for various data formats.  There are also additional tools that allow you the decoding of telemetry.&lt;br /&gt;
&lt;br /&gt;
== Built-in demodulators ==&lt;br /&gt;
&amp;lt;p&amp;gt;[[File:SatNOGS-Observation-Data.png]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Although the SatNOGS servers support many satellites with many modes, only the following modes are supported with built-in demodulators:&lt;br /&gt;
&lt;br /&gt;
* [[APT]] (Automatic Picture Transmission)&lt;br /&gt;
* [[AFSK]] 1k2 (Audio Frequency Shift Keying)&lt;br /&gt;
* AX.25 (Amateur Radio adaptation of X.25 packet protocol)&lt;br /&gt;
* [[CW]] (Continuous Wave, Morse Code)&lt;br /&gt;
* [[DUV]] (Data Under Voice)&lt;br /&gt;
* [[GFSK]] 9k6 (Gaussian Frequency Shift Keying)&lt;br /&gt;
* [[FSK]] 9k6 (Frequency Shift Keying)&lt;br /&gt;
* [[LRPT]] (Low Resolution Picture Transmission)&lt;br /&gt;
&lt;br /&gt;
== External demodulator/decoders ==&lt;br /&gt;
If for some reason, the above built-in decoders are not doing enough, there are many [[Satellite specific telemetry decoders]].  Also, there are more generic decoders listed below.&lt;br /&gt;
&lt;br /&gt;
== SoX - Sound eXchange ==&lt;br /&gt;
SoX is the Swiss Army knife of sound processing programs. SoX is cross-platform and is available for many operating systems (Windows, Linux, MacOS X, etc.).&lt;br /&gt;
&lt;br /&gt;
SoX supports demodulating the following modes:&lt;br /&gt;
* [[SoX_CW|CW]] (Continuous Wave, Morse Code)&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
* Chris Bagwell SoX − Sound eXchange http://sox.sourceforge.net/sox.html&lt;br /&gt;
&lt;br /&gt;
== Fldigi in audio playback mode ==&lt;br /&gt;
Fldigi can be used to decode a variety of data modes.&lt;br /&gt;
&lt;br /&gt;
* [[Fldigi_CW|CW]] (Continuous Wave, Morse Code)&lt;br /&gt;
&lt;br /&gt;
== FoxTelem for FOX1 series satellites ==&lt;br /&gt;
[[FoxTelem]] currently supports decoding DUV telemetry the following satellites: &lt;br /&gt;
* AO-85 (Fox-1A)&lt;br /&gt;
* AO-91 (Radfxsat / Fox1-B)&lt;br /&gt;
* AO-92 (Fox1-D)&lt;br /&gt;
* Fox-1Cliff, and&lt;br /&gt;
* Fox-1E.&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
* AC2CZ FoxTelem - AMSAT Ground Station Software http://www.g0kla.com/foxtelem/&lt;br /&gt;
&lt;br /&gt;
== multimon-ng ==&lt;br /&gt;
&lt;br /&gt;
Multimon-ng is a general purpose decoder. It can take wav or raw files and decode&lt;br /&gt;
a variety of modes among which: CW, AFSK, FSK...&lt;br /&gt;
&lt;br /&gt;
=== How to CW ===&lt;br /&gt;
First you have to use sox to convert ogg files from SatNOGS download to 22050Hz raw file: &amp;lt;br&amp;gt;&lt;br /&gt;
sox file.ogg -r 22050 file.raw gain 6 &amp;lt;br&amp;gt;&lt;br /&gt;
The gain is in dB and has a considerable impact on the decoding&lt;br /&gt;
in the special case of CW. You have to adjust gain to get proper decoding.&lt;br /&gt;
&lt;br /&gt;
Then you must apply on the raw file the proper decoder: &amp;lt;br&amp;gt;&lt;br /&gt;
multimon-ng -a MORSE_CW -t raw file.raw&lt;br /&gt;
&lt;br /&gt;
=== How to AFSK ===&lt;br /&gt;
&lt;br /&gt;
First convert to raw sound file (sampling frequency 22050Hz) using sox &amp;lt;br&amp;gt;&lt;br /&gt;
sox -t ogg $file -r 22050 -t raw file.raw $soxopts &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then use multimon-ng with AFSK1200 decoder &amp;lt;br&amp;gt;&lt;br /&gt;
multimon-ng -t raw -a AFSK1200 $file.raw&lt;br /&gt;
&lt;br /&gt;
You can add more decoders if needed with additionnal &amp;quot;-a&amp;quot; options&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
* Elia Oenal  Multimon-ng  https://github.com/EliasOenal/multimon-ng&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Direwolf ==&lt;br /&gt;
&lt;br /&gt;
Direwolf is a software encoder/decoder for APRS (AX.25). It can take raw files and decode APRS.&lt;br /&gt;
&lt;br /&gt;
=== How to ===&lt;br /&gt;
First you have to use sox to convert ogg files from SatNOGS download to 22050Hz raw file &amp;lt;br&amp;gt;&lt;br /&gt;
sox file.ogg -esigned-integer -b 16 -r 48000 file.raw &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then launch direwolf &amp;lt;br&amp;gt;&lt;br /&gt;
direwolf -B 1200 -b 16 -n 1 -r 48000 -q hd -t 0 -q h -q d -d p -d t -a 0 - &amp;lt; file.raw&lt;br /&gt;
&lt;br /&gt;
Both commands can be combined with a pipe: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;sox -t ogg satnogs_386252_2018-12-29T02-54-45.ogg -esigned-integer -b 16 -r 48000 -t raw - | direwolf -B 1200 -b 16 -n 1 -r 48000 -q hd -t 0 -q h -q d -d p -d t -a 0 -&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
([https://community.libre.space/t/observation-386252-x-cubesat-42707/3093/2 source])&lt;br /&gt;
&lt;br /&gt;
== QSSTV ==&lt;br /&gt;
[http://users.telenet.be/on4qz/qsstv/index.html QSSTV] is a modem software to send and receive SSTV&lt;br /&gt;
([https://en.wikipedia.org/wiki/Slow-scan_television Slow Scan Television]).&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
* Download the ogg file and convert it to wav with: &amp;lt;br/&amp;gt; &amp;lt;nowiki&amp;gt;sox satnogs_154162_2018-06-06T12-46-40.ogg output154162.wav rate 48000&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Open QSSTV and specify &amp;quot;Sound&amp;gt;Sound Input: from file&amp;quot;&lt;br /&gt;
* Press the play button and you will be asked to select the previously generated wav file. The decoding should start now.&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Direwolf WB2OSZ  https://github.com/wb2osz/direwolf&lt;br /&gt;
&lt;br /&gt;
== Scholarly Articles ==&lt;/div&gt;</summary>
		<author><name>Kerel</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Decode_Telemetry_and_Packets&amp;diff=2383</id>
		<title>Decode Telemetry and Packets</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Decode_Telemetry_and_Packets&amp;diff=2383"/>
		<updated>2018-10-28T12:03:29Z</updated>

		<summary type="html">&lt;p&gt;Kerel: Add QSSTV Usage from https://community.libre.space/t/iss-sstv-activity-observations-of-today/2180/2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are several tools available to decode telemetry and packets. SatNOGS provides some built-in demodulators for various data formats.  There are also additional tools that allow you the decoding of telemetry.&lt;br /&gt;
&lt;br /&gt;
== Built-in demodulators ==&lt;br /&gt;
&amp;lt;p&amp;gt;[[File:SatNOGS-Observation-Data.png]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Although the SatNOGS servers support many satellites with many modes, only the following modes are supported with built-in demodulators:&lt;br /&gt;
&lt;br /&gt;
* [[APT]] (Automatic Picture Transmission)&lt;br /&gt;
* [[AFSK]] 1k2 (Audio Frequency Shift Keying)&lt;br /&gt;
* AX.25 (Amateur Radio adaptation of X.25 packet protocol)&lt;br /&gt;
* [[CW]] (Continuous Wave, Morse Code)&lt;br /&gt;
* [[DUV]] (Data Under Voice)&lt;br /&gt;
* [[GFSK]] 9k6 (Gaussian Frequency Shift Keying)&lt;br /&gt;
* [[FSK]] 9k6 (Frequency Shift Keying)&lt;br /&gt;
* [[LRPT]] (Low Resolution Picture Transmission)&lt;br /&gt;
&lt;br /&gt;
== External demodulator/decoders ==&lt;br /&gt;
If for some reason, the above built-in decoders are not doing enough, there are many [[Satellite specific telemetry decoders]].  Also, there are more generic decoders listed below.&lt;br /&gt;
&lt;br /&gt;
== SoX - Sound eXchange ==&lt;br /&gt;
SoX is the Swiss Army knife of sound processing programs. SoX is cross-platform and is available for many operating systems (Windows, Linux, MacOS X, etc.).&lt;br /&gt;
&lt;br /&gt;
SoX supports demodulating the following modes:&lt;br /&gt;
* [[SoX_CW|CW]] (Continuous Wave, Morse Code)&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
* Chris Bagwell SoX − Sound eXchange http://sox.sourceforge.net/sox.html&lt;br /&gt;
&lt;br /&gt;
== Fldigi in audio playback mode ==&lt;br /&gt;
Fldigi can be used to decode a variety of data modes.&lt;br /&gt;
&lt;br /&gt;
* [[Fldigi_CW|CW]] (Continuous Wave, Morse Code)&lt;br /&gt;
&lt;br /&gt;
== FoxTelem for FOX1 series satellites ==&lt;br /&gt;
[[FoxTelem]] currently supports decoding DUV telemetry the following satellites: &lt;br /&gt;
* AO-85 (Fox-1A)&lt;br /&gt;
* AO-91 (Radfxsat / Fox1-B)&lt;br /&gt;
* AO-92 (Fox1-D)&lt;br /&gt;
* Fox-1Cliff, and&lt;br /&gt;
* Fox-1E.&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
* AC2CZ FoxTelem - AMSAT Ground Station Software http://www.g0kla.com/foxtelem/&lt;br /&gt;
&lt;br /&gt;
== multimon-ng ==&lt;br /&gt;
&lt;br /&gt;
Multimon-ng is a general purpose decoder. It can take wav or raw files and decode&lt;br /&gt;
a variety of modes among which: CW, AFSK, FSK...&lt;br /&gt;
&lt;br /&gt;
=== How to CW ===&lt;br /&gt;
First you have to use sox to convert ogg files from SatNOGS download to 22050Hz raw file: &amp;lt;br&amp;gt;&lt;br /&gt;
sox file.ogg -r 22050 file.raw gain 6 &amp;lt;br&amp;gt;&lt;br /&gt;
The gain is in dB and has a considerable impact on the decoding&lt;br /&gt;
in the special case of CW. You have to adjust gain to get proper decoding.&lt;br /&gt;
&lt;br /&gt;
Then you must apply on the raw file the proper decoder: &amp;lt;br&amp;gt;&lt;br /&gt;
multimon-ng -a MORSE_CW -t raw file.raw&lt;br /&gt;
&lt;br /&gt;
=== How to AFSK ===&lt;br /&gt;
&lt;br /&gt;
First convert to raw sound file (sampling frequency 22050Hz) using sox &amp;lt;br&amp;gt;&lt;br /&gt;
sox -t ogg $file -r 22050 -t raw file.raw $soxopts &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then use multimon-ng with AFSK1200 decoder &amp;lt;br&amp;gt;&lt;br /&gt;
multimon-ng -t raw -a AFSK1200 $file.raw&lt;br /&gt;
&lt;br /&gt;
You can add more decoders if needed with additionnal &amp;quot;-a&amp;quot; options&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
* Elia Oenal  Multimon-ng  https://github.com/EliasOenal/multimon-ng&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Direwolf ==&lt;br /&gt;
&lt;br /&gt;
Direwolf is a software encoder/decoder for APRS (AX.25). It can take raw files and decode APRS.&lt;br /&gt;
&lt;br /&gt;
=== How to ===&lt;br /&gt;
First you have to use sox to convert ogg files from SatNOGS download to 22050Hz raw file &amp;lt;br&amp;gt;&lt;br /&gt;
sox file.ogg -esigned-integer -b 16 -r 48000 file.raw &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then launch direwolf &amp;lt;br&amp;gt;&lt;br /&gt;
direwolf -B 1200 -b 16 -n 1 -r 48000 -q hd -t 0 -q h -q d -d p -d t -a 0 - &amp;lt; file.raw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== QSSTV ==&lt;br /&gt;
[http://users.telenet.be/on4qz/qsstv/index.html QSSTV] is a modem software to send and receive SSTV&lt;br /&gt;
([https://en.wikipedia.org/wiki/Slow-scan_television Slow Scan Television]).&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
* Download the ogg file and convert it to wav with: &amp;lt;br/&amp;gt; &amp;lt;nowiki&amp;gt;sox satnogs_154162_2018-06-06T12-46-40.ogg output154162.wav rate 48000&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Open QSSTV and specify &amp;quot;Sound&amp;gt;Sound Input: from file&amp;quot;&lt;br /&gt;
* Press the play button and you will be asked to select the previously generated wav file. The decoding should start now.&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Direwolf WB2OSZ  https://github.com/wb2osz/direwolf&lt;br /&gt;
&lt;br /&gt;
== Scholarly Articles ==&lt;/div&gt;</summary>
		<author><name>Kerel</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Adding_a_new_data_decoder&amp;diff=2278</id>
		<title>Adding a new data decoder</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Adding_a_new_data_decoder&amp;diff=2278"/>
		<updated>2018-08-18T20:33:56Z</updated>

		<summary type="html">&lt;p&gt;Kerel: Initial stub&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How to create the parser for a new satellite downlink ==&lt;br /&gt;
&lt;br /&gt;
For satellite downlinks where SatNOGS provides demodulated data, but no decoder exists yet.&lt;br /&gt;
&lt;br /&gt;
# Find and read documentation of the satellite downlink.&lt;br /&gt;
# Extract raw frames either from satnogs-network or satnogs-db.&lt;br /&gt;
#* from network: Open good observations whith demodulated data,&lt;br /&gt;
#*: then open the observation via the API,&lt;br /&gt;
#*: copy the link to the payloads and download them (e.g. via wget)&lt;br /&gt;
#* from db: Export frames of your satellite (how?), then convert them from hex to raw&lt;br /&gt;
# Write the Kaitai Struct (.ksy-file)&lt;br /&gt;
#* Open the [Kaitai WebIDE](https://ide.kaitai.io/)&lt;br /&gt;
#* Create a new .ksy-format file (press the empty sheet button in the lower left)&lt;br /&gt;
#* Upload the previously fetched raw frames as example data (press the cloud button in the lower left, select all files with raw frames)&lt;br /&gt;
#* Write the kaitai struct. Use already existing parsers for reference.&lt;br /&gt;
#* Always add the used documentation to the Kaitai struct (how?). If several sources are used, provide these sources when submitting the parser&lt;br /&gt;
#* Check the parsed output (object tree) for correctness&lt;br /&gt;
&lt;br /&gt;
# Check the results of your parser&lt;br /&gt;
#* If another parser exists, cross-check your results with the output it provides.&lt;br /&gt;
#* Sometimes there are examples frames or examples recordings provided. Use them for verification (if the data is well-known.)&lt;br /&gt;
&lt;br /&gt;
# Submit the created kaitai struct (how?)&lt;br /&gt;
&lt;br /&gt;
Resources:&lt;br /&gt;
* http://doc.kaitai.io/user_guide.html&lt;/div&gt;</summary>
		<author><name>Kerel</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Software_contribution&amp;diff=2251</id>
		<title>Software contribution</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Software_contribution&amp;diff=2251"/>
		<updated>2018-07-18T06:40:05Z</updated>

		<summary type="html">&lt;p&gt;Kerel: Add link to dev setup guide&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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|https://community.libre.space]] or on irc/matrix in #satnogs&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=== SatNOGS Client ===&lt;br /&gt;
&lt;br /&gt;
'''Skills required: Python'''&lt;br /&gt;
&lt;br /&gt;
The SatNOGS client is written in Python, targeting raspberry pi 3 as the reference architecture. It interfaces with the following applications:&lt;br /&gt;
&lt;br /&gt;
* rotctld (Rotator control, part of hamlib)&lt;br /&gt;
* rigctld (Rig frequency control, part of hamlib)&lt;br /&gt;
* gr-satnogs (custom SatNOGS gnuradio scripts)&lt;br /&gt;
&lt;br /&gt;
Architecture documentation: https://docs.satnogs.org/en/stable/satnogs-client/doc/architecture.html&lt;br /&gt;
&lt;br /&gt;
Code repository: https://gitlab.com/librespacefoundation/satnogs/satnogs-client&lt;br /&gt;
&lt;br /&gt;
Dev setup guide: [[SatNOGS_Client_Development#satnogs-client]]&lt;br /&gt;
&lt;br /&gt;
Note that development happens on the &amp;quot;0&amp;quot; branch, with periodic merges to master for release; PRs should be submitted against the &amp;quot;0&amp;quot; branch.&lt;br /&gt;
&lt;br /&gt;
=== SatNOGS Client image / setup script ===&lt;br /&gt;
&lt;br /&gt;
'''Skills required: Linux administration, .deb packaging, Ansible'''&lt;br /&gt;
&lt;br /&gt;
We provide a custom raspbian image for Raspberry Pi 3 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:&lt;br /&gt;
&lt;br /&gt;
* pi-gen repository: https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen&lt;br /&gt;
* gr-satnogs .deb repository: https://gitlab.com/librespacefoundation/satnogs/gr-satnogs-package&lt;br /&gt;
* satnogs-setup ansible repository: https://gitlab.com/librespacefoundation/satnogs/satnogs-client-ansible&lt;br /&gt;
&lt;br /&gt;
=== gr-satnogs ===&lt;br /&gt;
&lt;br /&gt;
'''Skills required: gnuradio companion, C/C++, SDR'''&lt;br /&gt;
&lt;br /&gt;
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!&lt;br /&gt;
&lt;br /&gt;
Code repository: https://gitlab.com/librespacefoundation/satnogs/gr-satnogs&lt;br /&gt;
&lt;br /&gt;
Dev setup guide: [[SatNOGS_Client_Development#gr-satnogs_and_gr-satnogs-package]]&lt;br /&gt;
&lt;br /&gt;
=== SatNOGS DB ===&lt;br /&gt;
&lt;br /&gt;
'''Skills required: Python / Django / CSS'''&lt;br /&gt;
&lt;br /&gt;
The SatNOGS DB is written in Django (a Python web framework).&lt;br /&gt;
&lt;br /&gt;
Installation documentation: https://docs.satnogs.org/en/stable/satnogs-db/docs/installation.html&lt;br /&gt;
&lt;br /&gt;
Contribute documentation: https://docs.satnogs.org/en/stable/satnogs-db/docs/contribute.html&lt;br /&gt;
&lt;br /&gt;
API documentation: https://docs.satnogs.org/en/stable/satnogs-db/docs/api.html&lt;br /&gt;
&lt;br /&gt;
Code repository: https://gitlab.com/librespacefoundation/satnogs/satnogs-db&lt;br /&gt;
&lt;br /&gt;
=== SatNOGS Network ===&lt;br /&gt;
&lt;br /&gt;
'''Skills required: Python / Django / CSS / JS'''&lt;br /&gt;
&lt;br /&gt;
The SatNOGS Network is written in Django (a Python web framework), and makes heavier use of javascript and d3.js for scheduling and visualizations.&lt;br /&gt;
&lt;br /&gt;
Installation documentation: https://docs.satnogs.org/en/stable/satnogs-network/docs/installation.html&lt;br /&gt;
&lt;br /&gt;
Contribute documentation: https://docs.satnogs.org/en/stable/satnogs-network/docs/contribute.html&lt;br /&gt;
&lt;br /&gt;
Code repository: https://gitlab.com/librespacefoundation/satnogs/satnogs-network&lt;/div&gt;</summary>
		<author><name>Kerel</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Get_Started&amp;diff=2250</id>
		<title>Get Started</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Get_Started&amp;diff=2250"/>
		<updated>2018-07-18T06:36:55Z</updated>

		<summary type="html">&lt;p&gt;Kerel: Use piped link instead of an external link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Intro ==&lt;br /&gt;
&lt;br /&gt;
Welcome to the SatNOGS community! Here you can find all the info needed to get you started.&lt;br /&gt;
&lt;br /&gt;
== Who are you? ==&lt;br /&gt;
&lt;br /&gt;
* '''Radio Amateur''': Most members of SatNOGS community are radio amateur operators licensed in may different countries around the world.&lt;br /&gt;
* '''Space enthusiast''': You love space and space data? SatNOGS is just the project for you! There are many learning opportunities around our community, and you can start easily with accessible projects, while you gradually become a space expert!&lt;br /&gt;
* '''Satellite operator''': You have your own satellite project? That's awesome! Many SatNOGS ground stations are built by satellite operators to gain extended access on their satellite telemetry and use the stations for telecommand and control.&lt;br /&gt;
&lt;br /&gt;
== STEP 1: Join the community ==&lt;br /&gt;
&lt;br /&gt;
First things first: make sure to get connected with fellow SatNOG-ers!&lt;br /&gt;
&lt;br /&gt;
* Sign up for our [http://librespacefoundation.us10.list-manage.com/subscribe?u=77c76098dbbebaa4de35d0746&amp;amp;id=29409b0533 newsletter].&lt;br /&gt;
* Join the [https://community.libre.space community forums] and [https://community.libre.space/t/new-users-welcome/29 announce yourself].&lt;br /&gt;
* Follow us on [https://twitter.com/satnogs Twitter], [https://www.facebook.com/satnogs/ Facebook], and [https://plus.google.com/+SatnogsOrgProject Google+].&lt;br /&gt;
* Join our live discussions over at IRC #satnogs on the Freenode network, or via [https://riot.im/app/#/room/#satnogs:matrix.org the Matrix #satnogs room].&lt;br /&gt;
&lt;br /&gt;
== STEP 2: Choose and deploy your ground station ==&lt;br /&gt;
&lt;br /&gt;
Learn about the different options for [[Build|ground stations and software]], and create your station.&lt;br /&gt;
&lt;br /&gt;
== STEP 3: Create an account on Network ==&lt;br /&gt;
&lt;br /&gt;
SatNOGS runs a network instance at [https://network.satnogs.org/ https://network.satnogs.org].  It's used to operate various ground stations around the world, but it's also the right place for you to test your ground station.  [https://network.satnogs.org/accounts/signup/ Sign up for an account]. Once you've verified your email address, log in and create a ground station entry and an API key.  (Save the API key -- you'll need that when you install the SatNOGS client.&lt;br /&gt;
&lt;br /&gt;
(And if you notice any bugs along the way -- [https://gitlab.com/librespacefoundation/satnogs/satnogs-network/issues please let us know]!)&lt;br /&gt;
&lt;br /&gt;
== STEP 4: Test your setup ==&lt;br /&gt;
&lt;br /&gt;
In this step, you will install the SatNOGS client (if you haven't already), and ensure that it can connect to the Network.  Once that's done, you can [[Operation|schedule your first observation]].&lt;br /&gt;
&lt;br /&gt;
== STEP 5: Move your station out of testing ==&lt;br /&gt;
&lt;br /&gt;
Once you feel confident with your observations, post your successful observations to [https://community.libre.space/c/observations the community].  When you feel ready and feedback from the community is positive, edit your station in Network and remove the &amp;quot;Testing&amp;quot; flag from it! Now continue scheduling observations!&lt;br /&gt;
&lt;br /&gt;
== STEP +: Consider wider contributions ==&lt;br /&gt;
&lt;br /&gt;
There are many ways to contribute to the SatNOGS project:&lt;br /&gt;
&lt;br /&gt;
* [[Software contribution|Contributing to the software that runs SatNOGS]]&lt;br /&gt;
* [[Provide documentation|Improving the documentation for the project]]&lt;br /&gt;
* [[Satnogs DB|Improving the SatNOGS database]]&lt;/div&gt;</summary>
		<author><name>Kerel</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=SatNOGS_Ansible&amp;diff=2249</id>
		<title>SatNOGS Ansible</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=SatNOGS_Ansible&amp;diff=2249"/>
		<updated>2018-07-13T12:49:46Z</updated>

		<summary type="html">&lt;p&gt;Kerel: /* Advanced Setup */ Add link to Satnogs_Client_Development&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Intro =&lt;br /&gt;
&lt;br /&gt;
'''SatNOGS Client Ansible''' is the suggested method to install '''SatNOGS Client''' (and friends) to any Debian-based system.&lt;br /&gt;
&lt;br /&gt;
= Raspbian =&lt;br /&gt;
&lt;br /&gt;
For Raspberry Pi 3, which is the reference platform for SatNOGS, a [[Raspberry_Pi_3|Raspbian image]] with '''SatNOGS Client Ansible''' pre-installed is available.&lt;br /&gt;
&lt;br /&gt;
= Debian =&lt;br /&gt;
&lt;br /&gt;
These sections contain generic instructions for installing SatNOGS Client on any Debian-based system.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
* A user which is member of 'sudo' group exists on the target system&lt;br /&gt;
* An SSH server running on the target system&lt;br /&gt;
* A host system with Git and latest version of Ansible installed&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
&lt;br /&gt;
On the host system run the following commands:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ git clone https://gitlab.com/librespacefoundation/satnogs/satnogs-client-ansible.git    # Clone SatNOGS Client Ansible repository&lt;br /&gt;
$ cd satnogs-client-ansible                              # Change to cloned repository directory&lt;br /&gt;
$ cp -r production.dist production                       # Copy dist configuration&lt;br /&gt;
$ vi production/inventory/hosts                          # Update file with your own target host, user and SSH password&lt;br /&gt;
$ ssh youruser@yourtargetsystem true                     # Test SSH connection to target system&lt;br /&gt;
$ ansible-playbook -i production/inventory -K site.yml   # Run Ansible playbook&lt;br /&gt;
$ ssh -t youruser@yourtargetsystem sudo satnogs-setup    # Setup SatNOGS client (see below)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SatNOGS Client Setup =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;satnogs-setup&amp;lt;/code&amp;gt; is a script for configuring a system installed with '''SatNOGS Client Ansible'''.&lt;br /&gt;
&lt;br /&gt;
== Initial Setup ==&lt;br /&gt;
&lt;br /&gt;
Right after the first boot of the system, packages and the configuration tool itself '''must be updated'''. Follow the [[#Updating SatNOGS Client software|Updating]] instruction found below.&lt;br /&gt;
&lt;br /&gt;
To configure a '''SatNOGS Client Ansible''' system:&lt;br /&gt;
&lt;br /&gt;
# SSH into the system and run &amp;lt;code&amp;gt;sudo satnogs-setup&amp;lt;/code&amp;gt;; this will bring up the configuration menu&lt;br /&gt;
# Set '''Basic Configuration''' (see below)&lt;br /&gt;
# Select &amp;lt;code&amp;gt;Apply&amp;lt;/code&amp;gt; and the Raspberry Pi will configure itself; this may take some time&lt;br /&gt;
# Select &amp;lt;code&amp;gt;Back&amp;lt;/code&amp;gt; to exit&lt;br /&gt;
&lt;br /&gt;
{{Message|You can always reconfigure the software by running &amp;lt;code&amp;gt;sudo satnogs-setup&amp;lt;/code&amp;gt; again.}}&lt;br /&gt;
&lt;br /&gt;
=== Basic Configuration ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Setting&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_API_TOKEN&amp;lt;/code&amp;gt;&lt;br /&gt;
|The API token assigned to your ground station on the SatNOGS Network website.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_NETWORK_API_URL&amp;lt;/code&amp;gt;&lt;br /&gt;
|The API for the SatNOGS network site. This is &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://network.satnogs.org/api/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_RX_DEVICE&amp;lt;/code&amp;gt;&lt;br /&gt;
|If you are using an RTL-SDR, this is &amp;lt;code&amp;gt;rtlsdr&amp;lt;/code&amp;gt;.  Other devices supported by gr-satnogs include &amp;lt;code&amp;gt;usrpb200&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;usrp2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;airspy&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;hackrf&amp;lt;/code&amp;gt;; a complete list can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/apps/flowgraphs/satellites/README.md here].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_STATION_ELEV&amp;lt;/code&amp;gt;&lt;br /&gt;
|The height of your ground station above sea level in metres.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_STATION_ID&amp;lt;/code&amp;gt;&lt;br /&gt;
|The ID assigned to your station in the SatNOGS Network site.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_STATION_LAT&amp;lt;/code&amp;gt;&lt;br /&gt;
|The latitude of your station.  North is positive, south is negative.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_STATION_LON&amp;lt;/code&amp;gt;&lt;br /&gt;
|The longitude of your station.  East is positive, west is negative.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;HAMLIB_UTILS_ROT_ENABLED&amp;lt;/code&amp;gt;&lt;br /&gt;
|Whether or not to enable the Hamlibs rotator daemon.  Rotctld is a software daemon that provides a network server to control a rotator on a serial port.  If you don't have a rotator (like the [https://wiki.satnogs.org/No_rotator No rotator setup]), enter &amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;HAMLIB_UTILS_ROT_OPTS&amp;lt;/code&amp;gt;&lt;br /&gt;
|Options for rotcld. For a yaesu rotator, use &amp;lt;code&amp;gt;-m 601 -r /dev/ttyACM0 -s 9600 -T 0.0.0.0&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Advanced Setup ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|Changing these settings is ''not'' recommended unless you're developing SatNOGS.}}&lt;br /&gt;
A more detailed description on setting up a development environment using the SatNOGS reference setup is given in [[SatNOGS_Client_Development]].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Setting&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_CLIENT_URL&amp;lt;/code&amp;gt;&lt;br /&gt;
|If you to try a development version of satnogs-client, you can change the URL here.  The URL needs to be in [https://pip.pypa.io/en/stable/reference/pip_install PIP format].  Here are some examples:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;git+https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@0&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; -- the '0' branch (the current development version) of satnogs-client&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;git+https://gitlab.com/jdoe/satnogs-client.git@new-feature&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; -- the 'new-feature' branch of jdoe's fork of satnogs-client&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_RADIO_GR_SATNOGS_PACKAGE&amp;lt;/code&amp;gt;&lt;br /&gt;
|This options allows you to change the installed package of gr-satnogs. For example, to install nightly development builds use:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://gitlab.com/librespacefoundation/satnogs/gr-satnogs-package/-/jobs/artifacts/master/raw/build/debian/output/armhf/gr-satnogs_armhf.deb?job=nightly-armhf&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;RF_GAIN&amp;lt;/code&amp;gt;&lt;br /&gt;
|RF Gain value for your SDR hardware. Defaults can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/python/hw_settings.py here].&lt;br /&gt;
* For rtl-sdr possible values are the following: &amp;lt;code&amp;gt;0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Updating SatNOGS Client software ==&lt;br /&gt;
&lt;br /&gt;
To update all Debian packages to the latest you can use the normal APT updating methods. SSH into the system and run the following commands:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ sudo apt-get update&lt;br /&gt;
$ sudo apt-get -y upgrade&lt;br /&gt;
$ sudo reboot&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To update SatNOGS software, incuding the configuration tool itself:&lt;br /&gt;
# SSH into the system and (re-)run &amp;lt;code&amp;gt;sudo satnogs-setup&amp;lt;/code&amp;gt;; this will bring up the configuration menu&lt;br /&gt;
# Select &amp;lt;code&amp;gt;Update&amp;lt;/code&amp;gt; to update the configuration tool&lt;br /&gt;
# Select &amp;lt;code&amp;gt;Apply&amp;lt;/code&amp;gt; and the Raspberry Pi will update itself; this may take some time&lt;br /&gt;
# Select &amp;lt;code&amp;gt;Back&amp;lt;/code&amp;gt; to exit&lt;br /&gt;
&lt;br /&gt;
'''WARNING: An update can potentially interrupt a running observation!'''&lt;br /&gt;
&lt;br /&gt;
== Verification of correct installation ==&lt;br /&gt;
&lt;br /&gt;
To see if satnogs-client has started successfully, check the logs with journalctl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
journalctl -u satnogs-client.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see entries running approximately once per minute that look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Oct 01 23:02:13 raspberrypi satnogs-client[6695]:  * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)&lt;br /&gt;
Oct 01 23:02:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:02:14,466 - satnogsclient - INFO - [LD] Downlink thread waiting for first downlink packet&lt;br /&gt;
Oct 01 23:03:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:14,450 - apscheduler.executors.default - INFO - Running job &amp;quot;get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:03:14 UTC)&amp;quot; (scheduled at 2017-10-01 23:03:14.423393+00:00)&lt;br /&gt;
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,324 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011&lt;br /&gt;
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,325 - satnogsclient - DEBUG - Sending message: []&lt;br /&gt;
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,327 - apscheduler.executors.default - INFO - Job &amp;quot;get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)&amp;quot; executed successfully&lt;br /&gt;
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,453 - apscheduler.executors.default - INFO - Running job &amp;quot;get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)&amp;quot; (scheduled at 2017-10-01 23:04:14.423393+00:00)&lt;br /&gt;
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,484 - apscheduler.executors.default - INFO - Running job &amp;quot;post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)&amp;quot; (scheduled at 2017-10-01 23:04:14.436367+00:00)&lt;br /&gt;
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,489 - apscheduler.executors.default - INFO - Job &amp;quot;post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)&amp;quot; executed successfully&lt;br /&gt;
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,627 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011&lt;br /&gt;
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,628 - satnogsclient - DEBUG - Sending message: []&lt;br /&gt;
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,629 - apscheduler.executors.default - INFO - Job &amp;quot;get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:05:14 UTC)&amp;quot; executed successfully&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also try visiting satnog-client's web interface. In your browser, go to '''&amp;lt;nowiki&amp;gt;http://(ip address of your raspberry pi):5000&amp;lt;/nowiki&amp;gt;'''.  You should see something like this:&lt;br /&gt;
&lt;br /&gt;
[[File:SatNOGS_client_screenshot.png|400px|thumb|center|SatNOGS client web page]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.&lt;/div&gt;</summary>
		<author><name>Kerel</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=SatNOGS_Client_Development&amp;diff=2248</id>
		<title>SatNOGS Client Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=SatNOGS_Client_Development&amp;diff=2248"/>
		<updated>2018-07-13T12:40:02Z</updated>

		<summary type="html">&lt;p&gt;Kerel: Initial write-up.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Intro ==&lt;br /&gt;
This page describes the setup of a development environment for the&lt;br /&gt;
SatNOGS ground station reference setup based on [https://gitlab.com/librespacefoundation/satnogs/satnogs-client-ansible satnogs-client-anible].&lt;br /&gt;
It is assumed you have already setup your ground station as explained in [[SatNOGS_Client_Ansible]].&lt;br /&gt;
&lt;br /&gt;
== gr-satnogs and gr-satnogs-package ==&lt;br /&gt;
&lt;br /&gt;
The gnuradio Out-Of-Tree module [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs gr-satnogs] is packaged by [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs-package gr-satnogs-package]. The gitlab-CI automatically builds the package in docker containers as nightlies and on each release (git-tag, e.g. [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs-package/-/jobs/artifacts/1.3-1/raw/build/debian/output/armhf/gr-satnogs_1.3-1_armhf.deb?job=release-armhf gr-satnogs_1.3-1_armhf.deb]), configured by the [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/.gitlab-ci.yml .gitlab-ci.yml].&lt;br /&gt;
&lt;br /&gt;
To use a modified gr-satnogs module on a SatNOGS ground station, it’s recommended to build it using the gr-satnogs-package scripts. Otherwise you can build gr-satnogs manually and adjust the installation paths to match the paths specified by gr-satnogs-package.&lt;br /&gt;
&lt;br /&gt;
Building gr-satnogs with gr-satnogs-package can be automated via gitlab-CI, so that binary releases of your modified gr-satnogs module are available to download and install by the satnogs-client-ansible scripts (&amp;lt;code&amp;gt;satnogs-setup&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Steps. ===&lt;br /&gt;
&lt;br /&gt;
* Fork gr-satnogs&lt;br /&gt;
* Fork gr-satnogs-package&lt;br /&gt;
* Adjust the repository url of gr-satnogs in [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs-package/blob/master/debian/debian/rules#L22 gr-satnogs-package/debian/debian/rules#L22]&lt;br /&gt;
* Adjust the repository url in the version detection in [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs-package/blob/master/.gitlab-ci.yml#L13 gr-satnogs-package/.gitlab-ci.yml#L13] ,[https://gitlab.com/librespacefoundation/satnogs/gr-satnogs-package/blob/master/.gitlab-ci.yml#L30 #L30] ,[https://gitlab.com/librespacefoundation/satnogs/gr-satnogs-package/blob/master/.gitlab-ci.yml#L47 #L47]&lt;br /&gt;
* Wait for the gitlab-CI to build your first version of gr-satnogs-package (~45 min)&lt;br /&gt;
* Install your freshly built gr-satnogs-package by pointing the &amp;lt;code&amp;gt;SATNOGS_RADIO_GR_SATNOGS_PACKAGE&amp;lt;/code&amp;gt; in satnogs-setup to the built artifact/debian package of your architecture (e.g. &amp;lt;code&amp;gt;armhf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;amd64&amp;lt;/code&amp;gt;). 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 &amp;lt;code&amp;gt;Browse&amp;lt;/code&amp;gt;, path &amp;lt;code&amp;gt;build/debian/output/$your_arch/gr-satnogs_$your_arch.deb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== satnogs-client ==&lt;br /&gt;
The [https://gitlab.com/librespacefoundation/satnogs/satnogs-client satnogs-client] is a python package, and gets installed by satnogs-setup in a python virtual environment using [https://pip.pypa.io pip].&lt;br /&gt;
The development branch for the current releases 0.x is named &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;. It's the original client implementation and features a local web interface.&lt;br /&gt;
A new implementation which aimed at a more modular architecture and doesn't include the local web interface anymore is developed in the &amp;lt;code&amp;gt;master&amp;lt;/code&amp;gt; branch (currently stale as of 2018-07-13).&lt;br /&gt;
&lt;br /&gt;
Please note that satnogs-client and gr-satnogs must be installed in compatible versions, due to (frequent) changes in the arguments available in the demodulation scripts, see [[Compatibility]].&lt;br /&gt;
=== Steps. ===&lt;br /&gt;
TODO.&lt;/div&gt;</summary>
		<author><name>Kerel</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Adjusting_the_SatNOGS_Client&amp;diff=2246</id>
		<title>Adjusting the SatNOGS Client</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Adjusting_the_SatNOGS_Client&amp;diff=2246"/>
		<updated>2018-06-26T11:10:12Z</updated>

		<summary type="html">&lt;p&gt;Kerel: /* manual adjustment */ Add note on systemd service stop/start possibility&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(This page is a port of [https://community.libre.space/t/how-to-do-some-client-adjustments/1604/1 DL4PD's excellent post] to the SatNOGS forum.)&lt;br /&gt;
&lt;br /&gt;
== Prerequisites / dependencies ==&lt;br /&gt;
&lt;br /&gt;
This page assumes:&lt;br /&gt;
&lt;br /&gt;
* you've read all the [[Get Started|Getting Started]] page, as well as the pages linked under &amp;quot;Build&amp;quot; and &amp;quot;Operate&amp;quot; on the [[Main Page]]&lt;br /&gt;
* you've already made your [[Operation|first observations]] and have some waterfalls in the [[Network]]&lt;br /&gt;
* you've installed [http://gqrx.dk/download install gqrx] on your local computer.&lt;br /&gt;
&lt;br /&gt;
== SatNOGS station adjustments ==&lt;br /&gt;
&lt;br /&gt;
Now you've come to a point where you want to know how well your station is performing.  The first step is to determine your frequency offset.&lt;br /&gt;
&lt;br /&gt;
=== automatic adjustment via kalibrate-rtl ===&lt;br /&gt;
&lt;br /&gt;
As a more comfortable way to get the ppm of your SDR the tool ''kal'' from https://github.com/viraptor/kalibrate-rtl can be used.&lt;br /&gt;
At the moment you propably have to get and build it by yourself.&lt;br /&gt;
&lt;br /&gt;
When using the pre-built image for the Raspberry Pi, you have&lt;br /&gt;
to install the following dependencies:&lt;br /&gt;
 $ sudo apt-get install libtool pkg-config libfftw3-dev librtlsdr-dev&lt;br /&gt;
&lt;br /&gt;
Then you can build and install it with&lt;br /&gt;
 $ ./bootstrap&lt;br /&gt;
 $ CXXFLAGS='-W -Wall -O3' ./configure&lt;br /&gt;
 $ make&lt;br /&gt;
 $ sudo make install&lt;br /&gt;
&lt;br /&gt;
For usage, see available parameters:&lt;br /&gt;
 $ kal -h&lt;br /&gt;
 kalibrate v0.4.1-rtl, Copyright (c) 2010, Joshua Lackey&lt;br /&gt;
 modified for use with rtl-sdr devices, Copyright (c) 2012, Steve Markgraf&lt;br /&gt;
 Usage:&lt;br /&gt;
 	GSM Base Station Scan:&lt;br /&gt;
 		kal &amp;lt;-s band indicator&amp;gt; [options]&lt;br /&gt;
 &lt;br /&gt;
 	Clock Offset Calculation:&lt;br /&gt;
 		kal &amp;lt;-f frequency | -c channel&amp;gt; [options]&lt;br /&gt;
 &lt;br /&gt;
 Where options are:&lt;br /&gt;
 	-s	band to scan (GSM850, GSM-R, GSM900, EGSM, DCS, PCS)&lt;br /&gt;
 	-f	frequency of nearby GSM base station&lt;br /&gt;
 	-c	channel of nearby GSM base station&lt;br /&gt;
 	-b	band indicator (GSM850, GSM-R, GSM900, EGSM, DCS, PCS)&lt;br /&gt;
 	-g	gain in dB&lt;br /&gt;
 	-d	rtl-sdr device index&lt;br /&gt;
 	-e	initial frequency error in ppm&lt;br /&gt;
 	-E	manual frequency offset in hz&lt;br /&gt;
 	-v	verbose&lt;br /&gt;
 	-D	enable debug messages&lt;br /&gt;
 	-h	help&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
choose an appropriate band for scanning:&lt;br /&gt;
 $ kal -s GSM900&lt;br /&gt;
 Found 1 device(s):&lt;br /&gt;
   0:  Generic RTL2832U OEM&lt;br /&gt;
 &lt;br /&gt;
 Using device 0: Generic RTL2832U OEM&lt;br /&gt;
 Found Elonics E4000 tuner&lt;br /&gt;
 Exact sample rate is: 270833.002142 Hz&lt;br /&gt;
 kal: Scanning for GSM-900 base stations.&lt;br /&gt;
 GSM-900:&lt;br /&gt;
     chan:   33 (941.6MHz - 155Hz)    power: 4877018.31&lt;br /&gt;
     chan:   41 (943.2MHz - 208Hz)    power: 2265226.87&lt;br /&gt;
     chan:   43 (943.6MHz - 133Hz)    power: 1287992.91&lt;br /&gt;
     chan:   55 (946.0MHz - 179Hz)    power: 1041611.46&lt;br /&gt;
     chan:   57 (946.4MHz - 252Hz)    power: 1405188.40&lt;br /&gt;
     chan:   66 (948.2MHz -  13Hz)    power: 5027059.56&lt;br /&gt;
     chan:   79 (950.8MHz - 111Hz)    power: 1088677.82&lt;br /&gt;
     chan:   84 (951.8MHz - 231Hz)    power:  945912.38&lt;br /&gt;
     chan:   86 (952.2MHz - 212Hz)    power: 2314696.93&lt;br /&gt;
     chan:  116 (958.2MHz - 180Hz)    power:  862935.90&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
choose a strong channel:&lt;br /&gt;
 $ kal -c 33&lt;br /&gt;
 Found 1 device(s):&lt;br /&gt;
   0:  Generic RTL2832U OEM&lt;br /&gt;
 &lt;br /&gt;
 Using device 0: Generic RTL2832U OEM&lt;br /&gt;
 Found Elonics E4000 tuner&lt;br /&gt;
 Exact sample rate is: 270833.002142 Hz&lt;br /&gt;
 kal: Calculating clock frequency offset.&lt;br /&gt;
 Using GSM-900 channel 33 (941.6MHz)&lt;br /&gt;
 Tuned to 941.600000MHz (reported tuner error: 0Hz)&lt;br /&gt;
 average		[min, max]	(range, stddev)&lt;br /&gt;
 - 206Hz		[-293, -89]	(204, 56.913998)&lt;br /&gt;
 overruns: 0&lt;br /&gt;
 not found: 0&lt;br /&gt;
 average absolute error: 0.219 ppm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now enter the measured ppm in satnogs-setup and you're done.&lt;br /&gt;
&lt;br /&gt;
=== manual adjustment ===&lt;br /&gt;
&lt;br /&gt;
To start, please connect to your Raspberry Pi's local web interface. By default the URL is something like &amp;quot;http://192.168.0.5:5000&amp;quot;; you'll need to figure out what it is for your client. In the upper right corner there is a big green button where you can set your ground station in standalone mode.&lt;br /&gt;
&lt;br /&gt;
Here's how it looks in network mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;[[File:SatNOGS_local_network_mode.png|center|600px]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And here's how it looks when it's switched to standalone mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;[[File:SatNOGS_local_standalone_mode.png|center|600px]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instead of using the standalone mode you can also stop and later start the satnogs-client service via systemd directly via the console:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl stop satnogs-client&lt;br /&gt;
sudo systemctl start satnogs-client&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Message|&lt;br /&gt;
* Do not forget to set this back to network mode when done with your adjustments!&lt;br /&gt;
* While your station is in standalone mode, no observations from the SatNOGS network will be executed!}}&lt;br /&gt;
&lt;br /&gt;
After setting to standalone mode, please SSH to your SatNOGS Pi with your well-known user account; by default, this is the user &amp;quot;pi&amp;quot;.  After successful authorization you will see a prompt like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Linux satnogs190-dev 4.9.59-v7+ #1047 SMP Sun Oct 29 12:19:23 GMT 2017 armv7l&lt;br /&gt;
&lt;br /&gt;
 The programs included with the Debian GNU/Linux system are free software;&lt;br /&gt;
 the exact distribution terms for each program are described in the&lt;br /&gt;
 individual files in /usr/share/doc/*/copyright.&lt;br /&gt;
&lt;br /&gt;
 Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent&lt;br /&gt;
 permitted by applicable law.&lt;br /&gt;
 Last login: Fri Jan 12 07:34:11 2018 from 192.168.10.35&lt;br /&gt;
 pd@satnogs190-dev:~ $&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now go ahead and start the &amp;quot;RTL SDR spectrum server&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 $ rtl_tcp -a 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
If everything is fine, you will get an output like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Found 1 device(s):&lt;br /&gt;
   0:  Generic, RTL2832U, SN: 77771111153705700&lt;br /&gt;
&lt;br /&gt;
 Using device 0: Generic RTL2832U&lt;br /&gt;
 Found Rafael Micro R820T tuner&lt;br /&gt;
 [R82XX] PLL not locked!&lt;br /&gt;
 Tuned to 100000000 Hz.&lt;br /&gt;
 listening...&lt;br /&gt;
&lt;br /&gt;
Use the device argument 'rtl_tcp=0.0.0.0:1234' in OsmoSDR (gr-osmosdr) source to receive samples in GRC and control rtl_tcp parameters (frequency, gain, ...). No further output will be generated until you connect to this server. Hitting C-c will stop it and the command line appears. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Message|You will have to stop this server if you want to go back to network mode - do not forget about this!}}&lt;br /&gt;
&lt;br /&gt;
Now go ahead and start gqrx:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;[[File:Startup_gqrx.png|center|600px]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will have to go to the setup menu, either by clicking on the &amp;quot;harde&amp;quot; symbol, or navigating through the menu item called &amp;quot;File -&amp;gt; I/O Devices&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;[[File:Gqrx_io_configuration.png|center]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Click on &amp;quot;Device&amp;quot; and chose &amp;quot;RTL-SDR Spectrum Server&amp;quot;&lt;br /&gt;
Edit &amp;quot;Device string&amp;quot; to match your Pi's IP address, Port defaults to 1234,&lt;br /&gt;
which is the same as the default setting for your server you just started on&lt;br /&gt;
the Pi.&lt;br /&gt;
Set &amp;quot;Input Rate&amp;quot; to something network friendly - we do not need the whole spectrum the RTL SDR is able to convert. 1,8 MSPS (1800000) should be OK&lt;br /&gt;
Depending on this setting your network will get very busy. Using wireless LAN is not recommended. Every sample has a data size of 16 bits, so the previous setting of 1,8MSPS/s results in a network load of 28,8 MBit/s:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;1,8 MSPS * 16 bit/s = 28,8 MBit/s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Audio Output -&amp;gt; Device&amp;quot; and &amp;quot;-&amp;gt; Sample rate&amp;quot; should be set by default,&lt;br /&gt;
values on average soundcards would be something like &amp;quot;Default, 48 kHz&amp;quot;&lt;br /&gt;
Close the dialogue by clicking &amp;quot;OK&amp;quot;&lt;br /&gt;
Your RTL-SDR spectrum server on the Pi should now show up a connection from&lt;br /&gt;
your computer running gqrx.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 client accepted!&lt;br /&gt;
 set gain mode 1&lt;br /&gt;
 set agc mode 0&lt;br /&gt;
 set direct sampling 0&lt;br /&gt;
 Disabled direct sampling mode&lt;br /&gt;
 set offset tuning 0&lt;br /&gt;
 set sample rate 960000&lt;br /&gt;
 ll+, now 1&lt;br /&gt;
 ll+, now 2&lt;br /&gt;
 set freq correction 42&lt;br /&gt;
 set freq 144500000&lt;br /&gt;
 set gain mode 0&lt;br /&gt;
 set agc mode 1&lt;br /&gt;
 set gain 0&lt;br /&gt;
 set freq 145814000&lt;br /&gt;
 ll-, now 0&lt;br /&gt;
 ll+, now 1&lt;br /&gt;
 ll+, now 2&lt;br /&gt;
 ll+, now 3&lt;br /&gt;
 ll+, now 4&lt;br /&gt;
 ll+, now 5&lt;br /&gt;
 ll+, now 6&lt;br /&gt;
 ll+, now 7&lt;br /&gt;
 ll+, now 8&lt;br /&gt;
 ll+, now 9&lt;br /&gt;
 ll+, now 10&lt;br /&gt;
 ll+, now 11&lt;br /&gt;
 ll+, now 12&lt;br /&gt;
 ll+, now 13&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The only thing left now is to &amp;quot;Start DSP&amp;quot; - from the menu item &amp;quot;File&amp;quot;, by hitting C-d or simply clicking the Play-Button.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;[[File:Gqrx_running.png|center|600px]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go for a known local HAM radio repeater or a CW beacon transmitter and set your demodulator accordingly. Narrow Band FM or CW is best to discover ppm error offset, which is the frequency offset in parts per million (ppm) which is always there with standard RTL-SDR dongles. It is also highly temperature dependent, so one might have to re-evaluate this from time to time. Enter the known frequency of your chosen transmitter (NFM repaeter or CW beacon). I have chosen a very known CW beacon just some km away from my home: ON4VHF on 144.718000 MHz. Walk through the tab called &amp;quot;Receiver options&amp;quot; and change the settings to fit the beacon: &amp;quot;Filter width Normal&amp;quot;, &amp;quot;Filter shape Normal&amp;quot;, &amp;quot;Mode CW-L&amp;quot;, &amp;quot;AGC Medium&amp;quot;. Set Squelch to something low, so you can hear noise from your speakers. Maybe you have to Adjust the audio &amp;quot;Gain&amp;quot; to something like &amp;quot;0.0 dB&amp;quot;. You can adjust this to fit your needs to hear noise. With ppm error, which is default, set to 0.0 ppm, one can just guess where your receiver is listening. Anyway, just set it to 144.718000 MHz and try to find your beacon. You can see the result for my RTL SDR dongle down here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;[[File:Gqrx_ppm-error_offset.png|center|600px]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now got to the tab called &amp;quot;Input controls&amp;quot; and find an input field called &amp;quot;Freq. correction&amp;quot;. By default this should show &amp;quot;0,0 ppm&amp;quot;. Set frequency back to your beacons transmit frequency. After this you have to increase the Freq. correction value as long until you can hear the beacon. Now zoom into the panorama by locating your mouse pointer in the range where the frequency values are printed below the panorama, just above the waterfall. Try to fit the Freq. correction value as good as possible, that your receivers red indication line is just in the middle of the transmitters bandwidth.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;[[File:Gqrx_ppm-error_corrected.png|center]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now write down the evaluated ppm correction value and exit gqrx as well as the RTL SDR spectrum server. In the command line now available start satnogs-setup:&lt;br /&gt;
&lt;br /&gt;
 $ sudo satnogs-setup&lt;br /&gt;
&lt;br /&gt;
Navigate to &amp;quot;Advanced -&amp;gt; SATNOGS_PPM_ERROR&amp;quot; and enter the new value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;[[File:Fcecd26ca08cf3d23dffce719ef1dd13a4f7109d.png|center]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the satnogs-setup with &amp;quot;Back&amp;quot;, then &amp;quot;Apply Configuration&amp;quot; (this might take a while) and &amp;quot;Back&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You are done with frequency offset correction.&lt;br /&gt;
&lt;br /&gt;
{{Message|With gqrx, you get a nice tool to do some SDR stuff by the way. Just play around a bit and get familiar with all that stuff. Just keep in mind that, as long as you run the RTL SDR Spectrum server or you have set your client into standalone mode, nothing is done from network.}}&lt;br /&gt;
&lt;br /&gt;
== Enhancements ==&lt;br /&gt;
&lt;br /&gt;
=== Waterfall color improvements ===&lt;br /&gt;
&lt;br /&gt;
To get some nicer waterfalls one has to dig into waterfall plotting script. This is a static one and, so far, cannot be configured through satnogs-setup. Anyway: there is no magic behind it and one can understand what the changes are once you have seen them.&lt;br /&gt;
&lt;br /&gt;
Log into the Pi and start at making a copy of /usr/share/satnogs/scripts/satnogs_waterfall.gp, just in case:&lt;br /&gt;
&lt;br /&gt;
 $ cp /usr/share/satnogs/scripts/satnogs_waterfall.gp ~/.&lt;br /&gt;
&lt;br /&gt;
Now you can start editing the script:&lt;br /&gt;
&lt;br /&gt;
 $ sudo nano /usr/share/satnogs/scripts/satnogs_waterfall.gp&lt;br /&gt;
&lt;br /&gt;
Search for a line starting with cbtics:&lt;br /&gt;
&lt;br /&gt;
 # Spectravue palette and scale&lt;br /&gt;
 set cbtics (-110, -105, -100, -95, -90, -85, -80, -75, -70, -65, -60, -55, -50, -55, -40)&lt;br /&gt;
&lt;br /&gt;
Comment it out by adding a #, copy, paste and edit that new line that it matches something like this:&lt;br /&gt;
&lt;br /&gt;
 # Spectravue palette and scale&lt;br /&gt;
 #set cbtics (-110, -105, -100, -95, -90, -85, -80, -75, -70, -65, -60, -55, -50, -55, -40)&lt;br /&gt;
 set cbtics (-90, -85, -80, -75, -70, -65, -60, -55, -50, -55, -45, -40, -35, -40, -25)&lt;br /&gt;
&lt;br /&gt;
Now go ahead and find a line with cbrange:&lt;br /&gt;
&lt;br /&gt;
 set ylabel 'Time (seconds)'&lt;br /&gt;
 set cbrange [-100:-50]&lt;br /&gt;
&lt;br /&gt;
I guess, one already gets the point - change cbrange to match the new cbtics:&lt;br /&gt;
&lt;br /&gt;
 set ylabel 'Time (seconds)'&lt;br /&gt;
 #set cbrange [-100:-50]&lt;br /&gt;
 set cbrange [-85:-35]&lt;br /&gt;
&lt;br /&gt;
Save the file and you are done. Schedule some observations and watch the new colors. Maybe you can just improve it a little more but keep in mind: always keep a bit of the noise floor into the waterfalls, so you can see the whole signals dynamic range. I love it, when there are only a few dots of the noise.&lt;/div&gt;</summary>
		<author><name>Kerel</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Adjusting_the_SatNOGS_Client&amp;diff=2132</id>
		<title>Adjusting the SatNOGS Client</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Adjusting_the_SatNOGS_Client&amp;diff=2132"/>
		<updated>2018-06-08T08:04:49Z</updated>

		<summary type="html">&lt;p&gt;Kerel: /* SatNOGS station adjustments */ Don&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(This page is a port of [https://community.libre.space/t/how-to-do-some-client-adjustments/1604/1 DL4PD's excellent post] to the SatNOGS forum.)&lt;br /&gt;
&lt;br /&gt;
== Prerequisites / dependencies ==&lt;br /&gt;
&lt;br /&gt;
This page assumes:&lt;br /&gt;
&lt;br /&gt;
* you've read all the [[Get Started|Getting Started]] page, as well as the pages linked under &amp;quot;Build&amp;quot; and &amp;quot;Operate&amp;quot; on the [[Main Page]]&lt;br /&gt;
* you've already made your [[Operation|first observations]] and have some waterfalls in the [[Network]]&lt;br /&gt;
* you've installed [http://gqrx.dk/download install gqrx] on your local computer.&lt;br /&gt;
&lt;br /&gt;
== SatNOGS station adjustments ==&lt;br /&gt;
&lt;br /&gt;
Now you've come to a point where you want to know how well your station is performing.  The first step is to determine your frequency offset.&lt;br /&gt;
&lt;br /&gt;
=== automatic adjustment via kalibrate-rtl ===&lt;br /&gt;
&lt;br /&gt;
As a more comfortable way to get the ppm of your SDR the tool ''kal'' from https://github.com/viraptor/kalibrate-rtl can be used.&lt;br /&gt;
At the moment you propably have to get and build it by yourself.&lt;br /&gt;
&lt;br /&gt;
When using the pre-built image for the Raspberry Pi, you have&lt;br /&gt;
to install the following dependencies:&lt;br /&gt;
 $ sudo apt-get install libtool pkg-config libfftw3-dev librtlsdr-dev&lt;br /&gt;
&lt;br /&gt;
Then you can build and install it with&lt;br /&gt;
 $ ./bootstrap&lt;br /&gt;
 $ CXXFLAGS='-W -Wall -O3' ./configure&lt;br /&gt;
 $ make&lt;br /&gt;
 $ sudo make install&lt;br /&gt;
&lt;br /&gt;
For usage, see available parameters:&lt;br /&gt;
 $ kal -h&lt;br /&gt;
 kalibrate v0.4.1-rtl, Copyright (c) 2010, Joshua Lackey&lt;br /&gt;
 modified for use with rtl-sdr devices, Copyright (c) 2012, Steve Markgraf&lt;br /&gt;
 Usage:&lt;br /&gt;
 	GSM Base Station Scan:&lt;br /&gt;
 		kal &amp;lt;-s band indicator&amp;gt; [options]&lt;br /&gt;
 &lt;br /&gt;
 	Clock Offset Calculation:&lt;br /&gt;
 		kal &amp;lt;-f frequency | -c channel&amp;gt; [options]&lt;br /&gt;
 &lt;br /&gt;
 Where options are:&lt;br /&gt;
 	-s	band to scan (GSM850, GSM-R, GSM900, EGSM, DCS, PCS)&lt;br /&gt;
 	-f	frequency of nearby GSM base station&lt;br /&gt;
 	-c	channel of nearby GSM base station&lt;br /&gt;
 	-b	band indicator (GSM850, GSM-R, GSM900, EGSM, DCS, PCS)&lt;br /&gt;
 	-g	gain in dB&lt;br /&gt;
 	-d	rtl-sdr device index&lt;br /&gt;
 	-e	initial frequency error in ppm&lt;br /&gt;
 	-E	manual frequency offset in hz&lt;br /&gt;
 	-v	verbose&lt;br /&gt;
 	-D	enable debug messages&lt;br /&gt;
 	-h	help&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
choose an appropriate band for scanning:&lt;br /&gt;
 $ kal -s GSM900&lt;br /&gt;
 Found 1 device(s):&lt;br /&gt;
   0:  Generic RTL2832U OEM&lt;br /&gt;
 &lt;br /&gt;
 Using device 0: Generic RTL2832U OEM&lt;br /&gt;
 Found Elonics E4000 tuner&lt;br /&gt;
 Exact sample rate is: 270833.002142 Hz&lt;br /&gt;
 kal: Scanning for GSM-900 base stations.&lt;br /&gt;
 GSM-900:&lt;br /&gt;
     chan:   33 (941.6MHz - 155Hz)    power: 4877018.31&lt;br /&gt;
     chan:   41 (943.2MHz - 208Hz)    power: 2265226.87&lt;br /&gt;
     chan:   43 (943.6MHz - 133Hz)    power: 1287992.91&lt;br /&gt;
     chan:   55 (946.0MHz - 179Hz)    power: 1041611.46&lt;br /&gt;
     chan:   57 (946.4MHz - 252Hz)    power: 1405188.40&lt;br /&gt;
     chan:   66 (948.2MHz -  13Hz)    power: 5027059.56&lt;br /&gt;
     chan:   79 (950.8MHz - 111Hz)    power: 1088677.82&lt;br /&gt;
     chan:   84 (951.8MHz - 231Hz)    power:  945912.38&lt;br /&gt;
     chan:   86 (952.2MHz - 212Hz)    power: 2314696.93&lt;br /&gt;
     chan:  116 (958.2MHz - 180Hz)    power:  862935.90&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
choose a strong channel:&lt;br /&gt;
 $ kal -c 33&lt;br /&gt;
 Found 1 device(s):&lt;br /&gt;
   0:  Generic RTL2832U OEM&lt;br /&gt;
 &lt;br /&gt;
 Using device 0: Generic RTL2832U OEM&lt;br /&gt;
 Found Elonics E4000 tuner&lt;br /&gt;
 Exact sample rate is: 270833.002142 Hz&lt;br /&gt;
 kal: Calculating clock frequency offset.&lt;br /&gt;
 Using GSM-900 channel 33 (941.6MHz)&lt;br /&gt;
 Tuned to 941.600000MHz (reported tuner error: 0Hz)&lt;br /&gt;
 average		[min, max]	(range, stddev)&lt;br /&gt;
 - 206Hz		[-293, -89]	(204, 56.913998)&lt;br /&gt;
 overruns: 0&lt;br /&gt;
 not found: 0&lt;br /&gt;
 average absolute error: 0.219 ppm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now enter the measured ppm in satnogs-setup and you're done.&lt;br /&gt;
&lt;br /&gt;
=== manual adjustment ===&lt;br /&gt;
&lt;br /&gt;
To start, please connect to your Raspberry Pi's local web interface. By default the URL is something like &amp;quot;http://192.168.0.5:5000&amp;quot;; you'll need to figure out what it is for your client. In the upper right corner there is a big green button where you can set your ground station in standalone mode.&lt;br /&gt;
&lt;br /&gt;
Here's how it looks in network mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;[[File:SatNOGS_local_network_mode.png|center|600px]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And here's how it looks when it's switched to standalone mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;[[File:SatNOGS_local_standalone_mode.png|center|600px]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Message|&lt;br /&gt;
* Do not forget to set this back to network mode when done with your adjustments!&lt;br /&gt;
* While your station is in standalone mode, no observations from the SatNOGS network will be executed!}}&lt;br /&gt;
&lt;br /&gt;
After setting to standalone mode, please SSH to your SatNOGS Pi with your well-known user account; by default, this is the user &amp;quot;pi&amp;quot;.  After successful authorization you will see a prompt like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Linux satnogs190-dev 4.9.59-v7+ #1047 SMP Sun Oct 29 12:19:23 GMT 2017 armv7l&lt;br /&gt;
&lt;br /&gt;
 The programs included with the Debian GNU/Linux system are free software;&lt;br /&gt;
 the exact distribution terms for each program are described in the&lt;br /&gt;
 individual files in /usr/share/doc/*/copyright.&lt;br /&gt;
&lt;br /&gt;
 Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent&lt;br /&gt;
 permitted by applicable law.&lt;br /&gt;
 Last login: Fri Jan 12 07:34:11 2018 from 192.168.10.35&lt;br /&gt;
 pd@satnogs190-dev:~ $&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now go ahead and start the &amp;quot;RTL SDR spectrum server&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 $ rtl_tcp -a 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
If everything is fine, you will get an output like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Found 1 device(s):&lt;br /&gt;
   0:  Generic, RTL2832U, SN: 77771111153705700&lt;br /&gt;
&lt;br /&gt;
 Using device 0: Generic RTL2832U&lt;br /&gt;
 Found Rafael Micro R820T tuner&lt;br /&gt;
 [R82XX] PLL not locked!&lt;br /&gt;
 Tuned to 100000000 Hz.&lt;br /&gt;
 listening...&lt;br /&gt;
&lt;br /&gt;
Use the device argument 'rtl_tcp=0.0.0.0:1234' in OsmoSDR (gr-osmosdr) source to receive samples in GRC and control rtl_tcp parameters (frequency, gain, ...). No further output will be generated until you connect to this server. Hitting C-c will stop it and the command line appears. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Message|You will have to stop this server if you want to go back to network mode - do not forget about this!}}&lt;br /&gt;
&lt;br /&gt;
Now go ahead and start gqrx:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;[[File:Startup_gqrx.png|center|600px]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will have to go to the setup menu, either by clicking on the &amp;quot;harde&amp;quot; symbol, or navigating through the menu item called &amp;quot;File -&amp;gt; I/O Devices&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;[[File:Gqrx_io_configuration.png|center]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Click on &amp;quot;Device&amp;quot; and chose &amp;quot;RTL-SDR Spectrum Server&amp;quot;&lt;br /&gt;
Edit &amp;quot;Device string&amp;quot; to match your Pi's IP address, Port defaults to 1234,&lt;br /&gt;
which is the same as the default setting for your server you just started on&lt;br /&gt;
the Pi.&lt;br /&gt;
Set &amp;quot;Input Rate&amp;quot; to something network friendly - we do not need the whole spectrum the RTL SDR is able to convert. 1,8 MSPS (1800000) should be OK&lt;br /&gt;
Depending on this setting your network will get very busy. Using wireless LAN is not recommended. Every sample has a data size of 16 bits, so the previous setting of 1,8MSPS/s results in a network load of 28,8 MBit/s:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;1,8 MSPS * 16 bit/s = 28,8 MBit/s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Audio Output -&amp;gt; Device&amp;quot; and &amp;quot;-&amp;gt; Sample rate&amp;quot; should be set by default,&lt;br /&gt;
values on average soundcards would be something like &amp;quot;Default, 48 kHz&amp;quot;&lt;br /&gt;
Close the dialogue by clicking &amp;quot;OK&amp;quot;&lt;br /&gt;
Your RTL-SDR spectrum server on the Pi should now show up a connection from&lt;br /&gt;
your computer running gqrx.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 client accepted!&lt;br /&gt;
 set gain mode 1&lt;br /&gt;
 set agc mode 0&lt;br /&gt;
 set direct sampling 0&lt;br /&gt;
 Disabled direct sampling mode&lt;br /&gt;
 set offset tuning 0&lt;br /&gt;
 set sample rate 960000&lt;br /&gt;
 ll+, now 1&lt;br /&gt;
 ll+, now 2&lt;br /&gt;
 set freq correction 42&lt;br /&gt;
 set freq 144500000&lt;br /&gt;
 set gain mode 0&lt;br /&gt;
 set agc mode 1&lt;br /&gt;
 set gain 0&lt;br /&gt;
 set freq 145814000&lt;br /&gt;
 ll-, now 0&lt;br /&gt;
 ll+, now 1&lt;br /&gt;
 ll+, now 2&lt;br /&gt;
 ll+, now 3&lt;br /&gt;
 ll+, now 4&lt;br /&gt;
 ll+, now 5&lt;br /&gt;
 ll+, now 6&lt;br /&gt;
 ll+, now 7&lt;br /&gt;
 ll+, now 8&lt;br /&gt;
 ll+, now 9&lt;br /&gt;
 ll+, now 10&lt;br /&gt;
 ll+, now 11&lt;br /&gt;
 ll+, now 12&lt;br /&gt;
 ll+, now 13&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The only thing left now is to &amp;quot;Start DSP&amp;quot; - from the menu item &amp;quot;File&amp;quot;, by hitting C-d or simply clicking the Play-Button.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;[[File:Gqrx_running.png|center|600px]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go for a known local HAM radio repeater or a CW beacon transmitter and set your demodulator accordingly. Narrow Band FM or CW is best to discover ppm error offset, which is the frequency offset in parts per million (ppm) which is always there with standard RTL-SDR dongles. It is also highly temperature dependent, so one might have to re-evaluate this from time to time. Enter the known frequency of your chosen transmitter (NFM repaeter or CW beacon). I have chosen a very known CW beacon just some km away from my home: ON4VHF on 144.718000 MHz. Walk through the tab called &amp;quot;Receiver options&amp;quot; and change the settings to fit the beacon: &amp;quot;Filter width Normal&amp;quot;, &amp;quot;Filter shape Normal&amp;quot;, &amp;quot;Mode CW-L&amp;quot;, &amp;quot;AGC Medium&amp;quot;. Set Squelch to something low, so you can hear noise from your speakers. Maybe you have to Adjust the audio &amp;quot;Gain&amp;quot; to something like &amp;quot;0.0 dB&amp;quot;. You can adjust this to fit your needs to hear noise. With ppm error, which is default, set to 0.0 ppm, one can just guess where your receiver is listening. Anyway, just set it to 144.718000 MHz and try to find your beacon. You can see the result for my RTL SDR dongle down here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;[[File:Gqrx_ppm-error_offset.png|center|600px]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now got to the tab called &amp;quot;Input controls&amp;quot; and find an input field called &amp;quot;Freq. correction&amp;quot;. By default this should show &amp;quot;0,0 ppm&amp;quot;. Set frequency back to your beacons transmit frequency. After this you have to increase the Freq. correction value as long until you can hear the beacon. Now zoom into the panorama by locating your mouse pointer in the range where the frequency values are printed below the panorama, just above the waterfall. Try to fit the Freq. correction value as good as possible, that your receivers red indication line is just in the middle of the transmitters bandwidth.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;[[File:Gqrx_ppm-error_corrected.png|center]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now write down the evaluated ppm correction value and exit gqrx as well as the RTL SDR spectrum server. In the command line now available start satnogs-setup:&lt;br /&gt;
&lt;br /&gt;
 $ sudo satnogs-setup&lt;br /&gt;
&lt;br /&gt;
Navigate to &amp;quot;Advanced -&amp;gt; SATNOGS_PPM_ERROR&amp;quot; and enter the new value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;[[File:Fcecd26ca08cf3d23dffce719ef1dd13a4f7109d.png|center]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the satnogs-setup with &amp;quot;Back&amp;quot;, then &amp;quot;Apply Configuration&amp;quot; (this might take a while) and &amp;quot;Back&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You are done with frequency offset correction.&lt;br /&gt;
&lt;br /&gt;
{{Message|With gqrx, you get a nice tool to do some SDR stuff by the way. Just play around a bit and get familiar with all that stuff. Just keep in mind that, as long as you run the RTL SDR Spectrum server or you have set your client into standalone mode, nothing is done from network.}}&lt;br /&gt;
&lt;br /&gt;
== Enhancements ==&lt;br /&gt;
&lt;br /&gt;
=== Waterfall color improvements ===&lt;br /&gt;
&lt;br /&gt;
To get some nicer waterfalls one has to dig into waterfall plotting script. This is a static one and, so far, cannot be configured through satnogs-setup. Anyway: there is no magic behind it and one can understand what the changes are once you have seen them.&lt;br /&gt;
&lt;br /&gt;
Log into the Pi and start at making a copy of /usr/share/satnogs/scripts/satnogs_waterfall.gp, just in case:&lt;br /&gt;
&lt;br /&gt;
 $ cp /usr/share/satnogs/scripts/satnogs_waterfall.gp ~/.&lt;br /&gt;
&lt;br /&gt;
Now you can start editing the script:&lt;br /&gt;
&lt;br /&gt;
 $ sudo nano /usr/share/satnogs/scripts/satnogs_waterfall.gp&lt;br /&gt;
&lt;br /&gt;
Search for a line starting with cbtics:&lt;br /&gt;
&lt;br /&gt;
 # Spectravue palette and scale&lt;br /&gt;
 set cbtics (-110, -105, -100, -95, -90, -85, -80, -75, -70, -65, -60, -55, -50, -55, -40)&lt;br /&gt;
&lt;br /&gt;
Comment it out by adding a #, copy, paste and edit that new line that it matches something like this:&lt;br /&gt;
&lt;br /&gt;
 # Spectravue palette and scale&lt;br /&gt;
 #set cbtics (-110, -105, -100, -95, -90, -85, -80, -75, -70, -65, -60, -55, -50, -55, -40)&lt;br /&gt;
 set cbtics (-90, -85, -80, -75, -70, -65, -60, -55, -50, -55, -45, -40, -35, -40, -25)&lt;br /&gt;
&lt;br /&gt;
Now go ahead and find a line with cbrange:&lt;br /&gt;
&lt;br /&gt;
 set ylabel 'Time (seconds)'&lt;br /&gt;
 set cbrange [-100:-50]&lt;br /&gt;
&lt;br /&gt;
I guess, one already gets the point - change cbrange to match the new cbtics:&lt;br /&gt;
&lt;br /&gt;
 set ylabel 'Time (seconds)'&lt;br /&gt;
 #set cbrange [-100:-50]&lt;br /&gt;
 set cbrange [-85:-35]&lt;br /&gt;
&lt;br /&gt;
Save the file and you are done. Schedule some observations and watch the new colors. Maybe you can just improve it a little more but keep in mind: always keep a bit of the noise floor into the waterfalls, so you can see the whole signals dynamic range. I love it, when there are only a few dots of the noise.&lt;/div&gt;</summary>
		<author><name>Kerel</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Adjusting_the_SatNOGS_Client&amp;diff=2131</id>
		<title>Adjusting the SatNOGS Client</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Adjusting_the_SatNOGS_Client&amp;diff=2131"/>
		<updated>2018-06-08T05:27:45Z</updated>

		<summary type="html">&lt;p&gt;Kerel: /* automatic adjustment via kalibrate-rtl */ Add build instructions for kalibrate-rtl&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(This page is a port of [https://community.libre.space/t/how-to-do-some-client-adjustments/1604/1 DL4PD's excellent post] to the SatNOGS forum.)&lt;br /&gt;
&lt;br /&gt;
== Prerequisites / dependencies ==&lt;br /&gt;
&lt;br /&gt;
This page assumes:&lt;br /&gt;
&lt;br /&gt;
* you've read all the [[Get Started|Getting Started]] page, as well as the pages linked under &amp;quot;Build&amp;quot; and &amp;quot;Operate&amp;quot; on the [[Main Page]]&lt;br /&gt;
* you've already made your [[Operation|first observations]] and have some waterfalls in the [[Network]]&lt;br /&gt;
* you've installed [http://gqrx.dk/download install gqrx] on your local computer.&lt;br /&gt;
&lt;br /&gt;
== SatNOGS station adjustments ==&lt;br /&gt;
&lt;br /&gt;
Now you've come to a point where you want to know how well your station is performing.  The first step is to determine your frequency offset.&lt;br /&gt;
&lt;br /&gt;
=== automatic adjustment via kalibrate-rtl ===&lt;br /&gt;
&lt;br /&gt;
As a more comfortable way to get the ppm of your SDR the tool ''kal'' from https://github.com/viraptor/kalibrate-rtl can be used.&lt;br /&gt;
At the moment you propably have to get and build it by yourself.&lt;br /&gt;
&lt;br /&gt;
When using the pre-built image for the Raspberry Pi, you have&lt;br /&gt;
to install the following dependencies:&lt;br /&gt;
 $ sudo apt-get install libtool pkg-config libfftw3-dev librtlsdr-dev&lt;br /&gt;
&lt;br /&gt;
Then you can build and install it with&lt;br /&gt;
 $ ./bootstrap&lt;br /&gt;
 $ CXXFLAGS='-W -Wall -O3' ./configure&lt;br /&gt;
 $ make&lt;br /&gt;
 $ sudo make install&lt;br /&gt;
&lt;br /&gt;
For usage, see available parameters:&lt;br /&gt;
 root@raspberrypi:~# kal -h&lt;br /&gt;
 kalibrate v0.4.1-rtl, Copyright (c) 2010, Joshua Lackey&lt;br /&gt;
 modified for use with rtl-sdr devices, Copyright (c) 2012, Steve Markgraf&lt;br /&gt;
 Usage:&lt;br /&gt;
 	GSM Base Station Scan:&lt;br /&gt;
 		kal &amp;lt;-s band indicator&amp;gt; [options]&lt;br /&gt;
 &lt;br /&gt;
 	Clock Offset Calculation:&lt;br /&gt;
 		kal &amp;lt;-f frequency | -c channel&amp;gt; [options]&lt;br /&gt;
 &lt;br /&gt;
 Where options are:&lt;br /&gt;
 	-s	band to scan (GSM850, GSM-R, GSM900, EGSM, DCS, PCS)&lt;br /&gt;
 	-f	frequency of nearby GSM base station&lt;br /&gt;
 	-c	channel of nearby GSM base station&lt;br /&gt;
 	-b	band indicator (GSM850, GSM-R, GSM900, EGSM, DCS, PCS)&lt;br /&gt;
 	-g	gain in dB&lt;br /&gt;
 	-d	rtl-sdr device index&lt;br /&gt;
 	-e	initial frequency error in ppm&lt;br /&gt;
 	-E	manual frequency offset in hz&lt;br /&gt;
 	-v	verbose&lt;br /&gt;
 	-D	enable debug messages&lt;br /&gt;
 	-h	help&lt;br /&gt;
 root@raspberrypi:~#&lt;br /&gt;
&lt;br /&gt;
choose an appropriate band for scanning:&lt;br /&gt;
 root@raspberrypi:~# kal -s GSM900&lt;br /&gt;
 Found 1 device(s):&lt;br /&gt;
   0:  Generic RTL2832U OEM&lt;br /&gt;
 &lt;br /&gt;
 Using device 0: Generic RTL2832U OEM&lt;br /&gt;
 Found Elonics E4000 tuner&lt;br /&gt;
 Exact sample rate is: 270833.002142 Hz&lt;br /&gt;
 kal: Scanning for GSM-900 base stations.&lt;br /&gt;
 GSM-900:&lt;br /&gt;
     chan:   33 (941.6MHz - 155Hz)    power: 4877018.31&lt;br /&gt;
     chan:   41 (943.2MHz - 208Hz)    power: 2265226.87&lt;br /&gt;
     chan:   43 (943.6MHz - 133Hz)    power: 1287992.91&lt;br /&gt;
     chan:   55 (946.0MHz - 179Hz)    power: 1041611.46&lt;br /&gt;
     chan:   57 (946.4MHz - 252Hz)    power: 1405188.40&lt;br /&gt;
     chan:   66 (948.2MHz -  13Hz)    power: 5027059.56&lt;br /&gt;
     chan:   79 (950.8MHz - 111Hz)    power: 1088677.82&lt;br /&gt;
     chan:   84 (951.8MHz - 231Hz)    power:  945912.38&lt;br /&gt;
     chan:   86 (952.2MHz - 212Hz)    power: 2314696.93&lt;br /&gt;
     chan:  116 (958.2MHz - 180Hz)    power:  862935.90&lt;br /&gt;
 root@raspberrypi:~#&lt;br /&gt;
&lt;br /&gt;
choose a strong channel:&lt;br /&gt;
 root@raspberrypi:~# kal -c 33&lt;br /&gt;
 Found 1 device(s):&lt;br /&gt;
   0:  Generic RTL2832U OEM&lt;br /&gt;
 &lt;br /&gt;
 Using device 0: Generic RTL2832U OEM&lt;br /&gt;
 Found Elonics E4000 tuner&lt;br /&gt;
 Exact sample rate is: 270833.002142 Hz&lt;br /&gt;
 kal: Calculating clock frequency offset.&lt;br /&gt;
 Using GSM-900 channel 33 (941.6MHz)&lt;br /&gt;
 Tuned to 941.600000MHz (reported tuner error: 0Hz)&lt;br /&gt;
 average		[min, max]	(range, stddev)&lt;br /&gt;
 - 206Hz		[-293, -89]	(204, 56.913998)&lt;br /&gt;
 overruns: 0&lt;br /&gt;
 not found: 0&lt;br /&gt;
 average absolute error: 0.219 ppm&lt;br /&gt;
 root@raspberrypi:~#&lt;br /&gt;
&lt;br /&gt;
Now enter the measured ppm in satnogs-setup and you're done.&lt;br /&gt;
&lt;br /&gt;
=== manual adjustment ===&lt;br /&gt;
&lt;br /&gt;
To start, please connect to your Raspberry Pi's local web interface. By default the URL is something like &amp;quot;http://192.168.0.5:5000&amp;quot;; you'll need to figure out what it is for your client. In the upper right corner there is a big green button where you can set your ground station in standalone mode.&lt;br /&gt;
&lt;br /&gt;
Here's how it looks in network mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;[[File:SatNOGS_local_network_mode.png|center|600px]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And here's how it looks when it's switched to standalone mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;[[File:SatNOGS_local_standalone_mode.png|center|600px]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Message|&lt;br /&gt;
* Do not forget to set this back to network mode when done with your adjustments!&lt;br /&gt;
* While your station is in standalone mode, no observations from the SatNOGS network will be executed!}}&lt;br /&gt;
&lt;br /&gt;
After setting to standalone mode, please SSH to your SatNOGS Pi with your well-known user account; by default, this is the user &amp;quot;pi&amp;quot;.  After successful authorization you will see a prompt like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Linux satnogs190-dev 4.9.59-v7+ #1047 SMP Sun Oct 29 12:19:23 GMT 2017 armv7l&lt;br /&gt;
&lt;br /&gt;
 The programs included with the Debian GNU/Linux system are free software;&lt;br /&gt;
 the exact distribution terms for each program are described in the&lt;br /&gt;
 individual files in /usr/share/doc/*/copyright.&lt;br /&gt;
&lt;br /&gt;
 Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent&lt;br /&gt;
 permitted by applicable law.&lt;br /&gt;
 Last login: Fri Jan 12 07:34:11 2018 from 192.168.10.35&lt;br /&gt;
 pd@satnogs190-dev:~ $&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now go ahead and start the &amp;quot;RTL SDR spectrum server&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 $ rtl_tcp -a 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
If everything is fine, you will get an output like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Found 1 device(s):&lt;br /&gt;
   0:  Generic, RTL2832U, SN: 77771111153705700&lt;br /&gt;
&lt;br /&gt;
 Using device 0: Generic RTL2832U&lt;br /&gt;
 Found Rafael Micro R820T tuner&lt;br /&gt;
 [R82XX] PLL not locked!&lt;br /&gt;
 Tuned to 100000000 Hz.&lt;br /&gt;
 listening...&lt;br /&gt;
&lt;br /&gt;
Use the device argument 'rtl_tcp=0.0.0.0:1234' in OsmoSDR (gr-osmosdr) source to receive samples in GRC and control rtl_tcp parameters (frequency, gain, ...). No further output will be generated until you connect to this server. Hitting C-c will stop it and the command line appears. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Message|You will have to stop this server if you want to go back to network mode - do not forget about this!}}&lt;br /&gt;
&lt;br /&gt;
Now go ahead and start gqrx:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;[[File:Startup_gqrx.png|center|600px]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will have to go to the setup menu, either by clicking on the &amp;quot;harde&amp;quot; symbol, or navigating through the menu item called &amp;quot;File -&amp;gt; I/O Devices&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;[[File:Gqrx_io_configuration.png|center]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Click on &amp;quot;Device&amp;quot; and chose &amp;quot;RTL-SDR Spectrum Server&amp;quot;&lt;br /&gt;
Edit &amp;quot;Device string&amp;quot; to match your Pi's IP address, Port defaults to 1234,&lt;br /&gt;
which is the same as the default setting for your server you just started on&lt;br /&gt;
the Pi.&lt;br /&gt;
Set &amp;quot;Input Rate&amp;quot; to something network friendly - we do not need the whole spectrum the RTL SDR is able to convert. 1,8 MSPS (1800000) should be OK&lt;br /&gt;
Depending on this setting your network will get very busy. Using wireless LAN is not recommended. Every sample has a data size of 16 bits, so the previous setting of 1,8MSPS/s results in a network load of 28,8 MBit/s:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;1,8 MSPS * 16 bit/s = 28,8 MBit/s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Audio Output -&amp;gt; Device&amp;quot; and &amp;quot;-&amp;gt; Sample rate&amp;quot; should be set by default,&lt;br /&gt;
values on average soundcards would be something like &amp;quot;Default, 48 kHz&amp;quot;&lt;br /&gt;
Close the dialogue by clicking &amp;quot;OK&amp;quot;&lt;br /&gt;
Your RTL-SDR spectrum server on the Pi should now show up a connection from&lt;br /&gt;
your computer running gqrx.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 client accepted!&lt;br /&gt;
 set gain mode 1&lt;br /&gt;
 set agc mode 0&lt;br /&gt;
 set direct sampling 0&lt;br /&gt;
 Disabled direct sampling mode&lt;br /&gt;
 set offset tuning 0&lt;br /&gt;
 set sample rate 960000&lt;br /&gt;
 ll+, now 1&lt;br /&gt;
 ll+, now 2&lt;br /&gt;
 set freq correction 42&lt;br /&gt;
 set freq 144500000&lt;br /&gt;
 set gain mode 0&lt;br /&gt;
 set agc mode 1&lt;br /&gt;
 set gain 0&lt;br /&gt;
 set freq 145814000&lt;br /&gt;
 ll-, now 0&lt;br /&gt;
 ll+, now 1&lt;br /&gt;
 ll+, now 2&lt;br /&gt;
 ll+, now 3&lt;br /&gt;
 ll+, now 4&lt;br /&gt;
 ll+, now 5&lt;br /&gt;
 ll+, now 6&lt;br /&gt;
 ll+, now 7&lt;br /&gt;
 ll+, now 8&lt;br /&gt;
 ll+, now 9&lt;br /&gt;
 ll+, now 10&lt;br /&gt;
 ll+, now 11&lt;br /&gt;
 ll+, now 12&lt;br /&gt;
 ll+, now 13&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The only thing left now is to &amp;quot;Start DSP&amp;quot; - from the menu item &amp;quot;File&amp;quot;, by hitting C-d or simply clicking the Play-Button.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;[[File:Gqrx_running.png|center|600px]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go for a known local HAM radio repeater or a CW beacon transmitter and set your demodulator accordingly. Narrow Band FM or CW is best to discover ppm error offset, which is the frequency offset in parts per million (ppm) which is always there with standard RTL-SDR dongles. It is also highly temperature dependent, so one might have to re-evaluate this from time to time. Enter the known frequency of your chosen transmitter (NFM repaeter or CW beacon). I have chosen a very known CW beacon just some km away from my home: ON4VHF on 144.718000 MHz. Walk through the tab called &amp;quot;Receiver options&amp;quot; and change the settings to fit the beacon: &amp;quot;Filter width Normal&amp;quot;, &amp;quot;Filter shape Normal&amp;quot;, &amp;quot;Mode CW-L&amp;quot;, &amp;quot;AGC Medium&amp;quot;. Set Squelch to something low, so you can hear noise from your speakers. Maybe you have to Adjust the audio &amp;quot;Gain&amp;quot; to something like &amp;quot;0.0 dB&amp;quot;. You can adjust this to fit your needs to hear noise. With ppm error, which is default, set to 0.0 ppm, one can just guess where your receiver is listening. Anyway, just set it to 144.718000 MHz and try to find your beacon. You can see the result for my RTL SDR dongle down here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;[[File:Gqrx_ppm-error_offset.png|center|600px]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now got to the tab called &amp;quot;Input controls&amp;quot; and find an input field called &amp;quot;Freq. correction&amp;quot;. By default this should show &amp;quot;0,0 ppm&amp;quot;. Set frequency back to your beacons transmit frequency. After this you have to increase the Freq. correction value as long until you can hear the beacon. Now zoom into the panorama by locating your mouse pointer in the range where the frequency values are printed below the panorama, just above the waterfall. Try to fit the Freq. correction value as good as possible, that your receivers red indication line is just in the middle of the transmitters bandwidth.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;[[File:Gqrx_ppm-error_corrected.png|center]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now write down the evaluated ppm correction value and exit gqrx as well as the RTL SDR spectrum server. In the command line now available start satnogs-setup:&lt;br /&gt;
&lt;br /&gt;
 $ sudo satnogs-setup&lt;br /&gt;
&lt;br /&gt;
Navigate to &amp;quot;Advanced -&amp;gt; SATNOGS_PPM_ERROR&amp;quot; and enter the new value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;[[File:Fcecd26ca08cf3d23dffce719ef1dd13a4f7109d.png|center]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the satnogs-setup with &amp;quot;Back&amp;quot;, then &amp;quot;Apply Configuration&amp;quot; (this might take a while) and &amp;quot;Back&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You are done with frequency offset correction.&lt;br /&gt;
&lt;br /&gt;
{{Message|With gqrx, you get a nice tool to do some SDR stuff by the way. Just play around a bit and get familiar with all that stuff. Just keep in mind that, as long as you run the RTL SDR Spectrum server or you have set your client into standalone mode, nothing is done from network.}}&lt;br /&gt;
&lt;br /&gt;
== Enhancements ==&lt;br /&gt;
&lt;br /&gt;
=== Waterfall color improvements ===&lt;br /&gt;
&lt;br /&gt;
To get some nicer waterfalls one has to dig into waterfall plotting script. This is a static one and, so far, cannot be configured through satnogs-setup. Anyway: there is no magic behind it and one can understand what the changes are once you have seen them.&lt;br /&gt;
&lt;br /&gt;
Log into the Pi and start at making a copy of /usr/share/satnogs/scripts/satnogs_waterfall.gp, just in case:&lt;br /&gt;
&lt;br /&gt;
 $ cp /usr/share/satnogs/scripts/satnogs_waterfall.gp ~/.&lt;br /&gt;
&lt;br /&gt;
Now you can start editing the script:&lt;br /&gt;
&lt;br /&gt;
 $ sudo nano /usr/share/satnogs/scripts/satnogs_waterfall.gp&lt;br /&gt;
&lt;br /&gt;
Search for a line starting with cbtics:&lt;br /&gt;
&lt;br /&gt;
 # Spectravue palette and scale&lt;br /&gt;
 set cbtics (-110, -105, -100, -95, -90, -85, -80, -75, -70, -65, -60, -55, -50, -55, -40)&lt;br /&gt;
&lt;br /&gt;
Comment it out by adding a #, copy, paste and edit that new line that it matches something like this:&lt;br /&gt;
&lt;br /&gt;
 # Spectravue palette and scale&lt;br /&gt;
 #set cbtics (-110, -105, -100, -95, -90, -85, -80, -75, -70, -65, -60, -55, -50, -55, -40)&lt;br /&gt;
 set cbtics (-90, -85, -80, -75, -70, -65, -60, -55, -50, -55, -45, -40, -35, -40, -25)&lt;br /&gt;
&lt;br /&gt;
Now go ahead and find a line with cbrange:&lt;br /&gt;
&lt;br /&gt;
 set ylabel 'Time (seconds)'&lt;br /&gt;
 set cbrange [-100:-50]&lt;br /&gt;
&lt;br /&gt;
I guess, one already gets the point - change cbrange to match the new cbtics:&lt;br /&gt;
&lt;br /&gt;
 set ylabel 'Time (seconds)'&lt;br /&gt;
 #set cbrange [-100:-50]&lt;br /&gt;
 set cbrange [-85:-35]&lt;br /&gt;
&lt;br /&gt;
Save the file and you are done. Schedule some observations and watch the new colors. Maybe you can just improve it a little more but keep in mind: always keep a bit of the noise floor into the waterfalls, so you can see the whole signals dynamic range. I love it, when there are only a few dots of the noise.&lt;/div&gt;</summary>
		<author><name>Kerel</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Main_Page&amp;diff=1956</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Main_Page&amp;diff=1956"/>
		<updated>2018-02-25T15:37:15Z</updated>

		<summary type="html">&lt;p&gt;Kerel: layout: Fix overfull box &amp;quot;Operate&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;p&amp;gt;SatNOGS is an integral part of the [https://libre.space Libre Space Foundation]. The project aims to build a global network of satellite ground stations. Designed as an open source participatory project which is straightforward to build using commonly available parts and some 3D printed elements. A ground station is built to interact with a website that holds key satellite information. The web interface allows a user to schedule a satellite observation of any of the networked ground stations.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Here you can find more information on how to get started with SatNOGS, building and operating a satellite ground station and joining the SatNOGS Network.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;A SatNOGS ground station can be made in a variety of ways. The reference design uses a Raspberry Pi and RTL-SDR dongle with either stationary antennas or either a SatNOGS rotator or a commercial amateur radio rotator. There is provision to use amateur radio transceivers or alternative SDR technology. The image below explains the system.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;[[File:Satnogs_imagemap.png|center]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border-radius: 3px; width: 16%; height: 300px; background-color: #f6f6f6; float: left; display: block; margin: 1.5%; border: 1px solid #A7D7F9; text-align: center; padding: 2.5%; padding-top: 0px;&amp;quot;&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&amp;lt;h2&amp;gt;What is SatNOGS&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;[[Intro|Intro to SatNOGS]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;[[Ground Stations|Intro to ground stations]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;[[Glossary]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border-radius: 3px; width: 16%; height: 300px; background-color: #f6f6f6; float: left; display: block; margin: 1.5%; border: 1px solid #A7D7F9; text-align: center; padding: 2.5%; padding-top: 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Build&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;[[Get_Started|Learn how to get started]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;[[Build|Build a ground station]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;[[Rotators|Rotators]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;[[Antennas|Antennas]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;[[Radio|Signal Reception]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border-radius: 3px; width: 16%; height: 300px; background-color: #f6f6f6; float: left; display: block; margin: 1.5%; border: 1px solid #A7D7F9; text-align: center; padding: 2.5%; padding-top: 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Operate&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;[[Development Environment]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;[[Operation|Scheduling your first observation and operating your station]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;[[Adjusting the SatNOGS Client|Tuning and adjusting your station]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;[[Production Environment]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;[[Satnogs DB]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border-radius: 3px; width: 16%; height: 300px; background-color: #f6f6f6; float: left; display: block; margin: 1.5%; border: 1px solid #A7D7F9; text-align: center; padding: 2.5%; padding-top: 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Contribute&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;[[Software contribution]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;[[Provide documentation]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;[[Satnogs DB]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;[[Troubleshooting|Troubleshooting]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;[[Get_In_Touch|Get in touch and ask for help]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kerel</name></author>
		
	</entry>
</feed>