<?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=Vk5qi</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=Vk5qi"/>
	<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/Special:Contributions/Vk5qi"/>
	<updated>2026-05-30T18:40:06Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.32.0</generator>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Omnidirectional_Station_How_To&amp;diff=3706</id>
		<title>Omnidirectional Station How To</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Omnidirectional_Station_How_To&amp;diff=3706"/>
		<updated>2020-11-22T06:00:31Z</updated>

		<summary type="html">&lt;p&gt;Vk5qi: /* Recommended Satellite Transmitters for Station Performance Benchmarking */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Omnidirectional VHF Turnstile Antenna.jpg|alt=VHF Turnstile Antenna|thumb|VHF Turnstile antenna, [https://network.satnogs.org/stations/23/ SatNOGS Station 23]]]&lt;br /&gt;
This How-To is written to get you quickly receiving satellite data with an Omnidirectional antenna (an antenna that does not move).&lt;br /&gt;
&lt;br /&gt;
==Prerequisites/Background==&lt;br /&gt;
I'm assuming that you are a bit familiar with amateur radio, or linux in general, or you already have a Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
===Expectation Management===&lt;br /&gt;
First off, I'd like to set some expectations around a SatNOGs station with an omnidirectional antenna. Yes, you will be able to hear satellites, Morse code beacons, maybe even some voice contacts on a FM transponder. But for CubeSats with 1 watt transmitters at 9600 baud, it's going to be really difficult to actually decode any data with an omni antenna. You'll definitely see squiggly lines on the waterfall plot, but demodulating the signal and extracting satellite telemetry is going to be pretty difficult.&lt;br /&gt;
&lt;br /&gt;
The only way to get more signal is a better antenna. And a better antenna with more gain is going to be more directional, which means you will need a way to point that antenna at the satellite, and this How-To just got a lot more complicated. So we're not going there.&lt;br /&gt;
&lt;br /&gt;
A better preamp helps a bit, see the LNA section below.&lt;br /&gt;
&lt;br /&gt;
===Hardware Required===&lt;br /&gt;
This is a list of the hardware for indoor/testing purposes:&lt;br /&gt;
&lt;br /&gt;
*Raspberry Pi&lt;br /&gt;
**Power supply + cable (see note below)&lt;br /&gt;
**Up to 16 GB Micro SD card&lt;br /&gt;
**Ethernet cable&lt;br /&gt;
*RTL SDR Blog v3 dongle&lt;br /&gt;
*Various short lengths of coax&lt;br /&gt;
*Preamp/LNA - Or not if your coax is short, see LNA section below&lt;br /&gt;
*Omnidirectional antenna - just a dual mag-mount on a cookie sheet will work OK for stronger satellites&lt;br /&gt;
&lt;br /&gt;
==Setting up the Raspberry Pi==&lt;br /&gt;
I chose the [https://www.raspberrypi.org/products/raspberry-pi-3-model-b/ Raspberry Pi 3 Model B] for my station. SatNOGS is known to work on the RPi 3B, 3B+ and 4 models. &lt;br /&gt;
&lt;br /&gt;
===Downloading/Writing the SD image===&lt;br /&gt;
The SatNOGS team has done a great job creating a Raspbian image with all the required software. Simply navigate over to the [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/tags latest tag on Gitlab], and click on the &amp;quot;Zipped image&amp;quot; link under the latest tag. It's about 650 MBytes.&lt;br /&gt;
&lt;br /&gt;
For linux:&lt;br /&gt;
&lt;br /&gt;
#Unzip the downloaded file: '''unzip image_&amp;lt;latest_image_date&amp;gt;-Raspbian-SatNOGS-lite.zip'''&lt;br /&gt;
#Figure out which device is the SD card. SD cards are usually start with mmcblk. '''sudo lsblk'''&lt;br /&gt;
#Write the image. This will take a while. Make sure you don't overwrite your host OS: '''sudo dd if=&amp;lt;latest_image_date&amp;gt;-Raspbian-SatNOGS-lite.img of=/dev/mmcblk0'''&lt;br /&gt;
&lt;br /&gt;
===Power notes===&lt;br /&gt;
Thinking I could save a few bucks, I used a no-name generic 2.4 amp &amp;quot;tablet&amp;quot; USB power supply I got as a freebie, and a micro-USB cable I use for charging my phone. What a mistake! The Micro-USB cable wire gauge was too small, so there was too much voltage drop on the cable, so the Raspberry Pi reported power problems every time it was doing anything.&lt;br /&gt;
&lt;br /&gt;
Power problems are indicated by either a lightning bolt in the upper right of the monitor, or the red power LED flashes on the board itself. If The Raspberry Pi processor itself is pretty forgiving of power droops because it runs at 3.3 volts. But the 5v USB ports are directly tied to input power, so undervoltage conditions will cause problems for USB devices, such as the RTL SDR dongle.&lt;br /&gt;
&lt;br /&gt;
==Software Configuration==&lt;br /&gt;
&lt;br /&gt;
===Creating a SatNOGS Network account===&lt;br /&gt;
There are several different websites to be aware of and sign in to. As of 12/2018, most of our websites use a unified login provided by Auth0, so when you create an account on one of these sites it will work across the others as well:&lt;br /&gt;
&lt;br /&gt;
*Required: [https://network.satnogs.org/ Network]: for registering your station and adding data to the network.&lt;br /&gt;
*Recommended: [https://community.libre.space Forums]: for asking questions.&lt;br /&gt;
*Optional: [https://db.satnogs.org/ Database]: Only if you want to add satellites/modes. Not necessary for receiving satellite data.&lt;br /&gt;
&lt;br /&gt;
===Registering the station===&lt;br /&gt;
Log in to your Network account, and click the &amp;quot;+ Add Ground Station&amp;quot; button, or click [https://network.satnogs.org/stations/edit/ here] Fill out the short form, and your station will be added to the database. For &amp;quot;Antenna&amp;quot;, pick something that encompasses the frequency range of your antenna. For wideband reception, use VHF Discone 26-1200 MHz.&lt;br /&gt;
&lt;br /&gt;
The important info you'll need later on is the Station ID number, lat/lon/altitiude. I would also use a Minimum Horizon of 30 degrees or so, this will keep your station from allowing low-elevation passes to be scheduled. Make sure to keep the &amp;quot;Testing&amp;quot; flag checked, as this lets people know that your station isn't quite ready for real use.&lt;br /&gt;
&lt;br /&gt;
To help your fellow operators please consider placing the following information into the &amp;quot;Description&amp;quot; field for your station: Antenna gain and location, preamp info (if any), SDR device, some kind of contact info perhaps [[Get_In_Touch#Chat_with_us_on_our_Matrix_room |irc/matrix]] or [https://community.libre.space/ community forum] username or email address.&lt;br /&gt;
&lt;br /&gt;
===Booting and Configuring Raspbian===&lt;br /&gt;
After you have the image burned onto a Micro-SD card, boot it! I would recommend hooking up a keyboard and HDMI monitor, you can watch the boot process. If it doesn't boot at all, double check that you wrote the SatNOGS Raspbian image correctly.&lt;br /&gt;
&lt;br /&gt;
After a successful boot, log in with username '''pi''' and password '''raspberry'''&lt;br /&gt;
&lt;br /&gt;
#Change your password! '''passwd'''&lt;br /&gt;
#Run '''sudo raspi-config''' to set up the base OS. ''Tab'' switches between the options and ''select''.&lt;br /&gt;
##4 Localisation Options: I1 Change Locale: en_US.UTF-8 UTF-8&lt;br /&gt;
##4 Localisation Options: I2 Change Timezone: None of the above: UTC&lt;br /&gt;
##4 Localisation Options: I3 Change Keyboard Layout:&lt;br /&gt;
##7 Advanced Options: A1 Expand Filesystem &amp;lt;br /&amp;gt;This will expand the ~2GB Micro-SD card partition to fill the entire SD card.&lt;br /&gt;
&lt;br /&gt;
The Raspberry Pi needs to reboot to expand the filesystem, so do this now. It might take a while. '''sudo reboot''&lt;br /&gt;
&lt;br /&gt;
====Disabling WiFi and Bluetooth====&lt;br /&gt;
To disable WiFi and Bluetooth, edit the /boot/config.txt file, and add the following lines at the bottom:&lt;br /&gt;
 # Disable WiFi and bluetooth&lt;br /&gt;
 dtoverlay=pi3-disable-wifi&lt;br /&gt;
 dtoverlay=pi3-disable-bt&lt;br /&gt;
&lt;br /&gt;
Then reboot again. To make sure that it worked, run '''ifconfig''' and make sure that ''wlan0'' isn't listed. I'm not sure how to tell if bluetooth is turned off.&lt;br /&gt;
&lt;br /&gt;
====Additional software====&lt;br /&gt;
I like to install this additional software with '''sudo apt install bmon''' ...&lt;br /&gt;
&lt;br /&gt;
*bmon - a graphical network usage analyzer.&lt;br /&gt;
*vnstat - keeps track of your bandwidth usage&lt;br /&gt;
*vim - the world's best text editor ;)&lt;br /&gt;
*irssi - a terminal IRC client, for chatting on the #satnogs IRC channel&lt;br /&gt;
&lt;br /&gt;
If you can't tell by now, I'm always a big fan of rebooting. It certainly doesn't take that long... '''sudo reboot'''&lt;br /&gt;
&lt;br /&gt;
===Configuring the satnogs-client===&lt;br /&gt;
Once you have the base Raspbian Strech OS installed, updated, and looking good, you can configure SatNOGS. Plug in your RTL SDR if you haven't already.&lt;br /&gt;
&lt;br /&gt;
First thing to do is update the satnogs-setup program. Run '''sudo satnogs-setup'''. This will probably take a while, then '''Update''', which will also take a while. Per usual, after the update I like to reboot the raspberry pi just to make sure everything was updated and is actually running the new code.&lt;br /&gt;
&lt;br /&gt;
====Basic Configuration====&lt;br /&gt;
Then the actual configuration of the station:&lt;br /&gt;
&lt;br /&gt;
#Run '''sudo satnogs-setup''' again.&lt;br /&gt;
#Use the up/down and TAB keys to navigate, and Enter to select an option.&lt;br /&gt;
#Basic Configuration:&lt;br /&gt;
##SATNOGS_API_TOKEN: After logging in to network.satnogs.org, this is in the upper right under &amp;quot;API Key&amp;quot; [no longer exsists? Add direct link]&lt;br /&gt;
##SATNOGS_SOAPY_RX_DEVICE: driver=rtlsdr&lt;br /&gt;
##SATNOGS_RX_SAMP_RATE: 2.048e6&lt;br /&gt;
##SATNOGS_RX_GAIN: Refer &amp;quot;Setting the gain&amp;quot; section below.&lt;br /&gt;
##SATNOGS_STATION_ELEV: station elevation in meters&lt;br /&gt;
##SATNOGS_STATION_ID: The ID number of your station.&lt;br /&gt;
##SATNOGS_STATION_LAT and LON: Latitude and Longitude in decimal degrees&lt;br /&gt;
&lt;br /&gt;
Then back to the main menu and ''Apply'' to save the configuration. Ansible will run and update the system. If you want to quit, just keep pressing cancel to exit.&lt;br /&gt;
&lt;br /&gt;
====Setting the gain====&lt;br /&gt;
The next step is to set the gain on the RTL SDR. The aim here (in the majority of cases) is to set the gain of your station to maximise sensitivity (best noise figure), but without limiting the available dynamic range of your station due to your local noise floor. This can be achieved in a fairly simple manner, by watching the level of the receivers noise floor as you slowly increase the receiver gain. At some point the noise floor will start to rise - at this point increasing the gain any further will of no use - you will only increase the noise level, and eat into your receiver's available dynamic range (for a RTLSDR, theoretically only 48 dB).&lt;br /&gt;
&lt;br /&gt;
There may be situations where strong local interferers may require the use of a lower gain setting to avoid intermodulation products appearing in the passband, though these cases would be better solved with a suitable bandpass filter somewhere in the receive chain.&lt;br /&gt;
&lt;br /&gt;
First, it is good to know the available gain range of your SDR. This can be accomplished by running &amp;lt;code&amp;gt;SoapySDRUtil --probe&amp;lt;/code&amp;gt;, which provides a considerable amount of information about the connected SDR:&lt;br /&gt;
 pi@satnogs:~ $ SoapySDRUtil --probe&lt;br /&gt;
 ######################################################&lt;br /&gt;
 ## Soapy SDR -- the SDR abstraction library&lt;br /&gt;
 ######################################################&lt;br /&gt;
 &lt;br /&gt;
 Probe device&lt;br /&gt;
 &lt;br /&gt;
 Found Rafael Micro R820T tuner&lt;br /&gt;
 [INFO] [UHD] linux; GNU C++ version 8.2.0; Boost_106700; UHD_3.13.1.0-3&lt;br /&gt;
 Found Rafael Micro R820T tuner&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 -- Device identification&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
   driver=RTLSDR&lt;br /&gt;
   hardware=RTLSDR&lt;br /&gt;
   origin=&amp;lt;nowiki&amp;gt;https://github.com/pothosware/SoapyRTLSDR&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   rtl=0&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 -- Peripheral summary&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
   Channels: 1 Rx, 0 Tx&lt;br /&gt;
   Timestamps: NO&lt;br /&gt;
   Other Settings:&lt;br /&gt;
      * Direct Sampling - RTL-SDR Direct Sampling Mode&lt;br /&gt;
        [key=direct_samp, default=0, type=string, options=(0, 1, 2)]&lt;br /&gt;
      * Offset Tune - RTL-SDR Offset Tuning Mode&lt;br /&gt;
        [key=offset_tune, default=false, type=bool]&lt;br /&gt;
      * I/Q Swap - RTL-SDR I/Q Swap Mode&lt;br /&gt;
        [key=iq_swap, default=false, type=bool]&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 -- RX Channel 0&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
   Full-duplex: YES&lt;br /&gt;
   Supports AGC: YES&lt;br /&gt;
   Stream formats: CS8, CS16, CF32&lt;br /&gt;
   Native format: CS8 [full-scale=128]&lt;br /&gt;
   Stream args:&lt;br /&gt;
      * Buffer Size - Number of bytes per buffer, multiples of 512 only.&lt;br /&gt;
        [key=bufflen, units=bytes, default=262144, type=int]&lt;br /&gt;
      * Ring buffers - Number of buffers in the ring.&lt;br /&gt;
        [key=buffers, units=buffers, default=15, type=int]&lt;br /&gt;
      * Async buffers - Number of async usb buffers (advanced).&lt;br /&gt;
        [key=asyncBuffs, units=buffers, default=0, type=int]&lt;br /&gt;
   Antennas: RX&lt;br /&gt;
   Full gain range: [0, 49.6] dB&lt;br /&gt;
     TUNER gain range: [0, 49.6] dB&lt;br /&gt;
   Full freq range: [23.999, 1764] MHz&lt;br /&gt;
     RF freq range: [24, 1764] MHz&lt;br /&gt;
     CORR freq range: [-0.001, 0.001] MHz&lt;br /&gt;
   Sample rates: 0.25, 1.024, 1.536, 1.792, 1.92, 2.048, 2.16, 2.56, 2.88, 3.2 MSps&lt;br /&gt;
The above output is for a RTLSDR, and we can see that there is information on the 'Full gain range', and 'TUNER' gain. The Full gain setting is an 'abstracted' gain range, which in this case just directly links to the 'TUNER' gain, as that is the only gain setting presented by the RTLSDR driver. Other SDRs (e.g. AirSpy) may present more gain controls. Anyway, we can see that the gain range is 0 through 49.6 dB. It's quite possible that there are only discrete gain steps within this range (and this is very true for the RTLSDR), but SoapySDR will hide that from us and automatically use the nearest valid setting.&lt;br /&gt;
&lt;br /&gt;
Next up, we want a way of seeing a live spectrum from the SDR. This might be difficult, especially if you're just gone and mounted a RTLSDR in a metal box up a pole! Well, SoapySDR comes to the rescue again with SoapySDR Server - this allows us to serve up the SDR on the network, and access it with a client.&lt;br /&gt;
&lt;br /&gt;
Note: SoapySDR Server is not currently installed by default. It can be installed by running the commands:&lt;br /&gt;
 $ sudo apt-get install soapyremote-server&lt;br /&gt;
By default, SoapySDR Server may be configured to startup on boot. We probably don't want this, so run the following commands to ensure it is stopped, and will not startup on boot:&lt;br /&gt;
 $ sudo systemctl stop soapyremote-server&lt;br /&gt;
 $ sudo systemctl disable soapyremote-server&lt;br /&gt;
&lt;br /&gt;
(These commands may result in errors indicating that the server wasn't running and/or enabled. This is OK! &lt;br /&gt;
&lt;br /&gt;
[https://cubicsdr.com/ CubicSDR] is a good cross-platform client that can connect to a SoapySDR Server, and you can [https://github.com/cjcliffe/CubicSDR/releases download the latest release by clicking here].  &lt;br /&gt;
&lt;br /&gt;
On the RPi, you can manually start SoapySDR Server by running: &amp;lt;code&amp;gt;SoapySDRServer --bind=&amp;quot;0.0.0.0:55132&amp;quot;&amp;lt;/code&amp;gt;  Leave this running. &lt;br /&gt;
&lt;br /&gt;
Note: If you need to use the Bias-T option of an RTLSDR, you will need to activate this manually prior to running SoapySDRServer. This can be accomplished by [[Software Defined Radio#Using RTL-SDR.com V3 Dongle.27s Bias-T Power Supply|compiling the rtl_biast utility]], and running it with &amp;lt;code&amp;gt;./rtl_biast -b 1&amp;lt;/code&amp;gt; .  ('''NOTE: This advice may be outdated - need to confirm how to set the RTLSDRs bias on more recent SoapySDR versions)''' &lt;br /&gt;
&lt;br /&gt;
Open up CubicSDR on another computer, on the same network as your SatNOGS station. It will pop up a window asking you to select a SDR device. With any luck, it will have auto-detected your SoapySDR Server, and it will show up in the 'Local Net' list. If not, you will need to select 'Remote', click 'Add', and then enter the IP address of your station. You should then have a SDR showing up in the list.&lt;br /&gt;
[[File:Screen Shot 2020-03-19 at 10.41.52 pm.png|alt=CubicSDR SDR Devices List|none|thumb|600x600px|CubicSDR SDR Devices List]]&lt;br /&gt;
You should now be able to click 'Start', and end up with a waterfall display. If the waterfall appears to glitch, or show a 'lumpy' pattern near the centre of the display, then this indicates packet loss between the SatNOGS station and your client. Try and connect via a direct LAN connection if possible. &lt;br /&gt;
In the settings menu of CubicSDR, disable &amp;quot;Automatic Gain&amp;quot; if it is set. This will allow manual control over the gain settings via sliders that will show up at the top left of the window.&lt;br /&gt;
[[File:CubicSDR Main Window.png|alt=CubicSDR Main Window (Annotated)|none|thumb|900x900px|CubicSDR Main Window (Annotated)]]&lt;br /&gt;
The above Figure shows the CubicSDR window, with the spectrum area, frequency selection, and gain settings annotated. Set the frequency to something suitable for your station. For example, if you are setting up a 70cm station, set a frequency of 437 MHz (437000000 Hz). For a 2m station, try 146 MHz.&lt;br /&gt;
Drag the gain slider so that the gain (visible at the bottom of the slider) is set to zero. Then, slowly drag it up until you see the noise floor start to rise. The gain at which this occurs is the gain you should set in SATNOGS_RF_GAIN (Available under the 'Basic' menu in satnogs-setup).&lt;br /&gt;
&lt;br /&gt;
Some SDRs may present more than one gain slider. In these situations, you will need to configure SatNOGS with each gain set individually. [[Software Defined Radio#E4000 Tuner Gain Settings|Refer here]] for more information on how to do this.&lt;br /&gt;
&lt;br /&gt;
As an example, the following figure shows the noise floor observed on a station with a RTLSDR and a ~25dB masthead preamplifier, as gain levels on the RTLSDR are increased:&lt;br /&gt;
[[File:RTLSDR Noise Floor Variation with Gain Adjustment.png|alt=RTLSDR Noise Floor Variation with Gain Adjustment|none|thumb|900x900px|RTLSDR Noise Floor Variation with Gain Adjustment]]&lt;br /&gt;
We can see that between 0 db and 20 dB of gain there is essentially no change in the noise floor - this indicates the receive system is limited by the noise figure of the RTLSDR. As the gain increases through 30 dB, the noise floor starts to lift, indicating that we are now most likely limited by either the noise figure of the preamplifier, or the local noise environment. Any increase in gain past this point just results in reduction of the available receiver dynamic range.&lt;br /&gt;
&lt;br /&gt;
CubicSDR DOES NOT autorange its waterfall, in contrast, satnogs DOES autorange its waterfall.  When you adjust the gain in CubicSDR the waterfall background will dramatically change, but when you adjust the gain in satnogs the waterfall background will not change color.  See the web page documenting  autoranging waterfalls:&lt;br /&gt;
&lt;br /&gt;
https://docs.satnogs.org/projects/satnogs-client/en/stable/userguide.html#satnogs-waterfall-autorange&lt;br /&gt;
&lt;br /&gt;
'''Important Note: While CubicSDR is connected to the SDR, your SatNOGS ground station cannot run observations! Make sure to close CubicSDR when you have finished setting the gain.'''&lt;br /&gt;
===Hardware Configuration===&lt;br /&gt;
Basic hardware configuration is Antenna &amp;gt; Short coax &amp;gt; LNA &amp;gt; Coax &amp;gt; RTL SDR -&amp;gt; Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
===LNA===&lt;br /&gt;
The way to measure the performance of an antenna is using a figure of merit called the Antenna gain-to-noise-temperature (G/T). It's a positive unitless number, higher the better.&lt;br /&gt;
&lt;br /&gt;
G/T is comprised of antenna gain (in dB) on the top, and the system noise temperature (in Kelvins) on the bottom. There's a lot of somewhat-hard math involved, but here's the bottom line: to make your system perform better, you either need to increase the antenna gain or decrease the system noise temp. [https://en.wikipedia.org/wiki/Antenna_gain-to-noise-temperature Wikipedia]&lt;br /&gt;
&lt;br /&gt;
Increasing the antenna gain is difficult, only because we decided on an omnidirectional antenna as the basis for this How-To. Omnidirectional antennas top out at maybe 4-6 dBi gain or so, and that's just from pushing the radiation pattern up to the sky away from the ground. Any more gain than that and it's not an omni antenna; it's got a direction that the antenna needs to be pointed in. And we want to stay away from pointing antennas for now.&lt;br /&gt;
&lt;br /&gt;
Reducing the system temperature is the the way forward then. The RTL-SDR dongle has a noise figure of 6dB or so, depending on frequency, which is pretty horrible. But it turns out that the system noise temperature is largely determined by the first device in the receive chain. Since we can't change the antenna, adding a low-noise amplifier helps quite a bit. See this [https://www.youtube.com/watch?v=snifc_x_2sE youtube video] from Adam 9A4QV on how a LNA helps. (Also check out his other videos about the RTL SDR dongle, and SDR in general)&lt;br /&gt;
&lt;br /&gt;
More info on SDR noise figures:&lt;br /&gt;
&lt;br /&gt;
*[https://gitlab.com/librespacefoundation/sdrmakerspace/sdreval/-/raw/master/Report/pdf/Evaluation_of_SDR_Boards-1.0.pdf Evaluation of SDR Boards and Toolchains] from the [https://sdrmaker.space/ SDR Makerspace]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
More info on noise and preamps:&lt;br /&gt;
&lt;br /&gt;
*[https://en.wikipedia.org/wiki/Noise_temperature System noise from wikipedia], pretty high-level&lt;br /&gt;
*[https://www.rtl-sdr.com/tutorial-on-properly-positioning-a-preamp-lna-in-a-radio-system/ Where to put an LNA], from rtl-sdr.com&lt;br /&gt;
*[[SPF1589 LNA measurements|SPF5189 LNA measurements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Adding a LNA can also add its own set of problems, in that it may amplify strong local signals which may overload your SDR. When adding a LNA, you will likely need to back off the gain on your SDR to avoid this. It's also possible that the strong local signals may cause distortion to occur in the LNA itself, in which case you should consider the use of a filter between the LNA and the antenna. Some example products:&lt;br /&gt;
&lt;br /&gt;
*If you are experiencing issues with FM broadcast stations, a [https://www.rtl-sdr.com/rtl-sdr-com-broadcast-fm-band-stop-filter-88-108-mhz-reject-now-for-sale/ FM band-stop filter] may help.&lt;br /&gt;
*[https://www.minikits.com.au/electronic-kits/rf-amplifiers/rf-preamplifiers MiniKits masthead preamps] include fairly low-loss bandpass filters for their target bands (2m, 70cm).&lt;br /&gt;
&lt;br /&gt;
All filters will have some inherent loss, which adds to the system noise figure (or temperature, as discussed above), but this is a compromise that may need to be made to avoid distortion issues.&lt;br /&gt;
&lt;br /&gt;
Finally, using a LNA near the antenna means that we can accept some losses from a long coaxial cable run between the LNA and the receiver, allowing us to situate the antenna away from sources of local noise that may impact overall performance.&lt;br /&gt;
&lt;br /&gt;
As briefly discussed above, it's the first device in the receive chain which dominates the overall system noise temperature (or noise figure). In brief, as long as the losses in the coaxial cable are less than the gain of the LNA, your overall system noise figure won't degrade too much. As an example a 20m run of RG58 has a loss of ~10dB at 434 MHz. Using a LNA with a gain of 20dB and a noise figure of 1dB, the overall system noise figure is still only ~1.4 dB, and acceptable degradation.&lt;br /&gt;
&lt;br /&gt;
===Antenna===&lt;br /&gt;
For testing on the bench, pretty much any antenna will do, however set your expectations accordingly:&lt;br /&gt;
&lt;br /&gt;
*A vertical antenna (e.g. the telescopic whips that come with many RTLSDRs) will not receive high-elevation passes well, as they have a 'null' in their antenna pattern directly overhead. When a satellite is at a lower elevation it is further away, and so will be weaker.&lt;br /&gt;
*A dipole antenna (be it a straight, or a v-dipole) will have similar issues, though where the null is located will depend on how you orient the dipole. Either way, there will be some portions of a satellite pass with poor performance.&lt;br /&gt;
*If your antenna is located inside, near to your house mains wiring, or near other electrical devices, it may end up being swamped by lots of local electrical noise and end up being 'deaf' - in this situation a LNA will only make the situation worse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Refer to the [[Antennas|Antennas page]] for more information on antennas which are well suited to satellite observations.&lt;br /&gt;
&lt;br /&gt;
==Testing the station==&lt;br /&gt;
[[File:Pass predictions.png|300px|right]]&lt;br /&gt;
Now that you have the hardware and software up and running, go ahead and schedule some passes. Navigate to your station page, and click on the Schedule button on the right side of some promising passes. The green and red bars beneath the satellite name is a quick visual indication of the number of Good and Bad passes on the network. Unfortunately, this data is not time-stamped at all, so a satellite that had a lot of Good observations a long time ago, but recently died, would still show as Green.&lt;br /&gt;
&lt;br /&gt;
===Recommended Satellite Transmitters for Station Performance Benchmarking===&lt;br /&gt;
A few known-good satellite transmitters to test with with (as of November 2020) are:&lt;br /&gt;
&lt;br /&gt;
*For a station operating on the VHF Band:&lt;br /&gt;
**NOAA 15, 18, 19- The APT transmitters (very strong signals - considered to be the 'hello world' of satellite observations)&lt;br /&gt;
**ISS - If operating, the APRS transmitter is very strong, but may only transmit intermittently throughout a pass.&lt;br /&gt;
**CAS4A / CAS4B - Continuous CW and GMSK transmitters - a good example of a 'weaker' cube-sat signal.&lt;br /&gt;
**Max Valier Sat - Another weaker CW signal.&lt;br /&gt;
*For a station operating on the UHF band:&lt;br /&gt;
**FalconSat3 - The FSK downlink transmits continuously, and is an excellent benchmark for overall station performance. A high performing station may receive upwards of 600 data packets in a single pass.&lt;br /&gt;
**SpooQy-1 - Regular GMSK packets.&lt;br /&gt;
**OPS-SAT - Regular GMSK packets, fairly strong.&lt;br /&gt;
**ARMADILLO - A higher data rate signal, requiring a fairly good SNR to be able to decode the (hillarious) 19.2kbps GFSK packets.&lt;br /&gt;
**LUSAT - CW Signal Generator in space. Continuous, strong signal.&lt;br /&gt;
&lt;br /&gt;
===Rating an Observation===&lt;br /&gt;
[[File:Waterfall Vetting Buttons.png|right|frameless]]&lt;br /&gt;
After each observation, you should rate it. More information [https://wiki.satnogs.org/Operation#Rating_observations here], but the bottom line is rate the observation:&lt;br /&gt;
&lt;br /&gt;
*'''Good''' if the satellite is seen in the waterfall at all. Different modulations appear differently in the waterfall, but will appear&lt;br /&gt;
*'''Bad''' if the satellite is not seen.&lt;br /&gt;
&lt;br /&gt;
Observations which do not produce any artefacts (Waterfall, audio, data packets) will automatically be considered as failed, and will eventually be deleted.&lt;br /&gt;
&lt;br /&gt;
For a more detailed guide on testing, see [[Operation]]&lt;br /&gt;
&lt;br /&gt;
===Calibrating frequency offset (PPM)===&lt;br /&gt;
If your observations result in signals which appear to be 'off centre' of the waterfall, then you may need to set a frequency offset correction. Guides on how to determine this correction via a few different methods are available here: [[Adjusting the SatNOGS Client#Frequency Offset Calibration]]&lt;br /&gt;
&lt;br /&gt;
===Mitigating Local Noise===&lt;br /&gt;
If you are finding the signal-to-noise of your observation seems a bit low, or you aren't seeing any signals from the known-good satellites listed above, then your station may be limited by local electrical noise. A more comprehensive guide on how to identify sources of noise is being developed, but as a starting point:&lt;br /&gt;
&lt;br /&gt;
*Turn on/off nearby electrical devices while an observation is running (or while looking at a waterfall using CubicSDR as described further above).&lt;br /&gt;
*Common sources of electrical noise include:&lt;br /&gt;
**LED lightbulbs or floodlights&lt;br /&gt;
**USB Chargers (or really any switch-mode power supply)&lt;br /&gt;
**Power-over-Ethernet systems&lt;br /&gt;
**Unshielded ethernet cables (or even shielded cables)&lt;br /&gt;
**HDMI and DVI cables, and computer monitors.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Next Steps==&lt;br /&gt;
Now that you've got this station working on the bench, what's next?&lt;br /&gt;
&lt;br /&gt;
*Buy/Build an antenna suited to satellite observations. Check out the [[Antennas|Antennas page]] for ideas.&lt;br /&gt;
*Mount your antenna away from obstructions, and ideally away from sources of electrical noise like ethernet cables, LED lights, and other electronic equipment.&lt;br /&gt;
*Situate your SDR and Raspberry Pi (or other computer) as far away as practical from your antenna. If you absolutely must mount it on the mast beneath the antenna and use a metal box, and run a separate DC power supply instead of using PoE (which can produce considerable amount of RF noise)&lt;br /&gt;
&lt;br /&gt;
===Building a Box===&lt;br /&gt;
&lt;br /&gt;
*[https://wiki.satnogs.org/No_rotator No-Rotator setup]  (Note the warning at the top of this page)&lt;br /&gt;
&lt;br /&gt;
[[ Category:Build ]]&lt;br /&gt;
[[ Category:Hardware ]]&lt;br /&gt;
[[ Category:Antenna ]]&lt;/div&gt;</summary>
		<author><name>Vk5qi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Omnidirectional_Station_How_To&amp;diff=3705</id>
		<title>Omnidirectional Station How To</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Omnidirectional_Station_How_To&amp;diff=3705"/>
		<updated>2020-11-18T05:00:58Z</updated>

		<summary type="html">&lt;p&gt;Vk5qi: /* Setting the gain */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Omnidirectional VHF Turnstile Antenna.jpg|alt=VHF Turnstile Antenna|thumb|VHF Turnstile antenna, [https://network.satnogs.org/stations/23/ SatNOGS Station 23]]]&lt;br /&gt;
This How-To is written to get you quickly receiving satellite data with an Omnidirectional antenna (an antenna that does not move).&lt;br /&gt;
&lt;br /&gt;
==Prerequisites/Background==&lt;br /&gt;
I'm assuming that you are a bit familiar with amateur radio, or linux in general, or you already have a Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
===Expectation Management===&lt;br /&gt;
First off, I'd like to set some expectations around a SatNOGs station with an omnidirectional antenna. Yes, you will be able to hear satellites, Morse code beacons, maybe even some voice contacts on a FM transponder. But for CubeSats with 1 watt transmitters at 9600 baud, it's going to be really difficult to actually decode any data with an omni antenna. You'll definitely see squiggly lines on the waterfall plot, but demodulating the signal and extracting satellite telemetry is going to be pretty difficult.&lt;br /&gt;
&lt;br /&gt;
The only way to get more signal is a better antenna. And a better antenna with more gain is going to be more directional, which means you will need a way to point that antenna at the satellite, and this How-To just got a lot more complicated. So we're not going there.&lt;br /&gt;
&lt;br /&gt;
A better preamp helps a bit, see the LNA section below.&lt;br /&gt;
&lt;br /&gt;
===Hardware Required===&lt;br /&gt;
This is a list of the hardware for indoor/testing purposes:&lt;br /&gt;
&lt;br /&gt;
*Raspberry Pi&lt;br /&gt;
**Power supply + cable (see note below)&lt;br /&gt;
**Up to 16 GB Micro SD card&lt;br /&gt;
**Ethernet cable&lt;br /&gt;
*RTL SDR Blog v3 dongle&lt;br /&gt;
*Various short lengths of coax&lt;br /&gt;
*Preamp/LNA - Or not if your coax is short, see LNA section below&lt;br /&gt;
*Omnidirectional antenna - just a dual mag-mount on a cookie sheet will work OK for stronger satellites&lt;br /&gt;
&lt;br /&gt;
==Setting up the Raspberry Pi==&lt;br /&gt;
I chose the [https://www.raspberrypi.org/products/raspberry-pi-3-model-b/ Raspberry Pi 3 Model B] for my station. SatNOGS is known to work on the RPi 3B, 3B+ and 4 models. &lt;br /&gt;
&lt;br /&gt;
===Downloading/Writing the SD image===&lt;br /&gt;
The SatNOGS team has done a great job creating a Raspbian image with all the required software. Simply navigate over to the [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/tags latest tag on Gitlab], and click on the &amp;quot;Zipped image&amp;quot; link under the latest tag. It's about 650 MBytes.&lt;br /&gt;
&lt;br /&gt;
For linux:&lt;br /&gt;
&lt;br /&gt;
#Unzip the downloaded file: '''unzip image_&amp;lt;latest_image_date&amp;gt;-Raspbian-SatNOGS-lite.zip'''&lt;br /&gt;
#Figure out which device is the SD card. SD cards are usually start with mmcblk. '''sudo lsblk'''&lt;br /&gt;
#Write the image. This will take a while. Make sure you don't overwrite your host OS: '''sudo dd if=&amp;lt;latest_image_date&amp;gt;-Raspbian-SatNOGS-lite.img of=/dev/mmcblk0'''&lt;br /&gt;
&lt;br /&gt;
===Power notes===&lt;br /&gt;
Thinking I could save a few bucks, I used a no-name generic 2.4 amp &amp;quot;tablet&amp;quot; USB power supply I got as a freebie, and a micro-USB cable I use for charging my phone. What a mistake! The Micro-USB cable wire gauge was too small, so there was too much voltage drop on the cable, so the Raspberry Pi reported power problems every time it was doing anything.&lt;br /&gt;
&lt;br /&gt;
Power problems are indicated by either a lightning bolt in the upper right of the monitor, or the red power LED flashes on the board itself. If The Raspberry Pi processor itself is pretty forgiving of power droops because it runs at 3.3 volts. But the 5v USB ports are directly tied to input power, so undervoltage conditions will cause problems for USB devices, such as the RTL SDR dongle.&lt;br /&gt;
&lt;br /&gt;
==Software Configuration==&lt;br /&gt;
&lt;br /&gt;
===Creating a SatNOGS Network account===&lt;br /&gt;
There are several different websites to be aware of and sign in to. As of 12/2018, most of our websites use a unified login provided by Auth0, so when you create an account on one of these sites it will work across the others as well:&lt;br /&gt;
&lt;br /&gt;
*Required: [https://network.satnogs.org/ Network]: for registering your station and adding data to the network.&lt;br /&gt;
*Recommended: [https://community.libre.space Forums]: for asking questions.&lt;br /&gt;
*Optional: [https://db.satnogs.org/ Database]: Only if you want to add satellites/modes. Not necessary for receiving satellite data.&lt;br /&gt;
&lt;br /&gt;
===Registering the station===&lt;br /&gt;
Log in to your Network account, and click the &amp;quot;+ Add Ground Station&amp;quot; button, or click [https://network.satnogs.org/stations/edit/ here] Fill out the short form, and your station will be added to the database. For &amp;quot;Antenna&amp;quot;, pick something that encompasses the frequency range of your antenna. For wideband reception, use VHF Discone 26-1200 MHz.&lt;br /&gt;
&lt;br /&gt;
The important info you'll need later on is the Station ID number, lat/lon/altitiude. I would also use a Minimum Horizon of 30 degrees or so, this will keep your station from allowing low-elevation passes to be scheduled. Make sure to keep the &amp;quot;Testing&amp;quot; flag checked, as this lets people know that your station isn't quite ready for real use.&lt;br /&gt;
&lt;br /&gt;
To help your fellow operators please consider placing the following information into the &amp;quot;Description&amp;quot; field for your station: Antenna gain and location, preamp info (if any), SDR device, some kind of contact info perhaps [[Get_In_Touch#Chat_with_us_on_our_Matrix_room |irc/matrix]] or [https://community.libre.space/ community forum] username or email address.&lt;br /&gt;
&lt;br /&gt;
===Booting and Configuring Raspbian===&lt;br /&gt;
After you have the image burned onto a Micro-SD card, boot it! I would recommend hooking up a keyboard and HDMI monitor, you can watch the boot process. If it doesn't boot at all, double check that you wrote the SatNOGS Raspbian image correctly.&lt;br /&gt;
&lt;br /&gt;
After a successful boot, log in with username '''pi''' and password '''raspberry'''&lt;br /&gt;
&lt;br /&gt;
#Change your password! '''passwd'''&lt;br /&gt;
#Run '''sudo raspi-config''' to set up the base OS. ''Tab'' switches between the options and ''select''.&lt;br /&gt;
##4 Localisation Options: I1 Change Locale: en_US.UTF-8 UTF-8&lt;br /&gt;
##4 Localisation Options: I2 Change Timezone: None of the above: UTC&lt;br /&gt;
##4 Localisation Options: I3 Change Keyboard Layout:&lt;br /&gt;
##7 Advanced Options: A1 Expand Filesystem &amp;lt;br /&amp;gt;This will expand the ~2GB Micro-SD card partition to fill the entire SD card.&lt;br /&gt;
&lt;br /&gt;
The Raspberry Pi needs to reboot to expand the filesystem, so do this now. It might take a while. '''sudo reboot''&lt;br /&gt;
&lt;br /&gt;
====Disabling WiFi and Bluetooth====&lt;br /&gt;
To disable WiFi and Bluetooth, edit the /boot/config.txt file, and add the following lines at the bottom:&lt;br /&gt;
 # Disable WiFi and bluetooth&lt;br /&gt;
 dtoverlay=pi3-disable-wifi&lt;br /&gt;
 dtoverlay=pi3-disable-bt&lt;br /&gt;
&lt;br /&gt;
Then reboot again. To make sure that it worked, run '''ifconfig''' and make sure that ''wlan0'' isn't listed. I'm not sure how to tell if bluetooth is turned off.&lt;br /&gt;
&lt;br /&gt;
====Additional software====&lt;br /&gt;
I like to install this additional software with '''sudo apt install bmon''' ...&lt;br /&gt;
&lt;br /&gt;
*bmon - a graphical network usage analyzer.&lt;br /&gt;
*vnstat - keeps track of your bandwidth usage&lt;br /&gt;
*vim - the world's best text editor ;)&lt;br /&gt;
*irssi - a terminal IRC client, for chatting on the #satnogs IRC channel&lt;br /&gt;
&lt;br /&gt;
If you can't tell by now, I'm always a big fan of rebooting. It certainly doesn't take that long... '''sudo reboot'''&lt;br /&gt;
&lt;br /&gt;
===Configuring the satnogs-client===&lt;br /&gt;
Once you have the base Raspbian Strech OS installed, updated, and looking good, you can configure SatNOGS. Plug in your RTL SDR if you haven't already.&lt;br /&gt;
&lt;br /&gt;
First thing to do is update the satnogs-setup program. Run '''sudo satnogs-setup'''. This will probably take a while, then '''Update''', which will also take a while. Per usual, after the update I like to reboot the raspberry pi just to make sure everything was updated and is actually running the new code.&lt;br /&gt;
&lt;br /&gt;
====Basic Configuration====&lt;br /&gt;
Then the actual configuration of the station:&lt;br /&gt;
&lt;br /&gt;
#Run '''sudo satnogs-setup''' again.&lt;br /&gt;
#Use the up/down and TAB keys to navigate, and Enter to select an option.&lt;br /&gt;
#Basic Configuration:&lt;br /&gt;
##SATNOGS_API_TOKEN: After logging in to network.satnogs.org, this is in the upper right under &amp;quot;API Key&amp;quot; [no longer exsists? Add direct link]&lt;br /&gt;
##SATNOGS_SOAPY_RX_DEVICE: driver=rtlsdr&lt;br /&gt;
##SATNOGS_RX_SAMP_RATE: 2.048e6&lt;br /&gt;
##SATNOGS_RX_GAIN: Refer &amp;quot;Setting the gain&amp;quot; section below.&lt;br /&gt;
##SATNOGS_STATION_ELEV: station elevation in meters&lt;br /&gt;
##SATNOGS_STATION_ID: The ID number of your station.&lt;br /&gt;
##SATNOGS_STATION_LAT and LON: Latitude and Longitude in decimal degrees&lt;br /&gt;
&lt;br /&gt;
Then back to the main menu and ''Apply'' to save the configuration. Ansible will run and update the system. If you want to quit, just keep pressing cancel to exit.&lt;br /&gt;
&lt;br /&gt;
====Setting the gain====&lt;br /&gt;
The next step is to set the gain on the RTL SDR. The aim here (in the majority of cases) is to set the gain of your station to maximise sensitivity (best noise figure), but without limiting the available dynamic range of your station due to your local noise floor. This can be achieved in a fairly simple manner, by watching the level of the receivers noise floor as you slowly increase the receiver gain. At some point the noise floor will start to rise - at this point increasing the gain any further will of no use - you will only increase the noise level, and eat into your receiver's available dynamic range (for a RTLSDR, theoretically only 48 dB).&lt;br /&gt;
&lt;br /&gt;
There may be situations where strong local interferers may require the use of a lower gain setting to avoid intermodulation products appearing in the passband, though these cases would be better solved with a suitable bandpass filter somewhere in the receive chain.&lt;br /&gt;
&lt;br /&gt;
First, it is good to know the available gain range of your SDR. This can be accomplished by running &amp;lt;code&amp;gt;SoapySDRUtil --probe&amp;lt;/code&amp;gt;, which provides a considerable amount of information about the connected SDR:&lt;br /&gt;
 pi@satnogs:~ $ SoapySDRUtil --probe&lt;br /&gt;
 ######################################################&lt;br /&gt;
 ## Soapy SDR -- the SDR abstraction library&lt;br /&gt;
 ######################################################&lt;br /&gt;
 &lt;br /&gt;
 Probe device&lt;br /&gt;
 &lt;br /&gt;
 Found Rafael Micro R820T tuner&lt;br /&gt;
 [INFO] [UHD] linux; GNU C++ version 8.2.0; Boost_106700; UHD_3.13.1.0-3&lt;br /&gt;
 Found Rafael Micro R820T tuner&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 -- Device identification&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
   driver=RTLSDR&lt;br /&gt;
   hardware=RTLSDR&lt;br /&gt;
   origin=&amp;lt;nowiki&amp;gt;https://github.com/pothosware/SoapyRTLSDR&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   rtl=0&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 -- Peripheral summary&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
   Channels: 1 Rx, 0 Tx&lt;br /&gt;
   Timestamps: NO&lt;br /&gt;
   Other Settings:&lt;br /&gt;
      * Direct Sampling - RTL-SDR Direct Sampling Mode&lt;br /&gt;
        [key=direct_samp, default=0, type=string, options=(0, 1, 2)]&lt;br /&gt;
      * Offset Tune - RTL-SDR Offset Tuning Mode&lt;br /&gt;
        [key=offset_tune, default=false, type=bool]&lt;br /&gt;
      * I/Q Swap - RTL-SDR I/Q Swap Mode&lt;br /&gt;
        [key=iq_swap, default=false, type=bool]&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 -- RX Channel 0&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
   Full-duplex: YES&lt;br /&gt;
   Supports AGC: YES&lt;br /&gt;
   Stream formats: CS8, CS16, CF32&lt;br /&gt;
   Native format: CS8 [full-scale=128]&lt;br /&gt;
   Stream args:&lt;br /&gt;
      * Buffer Size - Number of bytes per buffer, multiples of 512 only.&lt;br /&gt;
        [key=bufflen, units=bytes, default=262144, type=int]&lt;br /&gt;
      * Ring buffers - Number of buffers in the ring.&lt;br /&gt;
        [key=buffers, units=buffers, default=15, type=int]&lt;br /&gt;
      * Async buffers - Number of async usb buffers (advanced).&lt;br /&gt;
        [key=asyncBuffs, units=buffers, default=0, type=int]&lt;br /&gt;
   Antennas: RX&lt;br /&gt;
   Full gain range: [0, 49.6] dB&lt;br /&gt;
     TUNER gain range: [0, 49.6] dB&lt;br /&gt;
   Full freq range: [23.999, 1764] MHz&lt;br /&gt;
     RF freq range: [24, 1764] MHz&lt;br /&gt;
     CORR freq range: [-0.001, 0.001] MHz&lt;br /&gt;
   Sample rates: 0.25, 1.024, 1.536, 1.792, 1.92, 2.048, 2.16, 2.56, 2.88, 3.2 MSps&lt;br /&gt;
The above output is for a RTLSDR, and we can see that there is information on the 'Full gain range', and 'TUNER' gain. The Full gain setting is an 'abstracted' gain range, which in this case just directly links to the 'TUNER' gain, as that is the only gain setting presented by the RTLSDR driver. Other SDRs (e.g. AirSpy) may present more gain controls. Anyway, we can see that the gain range is 0 through 49.6 dB. It's quite possible that there are only discrete gain steps within this range (and this is very true for the RTLSDR), but SoapySDR will hide that from us and automatically use the nearest valid setting.&lt;br /&gt;
&lt;br /&gt;
Next up, we want a way of seeing a live spectrum from the SDR. This might be difficult, especially if you're just gone and mounted a RTLSDR in a metal box up a pole! Well, SoapySDR comes to the rescue again with SoapySDR Server - this allows us to serve up the SDR on the network, and access it with a client.&lt;br /&gt;
&lt;br /&gt;
Note: SoapySDR Server is not currently installed by default. It can be installed by running the commands:&lt;br /&gt;
 $ sudo apt-get install soapyremote-server&lt;br /&gt;
By default, SoapySDR Server may be configured to startup on boot. We probably don't want this, so run the following commands to ensure it is stopped, and will not startup on boot:&lt;br /&gt;
 $ sudo systemctl stop soapyremote-server&lt;br /&gt;
 $ sudo systemctl disable soapyremote-server&lt;br /&gt;
&lt;br /&gt;
(These commands may result in errors indicating that the server wasn't running and/or enabled. This is OK! &lt;br /&gt;
&lt;br /&gt;
[https://cubicsdr.com/ CubicSDR] is a good cross-platform client that can connect to a SoapySDR Server, and you can [https://github.com/cjcliffe/CubicSDR/releases download the latest release by clicking here].  &lt;br /&gt;
&lt;br /&gt;
On the RPi, you can manually start SoapySDR Server by running: &amp;lt;code&amp;gt;SoapySDRServer --bind=&amp;quot;0.0.0.0:55132&amp;quot;&amp;lt;/code&amp;gt;  Leave this running. &lt;br /&gt;
&lt;br /&gt;
Note: If you need to use the Bias-T option of an RTLSDR, you will need to activate this manually prior to running SoapySDRServer. This can be accomplished by [[Software Defined Radio#Using RTL-SDR.com V3 Dongle.27s Bias-T Power Supply|compiling the rtl_biast utility]], and running it with &amp;lt;code&amp;gt;./rtl_biast -b 1&amp;lt;/code&amp;gt; .  ('''NOTE: This advice may be outdated - need to confirm how to set the RTLSDRs bias on more recent SoapySDR versions)''' &lt;br /&gt;
&lt;br /&gt;
Open up CubicSDR on another computer, on the same network as your SatNOGS station. It will pop up a window asking you to select a SDR device. With any luck, it will have auto-detected your SoapySDR Server, and it will show up in the 'Local Net' list. If not, you will need to select 'Remote', click 'Add', and then enter the IP address of your station. You should then have a SDR showing up in the list.&lt;br /&gt;
[[File:Screen Shot 2020-03-19 at 10.41.52 pm.png|alt=CubicSDR SDR Devices List|none|thumb|600x600px|CubicSDR SDR Devices List]]&lt;br /&gt;
You should now be able to click 'Start', and end up with a waterfall display. If the waterfall appears to glitch, or show a 'lumpy' pattern near the centre of the display, then this indicates packet loss between the SatNOGS station and your client. Try and connect via a direct LAN connection if possible. &lt;br /&gt;
In the settings menu of CubicSDR, disable &amp;quot;Automatic Gain&amp;quot; if it is set. This will allow manual control over the gain settings via sliders that will show up at the top left of the window.&lt;br /&gt;
[[File:CubicSDR Main Window.png|alt=CubicSDR Main Window (Annotated)|none|thumb|900x900px|CubicSDR Main Window (Annotated)]]&lt;br /&gt;
The above Figure shows the CubicSDR window, with the spectrum area, frequency selection, and gain settings annotated. Set the frequency to something suitable for your station. For example, if you are setting up a 70cm station, set a frequency of 437 MHz (437000000 Hz). For a 2m station, try 146 MHz.&lt;br /&gt;
Drag the gain slider so that the gain (visible at the bottom of the slider) is set to zero. Then, slowly drag it up until you see the noise floor start to rise. The gain at which this occurs is the gain you should set in SATNOGS_RF_GAIN (Available under the 'Basic' menu in satnogs-setup).&lt;br /&gt;
&lt;br /&gt;
Some SDRs may present more than one gain slider. In these situations, you will need to configure SatNOGS with each gain set individually. [[Software Defined Radio#E4000 Tuner Gain Settings|Refer here]] for more information on how to do this.&lt;br /&gt;
&lt;br /&gt;
As an example, the following figure shows the noise floor observed on a station with a RTLSDR and a ~25dB masthead preamplifier, as gain levels on the RTLSDR are increased:&lt;br /&gt;
[[File:RTLSDR Noise Floor Variation with Gain Adjustment.png|alt=RTLSDR Noise Floor Variation with Gain Adjustment|none|thumb|900x900px|RTLSDR Noise Floor Variation with Gain Adjustment]]&lt;br /&gt;
We can see that between 0 db and 20 dB of gain there is essentially no change in the noise floor - this indicates the receive system is limited by the noise figure of the RTLSDR. As the gain increases through 30 dB, the noise floor starts to lift, indicating that we are now most likely limited by either the noise figure of the preamplifier, or the local noise environment. Any increase in gain past this point just results in reduction of the available receiver dynamic range.&lt;br /&gt;
&lt;br /&gt;
CubicSDR DOES NOT autorange its waterfall, in contrast, satnogs DOES autorange its waterfall.  When you adjust the gain in CubicSDR the waterfall background will dramatically change, but when you adjust the gain in satnogs the waterfall background will not change color.  See the web page documenting  autoranging waterfalls:&lt;br /&gt;
&lt;br /&gt;
https://docs.satnogs.org/projects/satnogs-client/en/stable/userguide.html#satnogs-waterfall-autorange&lt;br /&gt;
&lt;br /&gt;
'''Important Note: While CubicSDR is connected to the SDR, your SatNOGS ground station cannot run observations! Make sure to close CubicSDR when you have finished setting the gain.'''&lt;br /&gt;
===Hardware Configuration===&lt;br /&gt;
Basic hardware configuration is Antenna &amp;gt; Short coax &amp;gt; LNA &amp;gt; Coax &amp;gt; RTL SDR -&amp;gt; Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
===LNA===&lt;br /&gt;
The way to measure the performance of an antenna is using a figure of merit called the Antenna gain-to-noise-temperature (G/T). It's a positive unitless number, higher the better.&lt;br /&gt;
&lt;br /&gt;
G/T is comprised of antenna gain (in dB) on the top, and the system noise temperature (in Kelvins) on the bottom. There's a lot of somewhat-hard math involved, but here's the bottom line: to make your system perform better, you either need to increase the antenna gain or decrease the system noise temp. [https://en.wikipedia.org/wiki/Antenna_gain-to-noise-temperature Wikipedia]&lt;br /&gt;
&lt;br /&gt;
Increasing the antenna gain is difficult, only because we decided on an omnidirectional antenna as the basis for this How-To. Omnidirectional antennas top out at maybe 4-6 dBi gain or so, and that's just from pushing the radiation pattern up to the sky away from the ground. Any more gain than that and it's not an omni antenna; it's got a direction that the antenna needs to be pointed in. And we want to stay away from pointing antennas for now.&lt;br /&gt;
&lt;br /&gt;
Reducing the system temperature is the the way forward then. The RTL-SDR dongle has a noise figure of 6dB or so, depending on frequency, which is pretty horrible. But it turns out that the system noise temperature is largely determined by the first device in the receive chain. Since we can't change the antenna, adding a low-noise amplifier helps quite a bit. See this [https://www.youtube.com/watch?v=snifc_x_2sE youtube video] from Adam 9A4QV on how a LNA helps. (Also check out his other videos about the RTL SDR dongle, and SDR in general)&lt;br /&gt;
&lt;br /&gt;
More info on SDR noise figures:&lt;br /&gt;
&lt;br /&gt;
*[https://gitlab.com/librespacefoundation/sdrmakerspace/sdreval/-/raw/master/Report/pdf/Evaluation_of_SDR_Boards-1.0.pdf Evaluation of SDR Boards and Toolchains] from the [https://sdrmaker.space/ SDR Makerspace]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
More info on noise and preamps:&lt;br /&gt;
&lt;br /&gt;
*[https://en.wikipedia.org/wiki/Noise_temperature System noise from wikipedia], pretty high-level&lt;br /&gt;
*[https://www.rtl-sdr.com/tutorial-on-properly-positioning-a-preamp-lna-in-a-radio-system/ Where to put an LNA], from rtl-sdr.com&lt;br /&gt;
*[[SPF1589 LNA measurements|SPF5189 LNA measurements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Adding a LNA can also add its own set of problems, in that it may amplify strong local signals which may overload your SDR. When adding a LNA, you will likely need to back off the gain on your SDR to avoid this. It's also possible that the strong local signals may cause distortion to occur in the LNA itself, in which case you should consider the use of a filter between the LNA and the antenna. Some example products:&lt;br /&gt;
&lt;br /&gt;
*If you are experiencing issues with FM broadcast stations, a [https://www.rtl-sdr.com/rtl-sdr-com-broadcast-fm-band-stop-filter-88-108-mhz-reject-now-for-sale/ FM band-stop filter] may help.&lt;br /&gt;
*[https://www.minikits.com.au/electronic-kits/rf-amplifiers/rf-preamplifiers MiniKits masthead preamps] include fairly low-loss bandpass filters for their target bands (2m, 70cm).&lt;br /&gt;
&lt;br /&gt;
All filters will have some inherent loss, which adds to the system noise figure (or temperature, as discussed above), but this is a compromise that may need to be made to avoid distortion issues.&lt;br /&gt;
&lt;br /&gt;
Finally, using a LNA near the antenna means that we can accept some losses from a long coaxial cable run between the LNA and the receiver, allowing us to situate the antenna away from sources of local noise that may impact overall performance.&lt;br /&gt;
&lt;br /&gt;
As briefly discussed above, it's the first device in the receive chain which dominates the overall system noise temperature (or noise figure). In brief, as long as the losses in the coaxial cable are less than the gain of the LNA, your overall system noise figure won't degrade too much. As an example a 20m run of RG58 has a loss of ~10dB at 434 MHz. Using a LNA with a gain of 20dB and a noise figure of 1dB, the overall system noise figure is still only ~1.4 dB, and acceptable degradation.&lt;br /&gt;
&lt;br /&gt;
===Antenna===&lt;br /&gt;
For testing on the bench, pretty much any antenna will do, however set your expectations accordingly:&lt;br /&gt;
&lt;br /&gt;
*A vertical antenna (e.g. the telescopic whips that come with many RTLSDRs) will not receive high-elevation passes well, as they have a 'null' in their antenna pattern directly overhead. When a satellite is at a lower elevation it is further away, and so will be weaker.&lt;br /&gt;
*A dipole antenna (be it a straight, or a v-dipole) will have similar issues, though where the null is located will depend on how you orient the dipole. Either way, there will be some portions of a satellite pass with poor performance.&lt;br /&gt;
*If your antenna is located inside, near to your house mains wiring, or near other electrical devices, it may end up being swamped by lots of local electrical noise and end up being 'deaf' - in this situation a LNA will only make the situation worse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Refer to the [[Antennas|Antennas page]] for more information on antennas which are well suited to satellite observations.&lt;br /&gt;
&lt;br /&gt;
==Testing the station==&lt;br /&gt;
[[File:Pass predictions.png|300px|right]]&lt;br /&gt;
Now that you have the hardware and software up and running, go ahead and schedule some passes. Navigate to your station page, and click on the Schedule button on the right side of some promising passes. The green and red bars beneath the satellite name is a quick visual indication of the number of Good and Bad passes on the network. Unfortunately, this data is not time-stamped at all, so a satellite that had a lot of Good observations a long time ago, but recently died, would still show as Green.&lt;br /&gt;
&lt;br /&gt;
===Recommended Satellite Transmitters for Station Performance Benchmarking===&lt;br /&gt;
A few known-good satellite transmitters to test with with (as of November 2020) are:&lt;br /&gt;
&lt;br /&gt;
*For a station operating on the VHF Band:&lt;br /&gt;
**NOAA 15, 18, 19- The APT transmitters (very strong signals - considered to be the 'hello world' of satellite observations)&lt;br /&gt;
**ISS - If operating, the APRS transmitter is very strong, but may only transmit intermittently throughout a pass.&lt;br /&gt;
**CAS4A / CAS4B - Continuous CW and GMSK transmitters - a good example of a 'weaker' cube-sat signal.&lt;br /&gt;
**Max Valier Sat - Another weaker CW signal.&lt;br /&gt;
*For a station operating on the UHF band:&lt;br /&gt;
**FalconSat3 - The FSK downlink transmits continuously, and is an excellent benchmark for overall station performance. A high performing station may receive upwards of 600 data packets in a single pass.&lt;br /&gt;
**SpooQy-1 - Regular GMSK packets.&lt;br /&gt;
**OPS-SAT - Regular GMSK packets, fairly strong.&lt;br /&gt;
**ARMADILLO - A higher data rate signal, requiring a fairly good SNR to be able to decode the (hillarious) 19.2kbps GFSK packets.&lt;br /&gt;
&lt;br /&gt;
===Rating an Observation===&lt;br /&gt;
[[File:Waterfall Vetting Buttons.png|right|frameless]]&lt;br /&gt;
After each observation, you should rate it. More information [https://wiki.satnogs.org/Operation#Rating_observations here], but the bottom line is rate the observation:&lt;br /&gt;
&lt;br /&gt;
*'''Good''' if the satellite is seen in the waterfall at all. Different modulations appear differently in the waterfall, but will appear&lt;br /&gt;
*'''Bad''' if the satellite is not seen.&lt;br /&gt;
&lt;br /&gt;
Observations which do not produce any artefacts (Waterfall, audio, data packets) will automatically be considered as failed, and will eventually be deleted.&lt;br /&gt;
&lt;br /&gt;
For a more detailed guide on testing, see [[Operation]]&lt;br /&gt;
&lt;br /&gt;
===Calibrating frequency offset (PPM)===&lt;br /&gt;
If your observations result in signals which appear to be 'off centre' of the waterfall, then you may need to set a frequency offset correction. Guides on how to determine this correction via a few different methods are available here: [[Adjusting the SatNOGS Client#Frequency Offset Calibration]]&lt;br /&gt;
&lt;br /&gt;
===Mitigating Local Noise===&lt;br /&gt;
If you are finding the signal-to-noise of your observation seems a bit low, or you aren't seeing any signals from the known-good satellites listed above, then your station may be limited by local electrical noise. A more comprehensive guide on how to identify sources of noise is being developed, but as a starting point:&lt;br /&gt;
&lt;br /&gt;
*Turn on/off nearby electrical devices while an observation is running (or while looking at a waterfall using CubicSDR as described further above).&lt;br /&gt;
*Common sources of electrical noise include:&lt;br /&gt;
**LED lightbulbs or floodlights&lt;br /&gt;
**USB Chargers (or really any switch-mode power supply)&lt;br /&gt;
**Power-over-Ethernet systems&lt;br /&gt;
**Unshielded ethernet cables (or even shielded cables)&lt;br /&gt;
**HDMI and DVI cables, and computer monitors.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Next Steps==&lt;br /&gt;
Now that you've got this station working on the bench, what's next?&lt;br /&gt;
&lt;br /&gt;
*Buy/Build an antenna suited to satellite observations. Check out the [[Antennas|Antennas page]] for ideas.&lt;br /&gt;
*Mount your antenna away from obstructions, and ideally away from sources of electrical noise like ethernet cables, LED lights, and other electronic equipment.&lt;br /&gt;
*Situate your SDR and Raspberry Pi (or other computer) as far away as practical from your antenna. If you absolutely must mount it on the mast beneath the antenna and use a metal box, and run a separate DC power supply instead of using PoE (which can produce considerable amount of RF noise)&lt;br /&gt;
&lt;br /&gt;
===Building a Box===&lt;br /&gt;
&lt;br /&gt;
*[https://wiki.satnogs.org/No_rotator No-Rotator setup]  (Note the warning at the top of this page)&lt;br /&gt;
&lt;br /&gt;
[[ Category:Build ]]&lt;br /&gt;
[[ Category:Hardware ]]&lt;br /&gt;
[[ Category:Antenna ]]&lt;/div&gt;</summary>
		<author><name>Vk5qi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Omnidirectional_Station_How_To&amp;diff=3700</id>
		<title>Omnidirectional Station How To</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Omnidirectional_Station_How_To&amp;diff=3700"/>
		<updated>2020-11-07T10:57:05Z</updated>

		<summary type="html">&lt;p&gt;Vk5qi: /* Next Steps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Omnidirectional VHF Turnstile Antenna.jpg|alt=VHF Turnstile Antenna|thumb|VHF Turnstile antenna, [https://network.satnogs.org/stations/23/ SatNOGS Station 23]]]&lt;br /&gt;
This How-To is written to get you quickly receiving satellite data with an Omnidirectional antenna (an antenna that does not move).&lt;br /&gt;
&lt;br /&gt;
==Prerequisites/Background==&lt;br /&gt;
I'm assuming that you are a bit familiar with amateur radio, or linux in general, or you already have a Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
===Expectation Management===&lt;br /&gt;
First off, I'd like to set some expectations around a SatNOGs station with an omnidirectional antenna. Yes, you will be able to hear satellites, Morse code beacons, maybe even some voice contacts on a FM transponder. But for CubeSats with 1 watt transmitters at 9600 baud, it's going to be really difficult to actually decode any data with an omni antenna. You'll definitely see squiggly lines on the waterfall plot, but demodulating the signal and extracting satellite telemetry is going to be pretty difficult.&lt;br /&gt;
&lt;br /&gt;
The only way to get more signal is a better antenna. And a better antenna with more gain is going to be more directional, which means you will need a way to point that antenna at the satellite, and this How-To just got a lot more complicated. So we're not going there.&lt;br /&gt;
&lt;br /&gt;
A better preamp helps a bit, see the LNA section below.&lt;br /&gt;
&lt;br /&gt;
===Hardware Required===&lt;br /&gt;
This is a list of the hardware for indoor/testing purposes:&lt;br /&gt;
&lt;br /&gt;
*Raspberry Pi&lt;br /&gt;
**Power supply + cable (see note below)&lt;br /&gt;
**Up to 16 GB Micro SD card&lt;br /&gt;
**Ethernet cable&lt;br /&gt;
*RTL SDR Blog v3 dongle&lt;br /&gt;
*Various short lengths of coax&lt;br /&gt;
*Preamp/LNA - Or not if your coax is short, see LNA section below&lt;br /&gt;
*Omnidirectional antenna - just a dual mag-mount on a cookie sheet will work OK for stronger satellites&lt;br /&gt;
&lt;br /&gt;
==Setting up the Raspberry Pi==&lt;br /&gt;
I chose the [https://www.raspberrypi.org/products/raspberry-pi-3-model-b/ Raspberry Pi 3 Model B] for my station. SatNOGS is known to work on the RPi 3B, 3B+ and 4 models. &lt;br /&gt;
&lt;br /&gt;
===Downloading/Writing the SD image===&lt;br /&gt;
The SatNOGS team has done a great job creating a Raspbian image with all the required software. Simply navigate over to the [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/tags latest tag on Gitlab], and click on the &amp;quot;Zipped image&amp;quot; link under the latest tag. It's about 650 MBytes.&lt;br /&gt;
&lt;br /&gt;
For linux:&lt;br /&gt;
&lt;br /&gt;
#Unzip the downloaded file: '''unzip image_&amp;lt;latest_image_date&amp;gt;-Raspbian-SatNOGS-lite.zip'''&lt;br /&gt;
#Figure out which device is the SD card. SD cards are usually start with mmcblk. '''sudo lsblk'''&lt;br /&gt;
#Write the image. This will take a while. Make sure you don't overwrite your host OS: '''sudo dd if=&amp;lt;latest_image_date&amp;gt;-Raspbian-SatNOGS-lite.img of=/dev/mmcblk0'''&lt;br /&gt;
&lt;br /&gt;
===Power notes===&lt;br /&gt;
Thinking I could save a few bucks, I used a no-name generic 2.4 amp &amp;quot;tablet&amp;quot; USB power supply I got as a freebie, and a micro-USB cable I use for charging my phone. What a mistake! The Micro-USB cable wire gauge was too small, so there was too much voltage drop on the cable, so the Raspberry Pi reported power problems every time it was doing anything.&lt;br /&gt;
&lt;br /&gt;
Power problems are indicated by either a lightning bolt in the upper right of the monitor, or the red power LED flashes on the board itself. If The Raspberry Pi processor itself is pretty forgiving of power droops because it runs at 3.3 volts. But the 5v USB ports are directly tied to input power, so undervoltage conditions will cause problems for USB devices, such as the RTL SDR dongle.&lt;br /&gt;
&lt;br /&gt;
==Software Configuration==&lt;br /&gt;
&lt;br /&gt;
===Creating a SatNOGS Network account===&lt;br /&gt;
There are several different websites to be aware of and sign in to. As of 12/2018, most of our websites use a unified login provided by Auth0, so when you create an account on one of these sites it will work across the others as well:&lt;br /&gt;
&lt;br /&gt;
*Required: [https://network.satnogs.org/ Network]: for registering your station and adding data to the network.&lt;br /&gt;
*Recommended: [https://community.libre.space Forums]: for asking questions.&lt;br /&gt;
*Optional: [https://db.satnogs.org/ Database]: Only if you want to add satellites/modes. Not necessary for receiving satellite data.&lt;br /&gt;
&lt;br /&gt;
===Registering the station===&lt;br /&gt;
Log in to your Network account, and click the &amp;quot;+ Add Ground Station&amp;quot; button, or click [https://network.satnogs.org/stations/edit/ here] Fill out the short form, and your station will be added to the database. For &amp;quot;Antenna&amp;quot;, pick something that encompasses the frequency range of your antenna. For wideband reception, use VHF Discone 26-1200 MHz.&lt;br /&gt;
&lt;br /&gt;
The important info you'll need later on is the Station ID number, lat/lon/altitiude. I would also use a Minimum Horizon of 30 degrees or so, this will keep your station from allowing low-elevation passes to be scheduled. Make sure to keep the &amp;quot;Testing&amp;quot; flag checked, as this lets people know that your station isn't quite ready for real use.&lt;br /&gt;
&lt;br /&gt;
To help your fellow operators please consider placing the following information into the &amp;quot;Description&amp;quot; field for your station: Antenna gain and location, preamp info (if any), SDR device, some kind of contact info perhaps [[Get_In_Touch#Chat_with_us_on_our_Matrix_room |irc/matrix]] or [https://community.libre.space/ community forum] username or email address.&lt;br /&gt;
&lt;br /&gt;
===Booting and Configuring Raspbian===&lt;br /&gt;
After you have the image burned onto a Micro-SD card, boot it! I would recommend hooking up a keyboard and HDMI monitor, you can watch the boot process. If it doesn't boot at all, double check that you wrote the SatNOGS Raspbian image correctly.&lt;br /&gt;
&lt;br /&gt;
After a successful boot, log in with username '''pi''' and password '''raspberry'''&lt;br /&gt;
&lt;br /&gt;
#Change your password! '''passwd'''&lt;br /&gt;
#Run '''sudo raspi-config''' to set up the base OS. ''Tab'' switches between the options and ''select''.&lt;br /&gt;
##4 Localisation Options: I1 Change Locale: en_US.UTF-8 UTF-8&lt;br /&gt;
##4 Localisation Options: I2 Change Timezone: None of the above: UTC&lt;br /&gt;
##4 Localisation Options: I3 Change Keyboard Layout:&lt;br /&gt;
##7 Advanced Options: A1 Expand Filesystem &amp;lt;br /&amp;gt;This will expand the ~2GB Micro-SD card partition to fill the entire SD card.&lt;br /&gt;
&lt;br /&gt;
The Raspberry Pi needs to reboot to expand the filesystem, so do this now. It might take a while. '''sudo reboot''&lt;br /&gt;
&lt;br /&gt;
====Disabling WiFi and Bluetooth====&lt;br /&gt;
To disable WiFi and Bluetooth, edit the /boot/config.txt file, and add the following lines at the bottom:&lt;br /&gt;
 # Disable WiFi and bluetooth&lt;br /&gt;
 dtoverlay=pi3-disable-wifi&lt;br /&gt;
 dtoverlay=pi3-disable-bt&lt;br /&gt;
&lt;br /&gt;
Then reboot again. To make sure that it worked, run '''ifconfig''' and make sure that ''wlan0'' isn't listed. I'm not sure how to tell if bluetooth is turned off.&lt;br /&gt;
&lt;br /&gt;
====Additional software====&lt;br /&gt;
I like to install this additional software with '''sudo apt install bmon''' ...&lt;br /&gt;
&lt;br /&gt;
*bmon - a graphical network usage analyzer.&lt;br /&gt;
*vnstat - keeps track of your bandwidth usage&lt;br /&gt;
*vim - the world's best text editor ;)&lt;br /&gt;
*irssi - a terminal IRC client, for chatting on the #satnogs IRC channel&lt;br /&gt;
&lt;br /&gt;
If you can't tell by now, I'm always a big fan of rebooting. It certainly doesn't take that long... '''sudo reboot'''&lt;br /&gt;
&lt;br /&gt;
===Configuring the satnogs-client===&lt;br /&gt;
Once you have the base Raspbian Strech OS installed, updated, and looking good, you can configure SatNOGS. Plug in your RTL SDR if you haven't already.&lt;br /&gt;
&lt;br /&gt;
First thing to do is update the satnogs-setup program. Run '''sudo satnogs-setup'''. This will probably take a while, then '''Update''', which will also take a while. Per usual, after the update I like to reboot the raspberry pi just to make sure everything was updated and is actually running the new code.&lt;br /&gt;
&lt;br /&gt;
====Basic Configuration====&lt;br /&gt;
Then the actual configuration of the station:&lt;br /&gt;
&lt;br /&gt;
#Run '''sudo satnogs-setup''' again.&lt;br /&gt;
#Use the up/down and TAB keys to navigate, and Enter to select an option.&lt;br /&gt;
#Basic Configuration:&lt;br /&gt;
##SATNOGS_API_TOKEN: After logging in to network.satnogs.org, this is in the upper right under &amp;quot;API Key&amp;quot; [no longer exsists? Add direct link]&lt;br /&gt;
##SATNOGS_SOAPY_RX_DEVICE: driver=rtlsdr&lt;br /&gt;
##SATNOGS_RX_SAMP_RATE: 2.048e6&lt;br /&gt;
##SATNOGS_RX_GAIN: Refer &amp;quot;Setting the gain&amp;quot; section below.&lt;br /&gt;
##SATNOGS_STATION_ELEV: station elevation in meters&lt;br /&gt;
##SATNOGS_STATION_ID: The ID number of your station.&lt;br /&gt;
##SATNOGS_STATION_LAT and LON: Latitude and Longitude in decimal degrees&lt;br /&gt;
&lt;br /&gt;
Then back to the main menu and ''Apply'' to save the configuration. Ansible will run and update the system. If you want to quit, just keep pressing cancel to exit.&lt;br /&gt;
&lt;br /&gt;
====Setting the gain====&lt;br /&gt;
The next step is to set the gain on the RTL SDR. The aim here (in the majority of cases) is to set the gain of your station to maximise sensitivity (best noise figure), but without limiting the available dynamic range of your station due to your local noise floor. This can be achieved in a fairly simple manner, by watching the level of the receivers noise floor as you slowly increase the receiver gain. At some point the noise floor will start to rise - at this point increasing the gain any further will of no use - you will only increase the noise level, and eat into your receiver's available dynamic range (for a RTLSDR, theoretically only 48 dB).&lt;br /&gt;
&lt;br /&gt;
There may be situations where strong local interferers may require the use of a lower gain setting to avoid intermodulation products appearing in the passband, though these cases would be better solved with a suitable bandpass filter somewhere in the receive chain.&lt;br /&gt;
&lt;br /&gt;
First, it is good to know the available gain range of your SDR. This can be accomplished by running &amp;lt;code&amp;gt;SoapySDRUtil --probe&amp;lt;/code&amp;gt;, which provides a considerable amount of information about the connected SDR:&lt;br /&gt;
 pi@satnogs:~ $ SoapySDRUtil --probe&lt;br /&gt;
 ######################################################&lt;br /&gt;
 ## Soapy SDR -- the SDR abstraction library&lt;br /&gt;
 ######################################################&lt;br /&gt;
 &lt;br /&gt;
 Probe device&lt;br /&gt;
 &lt;br /&gt;
 Found Rafael Micro R820T tuner&lt;br /&gt;
 [INFO] [UHD] linux; GNU C++ version 8.2.0; Boost_106700; UHD_3.13.1.0-3&lt;br /&gt;
 Found Rafael Micro R820T tuner&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 -- Device identification&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
   driver=RTLSDR&lt;br /&gt;
   hardware=RTLSDR&lt;br /&gt;
   origin=&amp;lt;nowiki&amp;gt;https://github.com/pothosware/SoapyRTLSDR&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   rtl=0&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 -- Peripheral summary&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
   Channels: 1 Rx, 0 Tx&lt;br /&gt;
   Timestamps: NO&lt;br /&gt;
   Other Settings:&lt;br /&gt;
      * Direct Sampling - RTL-SDR Direct Sampling Mode&lt;br /&gt;
        [key=direct_samp, default=0, type=string, options=(0, 1, 2)]&lt;br /&gt;
      * Offset Tune - RTL-SDR Offset Tuning Mode&lt;br /&gt;
        [key=offset_tune, default=false, type=bool]&lt;br /&gt;
      * I/Q Swap - RTL-SDR I/Q Swap Mode&lt;br /&gt;
        [key=iq_swap, default=false, type=bool]&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 -- RX Channel 0&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
   Full-duplex: YES&lt;br /&gt;
   Supports AGC: YES&lt;br /&gt;
   Stream formats: CS8, CS16, CF32&lt;br /&gt;
   Native format: CS8 [full-scale=128]&lt;br /&gt;
   Stream args:&lt;br /&gt;
      * Buffer Size - Number of bytes per buffer, multiples of 512 only.&lt;br /&gt;
        [key=bufflen, units=bytes, default=262144, type=int]&lt;br /&gt;
      * Ring buffers - Number of buffers in the ring.&lt;br /&gt;
        [key=buffers, units=buffers, default=15, type=int]&lt;br /&gt;
      * Async buffers - Number of async usb buffers (advanced).&lt;br /&gt;
        [key=asyncBuffs, units=buffers, default=0, type=int]&lt;br /&gt;
   Antennas: RX&lt;br /&gt;
   Full gain range: [0, 49.6] dB&lt;br /&gt;
     TUNER gain range: [0, 49.6] dB&lt;br /&gt;
   Full freq range: [23.999, 1764] MHz&lt;br /&gt;
     RF freq range: [24, 1764] MHz&lt;br /&gt;
     CORR freq range: [-0.001, 0.001] MHz&lt;br /&gt;
   Sample rates: 0.25, 1.024, 1.536, 1.792, 1.92, 2.048, 2.16, 2.56, 2.88, 3.2 MSps&lt;br /&gt;
The above output is for a RTLSDR, and we can see that there is information on the 'Full gain range', and 'TUNER' gain. The Full gain setting is an 'abstracted' gain range, which in this case just directly links to the 'TUNER' gain, as that is the only gain setting presented by the RTLSDR driver. Other SDRs (e.g. AirSpy) may present more gain controls. Anyway, we can see that the gain range is 0 through 49.6 dB. It's quite possible that there are only discrete gain steps within this range (and this is very true for the RTLSDR), but SoapySDR will hide that from us and automatically use the nearest valid setting.&lt;br /&gt;
&lt;br /&gt;
Next up, we want a way of seeing a live spectrum from the SDR. This might be difficult, especially if you're just gone and mounted a RTLSDR in a metal box up a pole! Well, SoapySDR comes to the rescue again with SoapySDR Server - this allows us to serve up the SDR on the network, and access it with a client.&lt;br /&gt;
&lt;br /&gt;
Note: SoapySDR Server is not currently installed by default. It can be installed by running the commands:&lt;br /&gt;
 $ sudo apt-get install soapyremote-server&lt;br /&gt;
 $ sudo systemctl start soapyremote-server&lt;br /&gt;
&lt;br /&gt;
[https://cubicsdr.com/ CubicSDR] is a good cross-platform client that can connect to a SoapySDR Server, and you can [https://github.com/cjcliffe/CubicSDR/releases download the latest release by clicking here]. &lt;br /&gt;
On the RPi, you can start SoapySDR Server by running: &amp;lt;code&amp;gt;SoapySDRServer --bind=&amp;quot;0.0.0.0:55132&amp;quot;&amp;lt;/code&amp;gt;  Leave this running. &lt;br /&gt;
&lt;br /&gt;
Note: If you need to use the Bias-T option of an RTLSDR, you will need to activate this manually prior to running SoapySDRServer. This can be accomplished by [[Software Defined Radio#Using RTL-SDR.com V3 Dongle.27s Bias-T Power Supply|compiling the rtl_biast utility]], and running it with &amp;lt;code&amp;gt;./rtl_biast -b 1&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
Open up CubicSDR on another computer, on the same network as your SatNOGS station. It will pop up a window asking you to select a SDR device. With any luck, it will have auto-detected your SoapySDR Server, and it will show up in the 'Local Net' list. If not, you will need to select 'Remote', click 'Add', and then enter the IP address of your station. You should then have a SDR showing up in the list.&lt;br /&gt;
[[File:Screen Shot 2020-03-19 at 10.41.52 pm.png|alt=CubicSDR SDR Devices List|none|thumb|600x600px|CubicSDR SDR Devices List]]&lt;br /&gt;
You should now be able to click 'Start', and end up with a waterfall display. If the waterfall appears to glitch, or show a 'lumpy' pattern near the centre of the display, then this indicates packet loss between the SatNOGS station and your client. Try and connect via a direct LAN connection if possible. &lt;br /&gt;
In the settings menu of CubicSDR, disable &amp;quot;Automatic Gain&amp;quot; if it is set. This will allow manual control over the gain settings via sliders that will show up at the top left of the window.&lt;br /&gt;
[[File:CubicSDR Main Window.png|alt=CubicSDR Main Window (Annotated)|none|thumb|900x900px|CubicSDR Main Window (Annotated)]]&lt;br /&gt;
The above Figure shows the CubicSDR window, with the spectrum area, frequency selection, and gain settings annotated. Set the frequency to something suitable for your station. For example, if you are setting up a 70cm station, set a frequency of 437 MHz (437000000 Hz). For a 2m station, try 146 MHz.&lt;br /&gt;
Drag the gain slider so that the gain (visible at the bottom of the slider) is set to zero. Then, slowly drag it up until you see the noise floor start to rise. The gain at which this occurs is the gain you should set in SATNOGS_RF_GAIN (Available under the 'Basic' menu in satnogs-setup).&lt;br /&gt;
&lt;br /&gt;
Some SDRs may present more than one gain slider. In these situations, you will need to configure SatNOGS with each gain set individually. [[Software Defined Radio#E4000 Tuner Gain Settings|Refer here]] for more information on how to do this.&lt;br /&gt;
&lt;br /&gt;
As an example, the following figure shows the noise floor observed on a station with a RTLSDR and a ~25dB masthead preamplifier, as gain levels on the RTLSDR are increased:&lt;br /&gt;
[[File:RTLSDR Noise Floor Variation with Gain Adjustment.png|alt=RTLSDR Noise Floor Variation with Gain Adjustment|none|thumb|900x900px|RTLSDR Noise Floor Variation with Gain Adjustment]]&lt;br /&gt;
We can see that between 0 db and 20 dB of gain there is essentially no change in the noise floor - this indicates the receive system is limited by the noise figure of the RTLSDR. As the gain increases through 30 dB, the noise floor starts to lift, indicating that we are now most likely limited by either the noise figure of the preamplifier, or the local noise environment. Any increase in gain past this point just results in reduction of the available receiver dynamic range.&lt;br /&gt;
&lt;br /&gt;
CubicSDR DOES NOT autorange its waterfall, in contrast, satnogs DOES autorange its waterfall.  When you adjust the gain in CubicSDR the waterfall background will dramatically change, but when you adjust the gain in satnogs the waterfall background will not change color.  See the web page documenting  autoranging waterfalls:&lt;br /&gt;
&lt;br /&gt;
https://docs.satnogs.org/projects/satnogs-client/en/stable/userguide.html#satnogs-waterfall-autorange&lt;br /&gt;
&lt;br /&gt;
'''Important Note: While CubicSDR is connected to the SDR, your SatNOGS ground station cannot run observations! Make sure to close CubicSDR when you have finished setting the gain.'''&lt;br /&gt;
===Hardware Configuration===&lt;br /&gt;
Basic hardware configuration is Antenna &amp;gt; Short coax &amp;gt; LNA &amp;gt; Coax &amp;gt; RTL SDR -&amp;gt; Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
===LNA===&lt;br /&gt;
The way to measure the performance of an antenna is using a figure of merit called the Antenna gain-to-noise-temperature (G/T). It's a positive unitless number, higher the better.&lt;br /&gt;
&lt;br /&gt;
G/T is comprised of antenna gain (in dB) on the top, and the system noise temperature (in Kelvins) on the bottom. There's a lot of somewhat-hard math involved, but here's the bottom line: to make your system perform better, you either need to increase the antenna gain or decrease the system noise temp. [https://en.wikipedia.org/wiki/Antenna_gain-to-noise-temperature Wikipedia]&lt;br /&gt;
&lt;br /&gt;
Increasing the antenna gain is difficult, only because we decided on an omnidirectional antenna as the basis for this How-To. Omnidirectional antennas top out at maybe 4-6 dBi gain or so, and that's just from pushing the radiation pattern up to the sky away from the ground. Any more gain than that and it's not an omni antenna; it's got a direction that the antenna needs to be pointed in. And we want to stay away from pointing antennas for now.&lt;br /&gt;
&lt;br /&gt;
Reducing the system temperature is the the way forward then. The RTL-SDR dongle has a noise figure of 6dB or so, depending on frequency, which is pretty horrible. But it turns out that the system noise temperature is largely determined by the first device in the receive chain. Since we can't change the antenna, adding a low-noise amplifier helps quite a bit. See this [https://www.youtube.com/watch?v=snifc_x_2sE youtube video] from Adam 9A4QV on how a LNA helps. (Also check out his other videos about the RTL SDR dongle, and SDR in general)&lt;br /&gt;
&lt;br /&gt;
More info on SDR noise figures:&lt;br /&gt;
&lt;br /&gt;
*[https://gitlab.com/librespacefoundation/sdrmakerspace/sdreval/-/raw/master/Report/pdf/Evaluation_of_SDR_Boards-1.0.pdf Evaluation of SDR Boards and Toolchains] from the [https://sdrmaker.space/ SDR Makerspace]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
More info on noise and preamps:&lt;br /&gt;
&lt;br /&gt;
*[https://en.wikipedia.org/wiki/Noise_temperature System noise from wikipedia], pretty high-level&lt;br /&gt;
*[https://www.rtl-sdr.com/tutorial-on-properly-positioning-a-preamp-lna-in-a-radio-system/ Where to put an LNA], from rtl-sdr.com&lt;br /&gt;
*[[SPF1589 LNA measurements|SPF5189 LNA measurements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Adding a LNA can also add its own set of problems, in that it may amplify strong local signals which may overload your SDR. When adding a LNA, you will likely need to back off the gain on your SDR to avoid this. It's also possible that the strong local signals may cause distortion to occur in the LNA itself, in which case you should consider the use of a filter between the LNA and the antenna. Some example products:&lt;br /&gt;
&lt;br /&gt;
*If you are experiencing issues with FM broadcast stations, a [https://www.rtl-sdr.com/rtl-sdr-com-broadcast-fm-band-stop-filter-88-108-mhz-reject-now-for-sale/ FM band-stop filter] may help.&lt;br /&gt;
*[https://www.minikits.com.au/electronic-kits/rf-amplifiers/rf-preamplifiers MiniKits masthead preamps] include fairly low-loss bandpass filters for their target bands (2m, 70cm).&lt;br /&gt;
&lt;br /&gt;
All filters will have some inherent loss, which adds to the system noise figure (or temperature, as discussed above), but this is a compromise that may need to be made to avoid distortion issues.&lt;br /&gt;
&lt;br /&gt;
Finally, using a LNA near the antenna means that we can accept some losses from a long coaxial cable run between the LNA and the receiver, allowing us to situate the antenna away from sources of local noise that may impact overall performance.&lt;br /&gt;
&lt;br /&gt;
As briefly discussed above, it's the first device in the receive chain which dominates the overall system noise temperature (or noise figure). In brief, as long as the losses in the coaxial cable are less than the gain of the LNA, your overall system noise figure won't degrade too much. As an example a 20m run of RG58 has a loss of ~10dB at 434 MHz. Using a LNA with a gain of 20dB and a noise figure of 1dB, the overall system noise figure is still only ~1.4 dB, and acceptable degradation.&lt;br /&gt;
&lt;br /&gt;
===Antenna===&lt;br /&gt;
For testing on the bench, pretty much any antenna will do, however set your expectations accordingly:&lt;br /&gt;
&lt;br /&gt;
*A vertical antenna (e.g. the telescopic whips that come with many RTLSDRs) will not receive high-elevation passes well, as they have a 'null' in their antenna pattern directly overhead. When a satellite is at a lower elevation it is further away, and so will be weaker.&lt;br /&gt;
*A dipole antenna (be it a straight, or a v-dipole) will have similar issues, though where the null is located will depend on how you orient the dipole. Either way, there will be some portions of a satellite pass with poor performance.&lt;br /&gt;
*If your antenna is located inside, near to your house mains wiring, or near other electrical devices, it may end up being swamped by lots of local electrical noise and end up being 'deaf' - in this situation a LNA will only make the situation worse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Refer to the [[Antennas|Antennas page]] for more information on antennas which are well suited to satellite observations.&lt;br /&gt;
&lt;br /&gt;
==Testing the station==&lt;br /&gt;
[[File:Pass predictions.png|300px|right]]&lt;br /&gt;
Now that you have the hardware and software up and running, go ahead and schedule some passes. Navigate to your station page, and click on the Schedule button on the right side of some promising passes. The green and red bars beneath the satellite name is a quick visual indication of the number of Good and Bad passes on the network. Unfortunately, this data is not time-stamped at all, so a satellite that had a lot of Good observations a long time ago, but recently died, would still show as Green.&lt;br /&gt;
&lt;br /&gt;
=== Recommended Satellite Transmitters for Station Performance Benchmarking ===&lt;br /&gt;
A few known-good satellite transmitters to test with with (as of November 2020) are:&lt;br /&gt;
&lt;br /&gt;
*For a station operating on the VHF Band:&lt;br /&gt;
**NOAA 15, 18, 19- The APT transmitters (very strong signals - considered to be the 'hello world' of satellite observations)&lt;br /&gt;
**ISS - If operating, the APRS transmitter is very strong, but may only transmit intermittently throughout a pass.&lt;br /&gt;
**CAS4A / CAS4B - Continuous CW and GMSK transmitters - a good example of a 'weaker' cube-sat signal.&lt;br /&gt;
**Max Valier Sat - Another weaker CW signal. &lt;br /&gt;
*For a station operating on the UHF band:&lt;br /&gt;
**FalconSat3 - The FSK downlink transmits continuously, and is an excellent benchmark for overall station performance. A high performing station may receive upwards of 600 data packets in a single pass.&lt;br /&gt;
**SpooQy-1 - Regular GMSK packets.&lt;br /&gt;
**OPS-SAT - Regular GMSK packets, fairly strong.&lt;br /&gt;
**ARMADILLO - A higher data rate signal, requiring a fairly good SNR to be able to decode the (hillarious) 19.2kbps GFSK packets.&lt;br /&gt;
&lt;br /&gt;
===Rating an Observation===&lt;br /&gt;
[[File:Waterfall Vetting Buttons.png|right|frameless]]&lt;br /&gt;
After each observation, you should rate it. More information [https://wiki.satnogs.org/Operation#Rating_observations here], but the bottom line is rate the observation:&lt;br /&gt;
&lt;br /&gt;
*'''Good''' if the satellite is seen in the waterfall at all. Different modulations appear differently in the waterfall, but will appear&lt;br /&gt;
*'''Bad''' if the satellite is not seen.&lt;br /&gt;
&lt;br /&gt;
Observations which do not produce any artefacts (Waterfall, audio, data packets) will automatically be considered as failed, and will eventually be deleted.&lt;br /&gt;
&lt;br /&gt;
For a more detailed guide on testing, see [[Operation]]&lt;br /&gt;
&lt;br /&gt;
===Calibrating frequency offset (PPM)===&lt;br /&gt;
If your observations result in signals which appear to be 'off centre' of the waterfall, then you may need to set a frequency offset correction. Guides on how to determine this correction via a few different methods are available here: [[Adjusting the SatNOGS Client#Frequency Offset Calibration]]&lt;br /&gt;
&lt;br /&gt;
===Mitigating Local Noise===&lt;br /&gt;
If you are finding the signal-to-noise of your observation seems a bit low, or you aren't seeing any signals from the known-good satellites listed above, then your station may be limited by local electrical noise. A more comprehensive guide on how to identify sources of noise is being developed, but as a starting point:&lt;br /&gt;
&lt;br /&gt;
* Turn on/off nearby electrical devices while an observation is running (or while looking at a waterfall using CubicSDR as described further above). &lt;br /&gt;
* Common sources of electrical noise include:&lt;br /&gt;
** LED lightbulbs or floodlights&lt;br /&gt;
** USB Chargers (or really any switch-mode power supply)&lt;br /&gt;
** Power-over-Ethernet systems&lt;br /&gt;
** Unshielded ethernet cables (or even shielded cables)&lt;br /&gt;
** HDMI and DVI cables, and computer monitors.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Next Steps==&lt;br /&gt;
Now that you've got this station working on the bench, what's next?&lt;br /&gt;
&lt;br /&gt;
* Buy/Build an antenna suited to satellite observations. Check out the [[Antennas|Antennas page]] for ideas.&lt;br /&gt;
* Mount your antenna away from obstructions, and ideally away from sources of electrical noise like ethernet cables, LED lights, and other electronic equipment.&lt;br /&gt;
* Situate your SDR and Raspberry Pi (or other computer) as far away as practical from your antenna. If you absolutely must mount it on the mast beneath the antenna and use a metal box, and run a separate DC power supply instead of using PoE (which can produce considerable amount of RF noise)&lt;br /&gt;
&lt;br /&gt;
===Building a Box===&lt;br /&gt;
&lt;br /&gt;
*[https://wiki.satnogs.org/No_rotator No-Rotator setup]  (Note the warning at the top of this page)&lt;br /&gt;
&lt;br /&gt;
[[ Category:Build ]]&lt;br /&gt;
[[ Category:Hardware ]]&lt;br /&gt;
[[ Category:Antenna ]]&lt;/div&gt;</summary>
		<author><name>Vk5qi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Omnidirectional_Station_How_To&amp;diff=3699</id>
		<title>Omnidirectional Station How To</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Omnidirectional_Station_How_To&amp;diff=3699"/>
		<updated>2020-11-07T10:28:39Z</updated>

		<summary type="html">&lt;p&gt;Vk5qi: /* Next Steps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Omnidirectional VHF Turnstile Antenna.jpg|alt=VHF Turnstile Antenna|thumb|VHF Turnstile antenna, [https://network.satnogs.org/stations/23/ SatNOGS Station 23]]]&lt;br /&gt;
This How-To is written to get you quickly receiving satellite data with an Omnidirectional antenna (an antenna that does not move).&lt;br /&gt;
&lt;br /&gt;
==Prerequisites/Background==&lt;br /&gt;
I'm assuming that you are a bit familiar with amateur radio, or linux in general, or you already have a Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
===Expectation Management===&lt;br /&gt;
First off, I'd like to set some expectations around a SatNOGs station with an omnidirectional antenna. Yes, you will be able to hear satellites, Morse code beacons, maybe even some voice contacts on a FM transponder. But for CubeSats with 1 watt transmitters at 9600 baud, it's going to be really difficult to actually decode any data with an omni antenna. You'll definitely see squiggly lines on the waterfall plot, but demodulating the signal and extracting satellite telemetry is going to be pretty difficult.&lt;br /&gt;
&lt;br /&gt;
The only way to get more signal is a better antenna. And a better antenna with more gain is going to be more directional, which means you will need a way to point that antenna at the satellite, and this How-To just got a lot more complicated. So we're not going there.&lt;br /&gt;
&lt;br /&gt;
A better preamp helps a bit, see the LNA section below.&lt;br /&gt;
&lt;br /&gt;
===Hardware Required===&lt;br /&gt;
This is a list of the hardware for indoor/testing purposes:&lt;br /&gt;
&lt;br /&gt;
*Raspberry Pi&lt;br /&gt;
**Power supply + cable (see note below)&lt;br /&gt;
**Up to 16 GB Micro SD card&lt;br /&gt;
**Ethernet cable&lt;br /&gt;
*RTL SDR Blog v3 dongle&lt;br /&gt;
*Various short lengths of coax&lt;br /&gt;
*Preamp/LNA - Or not if your coax is short, see LNA section below&lt;br /&gt;
*Omnidirectional antenna - just a dual mag-mount on a cookie sheet will work OK for stronger satellites&lt;br /&gt;
&lt;br /&gt;
==Setting up the Raspberry Pi==&lt;br /&gt;
I chose the [https://www.raspberrypi.org/products/raspberry-pi-3-model-b/ Raspberry Pi 3 Model B] for my station. &lt;br /&gt;
&lt;br /&gt;
===Downloading/Writing the SD image===&lt;br /&gt;
The SatNOGS team has done a great job creating a Raspbian image with all the required software. Simply navigate over to the [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/tags latest tag on Gitlab], and click on the &amp;quot;Zipped image&amp;quot; link under the latest tag. It's about 650 MBytes.&lt;br /&gt;
&lt;br /&gt;
For linux:&lt;br /&gt;
&lt;br /&gt;
#Unzip the downloaded file: '''unzip image_2018-08-03-Raspbian-SatNOGS-lite.zip'''&lt;br /&gt;
#Figure out which device is the SD card. SD cards are usually start with mmcblk. '''sudo lsblk'''&lt;br /&gt;
#Write the image. This will take a while. Make sure you don't overwrite your host OS: '''sudo dd if=2018-08-03-Raspbian-SatNOGS-lite.img of=/dev/mmcblk0'''&lt;br /&gt;
&lt;br /&gt;
===Power notes===&lt;br /&gt;
Thinking I could save a few bucks, I used a no-name generic 2.4 amp &amp;quot;tablet&amp;quot; USB power supply I got as a freebie, and a micro-USB cable I use for charging my phone. What a mistake! The Micro-USB cable wire gauge was too small, so there was too much voltage drop on the cable, so the Raspberry Pi reported power problems every time it was doing anything.&lt;br /&gt;
&lt;br /&gt;
Power problems are indicated by either a lightning bolt in the upper right of the monitor, or the red power LED flashes on the board itself. If The Raspberry Pi processor itself is pretty forgiving of power droops because it runs at 3.3 volts. But the 5v USB ports are directly tied to input power, so undervoltage conditions will cause problems for USB devices, such as the RTL SDR dongle.&lt;br /&gt;
&lt;br /&gt;
==Software Configuration==&lt;br /&gt;
&lt;br /&gt;
===Creating a SatNOGS Network account===&lt;br /&gt;
There are several different websites to be aware of and sign in to. As of 12/2018, most of our websites use a unified login provided by Auth0, so when you create an account on one of these sites it will work across the others as well:&lt;br /&gt;
&lt;br /&gt;
*Required: [https://network.satnogs.org/ Network]: for registering your station and adding data to the network.&lt;br /&gt;
*Recommended: [https://community.libre.space Forums]: for asking questions.&lt;br /&gt;
*Optional: [https://db.satnogs.org/ Database]: Only if you want to add satellites/modes. Not necessary for receiving satellite data.&lt;br /&gt;
&lt;br /&gt;
===Registering the station===&lt;br /&gt;
Log in to your Network account, and click the &amp;quot;+ Add Ground Station&amp;quot; button, or click [https://network.satnogs.org/stations/edit/ here] Fill out the short form, and your station will be added to the database. For &amp;quot;Antenna&amp;quot;, pick something that encompasses the frequency range of your antenna. For wideband reception, use VHF Discone 26-1200 MHz.&lt;br /&gt;
&lt;br /&gt;
The important info you'll need later on is the Station ID number, lat/lon/altitiude. I would also use a Minimum Horizon of 30 degrees or so, this will keep your station from allowing low-elevation passes to be scheduled. Make sure to keep the &amp;quot;Testing&amp;quot; flag checked, as this lets people know that your station isn't quite ready for real use.&lt;br /&gt;
&lt;br /&gt;
To help your fellow operators please consider placing the following information into the &amp;quot;Description&amp;quot; field for your station: Antenna gain and location, preamp info (if any), SDR device, some kind of contact info perhaps [[Get_In_Touch#Chat_with_us_on_our_Matrix_room |irc/matrix]] or [https://community.libre.space/ community forum] username or email address.&lt;br /&gt;
&lt;br /&gt;
===Booting and Configuring Raspbian===&lt;br /&gt;
After you have the image burned onto a Micro-SD card, boot it! I would recommend hooking up a keyboard and HDMI monitor, you can watch the boot process. If it doesn't boot at all, double check that you wrote the SatNOGS Raspbian image correctly.&lt;br /&gt;
&lt;br /&gt;
After a successful boot, log in with username '''pi''' and password '''raspberry'''&lt;br /&gt;
&lt;br /&gt;
#Change your password! '''passwd'''&lt;br /&gt;
#Run '''sudo raspi-config''' to set up the base OS. ''Tab'' switches between the options and ''select''.&lt;br /&gt;
##4 Localisation Options: I1 Change Locale: en_US.UTF-8 UTF-8&lt;br /&gt;
##4 Localisation Options: I2 Change Timezone: None of the above: UTC&lt;br /&gt;
##4 Localisation Options: I3 Change Keyboard Layout:&lt;br /&gt;
##7 Advanced Options: A1 Expand Filesystem &amp;lt;br /&amp;gt;This will expand the ~2GB Micro-SD card partition to fill the entire SD card.&lt;br /&gt;
&lt;br /&gt;
The Raspberry Pi needs to reboot to expand the filesystem, so do this now. It might take a while. '''sudo reboot''&lt;br /&gt;
&lt;br /&gt;
====Disabling WiFi and Bluetooth====&lt;br /&gt;
To disable WiFi and Bluetooth, edit the /boot/config.txt file, and add the following lines at the bottom:&lt;br /&gt;
 # Disable WiFi and bluetooth&lt;br /&gt;
 dtoverlay=pi3-disable-wifi&lt;br /&gt;
 dtoverlay=pi3-disable-bt&lt;br /&gt;
&lt;br /&gt;
Then reboot again. To make sure that it worked, run '''ifconfig''' and make sure that ''wlan0'' isn't listed. I'm not sure how to tell if bluetooth is turned off.&lt;br /&gt;
&lt;br /&gt;
====Additional software====&lt;br /&gt;
I like to install this additional software with '''sudo apt install bmon''' ...&lt;br /&gt;
&lt;br /&gt;
*bmon - a graphical network usage analyzer.&lt;br /&gt;
*vnstat - keeps track of your bandwidth usage&lt;br /&gt;
*vim - the world's best text editor ;)&lt;br /&gt;
*irssi - a terminal IRC client, for chatting on the #satnogs IRC channel&lt;br /&gt;
&lt;br /&gt;
If you can't tell by now, I'm always a big fan of rebooting. It certainly doesn't take that long... '''sudo reboot'''&lt;br /&gt;
&lt;br /&gt;
===Configuring the satnogs-client===&lt;br /&gt;
Once you have the base Raspbian Strech OS installed, updated, and looking good, you can configure SatNOGS. Plug in your RTL SDR if you haven't already.&lt;br /&gt;
&lt;br /&gt;
First thing to do is update the satnogs-setup program. Run '''sudo satnogs-setup'''. This will probably take a while, then '''Update''', which will also take a while. Per usual, after the update I like to reboot the raspberry pi just to make sure everything was updated and is actually running the new code.&lt;br /&gt;
&lt;br /&gt;
====Basic Configuration====&lt;br /&gt;
Then the actual configuration of the station:&lt;br /&gt;
&lt;br /&gt;
#Run '''sudo satnogs-setup''' again.&lt;br /&gt;
#Use the up/down and TAB keys to navigate, and Enter to select an option.&lt;br /&gt;
#Basic Configuration:&lt;br /&gt;
##SATNOGS_API_TOKEN: After logging in to network.satnogs.org, this is in the upper right under &amp;quot;API Key&amp;quot; [no longer exsists? Add direct link]&lt;br /&gt;
##SATNOGS_SOAPY_RX_DEVICE: driver=rtlsdr&lt;br /&gt;
##SATNOGS_RX_SAMP_RATE: 2.048e6&lt;br /&gt;
##SATNOGS_RX_GAIN: Refer &amp;quot;Setting the gain&amp;quot; section below.&lt;br /&gt;
##SATNOGS_STATION_ELEV: station elevation in meters&lt;br /&gt;
##SATNOGS_STATION_ID: The ID number of your station.&lt;br /&gt;
##SATNOGS_STATION_LAT and LON: Latitude and Longitude in decimal degrees&lt;br /&gt;
&lt;br /&gt;
Then back to the main menu and ''Apply'' to save the configuration. Ansible will run and update the system. If you want to quit, just keep pressing cancel to exit.&lt;br /&gt;
&lt;br /&gt;
====Setting the gain====&lt;br /&gt;
The next step is to set the gain on the RTL SDR. The aim here (in the majority of cases) is to set the gain of your station to maximise sensitivity (best noise figure), but without limiting the available dynamic range of your station due to your local noise floor. This can be achieved in a fairly simple manner, by watching the level of the receivers noise floor as you slowly increase the receiver gain. At some point the noise floor will start to rise - at this point increasing the gain any further will of no use - you will only increase the noise level, and eat into your receiver's available dynamic range (for a RTLSDR, theoretically only 48 dB).&lt;br /&gt;
&lt;br /&gt;
There may be situations where strong local interferers may require the use of a lower gain setting to avoid intermodulation products appearing in the passband, though these cases would be better solved with a suitable bandpass filter somewhere in the receive chain.&lt;br /&gt;
&lt;br /&gt;
First, it is good to know the available gain range of your SDR. This can be accomplished by running &amp;lt;code&amp;gt;SoapySDRUtil --probe&amp;lt;/code&amp;gt;, which provides a considerable amount of information about the connected SDR:&lt;br /&gt;
 pi@satnogs:~ $ SoapySDRUtil --probe&lt;br /&gt;
 ######################################################&lt;br /&gt;
 ## Soapy SDR -- the SDR abstraction library&lt;br /&gt;
 ######################################################&lt;br /&gt;
 &lt;br /&gt;
 Probe device&lt;br /&gt;
 &lt;br /&gt;
 Found Rafael Micro R820T tuner&lt;br /&gt;
 [INFO] [UHD] linux; GNU C++ version 8.2.0; Boost_106700; UHD_3.13.1.0-3&lt;br /&gt;
 Found Rafael Micro R820T tuner&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 -- Device identification&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
   driver=RTLSDR&lt;br /&gt;
   hardware=RTLSDR&lt;br /&gt;
   origin=&amp;lt;nowiki&amp;gt;https://github.com/pothosware/SoapyRTLSDR&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   rtl=0&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 -- Peripheral summary&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
   Channels: 1 Rx, 0 Tx&lt;br /&gt;
   Timestamps: NO&lt;br /&gt;
   Other Settings:&lt;br /&gt;
      * Direct Sampling - RTL-SDR Direct Sampling Mode&lt;br /&gt;
        [key=direct_samp, default=0, type=string, options=(0, 1, 2)]&lt;br /&gt;
      * Offset Tune - RTL-SDR Offset Tuning Mode&lt;br /&gt;
        [key=offset_tune, default=false, type=bool]&lt;br /&gt;
      * I/Q Swap - RTL-SDR I/Q Swap Mode&lt;br /&gt;
        [key=iq_swap, default=false, type=bool]&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 -- RX Channel 0&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
   Full-duplex: YES&lt;br /&gt;
   Supports AGC: YES&lt;br /&gt;
   Stream formats: CS8, CS16, CF32&lt;br /&gt;
   Native format: CS8 [full-scale=128]&lt;br /&gt;
   Stream args:&lt;br /&gt;
      * Buffer Size - Number of bytes per buffer, multiples of 512 only.&lt;br /&gt;
        [key=bufflen, units=bytes, default=262144, type=int]&lt;br /&gt;
      * Ring buffers - Number of buffers in the ring.&lt;br /&gt;
        [key=buffers, units=buffers, default=15, type=int]&lt;br /&gt;
      * Async buffers - Number of async usb buffers (advanced).&lt;br /&gt;
        [key=asyncBuffs, units=buffers, default=0, type=int]&lt;br /&gt;
   Antennas: RX&lt;br /&gt;
   Full gain range: [0, 49.6] dB&lt;br /&gt;
     TUNER gain range: [0, 49.6] dB&lt;br /&gt;
   Full freq range: [23.999, 1764] MHz&lt;br /&gt;
     RF freq range: [24, 1764] MHz&lt;br /&gt;
     CORR freq range: [-0.001, 0.001] MHz&lt;br /&gt;
   Sample rates: 0.25, 1.024, 1.536, 1.792, 1.92, 2.048, 2.16, 2.56, 2.88, 3.2 MSps&lt;br /&gt;
The above output is for a RTLSDR, and we can see that there is information on the 'Full gain range', and 'TUNER' gain. The Full gain setting is an 'abstracted' gain range, which in this case just directly links to the 'TUNER' gain, as that is the only gain setting presented by the RTLSDR driver. Other SDRs (e.g. AirSpy) may present more gain controls. Anyway, we can see that the gain range is 0 through 49.6 dB. It's quite possible that there are only discrete gain steps within this range (and this is very true for the RTLSDR), but SoapySDR will hide that from us and automatically use the nearest valid setting.&lt;br /&gt;
&lt;br /&gt;
Next up, we want a way of seeing a live spectrum from the SDR. This might be difficult, especially if you're just gone and mounted a RTLSDR in a metal box up a pole! Well, SoapySDR comes to the rescue again with SoapySDR Server - this allows us to serve up the SDR on the network, and access it with a client.&lt;br /&gt;
&lt;br /&gt;
Note: SoapySDR Server is not currently installed by default. It can be installed by running the commands:&lt;br /&gt;
 $ sudo apt-get install soapyremote-server&lt;br /&gt;
 $ sudo systemctl start soapyremote-server&lt;br /&gt;
&lt;br /&gt;
[https://cubicsdr.com/ CubicSDR] is a good cross-platform client that can connect to a SoapySDR Server, and you can [https://github.com/cjcliffe/CubicSDR/releases download the latest release by clicking here]. &lt;br /&gt;
On the RPi, you can start SoapySDR Server by running: &amp;lt;code&amp;gt;SoapySDRServer --bind=&amp;quot;0.0.0.0:55132&amp;quot;&amp;lt;/code&amp;gt;  Leave this running. &lt;br /&gt;
&lt;br /&gt;
Note: If you need to use the Bias-T option of an RTLSDR, you will need to activate this manually prior to running SoapySDRServer. This can be accomplished by [[Software Defined Radio#Using RTL-SDR.com V3 Dongle.27s Bias-T Power Supply|compiling the rtl_biast utility]], and running it with &amp;lt;code&amp;gt;./rtl_biast -b 1&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
Open up CubicSDR on another computer, on the same network as your SatNOGS station. It will pop up a window asking you to select a SDR device. With any luck, it will have auto-detected your SoapySDR Server, and it will show up in the 'Local Net' list. If not, you will need to select 'Remote', click 'Add', and then enter the IP address of your station. You should then have a SDR showing up in the list.&lt;br /&gt;
[[File:Screen Shot 2020-03-19 at 10.41.52 pm.png|alt=CubicSDR SDR Devices List|none|thumb|600x600px|CubicSDR SDR Devices List]]&lt;br /&gt;
You should now be able to click 'Start', and end up with a waterfall display. If the waterfall appears to glitch, or show a 'lumpy' pattern near the centre of the display, then this indicates packet loss between the SatNOGS station and your client. Try and connect via a direct LAN connection if possible. &lt;br /&gt;
In the settings menu of CubicSDR, disable &amp;quot;Automatic Gain&amp;quot; if it is set. This will allow manual control over the gain settings via sliders that will show up at the top left of the window.&lt;br /&gt;
[[File:CubicSDR Main Window.png|alt=CubicSDR Main Window (Annotated)|none|thumb|900x900px|CubicSDR Main Window (Annotated)]]&lt;br /&gt;
The above Figure shows the CubicSDR window, with the spectrum area, frequency selection, and gain settings annotated. Set the frequency to something suitable for your station. For example, if you are setting up a 70cm station, set a frequency of 437 MHz (437000000 Hz). For a 2m station, try 146 MHz.&lt;br /&gt;
Drag the gain slider so that the gain (visible at the bottom of the slider) is set to zero. Then, slowly drag it up until you see the noise floor start to rise. The gain at which this occurs is the gain you should set in SATNOGS_RF_GAIN (Available under the 'Basic' menu in satnogs-setup).&lt;br /&gt;
&lt;br /&gt;
Some SDRs may present more than one gain slider. In these situations, you will need to configure SatNOGS with each gain set individually. [[Software Defined Radio#E4000 Tuner Gain Settings|Refer here]] for more information on how to do this.&lt;br /&gt;
&lt;br /&gt;
As an example, the following figure shows the noise floor observed on a station with a RTLSDR and a ~25dB masthead preamplifier, as gain levels on the RTLSDR are increased:&lt;br /&gt;
[[File:RTLSDR Noise Floor Variation with Gain Adjustment.png|alt=RTLSDR Noise Floor Variation with Gain Adjustment|none|thumb|900x900px|RTLSDR Noise Floor Variation with Gain Adjustment]]&lt;br /&gt;
We can see that between 0 db and 20 dB of gain there is essentially no change in the noise floor - this indicates the receive system is limited by the noise figure of the RTLSDR. As the gain increases through 30 dB, the noise floor starts to lift, indicating that we are now most likely limited by either the noise figure of the preamplifier, or the local noise environment. Any increase in gain past this point just results in reduction of the available receiver dynamic range.&lt;br /&gt;
&lt;br /&gt;
CubicSDR DOES NOT autorange its waterfall, in contrast, satnogs DOES autorange its waterfall.  When you adjust the gain in CubicSDR the waterfall background will dramatically change, but when you adjust the gain in satnogs the waterfall background will not change color.  See the web page documenting  autoranging waterfalls:&lt;br /&gt;
&lt;br /&gt;
https://docs.satnogs.org/projects/satnogs-client/en/stable/userguide.html#satnogs-waterfall-autorange&lt;br /&gt;
&lt;br /&gt;
'''Important Note: While CubicSDR is connected to the SDR, your SatNOGS ground station cannot run observations! Make sure to close CubicSDR when you have finished setting the gain.'''&lt;br /&gt;
===Hardware Configuration===&lt;br /&gt;
Basic hardware configuration is Antenna &amp;gt; Short coax &amp;gt; LNA &amp;gt; Coax &amp;gt; RTL SDR -&amp;gt; Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
===LNA===&lt;br /&gt;
The way to measure the performance of an antenna is using a figure of merit called the Antenna gain-to-noise-temperature (G/T). It's a positive unitless number, higher the better.&lt;br /&gt;
&lt;br /&gt;
G/T is comprised of antenna gain (in dB) on the top, and the system noise temperature (in Kelvins) on the bottom. There's a lot of somewhat-hard math involved, but here's the bottom line: to make your system perform better, you either need to increase the antenna gain or decrease the system noise temp. [https://en.wikipedia.org/wiki/Antenna_gain-to-noise-temperature Wikipedia]&lt;br /&gt;
&lt;br /&gt;
Increasing the antenna gain is difficult, only because we decided on an omnidirectional antenna as the basis for this How-To. Omnidirectional antennas top out at maybe 4-6 dBi gain or so, and that's just from pushing the radiation pattern up to the sky away from the ground. Any more gain than that and it's not an omni antenna; it's got a direction that the antenna needs to be pointed in. And we want to stay away from pointing antennas for now.&lt;br /&gt;
&lt;br /&gt;
Reducing the system temperature is the the way forward then. The RTL-SDR dongle has a noise figure of 6dB or so, depending on frequency, which is pretty horrible. But it turns out that the system noise temperature is largely determined by the first device in the receive chain. Since we can't change the antenna, adding a low-noise amplifier helps quite a bit. See this [https://www.youtube.com/watch?v=snifc_x_2sE youtube video] from Adam 9A4QV on how a LNA helps. (Also check out his other videos about the RTL SDR dongle, and SDR in general)&lt;br /&gt;
&lt;br /&gt;
More info on SDR noise figures:&lt;br /&gt;
&lt;br /&gt;
*[https://gitlab.com/librespacefoundation/sdrmakerspace/sdreval/-/raw/master/Report/pdf/Evaluation_of_SDR_Boards-1.0.pdf Evaluation of SDR Boards and Toolchains] from the [https://sdrmaker.space/ SDR Makerspace]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
More info on noise and preamps:&lt;br /&gt;
&lt;br /&gt;
*[https://en.wikipedia.org/wiki/Noise_temperature System noise from wikipedia], pretty high-level&lt;br /&gt;
*[https://www.rtl-sdr.com/tutorial-on-properly-positioning-a-preamp-lna-in-a-radio-system/ Where to put an LNA], from rtl-sdr.com&lt;br /&gt;
*[[SPF1589 LNA measurements|SPF5189 LNA measurements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Adding a LNA can also add its own set of problems, in that it may amplify strong local signals which may overload your SDR. When adding a LNA, you will likely need to back off the gain on your SDR to avoid this. It's also possible that the strong local signals may cause distortion to occur in the LNA itself, in which case you should consider the use of a filter between the LNA and the antenna. Some example products:&lt;br /&gt;
&lt;br /&gt;
* If you are experiencing issues with FM broadcast stations, a [https://www.rtl-sdr.com/rtl-sdr-com-broadcast-fm-band-stop-filter-88-108-mhz-reject-now-for-sale/ FM band-stop filter] may help.&lt;br /&gt;
* [https://www.minikits.com.au/electronic-kits/rf-amplifiers/rf-preamplifiers MiniKits masthead preamps] include fairly low-loss bandpass filters for their target bands (2m, 70cm).&lt;br /&gt;
&lt;br /&gt;
All filters will have some inherent loss, which adds to the system noise figure (or temperature, as discussed above), but this is a compromise that may need to be made to avoid distortion issues.&lt;br /&gt;
&lt;br /&gt;
Finally, using a LNA near the antenna means that we can accept some losses from a long coaxial cable run between the LNA and the receiver, allowing us to situate the antenna away from sources of local noise that may impact overall performance.&lt;br /&gt;
&lt;br /&gt;
As briefly discussed above, it's the first device in the receive chain which dominates the overall system noise temperature (or noise figure). In brief, as long as the losses in the coaxial cable are less than the gain of the LNA, your overall system noise figure won't degrade too much. As an example a 20m run of RG58 has a loss of ~10dB at 434 MHz. Using a LNA with a gain of 20dB and a noise figure of 1dB, the overall system noise figure is still only ~1.4 dB, and acceptable degradation.&lt;br /&gt;
&lt;br /&gt;
===Antenna===&lt;br /&gt;
For testing on the bench, pretty much any antenna will do, however set your expectations accordingly:&lt;br /&gt;
&lt;br /&gt;
* A vertical antenna (e.g. the telescopic whips that come with many RTLSDRs) will not receive high-elevation passes well, as they have a 'null' in their antenna pattern directly overhead. When a satellite is at a lower elevation it is further away, and so will be weaker.&lt;br /&gt;
* A dipole antenna (be it a straight, or a v-dipole) will have similar issues, though where the null is located will depend on how you orient the dipole. Either way, there will be some portions of a satellite pass with poor performance.&lt;br /&gt;
* If your antenna is located inside, near to your house mains wiring, or near other electrical devices, it may end up being swamped by lots of local electrical noise and end up being 'deaf' - in this situation a LNA will only make the situation worse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Refer to the [[Antennas|Antennas page]] for more information on antennas which are well suited to satellite observations.&lt;br /&gt;
&lt;br /&gt;
==Testing the station==&lt;br /&gt;
[[File:Pass predictions.png|300px|right]]&lt;br /&gt;
Now that you have the hardware and software up and running, go ahead and schedule some passes. Navigate to your station page, and click on the Schedule button on the right side of some promising passes. The green and red bars beneath the satellite name is a quick visual indication of the number of Good and Bad passes on the network. Unfortunately, this data is not time-stamped at all, so a satellite that had a lot of Good observations a long time ago, but recently died, would still show as Green.&lt;br /&gt;
&lt;br /&gt;
A few good satellite transmitters to test with with (as of November 2020) are:&lt;br /&gt;
&lt;br /&gt;
* For a station operating on the VHF Band:&lt;br /&gt;
** NOAA x, y, z - The APT transmitters (very strong signals - considered to be the 'hello world' of satellite observations)&lt;br /&gt;
** ISS - If operating, the APRS transmitter is very strong, but may only transmit intermittently throughout a pass.&lt;br /&gt;
* For a station operating on the UHF band:&lt;br /&gt;
** FalconSat3 - The FSK downlink transmits continuously, and is an excellent benchmark for overall station performance. A high performing station may receive upwards of 600 data packets in a single pass.&lt;br /&gt;
** TBD.&lt;br /&gt;
&lt;br /&gt;
===Rating an Observation===&lt;br /&gt;
[[File:Waterfall Vetting Buttons.png|right|frameless]]&lt;br /&gt;
After each observation, you should rate it. More information [https://wiki.satnogs.org/Operation#Rating_observations here], but the bottom line is rate the observation:&lt;br /&gt;
&lt;br /&gt;
*'''Good''' if the satellite is seen in the waterfall at all. Different modulations appear differently in the waterfall, but will appear &lt;br /&gt;
*'''Bad''' if the satellite is not seen.&lt;br /&gt;
&lt;br /&gt;
Observations which do not produce any artefacts (Waterfall, audio, data packets) will automatically be considered as failed, and will eventually be deleted.&lt;br /&gt;
&lt;br /&gt;
For a more detailed guide on testing, see [[Operation]]&lt;br /&gt;
&lt;br /&gt;
===Calibrating frequency offset (PPM)===&lt;br /&gt;
If your observations result in signals which appear to be 'off centre' of the waterfall, then you may need to set a frequency offset correction. Guides on how to determine this correction via a few different methods are available here: [[Adjusting the SatNOGS Client#Frequency Offset Calibration]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Next Steps==&lt;br /&gt;
Now that you've got this station working on the bench, what's next?&lt;br /&gt;
&lt;br /&gt;
For permanent mast-mounted installation, I would recommend adding:&lt;br /&gt;
&lt;br /&gt;
*[https://www.adafruit.com/product/3785 PoE splitter] - Make sure to get one that actually conforms to the 48-volt IEEE 802.3af standard&lt;br /&gt;
*POE injector for powering station remotely - Again, get a real 48-volt IEEE 802.3af standard&lt;br /&gt;
*Large mast-mounted waterproof box&lt;br /&gt;
*Waterproof cord grips, both to keep out the rain but also spiders and critters&lt;br /&gt;
*Desiccant to keep the humidity down&lt;br /&gt;
*Mastic tape for weatherproofing antenna connectors&lt;br /&gt;
*Better omnidirectional antenna&lt;br /&gt;
&lt;br /&gt;
===Building a Box===&lt;br /&gt;
&lt;br /&gt;
*[https://wiki.satnogs.org/No_rotator No-Rotator setup]&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
*IQ3KU Omnidirectional station [https://www.i3vfj.net/SATNOGS/Satnogs_348_notes.pdf build write-up].&lt;br /&gt;
&lt;br /&gt;
[[ Category:Build ]]&lt;br /&gt;
[[ Category:Hardware ]]&lt;br /&gt;
[[ Category:Antenna ]]&lt;/div&gt;</summary>
		<author><name>Vk5qi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Adjusting_the_SatNOGS_Client&amp;diff=3698</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=3698"/>
		<updated>2020-11-07T10:25:53Z</updated>

		<summary type="html">&lt;p&gt;Vk5qi: /* SatNOGS station adjustments */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&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;
==Frequency Offset Calibration==&lt;br /&gt;
&lt;br /&gt;
Some cheaper SDRs may have a significant frequency offset, due to the use of poor quality reference crystal oscillators. This can result in observations which may be un-decodable. If you see observations that have signals that appear to be 'off to one side', then you should perform some of the steps below to determine your offset.&lt;br /&gt;
&lt;br /&gt;
{{Message|Note: SDRs which use a 'standard' crystal, without temperature compensation (e.g. the cheaper RTLSDRs) will drift noticeably in frequency with temperature changes. This means any calibration values determined below will not be consistent. It is highly recommended that you purchase a SDR which utilises a temperature compensated crystal oscillator (TCXO).}}&amp;lt;br /&amp;gt;&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 probably have to get and build it by yourself.&lt;br /&gt;
&lt;br /&gt;
'''Note: This is only going to work if GSM is still in existence in your country. If (like Australia), your country has moved on from the 1980s and deprecated GSM, you will need to use another option (scroll down).'''&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 automake m4&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. The value should be entered without decimals, for example -1.&lt;br /&gt;
&lt;br /&gt;
===Automatic Adjustment using LTE Signals===&lt;br /&gt;
If you are living in a country where GSM is no longer present, but LTE is available (in a frequency range supported by your receiver), then you can determine your SDR's PPM offset by following this guide: https://gist.github.com/darksidelemm/b517e6a9b821c50c170f1b9b7d65b824&lt;br /&gt;
&lt;br /&gt;
===Manual Adjustment using GQRX===&lt;br /&gt;
If you cannot calibrate against GSM or LTE towers, but you have a nearby amateur radio beacon or transmitter at a reasonably well-known frequency, you can use this to obtain at least a coarse PPM correction.&lt;br /&gt;
&lt;br /&gt;
'''NOTE: This section needs to be updated to follow the same process as is used in `Setting The Gain`, as rtl_tcp may not be available on the latest SatNOGS RPI images, and will not work if any other SDR type is in use.'''&lt;br /&gt;
&lt;br /&gt;
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:&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;
You will now need to temporarily stop the satnogs-client, using the command:&lt;br /&gt;
 $ sudo systemctl stop satnogs-client&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. For SDRs without a Temperature Compensated Crystal Oscillator ('TCXO') this value may be temperature dependent. Enter the known frequency of your chosen transmitter (NFM repeater 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;
===adjustment using observations===&lt;br /&gt;
Another way of adjusting the frequency offset is by making an observation of a satellite that transmits CW. Once the observation is complete, the CW signal from the satellite should look like a straight line at 0Hz on the observation waterfall. If there's a frequency offset, the signal will be off-center. The image below shows observation details for a CW transmitter on VHF. Since the frequency offset is not yet adjusted, the CW signal is present between the -10kHz and 0Hz markers.&lt;br /&gt;
{{Message|It is possible for the CW signal to appear at a frequency above the 10kHz tick or below the -10kHz tick. In that case, use the frequency of the first tick with a higher absolute value frequency than the CW signal absolute value frequency. Do not forget to update the selected tick frequency in the equations below!}}&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Marked CW observation.jpg|center|800x800px]]&lt;br /&gt;
In order to compute the frequency offset, the waterfall image can be downloaded and opened with graphics editor like GIMP. After opening the waterfall image, vertical markers are placed on the -10kHz tick, the 0Hz tick and on the CW signal. Once the markers are placed, measure the width in pixels between the -10kHz tick and 0Hz tick, as well as the width between the CW signal and the 0Hz tick. The image below shows an example of the placed markers and the widths to be measured:&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Measurement markers.jpg|center|550x550px]]&lt;br /&gt;
Let’s call the width between the -10kHz and 0Hz markers '''''widthTickTo0''''', and the width between the CW and 0Hz markers '''''widthCWto0'''''. From the example image above, we get the values '''''widthTickTo0 = 224''''' and '''''widthCWto0 = 131'''''. To compute the frequency offset, we compute the ratio between those widths and multiply by the frequency tick value as follows:&lt;br /&gt;
 '''frequencyOffset = -10,000Hz * widthCWto0 / ''widthTickTo0'''''&lt;br /&gt;
In the case of the example above:&lt;br /&gt;
 '''frequencyOffset = -10,000Hz * widthCWto0 / ''widthTickTo0'' = -10,000Hz * 131 / 224 = -5,848Hz'''&lt;br /&gt;
To compute the offset in PPM, divide the frequency offset in Hz by the transmitter frequency in MHz. In the case of the example above:&lt;br /&gt;
 '''ppmOffset = frequencyOffset / transmitterFrequency = -5,848Hz / 145.725MHz = -40 PPM'''&lt;br /&gt;
The correction entered in satnogs-setup must have the opposite sign of that in the calculation, since we will be shifting the frequency in the opposite direction, making the SATNOGS_PPM_ERROR value:&lt;br /&gt;
 '''SATNOGS_PPM_ERROR = 40'''&lt;br /&gt;
Note that if the CW signal is on the left side of the 0Hz marker, the PPM value is positive, otherwise, the PPM value is negative.&lt;br /&gt;
{{Message|Please keep in mind that it is possible for the CW transmitter to drift in some satellites. This makes the CW transmission an unreliable source in some cases. Make sure to double-check your adjustment with another CW satellite!}}&lt;br /&gt;
&lt;br /&gt;
==Enhancements==&lt;br /&gt;
&lt;br /&gt;
===Waterfall Color improvements===&lt;br /&gt;
&lt;br /&gt;
By default the SatNOGS client will adjust the waterfall colour ranges to best display the received signal. &lt;br /&gt;
&lt;br /&gt;
If desired, this auto-ranging can be disabled by running &amp;lt;code&amp;gt;sudo satnogs-setup&amp;lt;/code&amp;gt;, and navigating to &amp;lt;code&amp;gt;Advanced -&amp;gt; Waterfall&amp;lt;/code&amp;gt;. From here the auto-ranging can be turned off, and the minimum and maximum waterfall colour-scale levels can be set. &lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Operate]]&lt;/div&gt;</summary>
		<author><name>Vk5qi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=File:Waterfall_Vetting_Buttons.png&amp;diff=3697</id>
		<title>File:Waterfall Vetting Buttons.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=File:Waterfall_Vetting_Buttons.png&amp;diff=3697"/>
		<updated>2020-11-07T10:17:22Z</updated>

		<summary type="html">&lt;p&gt;Vk5qi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Waterfall Vetting Buttons&lt;/div&gt;</summary>
		<author><name>Vk5qi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=No_rotator&amp;diff=3696</id>
		<title>No rotator</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=No_rotator&amp;diff=3696"/>
		<updated>2020-11-07T09:25:06Z</updated>

		<summary type="html">&lt;p&gt;Vk5qi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Development&lt;br /&gt;
|Name= No-Rotator&lt;br /&gt;
|image= No rotator.jpg&lt;br /&gt;
|type= No-Rotator ground station for SatNOGS network.&lt;br /&gt;
|cost= &lt;br /&gt;
|status= Working&lt;br /&gt;
|latest-release=&lt;br /&gt;
|latest-release-name=&lt;br /&gt;
|source-repo=&lt;br /&gt;
|documentation=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{Message|Warning: Mounting a complete station this close to the antenna (in particular without use of shielding or shielded network cables) can result in the stations performance being significantly limited by its own noise. It is advisable to mount the LNA at the antenna, and the rest of the station as far away as is practicable.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
No-Rotator ground station uses a static antenna usually in VHF.&lt;br /&gt;
A Turnstile antenna that tunes at ~137MHz is used for NOAA satellites.&lt;br /&gt;
Some Turnstile antenna design, are wide enough to receive VHF band at 144 - 146 MHz.&lt;br /&gt;
For more vertical satellite passes, UHF Helical antennas receive satellites at 432 - 438 MHz, &lt;br /&gt;
e.g. [https://network.satnogs.org/stations/8/] &lt;br /&gt;
&lt;br /&gt;
{{Message| Same setup could be used for a ground station with rotator.}}&lt;br /&gt;
&lt;br /&gt;
==Bill of Materials==&lt;br /&gt;
&lt;br /&gt;
The materials are categorized into 4 groups:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RF components&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Client components&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Hardware components&amp;lt;/span&amp;gt;&lt;br /&gt;
*&amp;lt;span style=&amp;quot;color:#F0F000&amp;quot;&amp;gt;Tools&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; {{table}}&lt;br /&gt;
| style=&amp;quot;background:#f0f0f0;&amp;quot; align=&amp;quot;center&amp;quot; |'''Part'''&lt;br /&gt;
| style=&amp;quot;background:#f0f0f0;&amp;quot; align=&amp;quot;center&amp;quot; |'''Qty'''&lt;br /&gt;
| style=&amp;quot;background:#f0f0f0;&amp;quot; align=&amp;quot;center&amp;quot; |'''Source'''&lt;br /&gt;
| style=&amp;quot;background:#f0f0f0;&amp;quot; align=&amp;quot;center&amp;quot; |'''Price per Unit ($)'''&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RTL-SDR&amp;lt;/span&amp;gt;||1||[https://www.nooelec.com/store/sdr/sdr-receivers/nesdr-smart-sdr.html]||21&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;SMA Male to SMA Male Connector Pigtail Cable&amp;lt;/span&amp;gt;||1||[http://www.ebay.com/itm/6-5-Length-SMA-Male-to-SMA-Male-Connector-Pigtail-Cable-/182286107527?epid=1749479193&amp;amp;hash=item2a71194387:g:X~gAAOSwOyJX3z4o]||1&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;LNA with FM-Notch&amp;lt;/span&amp;gt;||1||[]||35&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RG-58 cable, 2.2m&amp;lt;/span&amp;gt;||1||[]||-&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;SMA Male cable connector&amp;lt;/span&amp;gt;||1||[]||-&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Type-N Female chassis connector&amp;lt;/span&amp;gt;||1||[]||-&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Type-N Male cable connector&amp;lt;/span&amp;gt;||2||[]||-&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Turnstile antenna with Type-N Female connector&amp;lt;/span&amp;gt;||1||[]||-&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Raspberry Pi 3 - Model B&amp;lt;/span&amp;gt;||1||[https://grobotronics.com/raspberry-pi-3-model-b.html]||40&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Raspberry Pi 3 Case&amp;lt;/span&amp;gt;||1||[https://grobotronics.com/raspberry-pi-2-square-case-transparent.html]||5&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SD Card, Class 10, 32GB, Kingston, Sandisk&amp;lt;/span&amp;gt;||1||[https://www.ebay.de/itm/Kingston-Micro-32Gb-Karte-Speicherkarte-Class-10-Sdhc-Microsd-Sdxc-Sd-Adapter/312674375371?epid=5030514522&amp;amp;hash=item48ccd856cb:g:7hsAAOSwvrddFMHS]||10&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Micro USB Active POE Splitter Power for Raspberry pi 3 Board (48V to 5V 2.4A)&amp;lt;/span&amp;gt;||1||[https://www.cableworks.gr/ilektronika/raspberry/raspberry-trofodotika/micro-usb-active-poe-splitter-power-for-raspberry-pi-3-board-48v-to-5v-2.4a-oem/]||12&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;POE-48-24W-BULK POE Adapter 48V, 0.5A, 24W&amp;lt;/span&amp;gt;||1||[https://www.xpatit.gr/index.php?option=com_virtuemart&amp;amp;view=productdetails&amp;amp;virtuemart_product_id=1766&amp;amp;Itemid=0]||13&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Ethernet LAN RJ45 Outdoor Waterproof Connector&amp;lt;/span&amp;gt;||1||[http://www.ebay.com/itm/Ethernet-LAN-RJ45-Outdoor-Waterproof-Connector-M20-Stable-Signal-Black-/271524476589?epid=700279670&amp;amp;hash=item3f381eb6ad:g:9z8AAOSwopRYb3v-]||3.6&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Cable, Male USB-Micro to Male USB-A, L=25cm&amp;lt;/span&amp;gt;||1||[]||1&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Cable, Female USB-A to Male USB-A, L=25cm&amp;lt;/span&amp;gt;||1||[]||1&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Ring Core Ferrite Bead for USB cables&amp;lt;/span&amp;gt;||2||[https://www.ebay.de/itm/10-tlg-EMI-Entstorfilter-Ferritfilter-Ferritkern-Klappferrit-fur-Kabel-3-5mm/312918249771?hash=item48db61912b:g:Y~8AAOSwIW9eCcT5]||0.8&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;Ethernet cable, outdoor, CAT5 or higher, L=?m&amp;lt;/span&amp;gt;||1||[]||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;||1||[]||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Assembly Instructions==&lt;br /&gt;
See pictures.&lt;br /&gt;
&lt;br /&gt;
[[File:Liverpool_no_rotator_1.jpeg|400px|thumb|right|Inside the box 1]]&lt;br /&gt;
[[File:IMG 20170621 100727.jpg|400px|thumb|right|RF Detail]]&lt;br /&gt;
&lt;br /&gt;
==Operation==&lt;br /&gt;
&lt;br /&gt;
Follow the instructions for setting up the [[Raspberry_Pi|Raspberry Pi 3]] to setup your station.&lt;br /&gt;
Then consult the [[Operation]] page for getting started on our Network.&lt;br /&gt;
&lt;br /&gt;
[[Category:Build]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Vk5qi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Review_of_Commercial_Rotators&amp;diff=3691</id>
		<title>Review of Commercial Rotators</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Review_of_Commercial_Rotators&amp;diff=3691"/>
		<updated>2020-10-08T07:31:48Z</updated>

		<summary type="html">&lt;p&gt;Vk5qi: /* Electronics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Review of Commercial Rotators}}&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
The existing rotator controllers are old-fashioned and use obsolete technology, either in hardware or in software. Almost all the motor drivers are based on electromechanical switches like relays. This introduces limits to the usefulness in connection with satellite observations, and cause reduced accuracy in the movements of the rotator. In the following, we will be reviewing the three most popular commercially available rotator systems in the ham radio community:&lt;br /&gt;
&lt;br /&gt;
*[https://www.yaesu.com/indexVS.cfm?cmd=DisplayProducts&amp;amp;ProdCatID=104&amp;amp;encProdID=79A89CEC477AA3B819EE02831F3FD5B8 Yaesu G-5500]&lt;br /&gt;
*[http://www.alfaradio.ca/ SPID rotators]&lt;br /&gt;
**[https://www.rfhamdesign.com/products/spid-antenna--rotator/ras-az--el-rotator/index.php RAS]&lt;br /&gt;
**[https://www.rfhamdesign.com/products/spid-antenna--rotator/big-ras-az--el-rotor/index.php BIG-RAS]&lt;br /&gt;
*SPX rotators,&lt;br /&gt;
**[http://www.rfhamdesign.com/products/spx-antenna-rotators/spx-01-az--el/index.php SPX-01]&lt;br /&gt;
**[http://www.rfhamdesign.com/products/spx-antenna-rotators/spx-02-az--el/index.php SPX-02]&lt;br /&gt;
**[http://www.rfhamdesign.com/products/spx-antenna-rotators/spx-03-az--el/index.php SPX-03]&lt;br /&gt;
&lt;br /&gt;
==Yaesu G-5500==&lt;br /&gt;
&lt;br /&gt;
===Electronics===&lt;br /&gt;
&lt;br /&gt;
[https://www.yaesu.com/indexVS.cfm?cmd=DisplayProducts&amp;amp;ProdCatID=104&amp;amp;encProdID=79A89CEC477AA3B819EE02831F3FD5B8 Yaesu G-5500] is an AZ/EL rotator. The [http://www.radiomanual.info/schemi/ACC_rotator/Yaesu_G-5500_user.pdf datasheet] states that it has AC motors (26V@2.8A, specifications of transformer for both motors), potentiometer (not multiturn) for position feedback which are operated with +6V, and the control loop is implemented with analog IC's (comparators and op-amps). Also, the system has end-stops in both axes in both directions (min-max), that immediately cut off the current to the motors. The connection to the client is implemented via a rotator interface, for example an [https://gitlab.com/librespacefoundation/satnogs/g5500-ardushield ardushield] that runs [https://github.com/ppapadeas/k3ng_rotator_controller/tree/lsf-g5500 k3ng rotator firmware]. The cost of the entire system is ~750$ including an analog controller.&lt;br /&gt;
&lt;br /&gt;
Useful links:&lt;br /&gt;
&lt;br /&gt;
*[https://kb5wia.blogspot.com/2012/03/yaesu-g5500-rotator-motor-repair.html Motor Repair]&lt;br /&gt;
&lt;br /&gt;
[[File:Yaesug5500-electronics-1.jpeg|thumb|center|300x300px|alt=|Yaesu G5500 - Controller]]&lt;br /&gt;
&lt;br /&gt;
===Mechanical===&lt;br /&gt;
&lt;br /&gt;
The gear box of the rotator it is a spur gear box. Almost all the gears are made from laser cut sheet metal, and the output gear is a stack of laser cut sheet metal gears. Another interesting thing is the brake system, which is a torsional spring in the motor axis, that blocks the movement from output to input. When a torque is applied from output to input, the torsional spring &amp;quot;opens&amp;quot; and blocks the rotation. A mechanical failure in of one brackets that mount the pins of the gears was observed in [https://network.satnogs.org/stations/6/ station 6] after a lot of observations (the oval hole). This problem is caused by the antennas being back-mounted without a counterbalance.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;300&amp;quot; heights=&amp;quot;300&amp;quot; perrow=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
File:Yaesug5500-mech-1.jpeg|Yaesu G5500, Gear box&lt;br /&gt;
File:Yaesug5500-mech-2.jpeg|Yaesu G5500, Mechanical failure&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Alternative Rotator Controllers===&lt;br /&gt;
&lt;br /&gt;
A list of available digital controllers:&lt;br /&gt;
&lt;br /&gt;
*[https://www.greenheronengineering.com/proddetail.php?prod=RT-21azel RT-21 Azimuth/Elevation, Green Heron Engineering LLC], 889$&lt;br /&gt;
*[http://www.af6sa.com/projects/AZ_EL_Rotor.html, AZ-EL USB Rotor Controller AE-21]&lt;br /&gt;
*[http://www.arrl.org/files/file/ETP/Satellite%20Tracker%20Interface%20ver%201_2.pdf DIY solution from ARRL]&lt;br /&gt;
&lt;br /&gt;
==SPID rotators==&lt;br /&gt;
&lt;br /&gt;
This company it has two AZ/EL models:&lt;br /&gt;
&lt;br /&gt;
*[https://www.rfhamdesign.com/products/spid-antenna--rotator/ras-az--el-rotator/index.php RAS]&lt;br /&gt;
*[https://www.rfhamdesign.com/products/spid-antenna--rotator/big-ras-az--el-rotor/index.php BIG-RAS]&lt;br /&gt;
&lt;br /&gt;
===Electronics===&lt;br /&gt;
&lt;br /&gt;
Both the models are using DC motors, according to the datasheets, [https://www.rfhamdesign.com/downloads/spid-bigras-specifications.pdf BIG-RAS] and [https://www.rfhamdesign.com/downloads/spid-ras-specifications.pdf RAS]. The power consumption for both rotators is 12V@6-10A or 18V@6-11A. For the position sensor, a reed switch is used, one in each axis. This sensor is mounted in the first stage of a worm gear box (in total two worm gear boxes), with a total of 6 magnets that produce pulses with Vp-p according to the Vcc of the reed switch.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;300&amp;quot; heights=&amp;quot;300&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
File:Ras-reedswitch.jpeg| RAS, position sensor&lt;br /&gt;
File:Ras-magnets.jpeg| RAS, magnets of position sensor&lt;br /&gt;
File:Ras-pulses.jpeg| RAS, pulses of position sensor (reed switch)&lt;br /&gt;
&amp;lt;/gallery&amp;gt; &lt;br /&gt;
&lt;br /&gt;
It seems that the encoder is relative, so when the system starts, it is programmed for the zero position. When the system loses power, the rotator controller knows the last position, it stores the last position in a non-volatile memory.&lt;br /&gt;
Also the system has two hard stops in the elevation axis, that limits the rotation between 0-180 deg. These switches immediately cut off the current to the elevation motor. There is no end stop in the azimuth axis.&lt;br /&gt;
&lt;br /&gt;
[[File:Ras-endstop.jpeg|thumb|center|300x300px|alt=|RAS, end-stops in elevation axis]]&lt;br /&gt;
&lt;br /&gt;
The default rotator controller is [https://www.rfhamdesign.com/downloads/spid-ras-specifications.pdf Rot2Prog], the motor driver consists of relays. The interface with the client is done with [Hamlib](https://hamlib.github.io/) via a USB. A note here: The cable is USB-A male to USB-A male, which is non-standard. The USB-Serial chip inside the Rot2Prog is normally powered via the USB port, and there are known issues with inrush current on Raspberry Pi units, resulting in the USB-Serial not operating. This can be resolved by modifying the Rot2Prog to power the FTDI chip from the onboard 5V regulator (which powers the main micro-controller) instead of the USB port.&lt;br /&gt;
&lt;br /&gt;
Two rectifier bridges are used for protection of the board from the currents of the DC motors. The cost of Rot2Prog  is ~250$.&lt;br /&gt;
&lt;br /&gt;
[[File:Ras-rotatorcontroller.jpeg|thumb|center|300x300px|alt=|RAS, Default rotator controller]]&lt;br /&gt;
&lt;br /&gt;
The [https://www.rfhamdesign.com/downloads/spid-ras-specifications.pdf datasheet of RAS] refers to a parameter called [https://en.wikipedia.org/wiki/Mean_time_between_failures MTBF] which is the mean time between failures. For the rotator controller  is 15000 hours @ -5 to +40°C. For a system that is connected to the [https://network.satnogs.org/ SatNOGS network], i.e.:&lt;br /&gt;
&lt;br /&gt;
*in 1h, at least 2 observations of 15min each&lt;br /&gt;
*in 15000 hours, 30000 observations&lt;br /&gt;
*which means almost 2 years of operation&lt;br /&gt;
&lt;br /&gt;
Station #232 has observed one relay failure (open circuit, thankfully) approximately every year of operation. The relays are [https://octopart.com/rm85-2011-35-1012-relpol-30513939 readily available] via most major electronics parts outlets, and are fairly easy to replace with a desoldering station. A suitable [https://octopart.com/gd50-altech-24259941?r=sp relay socket] is also available to make relay changes easier.&lt;br /&gt;
&lt;br /&gt;
===Mechanical===&lt;br /&gt;
Both of the rotators consist of two stages of worm gear boxes. The second stage (the output) take all the load. In this system, the brake mechanism is the two stage worm gear box (big gear ratio and also the lead angle of worm gear). The cost for RAS with Rot2Prog controller is ~1200$, for BIG-RAS with Rot2Prog controller is ~1600$.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;300&amp;quot; heights=&amp;quot;300&amp;quot; perrow=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
| RAS, position sensor&lt;br /&gt;
File:Ras-magnets.jpeg| RAS, First stage of worm gear&lt;br /&gt;
File:Ras-wormgear.jpg| RAS, Second (output) stage of worm gear&lt;br /&gt;
&amp;lt;/gallery&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Alternative Rotator Controllers===&lt;br /&gt;
&lt;br /&gt;
A list of available digital controllers:&lt;br /&gt;
&lt;br /&gt;
*[https://www.greenheronengineering.com/proddetail.php?prod=RT-21azel RT-21 Azimuth/Elevation, Green Heron Engineering LLC], 889$. This has a nice feature: &amp;quot;Allows different Azimuth and Elevation rotators from any manufacturer provided they both use either AC or DC motors.  (Example:  We can configure the Azimuth to use an OR-2800 and the Elevation to use a DC motor linear actuator.  OR, the Azimuth to use a T2X, and the Elevation to use a Yaesu G-550)&amp;quot;&lt;br /&gt;
*[http://www.rfhamdesign.com/downloads/spid-ras_hr-specifications.pdf MD-01/02 HR], which is a high resolution edition rotator controller, with resolution of 0.1875 deg. Instead of using reed switches in the first stage of the worm gear box, it uses a hall effect sensor. Again, the motor driver consist of electromechanical switches, as shown in the picture on [http://www.rfhamdesign.com/downloads/spid-ras_hr-specifications.pdf page 3 of the datasheet]. This controller also supports soft-start functionality (PWM control), but only when the power supply is higher than 20V, [https://community.libre.space/t/review-of-commercial-rotator-controllers/3428/7 according to this post].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The cost of this controller (only) is calculated:&lt;br /&gt;
&lt;br /&gt;
*RAS/HR, RAS rotator and MD-02/HR controller is ~[1435E](http://www.rfhamdesign.com/products/spid-hr-antenna-rotators/ras-hr-az--el-rotor/index.php)&lt;br /&gt;
*only the RAS rotator costs ~900E (an estimation)&lt;br /&gt;
&lt;br /&gt;
so the cost of MD-02/HR is ~500E.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;300&amp;quot; heights=&amp;quot;300&amp;quot; perrow=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
| RAS, position sensor&lt;br /&gt;
File:Az-El controller front G.gif| RT-21 Azimuth/Elevation, Green Heron Engineering LLC&lt;br /&gt;
File:Rotator-controller-md.png| Rotator Controller, MD-01/02 HR&lt;br /&gt;
&amp;lt;/gallery&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==SPX rotators==&lt;br /&gt;
&lt;br /&gt;
===Electronics &amp;amp; Mechanical===&lt;br /&gt;
&lt;br /&gt;
A series of AZ/EL rotators:&lt;br /&gt;
&lt;br /&gt;
*[http://www.rfhamdesign.com/products/spx-antenna-rotators/spx-01-az--el/index.php SPX-01]&lt;br /&gt;
*[http://www.rfhamdesign.com/products/spx-antenna-rotators/spx-02-az--el/index.php SPX-02]&lt;br /&gt;
*[http://www.rfhamdesign.com/products/spx-antenna-rotators/spx-03-az--el/index.php SPX-03]&lt;br /&gt;
&lt;br /&gt;
All of these rotators seem to be based on the same first stage worm gear box as the RAS. The second stage looks like [https://ae01.alicdn.com/kf/HTB1uzY4PVXXXXX4XXXXq6xXFXXXE/NMRV050-Speed-Ratio-50-1-Worm-Gearbox-14mm-19mm-Input-Shaft-90-Degree-Worm-Gear-Speed.jpg_640x640.jpg this] and changed according to the maximum output load (and maximum break torque). From all the data-sheets, it seems that the motor needs 12-18V@3-20A or 20-24V@3-20A (max current depends on load or rotator controller, e.g. PWM control). All of these rotators use the same controllers as RAS/BIG-RAS. The motors are DC (it seems that they are the same as RAS/BIG-RAS). For position sensor, a reed switch for the standard version and a hall effect sensor for high resolution version are used. &lt;br /&gt;
&lt;br /&gt;
There are no end-stops to this rotator in either azimuth or elevation, with the rotation limits entirely controlled in software, which can enable 720 degrees of continuous azimuth rotation, and up to 180 degrees of elevation if the users cable and antenna mounting setup supports it. Most SPX-based systems only use 90 degrees of elevation movement, but 'flip' mode (like the Yaesu G-5500) is theoretically possible.&lt;br /&gt;
&lt;br /&gt;
In this system, the brake system is the double worm gear. In the specification, the rotation range is AZ/EL:360/180deg - the same as the RAS. The available rotator controllers are the same as the SPID rotators (Rot2Prog, and MD-01/02).&lt;br /&gt;
&lt;br /&gt;
A SPX-02 has been operating on station #232 for approximately 2 years, running in fairly light duty. The only failure in the rotator noted was a snapped first-stage worm-drive, which appears to be a manufacturing defect, and was replaced by the manufacturer for free. The brushed motors produce some EMI on both 2m and 70cm when moving, which can be mitigated using ferrites clamped over the control cables near the motor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;300&amp;quot; heights=&amp;quot;300&amp;quot; perrow=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
File:Spx-wormgear.jpeg| SPX, second stage of worm gear&lt;br /&gt;
File:Spx-station232.jpg|  SPX-02 rotator, [https://network.satnogs.org/stations/232/ station 232]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Build]]&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:Rotator]]&lt;/div&gt;</summary>
		<author><name>Vk5qi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Omnidirectional_Station_How_To&amp;diff=3687</id>
		<title>Omnidirectional Station How To</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Omnidirectional_Station_How_To&amp;diff=3687"/>
		<updated>2020-09-27T09:57:50Z</updated>

		<summary type="html">&lt;p&gt;Vk5qi: /* Setting the gain */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Omnidirectional VHF Turnstile Antenna.jpg|alt=VHF Turnstile Antenna|thumb|VHF Turnstile antenna, [https://network.satnogs.org/stations/23/ SatNOGS Station 23]]]&lt;br /&gt;
This How-To is written to get you quickly receiving satellite data with an Omnidirectional antenna (an antenna that does not move).&lt;br /&gt;
&lt;br /&gt;
==Prerequisites/Background==&lt;br /&gt;
I'm assuming that you are a bit familiar with amateur radio, or linux in general, or you already have a Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
===Expectation Management===&lt;br /&gt;
First off, I'd like to set some expectations around a SatNOGs station with an omnidirectional antenna. Yes, you will be able to hear satellites, Morse code beacons, maybe even some voice contacts on a FM transponder. But for CubeSats with 1 watt transmitters at 9600 baud, it's going to be really difficult to actually decode any data with an omni antenna. You'll definitely see squiggly lines on the waterfall plot, but demodulating the signal and extracting satellite telemetry is going to be pretty difficult.&lt;br /&gt;
&lt;br /&gt;
The only way to get more signal is a better antenna. And a better antenna with more gain is going to be more directional, which means you will need a way to point that antenna at the satellite, and this How-To just got a lot more complicated. So we're not going there.&lt;br /&gt;
&lt;br /&gt;
A better preamp helps a bit, see the LNA section below.&lt;br /&gt;
&lt;br /&gt;
===Hardware Required===&lt;br /&gt;
This is a list of the hardware for indoor/testing purposes:&lt;br /&gt;
&lt;br /&gt;
*Raspberry Pi&lt;br /&gt;
**Power supply + cable (see note below)&lt;br /&gt;
**Up to 16 GB Micro SD card&lt;br /&gt;
**Ethernet cable&lt;br /&gt;
*RTL SDR Blog v3 dongle&lt;br /&gt;
*Various short lengths of coax&lt;br /&gt;
*Preamp/LNA - Or not if your coax is short, see LNA section below&lt;br /&gt;
*Omnidirectional antenna - just a dual mag-mount on a cookie sheet will work OK for stronger satellites&lt;br /&gt;
&lt;br /&gt;
==Setting up the Raspberry Pi==&lt;br /&gt;
I chose the [https://www.raspberrypi.org/products/raspberry-pi-3-model-b/ Raspberry Pi 3 Model B] for my station. &lt;br /&gt;
&lt;br /&gt;
===Downloading/Writing the SD image===&lt;br /&gt;
The SatNOGS team has done a great job creating a Raspbian image with all the required software. Simply navigate over to the [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/tags latest tag on Gitlab], and click on the &amp;quot;Zipped image&amp;quot; link under the latest tag. It's about 650 MBytes.&lt;br /&gt;
&lt;br /&gt;
For linux:&lt;br /&gt;
&lt;br /&gt;
#Unzip the downloaded file: '''unzip image_2018-08-03-Raspbian-SatNOGS-lite.zip'''&lt;br /&gt;
#Figure out which device is the SD card. SD cards are usually start with mmcblk. '''sudo lsblk'''&lt;br /&gt;
#Write the image. This will take a while. Make sure you don't overwrite your host OS: '''sudo dd if=2018-08-03-Raspbian-SatNOGS-lite.img of=/dev/mmcblk0'''&lt;br /&gt;
&lt;br /&gt;
===Power notes===&lt;br /&gt;
Thinking I could save a few bucks, I used a no-name generic 2.4 amp &amp;quot;tablet&amp;quot; USB power supply I got as a freebie, and a micro-USB cable I use for charging my phone. What a mistake! The Micro-USB cable wire gauge was too small, so there was too much voltage drop on the cable, so the Raspberry Pi reported power problems every time it was doing anything.&lt;br /&gt;
&lt;br /&gt;
Power problems are indicated by either a lightning bolt in the upper right of the monitor, or the red power LED flashes on the board itself. If The Raspberry Pi processor itself is pretty forgiving of power droops because it runs at 3.3 volts. But the 5v USB ports are directly tied to input power, so undervoltage conditions will cause problems for USB devices, such as the RTL SDR dongle.&lt;br /&gt;
&lt;br /&gt;
==Software Configuration==&lt;br /&gt;
&lt;br /&gt;
===Creating a SatNOGS Network account===&lt;br /&gt;
There are several different websites to be aware of and sign in to. As of 12/2018, most of our websites use a unified login provided by Auth0, so when you create an account on one of these sites it will work across the others as well:&lt;br /&gt;
&lt;br /&gt;
*Required: [https://network.satnogs.org/ Network]: for registering your station and adding data to the network.&lt;br /&gt;
*Recommended: [https://community.libre.space Forums]: for asking questions.&lt;br /&gt;
*Optional: [https://db.satnogs.org/ Database]: Only if you want to add satellites/modes. Not necessary for receiving satellite data.&lt;br /&gt;
&lt;br /&gt;
===Registering the station===&lt;br /&gt;
Log in to your Network account, and click the &amp;quot;+ Add Ground Station&amp;quot; button, or click [https://network.satnogs.org/stations/edit/ here] Fill out the short form, and your station will be added to the database. For &amp;quot;Antenna&amp;quot;, pick something that encompasses the frequency range of your antenna. For wideband reception, use VHF Discone 26-1200 MHz.&lt;br /&gt;
&lt;br /&gt;
The important info you'll need later on is the Station ID number, lat/lon/altitiude. I would also use a Minimum Horizon of 30 degrees or so, this will keep your station from allowing low-elevation passes to be scheduled. Make sure to keep the &amp;quot;Testing&amp;quot; flag checked, as this lets people know that your station isn't quite ready for real use.&lt;br /&gt;
&lt;br /&gt;
To help your fellow operators please consider placing the following information into the &amp;quot;Description&amp;quot; field for your station: Antenna gain and location, preamp info (if any), SDR device, some kind of contact info perhaps [[Get_In_Touch#Chat_with_us_on_our_Matrix_room |irc/matrix]] or [https://community.libre.space/ community forum] username or email address.&lt;br /&gt;
&lt;br /&gt;
===Booting and Configuring Raspbian===&lt;br /&gt;
After you have the image burned onto a Micro-SD card, boot it! I would recommend hooking up a keyboard and HDMI monitor, you can watch the boot process. If it doesn't boot at all, double check that you wrote the SatNOGS Raspbian image correctly.&lt;br /&gt;
&lt;br /&gt;
After a successful boot, log in with username '''pi''' and password '''raspberry'''&lt;br /&gt;
&lt;br /&gt;
#Change your password! '''passwd'''&lt;br /&gt;
#Run '''sudo raspi-config''' to set up the base OS. ''Tab'' switches between the options and ''select''.&lt;br /&gt;
##4 Localisation Options: I1 Change Locale: en_US.UTF-8 UTF-8&lt;br /&gt;
##4 Localisation Options: I2 Change Timezone: None of the above: UTC&lt;br /&gt;
##4 Localisation Options: I3 Change Keyboard Layout:&lt;br /&gt;
##7 Advanced Options: A1 Expand Filesystem &amp;lt;br /&amp;gt;This will expand the ~2GB Micro-SD card partition to fill the entire SD card.&lt;br /&gt;
&lt;br /&gt;
The Raspberry Pi needs to reboot to expand the filesystem, so do this now. It might take a while. '''sudo reboot''&lt;br /&gt;
&lt;br /&gt;
====Disabling WiFi and Bluetooth====&lt;br /&gt;
To disable WiFi and Bluetooth, edit the /boot/config.txt file, and add the following lines at the bottom:&lt;br /&gt;
 # Disable WiFi and bluetooth&lt;br /&gt;
 dtoverlay=pi3-disable-wifi&lt;br /&gt;
 dtoverlay=pi3-disable-bt&lt;br /&gt;
&lt;br /&gt;
Then reboot again. To make sure that it worked, run '''ifconfig''' and make sure that ''wlan0'' isn't listed. I'm not sure how to tell if bluetooth is turned off.&lt;br /&gt;
&lt;br /&gt;
====Additional software====&lt;br /&gt;
I like to install this additional software with '''sudo apt install bmon''' ...&lt;br /&gt;
&lt;br /&gt;
*bmon - a graphical network usage analyzer.&lt;br /&gt;
*vnstat - keeps track of your bandwidth usage&lt;br /&gt;
*vim - the world's best text editor ;)&lt;br /&gt;
*irssi - a terminal IRC client, for chatting on the #satnogs IRC channel&lt;br /&gt;
&lt;br /&gt;
If you can't tell by now, I'm always a big fan of rebooting. It certainly doesn't take that long... '''sudo reboot'''&lt;br /&gt;
&lt;br /&gt;
===Configuring the satnogs-client===&lt;br /&gt;
Once you have the base Raspbian Strech OS installed, updated, and looking good, you can configure SatNOGS. Plug in your RTL SDR if you haven't already.&lt;br /&gt;
&lt;br /&gt;
First thing to do is update the satnogs-setup program. Run '''sudo satnogs-setup'''. This will probably take a while, then '''Update''', which will also take a while. Per usual, after the update I like to reboot the raspberry pi just to make sure everything was updated and is actually running the new code.&lt;br /&gt;
&lt;br /&gt;
====Basic Configuration====&lt;br /&gt;
Then the actual configuration of the station:&lt;br /&gt;
&lt;br /&gt;
#Run '''sudo satnogs-setup''' again.&lt;br /&gt;
#Use the up/down and TAB keys to navigate, and Enter to select an option.&lt;br /&gt;
#Basic Configuration:&lt;br /&gt;
##SATNOGS_API_TOKEN: After logging in to network.satnogs.org, this is in the upper right under &amp;quot;API Key&amp;quot; [no longer exsists? Add direct link]&lt;br /&gt;
##SATNOGS_SOAPY_RX_DEVICE: driver=rtlsdr&lt;br /&gt;
##SATNOGS_RX_SAMP_RATE: 2.048e6&lt;br /&gt;
##SATNOGS_RX_GAIN: Refer &amp;quot;Setting the gain&amp;quot; section below.&lt;br /&gt;
##SATNOGS_STATION_ELEV: station elevation in meters&lt;br /&gt;
##SATNOGS_STATION_ID: The ID number of your station.&lt;br /&gt;
##SATNOGS_STATION_LAT and LON: Latitude and Longitude in decimal degrees&lt;br /&gt;
&lt;br /&gt;
Then back to the main menu and ''Apply'' to save the configuration. Ansible will run and update the system. If you want to quit, just keep pressing cancel to exit.&lt;br /&gt;
&lt;br /&gt;
====Setting the gain====&lt;br /&gt;
The next step is to set the gain on the RTL SDR. The aim here (in the majority of cases) is to set the gain of your station to maximise sensitivity (best noise figure), but without limiting the available dynamic range of your station due to your local noise floor. This can be achieved in a fairly simple manner, by watching the level of the receivers noise floor as you slowly increase the receiver gain. At some point the noise floor will start to rise - at this point increasing the gain any further will of no use - you will only increase the noise level, and eat into your receiver's available dynamic range (for a RTLSDR, theoretically only 48 dB).&lt;br /&gt;
&lt;br /&gt;
There may be situations where strong local interferers may require the use of a lower gain setting to avoid intermodulation products appearing in the passband, though these cases would be better solved with a suitable bandpass filter somewhere in the receive chain.&lt;br /&gt;
&lt;br /&gt;
First, it is good to know the available gain range of your SDR. This can be accomplished by running &amp;lt;code&amp;gt;SoapySDRUtil --probe&amp;lt;/code&amp;gt;, which provides a considerable amount of information about the connected SDR:&lt;br /&gt;
 pi@satnogs:~ $ SoapySDRUtil --probe&lt;br /&gt;
 ######################################################&lt;br /&gt;
 ## Soapy SDR -- the SDR abstraction library&lt;br /&gt;
 ######################################################&lt;br /&gt;
 &lt;br /&gt;
 Probe device&lt;br /&gt;
 &lt;br /&gt;
 Found Rafael Micro R820T tuner&lt;br /&gt;
 [INFO] [UHD] linux; GNU C++ version 8.2.0; Boost_106700; UHD_3.13.1.0-3&lt;br /&gt;
 Found Rafael Micro R820T tuner&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 -- Device identification&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
   driver=RTLSDR&lt;br /&gt;
   hardware=RTLSDR&lt;br /&gt;
   origin=&amp;lt;nowiki&amp;gt;https://github.com/pothosware/SoapyRTLSDR&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   rtl=0&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 -- Peripheral summary&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
   Channels: 1 Rx, 0 Tx&lt;br /&gt;
   Timestamps: NO&lt;br /&gt;
   Other Settings:&lt;br /&gt;
      * Direct Sampling - RTL-SDR Direct Sampling Mode&lt;br /&gt;
        [key=direct_samp, default=0, type=string, options=(0, 1, 2)]&lt;br /&gt;
      * Offset Tune - RTL-SDR Offset Tuning Mode&lt;br /&gt;
        [key=offset_tune, default=false, type=bool]&lt;br /&gt;
      * I/Q Swap - RTL-SDR I/Q Swap Mode&lt;br /&gt;
        [key=iq_swap, default=false, type=bool]&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 -- RX Channel 0&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
   Full-duplex: YES&lt;br /&gt;
   Supports AGC: YES&lt;br /&gt;
   Stream formats: CS8, CS16, CF32&lt;br /&gt;
   Native format: CS8 [full-scale=128]&lt;br /&gt;
   Stream args:&lt;br /&gt;
      * Buffer Size - Number of bytes per buffer, multiples of 512 only.&lt;br /&gt;
        [key=bufflen, units=bytes, default=262144, type=int]&lt;br /&gt;
      * Ring buffers - Number of buffers in the ring.&lt;br /&gt;
        [key=buffers, units=buffers, default=15, type=int]&lt;br /&gt;
      * Async buffers - Number of async usb buffers (advanced).&lt;br /&gt;
        [key=asyncBuffs, units=buffers, default=0, type=int]&lt;br /&gt;
   Antennas: RX&lt;br /&gt;
   Full gain range: [0, 49.6] dB&lt;br /&gt;
     TUNER gain range: [0, 49.6] dB&lt;br /&gt;
   Full freq range: [23.999, 1764] MHz&lt;br /&gt;
     RF freq range: [24, 1764] MHz&lt;br /&gt;
     CORR freq range: [-0.001, 0.001] MHz&lt;br /&gt;
   Sample rates: 0.25, 1.024, 1.536, 1.792, 1.92, 2.048, 2.16, 2.56, 2.88, 3.2 MSps&lt;br /&gt;
The above output is for a RTLSDR, and we can see that there is information on the 'Full gain range', and 'TUNER' gain. The Full gain setting is an 'abstracted' gain range, which in this case just directly links to the 'TUNER' gain, as that is the only gain setting presented by the RTLSDR driver. Other SDRs (e.g. AirSpy) may present more gain controls. Anyway, we can see that the gain range is 0 through 49.6 dB. It's quite possible that there are only discrete gain steps within this range (and this is very true for the RTLSDR), but SoapySDR will hide that from us and automatically use the nearest valid setting.&lt;br /&gt;
&lt;br /&gt;
Next up, we want a way of seeing a live spectrum from the SDR. This might be difficult, especially if you're just gone and mounted a RTLSDR in a metal box up a pole! Well, SoapySDR comes to the rescue again with SoapySDR Server - this allows us to serve up the SDR on the network, and access it with a client.&lt;br /&gt;
&lt;br /&gt;
Note: SoapySDR Server is not currently installed by default. It can be installed by running the commands:&lt;br /&gt;
 $ sudo apt-get install soapyremote-server&lt;br /&gt;
 $ sudo systemctl start soapyremote-server&lt;br /&gt;
&lt;br /&gt;
[https://cubicsdr.com/ CubicSDR] is a good cross-platform client that can connect to a SoapySDR Server, and you can [https://github.com/cjcliffe/CubicSDR/releases download the latest release by clicking here]. &lt;br /&gt;
On the RPi, you can start SoapySDR Server by running: &amp;lt;code&amp;gt;SoapySDRServer --bind=&amp;quot;0.0.0.0:55132&amp;quot;&amp;lt;/code&amp;gt;  Leave this running. &lt;br /&gt;
&lt;br /&gt;
Note: If you need to use the Bias-T option of an RTLSDR, you will need to activate this manually prior to running SoapySDRServer. This can be accomplished by [[Software Defined Radio#Using RTL-SDR.com V3 Dongle.27s Bias-T Power Supply|compiling the rtl_biast utility]], and running it with &amp;lt;code&amp;gt;./rtl_biast -b 1&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
Open up CubicSDR on another computer, on the same network as your SatNOGS station. It will pop up a window asking you to select a SDR device. With any luck, it will have auto-detected your SoapySDR Server, and it will show up in the 'Local Net' list. If not, you will need to select 'Remote', click 'Add', and then enter the IP address of your station. You should then have a SDR showing up in the list.&lt;br /&gt;
[[File:Screen Shot 2020-03-19 at 10.41.52 pm.png|alt=CubicSDR SDR Devices List|none|thumb|600x600px|CubicSDR SDR Devices List]]&lt;br /&gt;
You should now be able to click 'Start', and end up with a waterfall display. If the waterfall appears to glitch, or show a 'lumpy' pattern near the centre of the display, then this indicates packet loss between the SatNOGS station and your client. Try and connect via a direct LAN connection if possible. &lt;br /&gt;
In the settings menu of CubicSDR, disable &amp;quot;Automatic Gain&amp;quot; if it is set. This will allow manual control over the gain settings via sliders that will show up at the top left of the window.&lt;br /&gt;
[[File:CubicSDR Main Window.png|alt=CubicSDR Main Window (Annotated)|none|thumb|900x900px|CubicSDR Main Window (Annotated)]]&lt;br /&gt;
The above Figure shows the CubicSDR window, with the spectrum area, frequency selection, and gain settings annotated. Set the frequency to something suitable for your station. For example, if you are setting up a 70cm station, set a frequency of 437 MHz (437000000 Hz). For a 2m station, try 146 MHz.&lt;br /&gt;
Drag the gain slider so that the gain (visible at the bottom of the slider) is set to zero. Then, slowly drag it up until you see the noise floor start to rise. The gain at which this occurs is the gain you should set in SATNOGS_RF_GAIN (Available under the 'Basic' menu in satnogs-setup).&lt;br /&gt;
&lt;br /&gt;
Some SDRs may present more than one gain slider. In these situations, you will need to configure SatNOGS with each gain set individually. [[Software Defined Radio#E4000 Tuner Gain Settings|Refer here]] for more information on how to do this.&lt;br /&gt;
&lt;br /&gt;
As an example, the following figure shows the noise floor observed on a station with a RTLSDR and a ~25dB masthead preamplifier, as gain levels on the RTLSDR are increased:&lt;br /&gt;
[[File:RTLSDR Noise Floor Variation with Gain Adjustment.png|alt=RTLSDR Noise Floor Variation with Gain Adjustment|none|thumb|900x900px|RTLSDR Noise Floor Variation with Gain Adjustment]]&lt;br /&gt;
We can see that between 0 db and 20 dB of gain there is essentially no change in the noise floor - this indicates the receive system is limited by the noise figure of the RTLSDR. As the gain increases through 30 dB, the noise floor starts to lift, indicating that we are now most likely limited by either the noise figure of the preamplifier, or the local noise environment. Any increase in gain past this point just results in reduction of the available receiver dynamic range.&lt;br /&gt;
&lt;br /&gt;
CubicSDR DOES NOT autorange its waterfall, in contrast, satnogs DOES autorange its waterfall.  When you adjust the gain in CubicSDR the waterfall background will dramatically change, but when you adjust the gain in satnogs the waterfall background will not change color.  See the web page documenting  autoranging waterfalls:&lt;br /&gt;
&lt;br /&gt;
https://docs.satnogs.org/projects/satnogs-client/en/stable/userguide.html#satnogs-waterfall-autorange&lt;br /&gt;
&lt;br /&gt;
'''Important Note: While CubicSDR is connected to the SDR, your SatNOGS ground station cannot run observations! Make sure to close CubicSDR when you have finished setting the gain.'''&lt;br /&gt;
===Hardware Configuration===&lt;br /&gt;
Basic hardware configuration is Antenna &amp;gt; Short coax &amp;gt; LNA &amp;gt; Coax &amp;gt; RTL SDR.&lt;br /&gt;
&lt;br /&gt;
===LNA===&lt;br /&gt;
The way to measure the performance of an antenna is using a figure of merit called the Antenna gain-to-noise-temperature (G/T). It's a positive unitless number, higher the better.&lt;br /&gt;
&lt;br /&gt;
G/T is comprised of antenna gain (in dB) on the top, and the system noise temperature (in Kelvins) on the bottom. There's a lot of somewhat-hard math involved, but here's the bottom line: to make your system perform better, you either need to increase the antenna gain or decrease the system noise temp. [https://en.wikipedia.org/wiki/Antenna_gain-to-noise-temperature Wikipedia]&lt;br /&gt;
&lt;br /&gt;
Increasing the antenna gain is difficult, only because we decided on an omnidirectional antenna as the basis for this How-To. Omnidirectional antennas top out at maybe 7 dB gain or so, and that's just from pushing the radiation pattern up to the sky away from the ground. Any more gain than that and it's not an omni antenna; it's got a direction that the antenna needs to be pointed in. And we want to stay away from pointing antennas for now.&lt;br /&gt;
&lt;br /&gt;
Reducing the system temperature is the the way forward then. The RTL-SDR dongle has a noise figure of [https://network.satnogs.org/stations/edit/ 6dB or so], depending on frequency, which is pretty horrible. But it turns out that the system noise temperature is largely determined by the first device in the receive chain. Since we can't change the antenna, adding a low-noise amplifier helps quite a bit. See this [https://www.youtube.com/watch?v=snifc_x_2sE youtube video] from Adam 9A4QV on how a LNA helps. (Also check out his other videos about the RTL SDR dongle, and SDR in general)&lt;br /&gt;
&lt;br /&gt;
More info on noise and preamps:&lt;br /&gt;
&lt;br /&gt;
*[https://en.wikipedia.org/wiki/Noise_temperature System noise from wikipedia], pretty high-level&lt;br /&gt;
*[https://www.rtl-sdr.com/tutorial-on-properly-positioning-a-preamp-lna-in-a-radio-system/ Where to put an LNA], from rtl-sdr.com&lt;br /&gt;
*[[SPF1589 LNA measurements|SPF5189 LNA measurements]]&lt;br /&gt;
&lt;br /&gt;
===Antenna===&lt;br /&gt;
For testing on the bench, pretty much any antenna will do. Or if you have a whip antenna already outside for repeater work, use that. As I mentioned before, I've successfully used a mag-mount antenna stuck to a cookie sheet, sitting inside my living room window.&lt;br /&gt;
&lt;br /&gt;
Also, remember that some new low emissivity double-pane windows use metal films to keep heat inside. Unfortunately, this also attenuates pretty much all RF signals, see [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5501855/ this article] for more background.&lt;br /&gt;
&lt;br /&gt;
==Testing the station==&lt;br /&gt;
[[File:Pass predictions.png|300px|right]]&lt;br /&gt;
Now that you have the hardware and software up and running, go ahead and schedule some passes. Navigate to your station page, and click on the Schedule button on the right side of some promising passes. The green and red bars beneath the satellite name is a quick visual indication of the number of Good and Bad passes on the network. Unfortunately, this data is not time-stamped at all, so a satellite that had a lot of Good observations a long time ago, but recently died, would still show as Green.&lt;br /&gt;
&lt;br /&gt;
===Rating an Observation===&lt;br /&gt;
[[File:Rating.png|right]]&lt;br /&gt;
After each observatios, you should rate it. More information [https://wiki.satnogs.org/Operation#Rating_observations here], but the bottom line is rate the observation:&lt;br /&gt;
&lt;br /&gt;
*'''Good''' if the satellite is seen in the waterfall at all. The satellite will be a straight line in the middle of the waterfall plot.&lt;br /&gt;
*'''Bad''' if the satellite is not seen.&lt;br /&gt;
*'''Failed''' if there was a problem with the station, such as a mis-configuration, or if the waterfall is missing or a solid color.&lt;br /&gt;
&lt;br /&gt;
For a more detailed guide on testing, see [[Operation]]&lt;br /&gt;
&lt;br /&gt;
===Calibrating frequency offset (PPM)===&lt;br /&gt;
This is not super important for a new station.&lt;br /&gt;
&lt;br /&gt;
==Next Steps==&lt;br /&gt;
Now that you've got this station working on the bench, what's next?&lt;br /&gt;
&lt;br /&gt;
For permanent mast-mounted installation, I would recommend adding:&lt;br /&gt;
&lt;br /&gt;
*[https://www.adafruit.com/product/3785 PoE splitter] - Make sure to get one that actually conforms to the 48-volt IEEE 802.3af standard&lt;br /&gt;
*POE injector for powering station remotely - Again, get a real 48-volt IEEE 802.3af standard&lt;br /&gt;
*Large mast-mounted waterproof box&lt;br /&gt;
*Waterproof cord grips, both to keep out the rain but also spiders and critters&lt;br /&gt;
*Desiccant to keep the humidity down&lt;br /&gt;
*Mastic tape for weatherproofing antenna connectors&lt;br /&gt;
*Better omnidirectional antenna&lt;br /&gt;
&lt;br /&gt;
===Building a Box===&lt;br /&gt;
&lt;br /&gt;
*[https://wiki.satnogs.org/No_rotator No-Rotator setup]&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
*IQ3KU Omnidirectional station [https://www.i3vfj.net/SATNOGS/Satnogs_348_notes.pdf build write-up].&lt;br /&gt;
&lt;br /&gt;
[[ Category:Build ]]&lt;br /&gt;
[[ Category:Hardware ]]&lt;br /&gt;
[[ Category:Antenna ]]&lt;/div&gt;</summary>
		<author><name>Vk5qi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Software_Defined_Radio&amp;diff=3686</id>
		<title>Software Defined Radio</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Software_Defined_Radio&amp;diff=3686"/>
		<updated>2020-09-27T09:51:28Z</updated>

		<summary type="html">&lt;p&gt;Vk5qi: Add E4000 gain setting.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
Built upon [https://gnuradio.org/ GNU Radio] and [https://github.com/pothosware/SoapySDR/wiki SoapySDR] by using the [https://gitlab.com/librespacefoundation/gr-soapy gr-soapy] module SatNOGS supports a large variety of Software-Defined Radios (SDRs). The gr-soapy module was developed in the [https://sdrmaker.space/ SDR Makerspace] and is maintained by Libre Space Foundation to bring the vendor-neutral SDR support by SoapySDR to the flexible gnuradio ecosystem.&lt;br /&gt;
&lt;br /&gt;
The most cost-effective solution is to use an RTL-SDR with a Raspberry Pi.  More advanced SDRs are also used, but they require more processing power and thus might require a more powerful computing platform than the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
==Supported Devices==&lt;br /&gt;
&lt;br /&gt;
SoapySDR supports SDR devices through runtime-loadable modules [https://github.com/pothosware/SoapySDR/wiki#plugin-architecture]. You can find all available modules in the [https://github.com/pothosware/SoapySDR/wiki#modules SoapySDR wiki] (see right column). Most SDR modules are installed by default when setting up a SatNOGS station.&lt;br /&gt;
&lt;br /&gt;
The following SDRs are supported by SatNOGS. SatNOGS uses the RTL-SDR as the recommended beginner signal receiver and tuner.  &lt;br /&gt;
The more advanced SDRs may require more processing power than a Raspberry Pi 3b or 4 can offer. &lt;br /&gt;
&lt;br /&gt;
*[[Software Defined Radio#RTL-SDR Support|RTL-SDR]]&lt;br /&gt;
**[https://www.nooelec.com/store/sdr/sdr-receivers.html NooElec NESDR SMArt]&lt;br /&gt;
**[https://www.rtl-sdr.com/buy-rtl-sdr-dvb-t-dongles/ RTL-SDR Blog R820T2 RTL2832U]&lt;br /&gt;
**Full band UV HF RTL-SDR USB Tuner Receiver&lt;br /&gt;
&lt;br /&gt;
*[[Software Defined Radio#USRP support|USRP devices]]&lt;br /&gt;
**[https://www.ettus.com/product/category/USRP-Bus-Series USRP B200]&lt;br /&gt;
&lt;br /&gt;
*[[Software Defined Radio#Airspy support|Airspy]]&lt;br /&gt;
*[[Software Defined Radio#LimeSDR support|LimeSuite devices]]&lt;br /&gt;
**[https://limemicro.com/products/boards/limesdr-mini/ LimeSDR mini]&lt;br /&gt;
*[[Software Defined Radio#PlutoSDR support|PlutoSDR]]&lt;br /&gt;
**[https://www.analog.com/en/design-center/evaluation-hardware-and-software/evaluation-boards-kits/adalm-pluto.html#eb-overview ADALM-PLUTO] (untested)&lt;br /&gt;
&lt;br /&gt;
{{Message|There are probably a lot more devices supported since the transition from gr-osmosdr to gr-soapy. Please update this list when you were able to successfully run a SatNOGS station with a new radio family or model. You can also link your station as an example to give others the ability to compare performance.}}&lt;br /&gt;
&lt;br /&gt;
==Supported Devices with closed-source drivers==&lt;br /&gt;
Unfortunately some vendors require closed-source drivers in their SoapySDR modules and thus those modules or dependencies can't be redistributed by others. Thus they must be manually installed by the user. The following devices require closed-source drivers:&lt;br /&gt;
&lt;br /&gt;
*[[Software Defined Radio#SDRPlay support|SDRPlay]]&lt;br /&gt;
&lt;br /&gt;
==Unsupported Devices==&lt;br /&gt;
{{Warning|This section might be outdated due to the transition to gr-soapy. Please update when possible.}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[https://greatscottgadgets.com/hackrf/ HackRF One] (not compatible with the SatNOGS client on Raspberry Pi)&lt;br /&gt;
*USRP2 (not compatible with the SatNOGS client on Raspberry Pi)&lt;br /&gt;
&lt;br /&gt;
==RTL-SDR Support==&lt;br /&gt;
The RTL-SDR is based on two chips -- the versatile [http://www.realtek.com.tw/products/productsView.aspx?Langid=1&amp;amp;PFid=35&amp;amp;Level=4&amp;amp;Conn=3&amp;amp;ProdID=257 RTL2832U chip] and the [https://rtl-sdr.com/wp-content/uploads/2013/04/R820T_datasheet-Non_R-20111130_unlocked.pdf R820T tuner]. The RTL-SDR is currently the cheapest, most common, and most performing solution available in terms of general sensitivity having a frequency range of 24 – 1766 MHz.  A metal enclosure with SMA connector is preferred, along with a stable TCXO (low ppm).  HF coverage is optional.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Using RTL-SDR.com V3 Dongle's Bias-T Power Supply===&lt;br /&gt;
The RTL-SDR.com V3 dongle has a built in software activated Bias-T voltage supply intended to be used for applications such as powering inline LNAs (Low Noise Amplifiers).   There are several ways to turn on the voltage, but through initial testing (as of this writing, 17 Aug 2019) it seems that the following procedure works best.&lt;br /&gt;
&lt;br /&gt;
The below relates to Raspberry Pi installs only.   No testing has been performed on other systems as of yet.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Turning on the Bias-T with no LNA installed and a &amp;quot;shorted&amp;quot; style antenna (such as loops, egg-beaters, etc.) can damage the RTL-SDR.com V3 dongle.   Never activate the bias-t with no LNA installed between the antenna and the SDR dongle.}}&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
#Raspberry Pi running Raspbian Buster or newer (latest release of SatNogs image, [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/tags 2019091100], is demonstrated to work)&lt;br /&gt;
#[https://www.rtl-sdr.com/buy-rtl-sdr-dvb-t-dongles/ RTL-SDR.com V3 SDR dongle]&lt;br /&gt;
#[https://www.rtl-sdr.com/rtl-sdr-blog-v-3-dongles-user-guide/ RTL-SDR.com Bias-T Software Switch] for linux systems&lt;br /&gt;
#LNA capable of being powered via feedline coax (note that some LNAs need modifications to be powered by the coax, and some cannot be powered by the coax at all.  Check the specifications for your LNA prior to attempting to turn on the Bias-T power supply)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Instructions for installing RTL-SDR.com Bias-T Software Switch====&lt;br /&gt;
&lt;br /&gt;
#Log into your SatNogs station either directly or via SSH&lt;br /&gt;
#If your station does not have cmake installed (SatNogs Image 2019091100 does not), install cmake with &amp;lt;code&amp;gt;sudo apt install cmake&amp;lt;/code&amp;gt;&lt;br /&gt;
#Clone the source for the Bias-T software switch with &amp;lt;code&amp;gt;git clone &amp;lt;nowiki&amp;gt;https://github.com/rtlsdrblog/rtl_biast&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;cd rtl_biast&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;mkdir build&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;cd build&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;cmake ..&amp;lt;/code&amp;gt;  (if you get a &amp;lt;code&amp;gt;LibUSB 1.0 required to compile rtl-sdr&amp;lt;/code&amp;gt; error here, then do &amp;lt;code&amp;gt;sudo apt install libusb-1.0-0-dev&amp;lt;/code&amp;gt; prior to attempting &amp;lt;code&amp;gt;cmake ..&amp;lt;/code&amp;gt; again)&lt;br /&gt;
#&amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The software switch should now be installed in the &amp;quot;src&amp;quot; directory.    If you &amp;lt;code&amp;gt;cd src&amp;lt;/code&amp;gt;, you can turn on the bias-t with the command &amp;lt;code&amp;gt;./rtl_biast -b 1&amp;lt;/code&amp;gt; and turn it off with &amp;lt;code&amp;gt;./rtl_biast -b 0&amp;lt;/code&amp;gt;.   Note that the developers of this switch have warned against attempting to &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt; so that this command can be executed from ouside the src directory.   Testing has shown this warning to be accurate, so don't plan on running these commands from anywhere but the src directory, or else be sure to use the full path.&lt;br /&gt;
&lt;br /&gt;
Switching the Bias-T on should yield between 4.5V and 5.0V across the center conductor and shield of the coax.   The voltage should rise almost instantly.   When switched off, the voltage seems to decrease gradually, over 5 to 10 seconds.&lt;br /&gt;
&lt;br /&gt;
====Instructions to activate the bias-t for SatNogs Observations automatically:====&lt;br /&gt;
&lt;br /&gt;
#Log into your SatNogs station either directly or via SSH&lt;br /&gt;
#&amp;lt;code&amp;gt;sudo satnogs-setup&amp;lt;/code&amp;gt;&lt;br /&gt;
#select &amp;lt;code&amp;gt;Advanced&amp;lt;/code&amp;gt;&lt;br /&gt;
#for &amp;lt;code&amp;gt;Radio&amp;lt;/code&amp;gt; -&amp;gt;&amp;lt;code&amp;gt;SATNOGS_RF_GAIN&amp;lt;/code&amp;gt;, enter a low gain value supported by your RTL-SDR.com V3 dongle (entering &amp;lt;code&amp;gt;rtl_test&amp;lt;/code&amp;gt; at the command line prior to starting &amp;lt;code&amp;gt;satnogs-setup&amp;lt;/code&amp;gt; will give you all allowable values of RF gain) and select &amp;lt;code&amp;gt;Ok&amp;lt;/code&amp;gt;&lt;br /&gt;
#for &amp;lt;code&amp;gt;Scripts&amp;lt;/code&amp;gt; -&amp;gt;&amp;lt;code&amp;gt;SATNOGS_PRE_OBSERVATION_SCRIPT,&amp;lt;/code&amp;gt; enter &amp;lt;code&amp;gt;/home/pi/rtl_biast/build/src/rtl_biast -b 1&amp;lt;/code&amp;gt; and select &amp;lt;code&amp;gt;Ok&amp;lt;/code&amp;gt;&lt;br /&gt;
#for &amp;lt;code&amp;gt;Scripts&amp;lt;/code&amp;gt; -&amp;gt;&amp;lt;code&amp;gt;SATNOGS_POST_OBSERVATION_SCRIPT,&amp;lt;/code&amp;gt; enter &amp;lt;code&amp;gt;/home/pi/rtl_biast/build/src/rtl_biast -b 0&amp;lt;/code&amp;gt; and select &amp;lt;code&amp;gt;Ok&amp;lt;/code&amp;gt;&lt;br /&gt;
#Select &amp;lt;code&amp;gt;Back&amp;lt;/code&amp;gt;&lt;br /&gt;
#Select &amp;lt;code&amp;gt;Apply&amp;lt;/code&amp;gt; (allow system to update and hit enter when prompted)&lt;br /&gt;
#Select &amp;lt;code&amp;gt;Back&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your station is now set up to turn the Bias-T on for each scheduled observation (using the &amp;lt;code&amp;gt;SATNOGS_PRE_OBSERVATION_SCRIPT&amp;lt;/code&amp;gt; string) and then turn it off at the conclusion of each observation (using the &amp;lt;code&amp;gt;SATNOGS_POST_OBSERVATION_SCRIPT&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
You should now schedule several observations to fine tune the &amp;lt;code&amp;gt;SATNOGS_RF_GAIN&amp;lt;/code&amp;gt; value to get the best S/N performance for your station.   Some have reported needing zero RF gain, others have reported low RF gain required (between 5 and 10 db), and others have said they see little benefit even with very high gain. Each station will be different.&lt;br /&gt;
&lt;br /&gt;
==== E4000 Tuner Gain Settings ====&lt;br /&gt;
The RTLSDR Driver exposes six (!) IF gain settings (IF1 through IF6) for the E4000 tuner, along with a TUNER gain setting, which is actually a combined LNA and Mixer gain control. Details on the gain stages are available in page 28 of the E4000 data-sheet here: https://www.nooelec.com/files/e4000datasheet.pdf&lt;br /&gt;
&lt;br /&gt;
When you follow the '[[Omnidirectional Station How To#Setting the gain|Setting the Gain]]' guide, all gain sliders (IF1 through IF6, and TUNER) should be presented in SoapySDR, allowing the user to adjust them to optimise for best performance. Once the correct values have been determined, you will need to define these specifically in satnogs-setup as follows:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;SATNOGS_GAIN_MODE&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;&amp;quot;Settings Field&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SATNOGS_OTHER_SETTINGS&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;&amp;quot;IF1=6,IF2=3,IF2=2,IF3=0,IF4=0,IF5=2,IF6=3,TUNER=30&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Replacing the values in the line above with the ones you determined)&lt;br /&gt;
&lt;br /&gt;
==== R820T Gain Settings ====&lt;br /&gt;
Unfortunately librtlsdr only exposes a single gain control for the R820T/T2 tuners, even though multiple gain adjustments are available. Use the standard SATNOGS_RF_GAIN option, with a gain between 0 and 42 (dB), as optimised for your station via the '[[Omnidirectional Station How To#Setting the gain|Setting the Gain]]' guide.&lt;br /&gt;
&lt;br /&gt;
==Airspy support==&lt;br /&gt;
Vendor: [https://airspy.com/ Airspy]&lt;br /&gt;
&lt;br /&gt;
required SoapySDR module: [https://github.com/pothosware/SoapyAirspy/wiki SoapyAirspy]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note than none of the settings below should be entered with the &amp;quot;  &amp;quot; around the value. This is only for better readability in the Wiki !''' &lt;br /&gt;
&lt;br /&gt;
===Gain settings===&lt;br /&gt;
There are two possible gain modes:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_GAIN_MODE&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;&amp;quot;Overall&amp;quot;&amp;lt;/code&amp;gt;: (default) Use a single gain value.  Set the overall gain with &amp;lt;code&amp;gt;SATNOGS_RF_GAIN&amp;lt;/code&amp;gt;,e.g. &amp;lt;code&amp;gt;SATNOGS_RF_GAIN&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;43&amp;lt;/code&amp;gt;.&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_GAIN_MODE&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;&amp;quot;Settings Field&amp;quot;&amp;lt;/code&amp;gt;: Use granular gain values.  Set the different gain stages separately:&lt;br /&gt;
**without pre-amp: &amp;lt;code&amp;gt;SATNOGS_OTHER_SETTINGS&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;&amp;quot;LNA=12,MIX=8,VGA=11&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
**with pre-amp: &amp;lt;code&amp;gt;SATNOGS_OTHER_SETTINGS&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;&amp;quot;LNA=9,MIX=6,VGA=11&amp;quot;&amp;lt;/code&amp;gt; (used in [https://network.satnogs.org/stations/49/ 49 - OZ7SAT])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For reference see also the Airspy driver library linearity gain settings in [https://github.com/airspy/airspyone_host/blob/bceca18f9e3a5f89cff78c4d949c71771d92dfd3/libairspy/src/airspy.c#L117-L122 libairspy/src/airspy.c#L117-L122].&lt;br /&gt;
&lt;br /&gt;
===Sample rates===&lt;br /&gt;
&lt;br /&gt;
*Airspy R2: &amp;lt;code&amp;gt;SATNOGS_RX_SAMPLE_RATE&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;2.5e6 or 10e6&amp;lt;/code&amp;gt;&lt;br /&gt;
*Airspy Mini: &amp;lt;code&amp;gt;SATNOGS_RX_SAMPLE_RATE&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;3e6 or 6e6&amp;lt;/code&amp;gt;&lt;br /&gt;
*Airspy HF+: &amp;lt;code&amp;gt;SATNOGS_RX_SAMPLE_RATE&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;768e3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
source: [https://twitter.com/DutchSpace/status/1241305651168661504]&lt;br /&gt;
&lt;br /&gt;
If you want to activate the integrated bias tee, set &amp;lt;code&amp;gt;SATNOGS_DEV_ARGS&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;&amp;quot;biastee=true&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
Bit packing (&amp;quot;Enable packing 4 12-bit samples into 3 16-bit words for 25% less USB trafic.&amp;quot;) could be enabled with &amp;lt;code&amp;gt;SATNOGS_DEV_ARGS&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;&amp;quot;bitpacking=true&amp;quot;&amp;lt;/code&amp;gt; (untested). Device arguments can be concatenated with comma as delimiter.&lt;br /&gt;
&lt;br /&gt;
==SDRPlay support==&lt;br /&gt;
Vendor: [http://www.sdrplay.com/ SDRPlay]&lt;br /&gt;
&lt;br /&gt;
required SoapySDR module: [https://github.com/pothosware/SoapySDRPlay SoapySDRPlay]&lt;br /&gt;
&lt;br /&gt;
The following settings [https://network.satnogs.org/observations/?norad=&amp;amp;observer=&amp;amp;station=1354&amp;amp;results=d1&amp;amp;start=2020-02-20+00%3A00&amp;amp;end=2020-02-24+23%3A59 worked well] for an [https://www.sdrplay.com/rspduo/ SDRplay RSPduo] when using cross-yagis and good [https://www.ssb.de/en/amplifiers/preamplifier/vox/100w SSB low-noise amplifiers]:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_SOAPY_RX_DEVICE=&amp;quot;driver=sdrplay&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_RX_SAMP_RATE=2e6&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_RX_BANDWIDTH=600e3&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_RF_GAIN=34&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_ANTENNA=&amp;quot;Tuner 1 50 ohm&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that 14-bits ADC resolution is only available when using sample rates below 6.048 MSPS, above which the resolution is reduced gradually to 12, 10, and 8 bits.&lt;br /&gt;
&lt;br /&gt;
==USRP support==&lt;br /&gt;
Vendor: [https://ettus.com Ettus Research]&lt;br /&gt;
&lt;br /&gt;
required SoapySDR module: [https://github.com/pothosware/SoapyUHD/wiki SoapyUHD]&lt;br /&gt;
&lt;br /&gt;
Recent USRPs that use the Analog Devices [https://www.analog.com/en/products/ad9361.html AD9361 RFIC] can use almost arbitrary sample rates and analog bandwidth settings. It can be an advantage to set the sample rate as high as the host computer can handle and the analog bandwidth to as narrow as meaningful. The following settings [https://network.satnogs.org/observations/?norad=&amp;amp;observer=&amp;amp;station=1353&amp;amp;results=d1&amp;amp;start=2020-02-20+00%3A00&amp;amp;end=2020-02-24+23%3A59 worked well] for a [https://www.ettus.com/all-products/ub210-kit/ USRP B210] when using cross-yagis and good [https://www.ssb.de/en/amplifiers/preamplifier/vox/100w SSB low-noise amplifiers]:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_SOAPY_RX_DEVICE=&amp;quot;uhd&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_RX_SAMP_RATE=2e6&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_RX_BANDWIDTH=600e3&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_RF_GAIN=50&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_ANTENNA=&amp;quot;RX2&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LimeSDR support==&lt;br /&gt;
Vendor: [https://limemicro.com Lime microsystems]&lt;br /&gt;
&lt;br /&gt;
required SoapySDR module: [https://github.com/myriadrf/LimeSuite/tree/master/SoapyLMS7 SoapyLMS7 wrapper]&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_SOAPY_RX_DEVICE&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;&amp;quot;driver=lime&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_RX_SAMP_RATE&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;&amp;quot;2.048e6&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_ANTENNA&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;&amp;quot;LNAW&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_GAIN_MODE&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;&amp;quot;Settings Field&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_RF_GAIN&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_OTHER_SETTINGS&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;&amp;quot;TIA=12,PGA=0,LNA=12&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(untested, copied from station 1378)&lt;br /&gt;
&lt;br /&gt;
Example stations:&lt;br /&gt;
&lt;br /&gt;
*[https://network.satnogs.org/stations/1378/ 1378 - Wolbach library]&lt;br /&gt;
&lt;br /&gt;
==PlutoSDR support==&lt;br /&gt;
Vendor: [https://www.analog.com Analog Devices]&lt;br /&gt;
&lt;br /&gt;
required SoapySDR module: [https://github.com/pothosware/SoapyPlutoSDR/wiki SoapyPlutoSDR]&lt;br /&gt;
&lt;br /&gt;
Untested.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
*[https://www.rtl-sdr.com/rtlsdr4everyone-review-of-5-rtl-sdr-dongles/ Review of 5 RTL-SDR Dongles]&lt;br /&gt;
*[https://hackaday.com/2017/09/05/19-rtl-sdr-dongles-reviewed/ 19 RTL-SDR Dongles Reviewed]&lt;br /&gt;
*[https://www.rtl-sdr.com/review-airspy-vs-sdrplay-rsp-vs-hackrf/ Review: Airspy VS. SDRplay RSP VS. HackRF]&lt;br /&gt;
&lt;br /&gt;
[[Category:Build]]&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
&lt;br /&gt;
__NOEDITSECTION__&lt;/div&gt;</summary>
		<author><name>Vk5qi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Software_Defined_Radio&amp;diff=3685</id>
		<title>Software Defined Radio</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Software_Defined_Radio&amp;diff=3685"/>
		<updated>2020-09-27T05:28:08Z</updated>

		<summary type="html">&lt;p&gt;Vk5qi: comment about E4000 tuners&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
Built upon [https://gnuradio.org/ GNU Radio] and [https://github.com/pothosware/SoapySDR/wiki SoapySDR] by using the [https://gitlab.com/librespacefoundation/gr-soapy gr-soapy] module SatNOGS supports a large variety of Software-Defined Radios (SDRs). The gr-soapy module was developed in the [https://sdrmaker.space/ SDR Makerspace] and is maintained by Libre Space Foundation to bring the vendor-neutral SDR support by SoapySDR to the flexible gnuradio ecosystem.&lt;br /&gt;
&lt;br /&gt;
The most cost-effective solution is to use an RTL-SDR with a Raspberry Pi.  More advanced SDRs are also used, but they require more processing power and thus might require a more powerful computing platform than the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
==Supported Devices==&lt;br /&gt;
&lt;br /&gt;
SoapySDR supports SDR devices through runtime-loadable modules [https://github.com/pothosware/SoapySDR/wiki#plugin-architecture]. You can find all available modules in the [https://github.com/pothosware/SoapySDR/wiki#modules SoapySDR wiki] (see right column). Most SDR modules are installed by default when setting up a SatNOGS station.&lt;br /&gt;
&lt;br /&gt;
The following SDRs are supported by SatNOGS. SatNOGS uses the RTL-SDR as the recommended beginner signal receiver and tuner.  &lt;br /&gt;
The more advanced SDRs may require more processing power than a Raspberry Pi 3b or 4 can offer. &lt;br /&gt;
&lt;br /&gt;
*[[Software Defined Radio#RTL-SDR Support|RTL-SDR]]&lt;br /&gt;
**[https://www.nooelec.com/store/sdr/sdr-receivers.html NooElec NESDR SMArt]&lt;br /&gt;
**[https://www.rtl-sdr.com/buy-rtl-sdr-dvb-t-dongles/ RTL-SDR Blog R820T2 RTL2832U]&lt;br /&gt;
**Full band UV HF RTL-SDR USB Tuner Receiver&lt;br /&gt;
&lt;br /&gt;
*[[Software Defined Radio#USRP support|USRP devices]]&lt;br /&gt;
**[https://www.ettus.com/product/category/USRP-Bus-Series USRP B200]&lt;br /&gt;
&lt;br /&gt;
*[[Software Defined Radio#Airspy support|Airspy]]&lt;br /&gt;
*[[Software Defined Radio#LimeSDR support|LimeSuite devices]]&lt;br /&gt;
**[https://limemicro.com/products/boards/limesdr-mini/ LimeSDR mini]&lt;br /&gt;
*[[Software Defined Radio#PlutoSDR support|PlutoSDR]]&lt;br /&gt;
**[https://www.analog.com/en/design-center/evaluation-hardware-and-software/evaluation-boards-kits/adalm-pluto.html#eb-overview ADALM-PLUTO] (untested)&lt;br /&gt;
&lt;br /&gt;
{{Message|There are probably a lot more devices supported since the transition from gr-osmosdr to gr-soapy. Please update this list when you were able to successfully run a SatNOGS station with a new radio family or model. You can also link your station as an example to give others the ability to compare performance.}}&lt;br /&gt;
&lt;br /&gt;
==Supported Devices with closed-source drivers==&lt;br /&gt;
Unfortunately some vendors require closed-source drivers in their SoapySDR modules and thus those modules or dependencies can't be redistributed by others. Thus they must be manually installed by the user. The following devices require closed-source drivers:&lt;br /&gt;
&lt;br /&gt;
*[[Software Defined Radio#SDRPlay support|SDRPlay]]&lt;br /&gt;
&lt;br /&gt;
==Unsupported Devices==&lt;br /&gt;
{{Warning|This section might be outdated due to the transition to gr-soapy. Please update when possible.}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[https://greatscottgadgets.com/hackrf/ HackRF One] (not compatible with the SatNOGS client on Raspberry Pi)&lt;br /&gt;
*USRP2 (not compatible with the SatNOGS client on Raspberry Pi)&lt;br /&gt;
&lt;br /&gt;
==RTL-SDR Support==&lt;br /&gt;
The RTL-SDR is based on two chips -- the versatile [http://www.realtek.com.tw/products/productsView.aspx?Langid=1&amp;amp;PFid=35&amp;amp;Level=4&amp;amp;Conn=3&amp;amp;ProdID=257 RTL2832U chip] and the [https://rtl-sdr.com/wp-content/uploads/2013/04/R820T_datasheet-Non_R-20111130_unlocked.pdf R820T tuner]. The RTL-SDR is currently the cheapest, most common, and most performing solution available in terms of general sensitivity having a frequency range of 24 – 1766 MHz.  A metal enclosure with SMA connector is preferred, along with a stable TCXO (low ppm).  HF coverage is optional.&lt;br /&gt;
&lt;br /&gt;
'''NOTE: RTLSDRs with E4000 tuners have a known bug in the current SatNOGS image, resulting in a 'deaf' station. This issue is being tracked here:''' https://gitlab.com/librespacefoundation/satnogs/satnogs-client-ansible/-/issues/83&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Using RTL-SDR.com V3 Dongle's Bias-T Power Supply===&lt;br /&gt;
The RTL-SDR.com V3 dongle has a built in software activated Bias-T voltage supply intended to be used for applications such as powering inline LNAs (Low Noise Amplifiers).   There are several ways to turn on the voltage, but through initial testing (as of this writing, 17 Aug 2019) it seems that the following procedure works best.&lt;br /&gt;
&lt;br /&gt;
The below relates to Raspberry Pi installs only.   No testing has been performed on other systems as of yet.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Turning on the Bias-T with no LNA installed and a &amp;quot;shorted&amp;quot; style antenna (such as loops, egg-beaters, etc.) can damage the RTL-SDR.com V3 dongle.   Never activate the bias-t with no LNA installed between the antenna and the SDR dongle.}}&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
#Raspberry Pi running Raspbian Buster or newer (latest release of SatNogs image, [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/tags 2019091100], is demonstrated to work)&lt;br /&gt;
#[https://www.rtl-sdr.com/buy-rtl-sdr-dvb-t-dongles/ RTL-SDR.com V3 SDR dongle]&lt;br /&gt;
#[https://www.rtl-sdr.com/rtl-sdr-blog-v-3-dongles-user-guide/ RTL-SDR.com Bias-T Software Switch] for linux systems&lt;br /&gt;
#LNA capable of being powered via feedline coax (note that some LNAs need modifications to be powered by the coax, and some cannot be powered by the coax at all.  Check the specifications for your LNA prior to attempting to turn on the Bias-T power supply)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Instructions for installing RTL-SDR.com Bias-T Software Switch====&lt;br /&gt;
&lt;br /&gt;
#Log into your SatNogs station either directly or via SSH&lt;br /&gt;
#If your station does not have cmake installed (SatNogs Image 2019091100 does not), install cmake with &amp;lt;code&amp;gt;sudo apt install cmake&amp;lt;/code&amp;gt;&lt;br /&gt;
#Clone the source for the Bias-T software switch with &amp;lt;code&amp;gt;git clone &amp;lt;nowiki&amp;gt;https://github.com/rtlsdrblog/rtl_biast&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;cd rtl_biast&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;mkdir build&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;cd build&amp;lt;/code&amp;gt;&lt;br /&gt;
#&amp;lt;code&amp;gt;cmake ..&amp;lt;/code&amp;gt;  (if you get a &amp;lt;code&amp;gt;LibUSB 1.0 required to compile rtl-sdr&amp;lt;/code&amp;gt; error here, then do &amp;lt;code&amp;gt;sudo apt install libusb-1.0-0-dev&amp;lt;/code&amp;gt; prior to attempting &amp;lt;code&amp;gt;cmake ..&amp;lt;/code&amp;gt; again)&lt;br /&gt;
#&amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The software switch should now be installed in the &amp;quot;src&amp;quot; directory.    If you &amp;lt;code&amp;gt;cd src&amp;lt;/code&amp;gt;, you can turn on the bias-t with the command &amp;lt;code&amp;gt;./rtl_biast -b 1&amp;lt;/code&amp;gt; and turn it off with &amp;lt;code&amp;gt;./rtl_biast -b 0&amp;lt;/code&amp;gt;.   Note that the developers of this switch have warned against attempting to &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt; so that this command can be executed from ouside the src directory.   Testing has shown this warning to be accurate, so don't plan on running these commands from anywhere but the src directory, or else be sure to use the full path.&lt;br /&gt;
&lt;br /&gt;
Switching the Bias-T on should yield between 4.5V and 5.0V across the center conductor and shield of the coax.   The voltage should rise almost instantly.   When switched off, the voltage seems to decrease gradually, over 5 to 10 seconds.&lt;br /&gt;
&lt;br /&gt;
====Instructions to activate the bias-t for SatNogs Observations automatically:====&lt;br /&gt;
&lt;br /&gt;
#Log into your SatNogs station either directly or via SSH&lt;br /&gt;
#&amp;lt;code&amp;gt;sudo satnogs-setup&amp;lt;/code&amp;gt;&lt;br /&gt;
#select &amp;lt;code&amp;gt;Advanced&amp;lt;/code&amp;gt;&lt;br /&gt;
#for &amp;lt;code&amp;gt;Radio&amp;lt;/code&amp;gt; -&amp;gt;&amp;lt;code&amp;gt;SATNOGS_RF_GAIN&amp;lt;/code&amp;gt;, enter a low gain value supported by your RTL-SDR.com V3 dongle (entering &amp;lt;code&amp;gt;rtl_test&amp;lt;/code&amp;gt; at the command line prior to starting &amp;lt;code&amp;gt;satnogs-setup&amp;lt;/code&amp;gt; will give you all allowable values of RF gain) and select &amp;lt;code&amp;gt;Ok&amp;lt;/code&amp;gt;&lt;br /&gt;
#for &amp;lt;code&amp;gt;Scripts&amp;lt;/code&amp;gt; -&amp;gt;&amp;lt;code&amp;gt;SATNOGS_PRE_OBSERVATION_SCRIPT,&amp;lt;/code&amp;gt; enter &amp;lt;code&amp;gt;/home/pi/rtl_biast/build/src/rtl_biast -b 1&amp;lt;/code&amp;gt; and select &amp;lt;code&amp;gt;Ok&amp;lt;/code&amp;gt;&lt;br /&gt;
#for &amp;lt;code&amp;gt;Scripts&amp;lt;/code&amp;gt; -&amp;gt;&amp;lt;code&amp;gt;SATNOGS_POST_OBSERVATION_SCRIPT,&amp;lt;/code&amp;gt; enter &amp;lt;code&amp;gt;/home/pi/rtl_biast/build/src/rtl_biast -b 0&amp;lt;/code&amp;gt; and select &amp;lt;code&amp;gt;Ok&amp;lt;/code&amp;gt;&lt;br /&gt;
#Select &amp;lt;code&amp;gt;Back&amp;lt;/code&amp;gt;&lt;br /&gt;
#Select &amp;lt;code&amp;gt;Apply&amp;lt;/code&amp;gt; (allow system to update and hit enter when prompted)&lt;br /&gt;
#Select &amp;lt;code&amp;gt;Back&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your station is now set up to turn the Bias-T on for each scheduled observation (using the &amp;lt;code&amp;gt;SATNOGS_PRE_OBSERVATION_SCRIPT&amp;lt;/code&amp;gt; string) and then turn it off at the conclusion of each observation (using the &amp;lt;code&amp;gt;SATNOGS_POST_OBSERVATION_SCRIPT&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
You should now schedule several observations to fine tune the &amp;lt;code&amp;gt;SATNOGS_RF_GAIN&amp;lt;/code&amp;gt; value to get the best S/N performance for your station.   Some have reported needing zero RF gain, others have reported low RF gain required (between 5 and 10 db), and others have said they see little benefit even with very high gain. Each station will be different.&lt;br /&gt;
&lt;br /&gt;
==Airspy support==&lt;br /&gt;
Vendor: [https://airspy.com/ Airspy]&lt;br /&gt;
&lt;br /&gt;
required SoapySDR module: [https://github.com/pothosware/SoapyAirspy/wiki SoapyAirspy]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note than none of the settings below should be entered with the &amp;quot;  &amp;quot; around the value. This is only for better readability in the Wiki !''' &lt;br /&gt;
&lt;br /&gt;
===Gain settings===&lt;br /&gt;
There are two possible gain modes:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_GAIN_MODE&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;&amp;quot;Overall&amp;quot;&amp;lt;/code&amp;gt;: (default) Use a single gain value.  Set the overall gain with &amp;lt;code&amp;gt;SATNOGS_RF_GAIN&amp;lt;/code&amp;gt;,e.g. &amp;lt;code&amp;gt;SATNOGS_RF_GAIN&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;43&amp;lt;/code&amp;gt;.&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_GAIN_MODE&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;&amp;quot;Settings Field&amp;quot;&amp;lt;/code&amp;gt;: Use granular gain values.  Set the different gain stages separately:&lt;br /&gt;
**without pre-amp: &amp;lt;code&amp;gt;SATNOGS_OTHER_SETTINGS&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;&amp;quot;LNA=12,MIX=8,VGA=11&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
**with pre-amp: &amp;lt;code&amp;gt;SATNOGS_OTHER_SETTINGS&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;&amp;quot;LNA=9,MIX=6,VGA=11&amp;quot;&amp;lt;/code&amp;gt; (used in [https://network.satnogs.org/stations/49/ 49 - OZ7SAT])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For reference see also the Airspy driver library linearity gain settings in [https://github.com/airspy/airspyone_host/blob/bceca18f9e3a5f89cff78c4d949c71771d92dfd3/libairspy/src/airspy.c#L117-L122 libairspy/src/airspy.c#L117-L122].&lt;br /&gt;
&lt;br /&gt;
===Sample rates===&lt;br /&gt;
&lt;br /&gt;
*Airspy R2: &amp;lt;code&amp;gt;SATNOGS_RX_SAMPLE_RATE&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;2.5e6 or 10e6&amp;lt;/code&amp;gt;&lt;br /&gt;
*Airspy Mini: &amp;lt;code&amp;gt;SATNOGS_RX_SAMPLE_RATE&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;3e6 or 6e6&amp;lt;/code&amp;gt;&lt;br /&gt;
*Airspy HF+: &amp;lt;code&amp;gt;SATNOGS_RX_SAMPLE_RATE&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;768e3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
source: [https://twitter.com/DutchSpace/status/1241305651168661504]&lt;br /&gt;
&lt;br /&gt;
If you want to activate the integrated bias tee, set &amp;lt;code&amp;gt;SATNOGS_DEV_ARGS&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;&amp;quot;biastee=true&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
Bit packing (&amp;quot;Enable packing 4 12-bit samples into 3 16-bit words for 25% less USB trafic.&amp;quot;) could be enabled with &amp;lt;code&amp;gt;SATNOGS_DEV_ARGS&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;&amp;quot;bitpacking=true&amp;quot;&amp;lt;/code&amp;gt; (untested). Device arguments can be concatenated with comma as delimiter.&lt;br /&gt;
&lt;br /&gt;
==SDRPlay support==&lt;br /&gt;
Vendor: [http://www.sdrplay.com/ SDRPlay]&lt;br /&gt;
&lt;br /&gt;
required SoapySDR module: [https://github.com/pothosware/SoapySDRPlay SoapySDRPlay]&lt;br /&gt;
&lt;br /&gt;
The following settings [https://network.satnogs.org/observations/?norad=&amp;amp;observer=&amp;amp;station=1354&amp;amp;results=d1&amp;amp;start=2020-02-20+00%3A00&amp;amp;end=2020-02-24+23%3A59 worked well] for an [https://www.sdrplay.com/rspduo/ SDRplay RSPduo] when using cross-yagis and good [https://www.ssb.de/en/amplifiers/preamplifier/vox/100w SSB low-noise amplifiers]:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_SOAPY_RX_DEVICE=&amp;quot;driver=sdrplay&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_RX_SAMP_RATE=2e6&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_RX_BANDWIDTH=600e3&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_RF_GAIN=34&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_ANTENNA=&amp;quot;Tuner 1 50 ohm&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that 14-bits ADC resolution is only available when using sample rates below 6.048 MSPS, above which the resolution is reduced gradually to 12, 10, and 8 bits.&lt;br /&gt;
&lt;br /&gt;
==USRP support==&lt;br /&gt;
Vendor: [https://ettus.com Ettus Research]&lt;br /&gt;
&lt;br /&gt;
required SoapySDR module: [https://github.com/pothosware/SoapyUHD/wiki SoapyUHD]&lt;br /&gt;
&lt;br /&gt;
Recent USRPs that use the Analog Devices [https://www.analog.com/en/products/ad9361.html AD9361 RFIC] can use almost arbitrary sample rates and analog bandwidth settings. It can be an advantage to set the sample rate as high as the host computer can handle and the analog bandwidth to as narrow as meaningful. The following settings [https://network.satnogs.org/observations/?norad=&amp;amp;observer=&amp;amp;station=1353&amp;amp;results=d1&amp;amp;start=2020-02-20+00%3A00&amp;amp;end=2020-02-24+23%3A59 worked well] for a [https://www.ettus.com/all-products/ub210-kit/ USRP B210] when using cross-yagis and good [https://www.ssb.de/en/amplifiers/preamplifier/vox/100w SSB low-noise amplifiers]:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_SOAPY_RX_DEVICE=&amp;quot;uhd&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_RX_SAMP_RATE=2e6&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_RX_BANDWIDTH=600e3&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_RF_GAIN=50&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_ANTENNA=&amp;quot;RX2&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LimeSDR support==&lt;br /&gt;
Vendor: [https://limemicro.com Lime microsystems]&lt;br /&gt;
&lt;br /&gt;
required SoapySDR module: [https://github.com/myriadrf/LimeSuite/tree/master/SoapyLMS7 SoapyLMS7 wrapper]&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_SOAPY_RX_DEVICE&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;&amp;quot;driver=lime&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_RX_SAMP_RATE&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;&amp;quot;2.048e6&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_ANTENNA&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;&amp;quot;LNAW&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_GAIN_MODE&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;&amp;quot;Settings Field&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_RF_GAIN&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SATNOGS_OTHER_SETTINGS&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;&amp;quot;TIA=12,PGA=0,LNA=12&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(untested, copied from station 1378)&lt;br /&gt;
&lt;br /&gt;
Example stations:&lt;br /&gt;
&lt;br /&gt;
*[https://network.satnogs.org/stations/1378/ 1378 - Wolbach library]&lt;br /&gt;
&lt;br /&gt;
==PlutoSDR support==&lt;br /&gt;
Vendor: [https://www.analog.com Analog Devices]&lt;br /&gt;
&lt;br /&gt;
required SoapySDR module: [https://github.com/pothosware/SoapyPlutoSDR/wiki SoapyPlutoSDR]&lt;br /&gt;
&lt;br /&gt;
Untested.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
*[https://www.rtl-sdr.com/rtlsdr4everyone-review-of-5-rtl-sdr-dongles/ Review of 5 RTL-SDR Dongles]&lt;br /&gt;
*[https://hackaday.com/2017/09/05/19-rtl-sdr-dongles-reviewed/ 19 RTL-SDR Dongles Reviewed]&lt;br /&gt;
*[https://www.rtl-sdr.com/review-airspy-vs-sdrplay-rsp-vs-hackrf/ Review: Airspy VS. SDRplay RSP VS. HackRF]&lt;br /&gt;
&lt;br /&gt;
[[Category:Build]]&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
&lt;br /&gt;
__NOEDITSECTION__&lt;/div&gt;</summary>
		<author><name>Vk5qi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Omnidirectional_Station_How_To&amp;diff=3660</id>
		<title>Omnidirectional Station How To</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Omnidirectional_Station_How_To&amp;diff=3660"/>
		<updated>2020-08-20T08:08:14Z</updated>

		<summary type="html">&lt;p&gt;Vk5qi: /* Setting the gain */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Omnidirectional VHF Turnstile Antenna.jpg|alt=VHF Turnstile Antenna|thumb|VHF Turnstile antenna, [https://network.satnogs.org/stations/23/ SatNOGS Station 23]]]&lt;br /&gt;
This How-To is written to get you quickly receiving satellite data with an Omnidirectional antenna (an antenna that does not move).&lt;br /&gt;
&lt;br /&gt;
==Prerequisites/Background==&lt;br /&gt;
I'm assuming that you are a bit familiar with amateur radio, or linux in general, or you already have a Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
===Expectation Management===&lt;br /&gt;
First off, I'd like to set some expectations around a SatNOGs station with an omnidirectional antenna. Yes, you will be able to hear satellites, Morse code beacons, maybe even some voice contacts on a FM transponder. But for CubeSats with 1 watt transmitters at 9600 baud, it's going to be really difficult to actually decode any data with an omni antenna. You'll definitely see squiggly lines on the waterfall plot, but demodulating the signal and extracting satellite telemetry is going to be pretty difficult.&lt;br /&gt;
&lt;br /&gt;
The only way to get more signal is a better antenna. And a better antenna with more gain is going to be more directional, which means you will need a way to point that antenna at the satellite, and this How-To just got a lot more complicated. So we're not going there.&lt;br /&gt;
&lt;br /&gt;
A better preamp helps a bit, see the LNA section below.&lt;br /&gt;
&lt;br /&gt;
===Hardware Required===&lt;br /&gt;
This is a list of the hardware for indoor/testing purposes:&lt;br /&gt;
&lt;br /&gt;
*Raspberry Pi&lt;br /&gt;
**Power supply + cable (see note below)&lt;br /&gt;
**Up to 16 GB Micro SD card&lt;br /&gt;
**Ethernet cable&lt;br /&gt;
*RTL SDR Blog v3 dongle&lt;br /&gt;
*Various short lengths of coax&lt;br /&gt;
*Preamp/LNA - Or not if your coax is short, see LNA section below&lt;br /&gt;
*Omnidirectional antenna - just a dual mag-mount on a cookie sheet will work OK for stronger satellites&lt;br /&gt;
&lt;br /&gt;
==Setting up the Raspberry Pi==&lt;br /&gt;
I chose the [https://www.raspberrypi.org/products/raspberry-pi-3-model-b/ Raspberry Pi 3 Model B] for my station. &lt;br /&gt;
&lt;br /&gt;
===Downloading/Writing the SD image===&lt;br /&gt;
The SatNOGS team has done a great job creating a Raspbian image with all the required software. Simply navigate over to the [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/tags latest tag on Gitlab], and click on the &amp;quot;Zipped image&amp;quot; link under the latest tag. It's about 650 MBytes.&lt;br /&gt;
&lt;br /&gt;
For linux:&lt;br /&gt;
&lt;br /&gt;
#Unzip the downloaded file: '''unzip image_2018-08-03-Raspbian-SatNOGS-lite.zip'''&lt;br /&gt;
#Figure out which device is the SD card. SD cards are usually start with mmcblk. '''sudo lsblk'''&lt;br /&gt;
#Write the image. This will take a while. Make sure you don't overwrite your host OS: '''sudo dd if=2018-08-03-Raspbian-SatNOGS-lite.img of=/dev/mmcblk0'''&lt;br /&gt;
&lt;br /&gt;
===Power notes===&lt;br /&gt;
Thinking I could save a few bucks, I used a no-name generic 2.4 amp &amp;quot;tablet&amp;quot; USB power supply I got as a freebie, and a micro-USB cable I use for charging my phone. What a mistake! The Micro-USB cable wire gauge was too small, so there was too much voltage drop on the cable, so the Raspberry Pi reported power problems every time it was doing anything.&lt;br /&gt;
&lt;br /&gt;
Power problems are indicated by either a lightning bolt in the upper right of the monitor, or the red power LED flashes on the board itself. If The Raspberry Pi processor itself is pretty forgiving of power droops because it runs at 3.3 volts. But the 5v USB ports are directly tied to input power, so undervoltage conditions will cause problems for USB devices, such as the RTL SDR dongle.&lt;br /&gt;
&lt;br /&gt;
==Software Configuration==&lt;br /&gt;
&lt;br /&gt;
===Creating a SatNOGS Network account===&lt;br /&gt;
There are several different websites to be aware of and sign in to. As of 12/2018, most of our websites use a unified login provided by Auth0, so when you create an account on one of these sites it will work across the others as well:&lt;br /&gt;
&lt;br /&gt;
*Required: [https://network.satnogs.org/ Network]: for registering your station and adding data to the network.&lt;br /&gt;
*Recommended: [https://community.libre.space Forums]: for asking questions.&lt;br /&gt;
*Optional: [https://db.satnogs.org/ Database]: Only if you want to add satellites/modes. Not necessary for receiving satellite data.&lt;br /&gt;
&lt;br /&gt;
===Registering the station===&lt;br /&gt;
Log in to your Network account, and click the &amp;quot;+ Add Ground Station&amp;quot; button, or click [https://network.satnogs.org/stations/edit/ here] Fill out the short form, and your station will be added to the database. For &amp;quot;Antenna&amp;quot;, pick something that encompasses the frequency range of your antenna. For wideband reception, use VHF Discone 26-1200 MHz.&lt;br /&gt;
&lt;br /&gt;
The important info you'll need later on is the Station ID number, lat/lon/altitiude. I would also use a Minimum Horizon of 30 degrees or so, this will keep your station from allowing low-elevation passes to be scheduled. Make sure to keep the &amp;quot;Testing&amp;quot; flag checked, as this lets people know that your station isn't quite ready for real use.&lt;br /&gt;
&lt;br /&gt;
To help your fellow operators please consider placing the following information into the &amp;quot;Description&amp;quot; field for your station: Antenna gain and location, preamp info (if any), SDR device, some kind of contact info perhaps [[Get_In_Touch#Chat_with_us_on_our_Matrix_room |irc/matrix]] or [https://community.libre.space/ community forum] username or email address.&lt;br /&gt;
&lt;br /&gt;
===Booting and Configuring Raspbian===&lt;br /&gt;
After you have the image burned onto a Micro-SD card, boot it! I would recommend hooking up a keyboard and HDMI monitor, you can watch the boot process. If it doesn't boot at all, double check that you wrote the SatNOGS Raspbian image correctly.&lt;br /&gt;
&lt;br /&gt;
After a successful boot, log in with username '''pi''' and password '''raspberry'''&lt;br /&gt;
&lt;br /&gt;
#Change your password! '''passwd'''&lt;br /&gt;
#Run '''sudo raspi-config''' to set up the base OS. ''Tab'' switches between the options and ''select''.&lt;br /&gt;
##4 Localisation Options: I1 Change Locale: en_US.UTF-8 UTF-8&lt;br /&gt;
##4 Localisation Options: I2 Change Timezone: None of the above: UTC&lt;br /&gt;
##4 Localisation Options: I3 Change Keyboard Layout:&lt;br /&gt;
##7 Advanced Options: A1 Expand Filesystem &amp;lt;br /&amp;gt;This will expand the ~2GB Micro-SD card partition to fill the entire SD card.&lt;br /&gt;
&lt;br /&gt;
The Raspberry Pi needs to reboot to expand the filesystem, so do this now. It might take a while. '''sudo reboot''&lt;br /&gt;
&lt;br /&gt;
====Disabling WiFi and Bluetooth====&lt;br /&gt;
To disable WiFi and Bluetooth, edit the /boot/config.txt file, and add the following lines at the bottom:&lt;br /&gt;
 # Disable WiFi and bluetooth&lt;br /&gt;
 dtoverlay=pi3-disable-wifi&lt;br /&gt;
 dtoverlay=pi3-disable-bt&lt;br /&gt;
&lt;br /&gt;
Then reboot again. To make sure that it worked, run '''ifconfig''' and make sure that ''wlan0'' isn't listed. I'm not sure how to tell if bluetooth is turned off.&lt;br /&gt;
&lt;br /&gt;
====Additional software====&lt;br /&gt;
I like to install this additional software with '''sudo apt install bmon''' ...&lt;br /&gt;
&lt;br /&gt;
*bmon - a graphical network usage analyzer.&lt;br /&gt;
*vnstat - keeps track of your bandwidth usage&lt;br /&gt;
*vim - the world's best text editor ;)&lt;br /&gt;
*irssi - a terminal IRC client, for chatting on the #satnogs IRC channel&lt;br /&gt;
&lt;br /&gt;
If you can't tell by now, I'm always a big fan of rebooting. It certainly doesn't take that long... '''sudo reboot'''&lt;br /&gt;
&lt;br /&gt;
===Configuring the satnogs-client===&lt;br /&gt;
Once you have the base Raspbian Strech OS installed, updated, and looking good, you can configure SatNOGS. Plug in your RTL SDR if you haven't already.&lt;br /&gt;
&lt;br /&gt;
First thing to do is update the satnogs-setup program. Run '''sudo satnogs-setup'''. This will probably take a while, then '''Update''', which will also take a while. Per usual, after the update I like to reboot the raspberry pi just to make sure everything was updated and is actually running the new code.&lt;br /&gt;
&lt;br /&gt;
====Basic Configuration====&lt;br /&gt;
Then the actual configuration of the station:&lt;br /&gt;
&lt;br /&gt;
#Run '''sudo satnogs-setup''' again.&lt;br /&gt;
#Use the up/down and TAB keys to navigate, and Enter to select an option.&lt;br /&gt;
#Basic Configuration:&lt;br /&gt;
##SATNOGS_API_TOKEN: After logging in to network.satnogs.org, this is in the upper right under &amp;quot;API Key&amp;quot; [no longer exsists? Add direct link]&lt;br /&gt;
##SATNOGS_SOAPY_RX_DEVICE: driver=rtlsdr&lt;br /&gt;
##SATNOGS_RX_SAMP_RATE: 2.048e6&lt;br /&gt;
##SATNOGS_RX_GAIN: Refer &amp;quot;Setting the gain&amp;quot; section below.&lt;br /&gt;
##SATNOGS_STATION_ELEV: station elevation in meters&lt;br /&gt;
##SATNOGS_STATION_ID: The ID number of your station.&lt;br /&gt;
##SATNOGS_STATION_LAT and LON: Latitude and Longitude in decimal degrees&lt;br /&gt;
&lt;br /&gt;
Then back to the main menu and ''Apply'' to save the configuration. Ansible will run and update the system. If you want to quit, just keep pressing cancel to exit.&lt;br /&gt;
&lt;br /&gt;
====Setting the gain====&lt;br /&gt;
The next step is to set the gain on the RTL SDR. The aim here (in the majority of cases) is to set the gain of your station to maximise sensitivity (best noise figure), but without limiting the available dynamic range of your station due to your local noise floor. This can be achieved in a fairly simple manner, by watching the level of the receivers noise floor as you slowly increase the receiver gain. At some point the noise floor will start to rise - at this point increasing the gain any further will of no use - you will only increase the noise level, and eat into your receiver's available dynamic range (for a RTLSDR, theoretically only 48 dB).&lt;br /&gt;
&lt;br /&gt;
There may be situations where strong local interferers may require the use of a lower gain setting to avoid intermodulation products appearing in the passband, though these cases would be better solved with a suitable bandpass filter somewhere in the receive chain.&lt;br /&gt;
&lt;br /&gt;
First, it is good to know the available gain range of your SDR. This can be accomplished by running &amp;lt;code&amp;gt;SoapySDRUtil --probe&amp;lt;/code&amp;gt;, which provides a considerable amount of information about the connected SDR:&lt;br /&gt;
 pi@satnogs:~ $ SoapySDRUtil --probe&lt;br /&gt;
 ######################################################&lt;br /&gt;
 ## Soapy SDR -- the SDR abstraction library&lt;br /&gt;
 ######################################################&lt;br /&gt;
 &lt;br /&gt;
 Probe device&lt;br /&gt;
 &lt;br /&gt;
 Found Rafael Micro R820T tuner&lt;br /&gt;
 [INFO] [UHD] linux; GNU C++ version 8.2.0; Boost_106700; UHD_3.13.1.0-3&lt;br /&gt;
 Found Rafael Micro R820T tuner&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 -- Device identification&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
   driver=RTLSDR&lt;br /&gt;
   hardware=RTLSDR&lt;br /&gt;
   origin=&amp;lt;nowiki&amp;gt;https://github.com/pothosware/SoapyRTLSDR&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   rtl=0&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 -- Peripheral summary&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
   Channels: 1 Rx, 0 Tx&lt;br /&gt;
   Timestamps: NO&lt;br /&gt;
   Other Settings:&lt;br /&gt;
      * Direct Sampling - RTL-SDR Direct Sampling Mode&lt;br /&gt;
        [key=direct_samp, default=0, type=string, options=(0, 1, 2)]&lt;br /&gt;
      * Offset Tune - RTL-SDR Offset Tuning Mode&lt;br /&gt;
        [key=offset_tune, default=false, type=bool]&lt;br /&gt;
      * I/Q Swap - RTL-SDR I/Q Swap Mode&lt;br /&gt;
        [key=iq_swap, default=false, type=bool]&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 -- RX Channel 0&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
   Full-duplex: YES&lt;br /&gt;
   Supports AGC: YES&lt;br /&gt;
   Stream formats: CS8, CS16, CF32&lt;br /&gt;
   Native format: CS8 [full-scale=128]&lt;br /&gt;
   Stream args:&lt;br /&gt;
      * Buffer Size - Number of bytes per buffer, multiples of 512 only.&lt;br /&gt;
        [key=bufflen, units=bytes, default=262144, type=int]&lt;br /&gt;
      * Ring buffers - Number of buffers in the ring.&lt;br /&gt;
        [key=buffers, units=buffers, default=15, type=int]&lt;br /&gt;
      * Async buffers - Number of async usb buffers (advanced).&lt;br /&gt;
        [key=asyncBuffs, units=buffers, default=0, type=int]&lt;br /&gt;
   Antennas: RX&lt;br /&gt;
   Full gain range: [0, 49.6] dB&lt;br /&gt;
     TUNER gain range: [0, 49.6] dB&lt;br /&gt;
   Full freq range: [23.999, 1764] MHz&lt;br /&gt;
     RF freq range: [24, 1764] MHz&lt;br /&gt;
     CORR freq range: [-0.001, 0.001] MHz&lt;br /&gt;
   Sample rates: 0.25, 1.024, 1.536, 1.792, 1.92, 2.048, 2.16, 2.56, 2.88, 3.2 MSps&lt;br /&gt;
The above output is for a RTLSDR, and we can see that there is information on the 'Full gain range', and 'TUNER' gain. The Full gain setting is an 'abstracted' gain range, which in this case just directly links to the 'TUNER' gain, as that is the only gain setting presented by the RTLSDR driver. Other SDRs (e.g. AirSpy) may present more gain controls. Anyway, we can see that the gain range is 0 through 49.6 dB. It's quite possible that there are only discrete gain steps within this range (and this is very true for the RTLSDR), but SoapySDR will hide that from us and automatically use the nearest valid setting.&lt;br /&gt;
&lt;br /&gt;
Next up, we want a way of seeing a live spectrum from the SDR. This might be difficult, especially if you're just gone and mounted a RTLSDR in a metal box up a pole! Well, SoapySDR comes to the rescue again with SoapySDR Server - this allows us to serve up the SDR on the network, and access it with a client.&lt;br /&gt;
&lt;br /&gt;
Note: SoapySDR Server is not currently installed by default. It can be installed by running the commands:&lt;br /&gt;
 $ sudo apt-get install soapyremote-server&lt;br /&gt;
 $ sudo systemctl start soapyremote-server&lt;br /&gt;
&lt;br /&gt;
[https://cubicsdr.com/ CubicSDR] is a good cross-platform client that can connect to a SoapySDR Server, and you can [https://github.com/cjcliffe/CubicSDR/releases download the latest release by clicking here]. &lt;br /&gt;
On the RPi, you can start SoapySDR Server by running: &amp;lt;code&amp;gt;SoapySDRServer --bind=&amp;quot;0.0.0.0:55132&amp;quot;&amp;lt;/code&amp;gt;  Leave this running. &lt;br /&gt;
&lt;br /&gt;
Note: If you need to use the Bias-T option of an RTLSDR, you will need to activate this manually prior to running SoapySDRServer. This can be accomplished by [[Software Defined Radio#Using RTL-SDR.com V3 Dongle.27s Bias-T Power Supply|compiling the rtl_biast utility]], and running it with &amp;lt;code&amp;gt;./rtl_biast -b 1&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
Open up CubicSDR on another computer, on the same network as your SatNOGS station. It will pop up a window asking you to select a SDR device. With any luck, it will have auto-detected your SoapySDR Server, and it will show up in the 'Local Net' list. If not, you will need to select 'Remote', click 'Add', and then enter the IP address of your station. You should then have a SDR showing up in the list.&lt;br /&gt;
[[File:Screen Shot 2020-03-19 at 10.41.52 pm.png|alt=CubicSDR SDR Devices List|none|thumb|600x600px|CubicSDR SDR Devices List]]&lt;br /&gt;
You should now be able to click 'Start', and end up with a waterfall display. If the waterfall appears to glitch, or show a 'lumpy' pattern near the centre of the display, then this indicates packet loss between the SatNOGS station and your client. Try and connect via a direct LAN connection if possible. &lt;br /&gt;
In the settings menu of CubicSDR, disable &amp;quot;Automatic Gain&amp;quot; if it is set. This will allow manual control over the gain settings via sliders that will show up at the top left of the window.&lt;br /&gt;
[[File:CubicSDR Main Window.png|alt=CubicSDR Main Window (Annotated)|none|thumb|900x900px|CubicSDR Main Window (Annotated)]]&lt;br /&gt;
The above Figure shows the CubicSDR window, with the spectrum area, frequency selection, and gain settings annotated. Set the frequency to something suitable for your station. For example, if you are setting up a 70cm station, set a frequency of 437 MHz (437000000 Hz). For a 2m station, try 146 MHz.&lt;br /&gt;
Drag the gain slider so that the gain (visible at the bottom of the slider) is set to zero. Then, slowly drag it up until you see the noise floor start to rise. The gain at which this occurs is the gain you should set in SATNOGS_RF_GAIN (Available under the 'Basic' menu in satnogs-setup).&lt;br /&gt;
As an example, the following figure shows the noise floor observed on a station with a RTLSDR and a ~25dB masthead preamplifier, as gain levels on the RTLSDR are increased:&lt;br /&gt;
[[File:RTLSDR Noise Floor Variation with Gain Adjustment.png|alt=RTLSDR Noise Floor Variation with Gain Adjustment|none|thumb|900x900px|RTLSDR Noise Floor Variation with Gain Adjustment]]&lt;br /&gt;
We can see that between 0 db and 20 dB of gain there is essentially no change in the noise floor - this indicates the receive system is limited by the noise figure of the RTLSDR. As the gain increases through 30 dB, the noise floor starts to lift, indicating that we are now most likely limited by either the noise figure of the preamplifier, or the local noise environment. Any increase in gain past this point just results in reduction of the available receiver dynamic range.&lt;br /&gt;
&lt;br /&gt;
CubicSDR DOES NOT autorange its waterfall, in contrast, satnogs DOES autorange its waterfall.  When you adjust the gain in CubicSDR the waterfall background will dramatically change, but when you adjust the gain in satnogs the waterfall background will not change color.  See the web page documenting  autoranging waterfalls:&lt;br /&gt;
&lt;br /&gt;
https://docs.satnogs.org/projects/satnogs-client/en/stable/userguide.html#satnogs-waterfall-autorange&lt;br /&gt;
&lt;br /&gt;
'''Important Note: While CubicSDR is connected to the SDR, your SatNOGS ground station cannot run observations! Make sure to close CubicSDR when you have finished setting the gain.'''&lt;br /&gt;
===Hardware Configuration===&lt;br /&gt;
Basic hardware configuration is Antenna &amp;gt; Short coax &amp;gt; LNA &amp;gt; Coax &amp;gt; RTL SDR.&lt;br /&gt;
&lt;br /&gt;
===LNA===&lt;br /&gt;
The way to measure the performance of an antenna is using a figure of merit called the Antenna gain-to-noise-temperature (G/T). It's a positive unitless number, higher the better.&lt;br /&gt;
&lt;br /&gt;
G/T is comprised of antenna gain (in dB) on the top, and the system noise temperature (in Kelvins) on the bottom. There's a lot of somewhat-hard math involved, but here's the bottom line: to make your system perform better, you either need to increase the antenna gain or decrease the system noise temp. [https://en.wikipedia.org/wiki/Antenna_gain-to-noise-temperature Wikipedia]&lt;br /&gt;
&lt;br /&gt;
Increasing the antenna gain is difficult, only because we decided on an omnidirectional antenna as the basis for this How-To. Omnidirectional antennas top out at maybe 7 dB gain or so, and that's just from pushing the radiation pattern up to the sky away from the ground. Any more gain than that and it's not an omni antenna; it's got a direction that the antenna needs to be pointed in. And we want to stay away from pointing antennas for now.&lt;br /&gt;
&lt;br /&gt;
Reducing the system temperature is the the way forward then. The RTL-SDR dongle has a noise figure of [https://network.satnogs.org/stations/edit/ 6dB or so], depending on frequency, which is pretty horrible. But it turns out that the system noise temperature is largely determined by the first device in the receive chain. Since we can't change the antenna, adding a low-noise amplifier helps quite a bit. See this [https://www.youtube.com/watch?v=snifc_x_2sE youtube video] from Adam 9A4QV on how a LNA helps. (Also check out his other videos about the RTL SDR dongle, and SDR in general)&lt;br /&gt;
&lt;br /&gt;
More info on noise and preamps:&lt;br /&gt;
&lt;br /&gt;
*[https://en.wikipedia.org/wiki/Noise_temperature System noise from wikipedia], pretty high-level&lt;br /&gt;
*[https://www.rtl-sdr.com/tutorial-on-properly-positioning-a-preamp-lna-in-a-radio-system/ Where to put an LNA], from rtl-sdr.com&lt;br /&gt;
*[[SPF1589 LNA measurements|SPF5189 LNA measurements]]&lt;br /&gt;
&lt;br /&gt;
===Antenna===&lt;br /&gt;
For testing on the bench, pretty much any antenna will do. Or if you have a whip antenna already outside for repeater work, use that. As I mentioned before, I've successfully used a mag-mount antenna stuck to a cookie sheet, sitting inside my living room window.&lt;br /&gt;
&lt;br /&gt;
Also, remember that some new low emissivity double-pane windows use metal films to keep heat inside. Unfortunately, this also attenuates pretty much all RF signals, see [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5501855/ this article] for more background.&lt;br /&gt;
&lt;br /&gt;
==Testing the station==&lt;br /&gt;
[[File:Pass predictions.png|300px|right]]&lt;br /&gt;
Now that you have the hardware and software up and running, go ahead and schedule some passes. Navigate to your station page, and click on the Schedule button on the right side of some promising passes. The green and red bars beneath the satellite name is a quick visual indication of the number of Good and Bad passes on the network. Unfortunately, this data is not time-stamped at all, so a satellite that had a lot of Good observations a long time ago, but recently died, would still show as Green.&lt;br /&gt;
&lt;br /&gt;
===Rating an Observation===&lt;br /&gt;
[[File:Rating.png|right]]&lt;br /&gt;
After each observatios, you should rate it. More information [https://wiki.satnogs.org/Operation#Rating_observations here], but the bottom line is rate the observation:&lt;br /&gt;
&lt;br /&gt;
*'''Good''' if the satellite is seen in the waterfall at all. The satellite will be a straight line in the middle of the waterfall plot.&lt;br /&gt;
*'''Bad''' if the satellite is not seen.&lt;br /&gt;
*'''Failed''' if there was a problem with the station, such as a mis-configuration, or if the waterfall is missing or a solid color.&lt;br /&gt;
&lt;br /&gt;
For a more detailed guide on testing, see [[Operation]]&lt;br /&gt;
&lt;br /&gt;
===Calibrating frequency offset (PPM)===&lt;br /&gt;
This is not super important for a new station.&lt;br /&gt;
&lt;br /&gt;
==Next Steps==&lt;br /&gt;
Now that you've got this station working on the bench, what's next?&lt;br /&gt;
&lt;br /&gt;
For permanent mast-mounted installation, I would recommend adding:&lt;br /&gt;
&lt;br /&gt;
*[https://www.adafruit.com/product/3785 PoE splitter] - Make sure to get one that actually conforms to the 48-volt IEEE 802.3af standard&lt;br /&gt;
*POE injector for powering station remotely - Again, get a real 48-volt IEEE 802.3af standard&lt;br /&gt;
*Large mast-mounted waterproof box&lt;br /&gt;
*Waterproof cord grips, both to keep out the rain but also spiders and critters&lt;br /&gt;
*Desiccant to keep the humidity down&lt;br /&gt;
*Mastic tape for weatherproofing antenna connectors&lt;br /&gt;
*Better omnidirectional antenna&lt;br /&gt;
&lt;br /&gt;
===Building a Box===&lt;br /&gt;
&lt;br /&gt;
*[https://wiki.satnogs.org/No_rotator No-Rotator setup]&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
*IQ3KU Omnidirectional station [https://www.i3vfj.net/SATNOGS/Satnogs_348_notes.pdf build write-up].&lt;br /&gt;
&lt;br /&gt;
[[ Category:Build ]]&lt;br /&gt;
[[ Category:Hardware ]]&lt;br /&gt;
[[ Category:Antenna ]]&lt;/div&gt;</summary>
		<author><name>Vk5qi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=SatNOGS_Setup_Legacy&amp;diff=3609</id>
		<title>SatNOGS Setup Legacy</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=SatNOGS_Setup_Legacy&amp;diff=3609"/>
		<updated>2020-06-12T23:56:34Z</updated>

		<summary type="html">&lt;p&gt;Vk5qi: /* Basic Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&amp;lt;code&amp;gt;satnogs-setup&amp;lt;/code&amp;gt; provides a set of scripts for configuring a '''SatNOGS Client''' system. &amp;lt;code&amp;gt;satnogs-setup&amp;lt;/code&amp;gt; main function is to bring up a menu-driven console configuration utility and provision the system using [[SatNOGS Client Ansible|Ansible]].&lt;br /&gt;
&lt;br /&gt;
==Initial Setup==&lt;br /&gt;
Right after the first boot of the system, packages and the configuration tool itself '''must be updated'''. Follow the [[SatNOGS Client Setup#Updating SatNOGS Client Software|Updating]] instruction found below.&lt;br /&gt;
&lt;br /&gt;
To configure a '''SatNOGS Client''' 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 '''all''' options in '''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;
{{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;
===Basic Configuration===&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, please don’t share your api key as this can give access to anyone to upload and change things in network related to your station and its observations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To find your API token, log in to [https://network.satnogs.org network.satnogs.org], click on the user icon at the top right corner and then click on the &amp;quot;Dashboard&amp;quot; option. On the top of the dashboard page right under the user icon click the button &amp;quot;API key&amp;quot; to show your API token.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_SOAPY_RX_DEVICE&amp;lt;/code&amp;gt;&lt;br /&gt;
|If you are using an RTL-SDR, this is &amp;lt;code&amp;gt;driver=rtlsdr&amp;lt;/code&amp;gt;.  See [https://github.com/pothosware/SoapyRTLSDR/wiki#modules pothosware/SoapyRTLSDR/wiki#modules] for other SDR modules (linked in the navigation bar at the right side of the page). If multiple devices are attached to your station you should also specify the serial of the desired device here, e.g. &amp;lt;code&amp;gt;driver=uhd,serial=3164495&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_ANTENNA&amp;lt;/code&amp;gt;&lt;br /&gt;
|If you are using an RTL-SDR, this is &amp;lt;code&amp;gt;RX&amp;lt;/code&amp;gt;. Use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;SoapySDRUtil --probe 2&amp;gt;&amp;amp;1| grep Antennas&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; to get available antennas for other [https://github.com/pothosware/SoapyRTLSDR/wiki#modules modules].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_RX_SAMP_RATE&amp;lt;/code&amp;gt;&lt;br /&gt;
|Specify the receiver sampling rate. Recommended value for RTL-SDR: &amp;lt;code&amp;gt;2.048e6&amp;lt;/code&amp;gt; (for 2Msps). Other devices will need different sample rates (Use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;SoapySDRUtil --probe 2&amp;gt;&amp;amp;1 | grep Sample&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; to find out which rates are valid)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_RF_GAIN&amp;lt;/code&amp;gt;&lt;br /&gt;
|RF Gain value for your SDR hardware. Run &amp;lt;code&amp;gt;SoapySDRUtil --probe&amp;lt;/code&amp;gt; to see all possible gain values for your hardware.&lt;br /&gt;
Example: For RTL-SDR without pre-amp, 32.8 is a good starting value. Follow [[Omnidirectional Station How To#Setting the gain|Setting the gain]] to find a good gain value.&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 '''numeric ID''' assigned to your station in the SatNOGS Network site when the groundstation was created.&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;
&lt;br /&gt;
==Advanced Setup==&lt;br /&gt;
{{Warning|Changes to the following settings may be required to optimise station performance, or enable support for additional features (e.g. rotator control)}}A more detailed description on setting up a development environment using the SatNOGS reference setup is given in [[SatNOGS_Client_Development]].&lt;br /&gt;
&lt;br /&gt;
NOTE: To get your station online, you need to set SATNOGS_NETWORK_API_URL to https://network.satnogs.org/api/&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_PPM_ERROR&amp;lt;/code&amp;gt;&lt;br /&gt;
|The local oscillator frequency deviation in ppm.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_RX_BANDWIDTH&amp;lt;/code&amp;gt;&lt;br /&gt;
|Soapy baseband filter bandwidth [https://github.com/pothosware/SoapySDR/blob/a489f3dca9d3ccd9b276b95a608ac3ef0299f635/include/SoapySDR/Device.hpp#L904-L910] of RX Channel 0 in Hz (only available on specific devices). TODO: Testing.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_DEV_ARGS&amp;lt;/code&amp;gt;&lt;br /&gt;
|Soapy device arguments (currently only accepting the &amp;lt;code&amp;gt;serial&amp;lt;/code&amp;gt; key successfully) and stream arguments.&lt;br /&gt;
NOTE: This parameter / its meaning might change in the near future, see issue [https://gitlab.com/librespacefoundation/satnogs/satnogs-client/-/issues/373 satnogs-client#373].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_GAIN_MODE&amp;lt;/code&amp;gt;&lt;br /&gt;
|Choose the gain mode:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;quot;Overall&amp;quot;&amp;lt;/code&amp;gt; (default): Set the gain with the single value from &amp;lt;code&amp;gt;SATNOGS_RF_GAIN&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;quot;Settings Field&amp;quot;&amp;lt;/code&amp;gt;: Ignore &amp;lt;code&amp;gt;SATNOGS_RF_GAIN&amp;lt;/code&amp;gt;, use the settings from &amp;lt;code&amp;gt;SATNOGS_OTHER_SETTINGS&amp;lt;/code&amp;gt; instead&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_STREAM_ARGS&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_TUNE_ARGS&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_OTHER_SETTINGS&amp;lt;/code&amp;gt;&lt;br /&gt;
|Only available if &amp;lt;code&amp;gt;SATNOGS_GAIN_MODE&amp;lt;/code&amp;gt;is&amp;lt;code&amp;gt;&amp;quot;Settings Field&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
Available gain settings can be retrieved using &amp;lt;code&amp;gt;SoapySDRUtil --probe=&amp;quot;driver=xxxx`&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example for Airspy: Use&amp;lt;code&amp;gt;&amp;quot;LNA=12,MIX=8,VGA=11&amp;quot;&amp;lt;/code&amp;gt;See also: [[SDR#Airspy|Airspy support]]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_DC_REMOVAL&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_BB_FREQ&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_LO_OFFSET&amp;lt;/code&amp;gt;&lt;br /&gt;
|Don't use this parameter to correct for the local oscillator frequency deviation, use &amp;lt;code&amp;gt;SATNOGS_PPM_ERROR&amp;lt;/code&amp;gt; instead!&lt;br /&gt;
To avoid the SDR carrier at the DC the LO is shifted from the actual frequency a little. Default: &amp;lt;code&amp;gt;100e3&amp;lt;/code&amp;gt; (100 kHz)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_ROT_MODEL&amp;lt;/code&amp;gt;&lt;br /&gt;
|Hamlib rotator model. If you don't have a rotator (like the [[No rotator|No rotator setup]]), leave it empty.&lt;br /&gt;
Use the macro name for your rotator model from this [https://gist.github.com/kerel-fs/2354ff9c082cd3c1594afc38c67bc32a#hamlib-release-33 list of rotator models in Hamlib]. If you are connecting to a separate rotctld instance, use &amp;lt;code&amp;gt;ROT_MODEL_NETROTCTL&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_ROT_BAUD&amp;lt;/code&amp;gt;&lt;br /&gt;
|Baud rate for Hamlib rotator serial port, if using a serial-connected rotator.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_ROT_PORT&amp;lt;/code&amp;gt;&lt;br /&gt;
|Serial port for Hamlib rotator, OR the network address of a rotctld instance (e.g. &amp;lt;code&amp;gt;localhost:4533&amp;lt;/code&amp;gt; )&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_ROT_THRESHOLD&amp;lt;/code&amp;gt;&lt;br /&gt;
|Rotator movement threshold, in degrees. If set, the rotator will only be commanded when the target has moved more than &amp;lt;threshold&amp;gt; degrees away from the current azimuth/elevation position. Default: 4 degrees&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&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.&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:&lt;br /&gt;
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;
For a SatNOGS rotator &amp;lt;code&amp;gt;-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_PRE_OBSERVATION_SCRIPT&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;SATNOGS_POST_OBSERVATION_SCRIPT&amp;lt;/code&amp;gt;&lt;br /&gt;
|Allows execution of a shell script either pre or post-observation. The following can be entered into the script path to enable passing of information to the script:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{FREQ}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; - Observation Centre Frequency&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{TLE}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; - Target object TLE data, as a JSON-formatted object.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{TIMESTAMP}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; - Start time of the observation, in the format: %Y-%m-%dT%H-%M-%S%z&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ID}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; - Observation ID number.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{BAUD}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; - Baud rate of the modulation used, if applicable.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{SCRIPT_NAME}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; - The name of the demodulation flow-graph script in use.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;EXPERIMENTAL&amp;lt;/code&amp;gt;&lt;br /&gt;
|Install latest (experimental) versions of all software&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;APT_REPOSITORY&amp;lt;/code&amp;gt;&lt;br /&gt;
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:&lt;br /&gt;
&amp;lt;code&amp;gt;deb &amp;lt;nowiki&amp;gt;http://download.opensuse.org/repositories/home:/librespace:/satnogs-unstable/Raspbian_10&amp;lt;/nowiki&amp;gt; ./&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;APT_KEY_URL&amp;lt;/code&amp;gt;&lt;br /&gt;
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://download.opensuse.org/repositories/home:/librespace:/satnogs-unstable/Raspbian_10/Release.key&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;APT_KEY_ID&amp;lt;/code&amp;gt;&lt;br /&gt;
|This options allows you to specify an alternative SatNOGS packages repository key ID.&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;
&lt;br /&gt;
*&amp;lt;code&amp;gt;git+&amp;lt;nowiki&amp;gt;https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@master&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; -- the 'master' 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_FLOWGRAPHS_VERSION&amp;lt;/code&amp;gt;&lt;br /&gt;
|This options allows you to change the version of satnogs-flowgraphs package to be installed. For example:&lt;br /&gt;
&amp;lt;code&amp;gt;0.1-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;LOG_LEVEL&amp;lt;/code&amp;gt;&lt;br /&gt;
|Define SatNOGS client log level, available values: &amp;lt;code&amp;gt;ERROR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;WARNING&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;INFO&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DEBUG&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Obsolete Setup Variables==&lt;br /&gt;
The following options were available in previous versions of the SatNOGS client system and have no effect on the latest stable version.&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_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/airspymini&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;lime&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;hackrf&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_PPM_ERROR&amp;lt;/code&amp;gt; (available again)&lt;br /&gt;
|gr-satnogs: The PPM correction [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_DEV_ARGS&amp;lt;/code&amp;gt; (available again)&lt;br /&gt;
|gr-satnogs: SDR device specific arguments [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]&lt;br /&gt;
Note: This variable was re-purposed to set soapy device and stream arguments, so it's not obsolete anymore.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_IF_GAIN&amp;lt;/code&amp;gt;&lt;br /&gt;
|gr-satnogs: Intermediate frequency gain [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_BB_GAIN&amp;lt;/code&amp;gt;&lt;br /&gt;
|gr-satnogs: Baseband gain [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_RADIO_GR_SATNOGS_VERSION&amp;lt;/code&amp;gt;&lt;br /&gt;
|This options allows you to change the version of gr-satnogs package to be installed. For example: &amp;lt;code&amp;gt;1.5.1-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Updating SatNOGS Client Software==&lt;br /&gt;
To update SatNOGS software, including the configuration tool itself:&lt;br /&gt;
&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 and all distribution packages to the latest&lt;br /&gt;
#If you are prompt for a reboot during the upgrade, once the upgrade is finished, select &amp;lt;code&amp;gt;Reboot&amp;lt;/code&amp;gt;, SSH back into the system and re-run &amp;lt;code&amp;gt;satnogs-setup&amp;lt;/code&amp;gt; to continue to the next step&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;
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions&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;
===Upgrading from Debian 'stretch' to 'buster'===&lt;br /&gt;
Debian &amp;lt;code&amp;gt;stretch&amp;lt;/code&amp;gt; is no longer supported. If you have already installed an older version of Debian or Raspbian SatNOGS image based on &amp;lt;code&amp;gt;stretch&amp;lt;/code&amp;gt; (releases &amp;lt;= [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/tags/2018080300 2018080300]), you must upgrade to &amp;lt;code&amp;gt;buster&amp;lt;/code&amp;gt; otherwise it will be impossible to receive updates or upgrades in the future.&lt;br /&gt;
====Method 1: Reflashing and reinstalling (recommended)====&lt;br /&gt;
The recommended method to upgrade to &amp;lt;code&amp;gt;buster&amp;lt;/code&amp;gt; is reflashing the latest Raspbian SatNOGS image (or reinstalling latest Debian). Follow [[Raspberry Pi|Raspberry Pi]] installation instructions and reinstall from scratch.&lt;br /&gt;
====Method 2: Release upgrade using satnogs-upgrade (advanced)====&lt;br /&gt;
{{Warning|Make sure you have a stable connection to the internet and your SatNOGS client during this process. Release upgrades can consume a lot of time, data and storage.}}To upgrade from stretch to buster using the configuration tool:&lt;br /&gt;
&lt;br /&gt;
#SSH into the system&lt;br /&gt;
#Make sure you have enough free space on your SD card (&amp;gt;2GiB) by running &amp;lt;code&amp;gt;df -h /&amp;lt;/code&amp;gt; on the console&lt;br /&gt;
#Run &amp;lt;code&amp;gt;sudo satnogs-setup&amp;lt;/code&amp;gt; and select &amp;lt;code&amp;gt;Update&amp;lt;/code&amp;gt; to update the tool itself and then select &amp;lt;code&amp;gt;Apply&amp;lt;/code&amp;gt;. This may inform you that the current distribution is not supported and exit. If not, select &amp;lt;code&amp;gt;Exit&amp;lt;/code&amp;gt; to exit the tool.&lt;br /&gt;
#Run &amp;lt;code&amp;gt;sudo satnogs-upgrade&amp;lt;/code&amp;gt; to update all distribution packages to the latest; this will also prompt you for a distribution upgrade, if it detects that one is needed&lt;br /&gt;
#Keep an eye on the upgrade progress; &amp;lt;code&amp;gt;dpkg&amp;lt;/code&amp;gt; may prompt for changes&lt;br /&gt;
#Once the upgrade is completed run &amp;lt;code&amp;gt;sudo sync; sudo reboot&amp;lt;/code&amp;gt;&lt;br /&gt;
#After the reboot, SSH back into the system and make sure you are on the correct release by running &amp;lt;code&amp;gt;lsb_release -a&amp;lt;/code&amp;gt;&lt;br /&gt;
#Run &amp;lt;code&amp;gt;sudo rm -f /root/.satnogs/.bootstrapped; sudo satnogs-setup&amp;lt;/code&amp;gt; and select &amp;lt;code&amp;gt;Update&amp;lt;/code&amp;gt; and then &amp;lt;code&amp;gt;Apply&amp;lt;/code&amp;gt;; this may take some time&lt;br /&gt;
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions&lt;br /&gt;
#Select &amp;lt;code&amp;gt;Back&amp;lt;/code&amp;gt; to exit&lt;br /&gt;
&lt;br /&gt;
==Verification of correct installation==&lt;br /&gt;
To see if satnogs-client has started successfully, check the logs with &amp;lt;code&amp;gt;systemctl&amp;lt;/code&amp;gt;:&amp;lt;pre&amp;gt;&lt;br /&gt;
$ systemctl status satnogs-client&lt;br /&gt;
&amp;lt;/pre&amp;gt;You should see an output that looks like this:&amp;lt;pre&amp;gt;&lt;br /&gt;
● satnogs-client.service - SatNOGS client&lt;br /&gt;
   Loaded: loaded (/etc/systemd/system/satnogs-client.service; enabled; vendor preset: enabled)&lt;br /&gt;
   Active: active (running) since Wed 2020-03-04 19:30:56 GMT; 6min ago&lt;br /&gt;
 Main PID: 6309 (satnogs-client)&lt;br /&gt;
    Tasks: 11 (limit: 2200)&lt;br /&gt;
   Memory: 37.9M&lt;br /&gt;
   CGroup: /system.slice/satnogs-client.service&lt;br /&gt;
           └─6309 /var/lib/satnogs/bin/python3 /var/lib/satnogs/bin/satnogs-client&lt;br /&gt;
&lt;br /&gt;
Mar 04 19:30:56 raspberrypi systemd[1]: Started SatNOGS client.&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[SatNOGS Client Ansible]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Build]]&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Vk5qi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Adjusting_the_SatNOGS_Client&amp;diff=3607</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=3607"/>
		<updated>2020-06-05T08:45:16Z</updated>

		<summary type="html">&lt;p&gt;Vk5qi: /* SatNOGS station adjustments */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&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 probably have to get and build it by yourself.&lt;br /&gt;
&lt;br /&gt;
'''Note: This is only going to work if GSM is still in existence in your country. If (like Australia), your country has moved on from the 1990s and deprecated GSM, you will need to use another option (scroll down).'''&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 automake m4&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. The value should be entered without decimals, for example -1.&lt;br /&gt;
&lt;br /&gt;
=== Automatic Adjustment using LTE Signals ===&lt;br /&gt;
If you are living in a country where GSM is no longer present, but LTE is available (in a frequency range supported by your receiver), then you can determine your SDR's PPM offset by following this guide: https://gist.github.com/darksidelemm/b517e6a9b821c50c170f1b9b7d65b824&lt;br /&gt;
&lt;br /&gt;
===Manual Adjustment using GQRX===&lt;br /&gt;
If you cannot calibrate against GSM or LTE towers, but you have a nearby amateur radio beacon or transmitter at a reasonably well-known frequency, you can use this to obtain at least a coarse PPM correction.&lt;br /&gt;
&lt;br /&gt;
'''NOTE: This section may need to be updated to follow the same process as is used in `Setting The Gain`, as rtl_tcp may not be available on the latest SatNOGS RPI images.'''&lt;br /&gt;
&lt;br /&gt;
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:&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;
You will now need to temporarily stop the satnogs-client, using the command:&lt;br /&gt;
 $ sudo systemctl stop satnogs-client&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. For SDRs without a Temperature Compensated Crystal Oscillator ('TCXO') this value may be temperature dependent. Enter the known frequency of your chosen transmitter (NFM repeater 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;
===adjustment using observations===&lt;br /&gt;
Another way of adjusting the frequency offset is by making an observation of a satellite that transmits CW. Once the observation is complete, the CW signal from the satellite should look like a straight line at 0Hz on the observation waterfall. If there's a frequency offset, the signal will be off-center. The image below shows observation details for a CW transmitter on VHF. Since the frequency offset is not yet adjusted, the CW signal is present between the -10kHz and 0Hz markers.&lt;br /&gt;
{{Message|It is possible for the CW signal to appear at a frequency above the 10kHz tick or below the -10kHz tick. In that case, use the frequency of the first tick with a higher absolute value frequency than the CW signal absolute value frequency. Do not forget to update the selected tick frequency in the equations below!}}&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Marked CW observation.jpg|center|800x800px]]&lt;br /&gt;
In order to compute the frequency offset, the waterfall image can be downloaded and opened with graphics editor like GIMP. After opening the waterfall image, vertical markers are placed on the -10kHz tick, the 0Hz tick and on the CW signal. Once the markers are placed, measure the width in pixels between the -10kHz tick and 0Hz tick, as well as the width between the CW signal and the 0Hz tick. The image below shows an example of the placed markers and the widths to be measured:&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Measurement markers.jpg|center|550x550px]]&lt;br /&gt;
Let’s call the width between the -10kHz and 0Hz markers '''''widthTickTo0''''', and the width between the CW and 0Hz markers '''''widthCWto0'''''. From the example image above, we get the values '''''widthTickTo0 = 224''''' and '''''widthCWto0 = 131'''''. To compute the frequency offset, we compute the ratio between those widths and multiply by the frequency tick value as follows:&lt;br /&gt;
 '''frequencyOffset = -10,000Hz * widthCWto0 / ''widthTickTo0'''''&lt;br /&gt;
In the case of the example above:&lt;br /&gt;
 '''frequencyOffset = -10,000Hz * widthCWto0 / ''widthTickTo0'' = -10,000Hz * 131 / 224 = -5,848Hz'''&lt;br /&gt;
To compute the offset in PPM, divide the frequency offset in Hz by the transmitter frequency in MHz. In the case of the example above:&lt;br /&gt;
 '''ppmOffset = frequencyOffset / transmitterFrequency = -5,848Hz / 145.725MHz = -40 PPM'''&lt;br /&gt;
The correction entered in satnogs-setup must have the opposite sign of that in the calculation, since we will be shifting the frequency in the opposite direction, making the SATNOGS_PPM_ERROR value:&lt;br /&gt;
 '''SATNOGS_PPM_ERROR = 40'''&lt;br /&gt;
Note that if the CW signal is on the left side of the 0Hz marker, the PPM value is positive, otherwise, the PPM value is negative.&lt;br /&gt;
{{Message|Please keep in mind that it is possible for the CW transmitter to drift in some satellites. This makes the CW transmission an unreliable source in some cases. Make sure to double-check your adjustment with another CW satellite!}}&lt;br /&gt;
&lt;br /&gt;
==Enhancements==&lt;br /&gt;
&lt;br /&gt;
===Waterfall Color improvements===&lt;br /&gt;
&lt;br /&gt;
By default the SatNOGS client will adjust the waterfall colour ranges to best display the received signal. &lt;br /&gt;
&lt;br /&gt;
If desired, this auto-ranging can be disabled by running &amp;lt;code&amp;gt;sudo satnogs-setup&amp;lt;/code&amp;gt;, and navigating to &amp;lt;code&amp;gt;Advanced -&amp;gt; Waterfall&amp;lt;/code&amp;gt;. From here the auto-ranging can be turned off, and the minimum and maximum waterfall colour-scale levels can be set. &lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Operate]]&lt;/div&gt;</summary>
		<author><name>Vk5qi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Adjusting_the_SatNOGS_Client&amp;diff=3606</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=3606"/>
		<updated>2020-06-05T08:35:23Z</updated>

		<summary type="html">&lt;p&gt;Vk5qi: /* Waterfall color improvements */ Remove obsolete waterfall range instructions.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&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 probably have to get and build it by yourself.&lt;br /&gt;
&lt;br /&gt;
'''Note: This is only going to work if GSM is still in existence in your country. If (like Australia), your country has moved on from the 1990s and deprecated GSM, you will need to use another option (scroll down).'''&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 automake m4&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. The value should be entered without decimals, for example -1.&lt;br /&gt;
&lt;br /&gt;
===manual adjustment===&lt;br /&gt;
'''This method was used in older version of satnogs-client and is not available in the current stable one.''' &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;
===adjustment using observations===&lt;br /&gt;
Another way of adjusting the frequency offset is by making an observation of a satellite that transmits CW. Once the observation is complete, the CW signal from the satellite should look like a straight line at 0Hz on the observation waterfall. If there's a frequency offset, the signal will be off-center. The image below shows observation details for a CW transmitter on VHF. Since the frequency offset is not yet adjusted, the CW signal is present between the -10kHz and 0Hz markers.&lt;br /&gt;
{{Message|It is possible for the CW signal to appear at a frequency above the 10kHz tick or below the -10kHz tick. In that case, use the frequency of the first tick with a higher absolute value frequency than the CW signal absolute value frequency. Do not forget to update the selected tick frequency in the equations below!}}&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Marked CW observation.jpg|center|800x800px]]&lt;br /&gt;
In order to compute the frequency offset, the waterfall image can be downloaded and opened with graphics editor like GIMP. After opening the waterfall image, vertical markers are placed on the -10kHz tick, the 0Hz tick and on the CW signal. Once the markers are placed, measure the width in pixels between the -10kHz tick and 0Hz tick, as well as the width between the CW signal and the 0Hz tick. The image below shows an example of the placed markers and the widths to be measured:&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Measurement markers.jpg|center|550x550px]]&lt;br /&gt;
Let’s call the width between the -10kHz and 0Hz markers '''''widthTickTo0''''', and the width between the CW and 0Hz markers '''''widthCWto0'''''. From the example image above, we get the values '''''widthTickTo0 = 224''''' and '''''widthCWto0 = 131'''''. To compute the frequency offset, we compute the ratio between those widths and multiply by the frequency tick value as follows:&lt;br /&gt;
 '''frequencyOffset = -10,000Hz * widthCWto0 / ''widthTickTo0'''''&lt;br /&gt;
In the case of the example above:&lt;br /&gt;
 '''frequencyOffset = -10,000Hz * widthCWto0 / ''widthTickTo0'' = -10,000Hz * 131 / 224 = -5,848Hz'''&lt;br /&gt;
To compute the offset in PPM, divide the frequency offset in Hz by the transmitter frequency in MHz. In the case of the example above:&lt;br /&gt;
 '''ppmOffset = frequencyOffset / transmitterFrequency = -5,848Hz / 145.725MHz = -40 PPM'''&lt;br /&gt;
The correction entered in satnogs-setup must have the opposite sign of that in the calculation, since we will be shifting the frequency in the opposite direction, making the SATNOGS_PPM_ERROR value:&lt;br /&gt;
 '''SATNOGS_PPM_ERROR = 40'''&lt;br /&gt;
Note that if the CW signal is on the left side of the 0Hz marker, the PPM value is positive, otherwise, the PPM value is negative.&lt;br /&gt;
{{Message|Please keep in mind that it is possible for the CW transmitter to drift in some satellites. This makes the CW transmission an unreliable source in some cases. Make sure to double-check your adjustment with another CW satellite!}}&lt;br /&gt;
&lt;br /&gt;
==Enhancements==&lt;br /&gt;
&lt;br /&gt;
===Waterfall Color improvements===&lt;br /&gt;
&lt;br /&gt;
By default the SatNOGS client will adjust the waterfall colour ranges to best display the received signal. &lt;br /&gt;
&lt;br /&gt;
If desired, this auto-ranging can be disabled by running &amp;lt;code&amp;gt;sudo satnogs-setup&amp;lt;/code&amp;gt;, and navigating to &amp;lt;code&amp;gt;Advanced -&amp;gt; Waterfall&amp;lt;/code&amp;gt;. From here the auto-ranging can be turned off, and the minimum and maximum waterfall colour-scale levels can be set. &lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Operate]]&lt;/div&gt;</summary>
		<author><name>Vk5qi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Adjusting_the_SatNOGS_Client&amp;diff=3605</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=3605"/>
		<updated>2020-06-05T08:17:44Z</updated>

		<summary type="html">&lt;p&gt;Vk5qi: /* automatic adjustment via kalibrate-rtl */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&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 probably have to get and build it by yourself.&lt;br /&gt;
&lt;br /&gt;
'''Note: This is only going to work if GSM is still in existence in your country. If (like Australia), your country has moved on from the 1990s and deprecated GSM, you will need to use another option (scroll down).'''&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 automake m4&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. The value should be entered without decimals, for example -1.&lt;br /&gt;
&lt;br /&gt;
===manual adjustment===&lt;br /&gt;
'''This method was used in older version of satnogs-client and is not available in the current stable one.''' &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;
===adjustment using observations===&lt;br /&gt;
Another way of adjusting the frequency offset is by making an observation of a satellite that transmits CW. Once the observation is complete, the CW signal from the satellite should look like a straight line at 0Hz on the observation waterfall. If there's a frequency offset, the signal will be off-center. The image below shows observation details for a CW transmitter on VHF. Since the frequency offset is not yet adjusted, the CW signal is present between the -10kHz and 0Hz markers.&lt;br /&gt;
{{Message|It is possible for the CW signal to appear at a frequency above the 10kHz tick or below the -10kHz tick. In that case, use the frequency of the first tick with a higher absolute value frequency than the CW signal absolute value frequency. Do not forget to update the selected tick frequency in the equations below!}}&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Marked CW observation.jpg|center|800x800px]]&lt;br /&gt;
In order to compute the frequency offset, the waterfall image can be downloaded and opened with graphics editor like GIMP. After opening the waterfall image, vertical markers are placed on the -10kHz tick, the 0Hz tick and on the CW signal. Once the markers are placed, measure the width in pixels between the -10kHz tick and 0Hz tick, as well as the width between the CW signal and the 0Hz tick. The image below shows an example of the placed markers and the widths to be measured:&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Measurement markers.jpg|center|550x550px]]&lt;br /&gt;
Let’s call the width between the -10kHz and 0Hz markers '''''widthTickTo0''''', and the width between the CW and 0Hz markers '''''widthCWto0'''''. From the example image above, we get the values '''''widthTickTo0 = 224''''' and '''''widthCWto0 = 131'''''. To compute the frequency offset, we compute the ratio between those widths and multiply by the frequency tick value as follows:&lt;br /&gt;
 '''frequencyOffset = -10,000Hz * widthCWto0 / ''widthTickTo0'''''&lt;br /&gt;
In the case of the example above:&lt;br /&gt;
 '''frequencyOffset = -10,000Hz * widthCWto0 / ''widthTickTo0'' = -10,000Hz * 131 / 224 = -5,848Hz'''&lt;br /&gt;
To compute the offset in PPM, divide the frequency offset in Hz by the transmitter frequency in MHz. In the case of the example above:&lt;br /&gt;
 '''ppmOffset = frequencyOffset / transmitterFrequency = -5,848Hz / 145.725MHz = -40 PPM'''&lt;br /&gt;
The correction entered in satnogs-setup must have the opposite sign of that in the calculation, since we will be shifting the frequency in the opposite direction, making the SATNOGS_PPM_ERROR value:&lt;br /&gt;
 '''SATNOGS_PPM_ERROR = 40'''&lt;br /&gt;
Note that if the CW signal is on the left side of the 0Hz marker, the PPM value is positive, otherwise, the PPM value is negative.&lt;br /&gt;
{{Message|Please keep in mind that it is possible for the CW transmitter to drift in some satellites. This makes the CW transmission an unreliable source in some cases. Make sure to double-check your adjustment with another CW satellite!}}&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;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Operate]]&lt;/div&gt;</summary>
		<author><name>Vk5qi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=LRPT&amp;diff=3575</id>
		<title>LRPT</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=LRPT&amp;diff=3575"/>
		<updated>2020-04-22T05:26:02Z</updated>

		<summary type="html">&lt;p&gt;Vk5qi: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
The low-rate picture transmission (LRPT) is a digital transmission system, intended to deliver images and data from an orbital weather satellite directly to end users via a VHF radio signal.&lt;br /&gt;
&lt;br /&gt;
'''NOTE: The LRPT demodulator which has been previously used on some SatNOGS stations is an custom addition, and is not part of the core SatNOGS demodulator set. It also has not been updated to work on the latest SatNOGS versions (newer than ~Feb 2020).'''  &lt;br /&gt;
&lt;br /&gt;
==SatNOGS Demodulator==&lt;br /&gt;
Example demodulated observation files are below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; widths=&amp;quot;310px&amp;quot; heights=&amp;quot;400px&amp;quot;&amp;gt;&lt;br /&gt;
File:SatNOGS LRPT.png|Observation 156001 Data&lt;br /&gt;
File:Data_1531688_2020-01-13T10-08-44_68.png|Observation 1531688 Data&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Waterfalls==&lt;br /&gt;
Example waterfalls below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; widths=&amp;quot;310px&amp;quot; heights=&amp;quot;400px&amp;quot;&amp;gt;&lt;br /&gt;
File:Waterfall_1531688_2020-01-13T10-08-44.png|[[LRPT]]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[https://en.wikipedia.org/wiki/Low-rate_picture_transmission Wikipedia Low-rate picture transmission]&lt;br /&gt;
&lt;br /&gt;
[[Category:RF Modes]]&lt;/div&gt;</summary>
		<author><name>Vk5qi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Omnidirectional_Station_How_To&amp;diff=3551</id>
		<title>Omnidirectional Station How To</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Omnidirectional_Station_How_To&amp;diff=3551"/>
		<updated>2020-03-26T22:34:31Z</updated>

		<summary type="html">&lt;p&gt;Vk5qi: /* Setting the gain */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Omnidirectional VHF Turnstile Antenna.jpg|alt=VHF Turnstile Antenna|thumb|VHF Turnstile antenna, [https://network.satnogs.org/stations/23/ SatNOGS Station 23]]]&lt;br /&gt;
This How-To is written to get you quickly receiving satellite data with an Omnidirectional antenna (an antenna that does not move).&lt;br /&gt;
&lt;br /&gt;
==Prerequisites/Background==&lt;br /&gt;
I'm assuming that you are a bit familiar with amateur radio, or linux in general, or you already have a Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
===Expectation Management===&lt;br /&gt;
First off, I'd like to set some expectations around a SatNOGs station with an omnidirectional antenna. Yes, you will be able to hear satellites, Morse code beacons, maybe even some voice contacts on a FM transponder. But for CubeSats with 1 watt transmitters at 9600 baud, it's going to be really difficult to actually decode any data with an omni antenna. You'll definitely see squiggly lines on the waterfall plot, but demodulating the signal and extracting satellite telemetry is going to be pretty difficult.&lt;br /&gt;
&lt;br /&gt;
The only way to get more signal is a better antenna. And a better antenna with more gain is going to be more directional, which means you will need a way to point that antenna at the satellite, and this How-To just got a lot more complicated. So we're not going there.&lt;br /&gt;
&lt;br /&gt;
A better preamp helps a bit, see the LNA section below.&lt;br /&gt;
&lt;br /&gt;
===Hardware Required===&lt;br /&gt;
This is a list of the hardware for indoor/testing purposes:&lt;br /&gt;
&lt;br /&gt;
*Raspberry Pi&lt;br /&gt;
**Power supply + cable (see note below)&lt;br /&gt;
**Up to 16 GB Micro SD card&lt;br /&gt;
**Ethernet cable&lt;br /&gt;
*RTL SDR Blog v3 dongle&lt;br /&gt;
*Various short lengths of coax&lt;br /&gt;
*Preamp/LNA - Or not if your coax is short, see LNA section below&lt;br /&gt;
*Omnidirectional antenna - just a dual mag-mount on a cookie sheet will work OK for stronger satellites&lt;br /&gt;
&lt;br /&gt;
==Setting up the Raspberry Pi==&lt;br /&gt;
I chose the [https://www.raspberrypi.org/products/raspberry-pi-3-model-b/ Raspberry Pi 3 Model B] for my station. &lt;br /&gt;
&lt;br /&gt;
===Downloading/Writing the SD image===&lt;br /&gt;
The SatNOGS team has done a great job creating a Raspbian image with all the required software. Simply navigate over to the [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/tags latest tag on Gitlab], and click on the &amp;quot;Zipped image&amp;quot; link under the latest tag. It's about 650 MBytes.&lt;br /&gt;
&lt;br /&gt;
For linux:&lt;br /&gt;
&lt;br /&gt;
#Unzip the downloaded file: '''unzip image_2018-08-03-Raspbian-SatNOGS-lite.zip'''&lt;br /&gt;
#Figure out which device is the SD card. SD cards are usually start with mmcblk. '''sudo lsblk'''&lt;br /&gt;
#Write the image. This will take a while. Make sure you don't overwrite your host OS: '''sudo dd if=2018-08-03-Raspbian-SatNOGS-lite.img of=/dev/mmcblk0'''&lt;br /&gt;
&lt;br /&gt;
===Power notes===&lt;br /&gt;
Thinking I could save a few bucks, I used a no-name generic 2.4 amp &amp;quot;tablet&amp;quot; USB power supply I got as a freebie, and a micro-USB cable I use for charging my phone. What a mistake! The Micro-USB cable wire gauge was too small, so there was too much voltage drop on the cable, so the Raspberry Pi reported power problems every time it was doing anything.&lt;br /&gt;
&lt;br /&gt;
Power problems are indicated by either a lightning bolt in the upper right of the monitor, or the red power LED flashes on the board itself. If The Raspberry Pi processor itself is pretty forgiving of power droops because it runs at 3.3 volts. But the 5v USB ports are directly tied to input power, so undervoltage conditions will cause problems for USB devices, such as the RTL SDR dongle.&lt;br /&gt;
&lt;br /&gt;
==Software Configuration==&lt;br /&gt;
&lt;br /&gt;
===Creating a SatNOGS Network account===&lt;br /&gt;
There are several different websites to be aware of and sign in to. As of 12/2018, most of our websites use a unified login provided by Auth0, so when you create an account on one of these sites it will work across the others as well:&lt;br /&gt;
&lt;br /&gt;
*Required: [https://network.satnogs.org/ Network]: for registering your station and adding data to the network.&lt;br /&gt;
*Recommended: [https://community.libre.space Forums]: for asking questions.&lt;br /&gt;
*Optional: [https://db.satnogs.org/ Database]: Only if you want to add satellites/modes. Not necessary for receiving satellite data.&lt;br /&gt;
&lt;br /&gt;
===Registering the station===&lt;br /&gt;
Log in to your Network account, and click the &amp;quot;+ Add Ground Station&amp;quot; button, or click [https://network.satnogs.org/stations/edit/ here] Fill out the short form, and your station will be added to the database. For &amp;quot;Antenna&amp;quot;, pick something that encompasses the frequency range of your antenna. For wideband reception, use VHF Discone 26-1200 MHz.&lt;br /&gt;
&lt;br /&gt;
The important info you'll need later on is the Station ID number, lat/lon/altitiude. I would also use a Minimum Horizon of 30 degrees or so, this will keep your station from allowing low-elevation passes to be scheduled. Make sure to keep the &amp;quot;Testing&amp;quot; flag checked, as this lets people know that your station isn't quite ready for real use.&lt;br /&gt;
&lt;br /&gt;
===Booting and Configuring Raspbian===&lt;br /&gt;
After you have the image burned onto a Micro-SD card, boot it! I would recommend hooking up a keyboard and HDMI monitor, you can watch the boot process. If it doesn't boot at all, double check that you wrote the SatNOGS Raspbian image correctly.&lt;br /&gt;
&lt;br /&gt;
After a successful boot, log in with username '''pi''' and password '''raspberry'''&lt;br /&gt;
&lt;br /&gt;
#Change your password! '''passwd'''&lt;br /&gt;
#Run '''sudo raspi-config''' to set up the base OS. ''Tab'' switches between the options and ''select''.&lt;br /&gt;
##4 Localisation Options: I1 Change Locale: en_US.UTF-8 UTF-8&lt;br /&gt;
##4 Localisation Options: I2 Change Timezone: None of the above: UTC&lt;br /&gt;
##4 Localisation Options: I3 Change Keyboard Layout:&lt;br /&gt;
##7 Advanced Options: A1 Expand Filesystem &amp;lt;br /&amp;gt;This will expand the ~2GB Micro-SD card partition to fill the entire SD card.&lt;br /&gt;
&lt;br /&gt;
The Raspberry Pi needs to reboot to expand the filesystem, so do this now. It might take a while. '''sudo reboot''&lt;br /&gt;
&lt;br /&gt;
====Disabling WiFi and Bluetooth====&lt;br /&gt;
To disable WiFi and Bluetooth, edit the /boot/config.txt file, and add the following lines at the bottom:&lt;br /&gt;
 # Disable WiFi and bluetooth&lt;br /&gt;
 dtoverlay=pi3-disable-wifi&lt;br /&gt;
 dtoverlay=pi3-disable-bt&lt;br /&gt;
&lt;br /&gt;
Then reboot again. To make sure that it worked, run '''ifconfig''' and make sure that ''wlan0'' isn't listed. I'm not sure how to tell if bluetooth is turned off.&lt;br /&gt;
&lt;br /&gt;
====Additional software====&lt;br /&gt;
I like to install this additional software with '''sudo apt install bmon''' ...&lt;br /&gt;
&lt;br /&gt;
*bmon - a graphical network usage analyzer.&lt;br /&gt;
*vnstat - keeps track of your bandwidth usage&lt;br /&gt;
*vim - the world's best text editor ;)&lt;br /&gt;
*irssi - a terminal IRC client, for chatting on the #satnogs IRC channel&lt;br /&gt;
&lt;br /&gt;
If you can't tell by now, I'm always a big fan of rebooting. It certainly doesn't take that long... '''sudo reboot'''&lt;br /&gt;
&lt;br /&gt;
===Configuring the satnogs-client===&lt;br /&gt;
Once you have the base Raspbian Strech OS installed, updated, and looking good, you can configure SatNOGS. Plug in your RTL SDR if you haven't already.&lt;br /&gt;
&lt;br /&gt;
First thing to do is update the satnogs-setup program. Run '''sudo satnogs-setup'''. This will probably take a while, then '''Update''', which will also take a while. Per usual, after the update I like to reboot the raspberry pi just to make sure everything was updated and is actually running the new code.&lt;br /&gt;
&lt;br /&gt;
====Basic Configuration====&lt;br /&gt;
Then the actual configuration of the station:&lt;br /&gt;
&lt;br /&gt;
#Run '''sudo satnogs-setup''' again.&lt;br /&gt;
#Use the up/down and TAB keys to navigate, and Enter to select an option.&lt;br /&gt;
#Basic Configuration:&lt;br /&gt;
##SATNOGS_API_TOKEN: After logging in to network.satnogs.org, this is in the upper right under &amp;quot;API Key&amp;quot;&lt;br /&gt;
##SATNOGS_SOAPY_RX_DEVICE: device=rtlsdr&lt;br /&gt;
##SATNOGS_RX_SAMP_RATE: 2.048e6&lt;br /&gt;
##SATNOGS_RX_GAIN: Refer &amp;quot;Setting the gain&amp;quot; section below.&lt;br /&gt;
##SATNOGS_STATION_ELEV: station elevation in meters&lt;br /&gt;
##SATNOGS_STATION_ID: The ID number of your station.&lt;br /&gt;
##SATNOGS_STATION_LAT and LON: Latitude and Longitude in decimal degrees&lt;br /&gt;
&lt;br /&gt;
Then back to the main menu and ''Apply'' to save the configuration. Ansible will run and update the system. If you want to quit, just keep pressing cancel to exit.&lt;br /&gt;
&lt;br /&gt;
====Setting the gain====&lt;br /&gt;
The next step is to set the gain on the RTL SDR. The aim here (in the majority of cases) is to set the gain of your station to maximise sensitivity (best noise figure), but without limiting the available dynamic range of your station due to your local noise floor. This can be achieved in a fairly simple manner, by watching the level of the receivers noise floor as you slowly increase the receiver gain. At some point the noise floor will start to rise - at this point increasing the gain any further will of no use - you will only increase the noise level, and eat into your receiver's available dynamic range (for a RTLSDR, theoretically only 48 dB).&lt;br /&gt;
&lt;br /&gt;
There may be situations where strong local interferers may require the use of a lower gain setting to avoid intermodulation products appearing in the passband, though these cases would be better solved with a suitable bandpass filter somewhere in the receive chain.&lt;br /&gt;
&lt;br /&gt;
First, it is good to know the available gain range of your SDR. This can be accomplished by running &amp;lt;code&amp;gt;SoapySDRUtil --probe&amp;lt;/code&amp;gt;, which provides a considerable amount of information about the connected SDR:&lt;br /&gt;
 pi@satnogs:~ $ SoapySDRUtil --probe&lt;br /&gt;
 ######################################################&lt;br /&gt;
 ## Soapy SDR -- the SDR abstraction library&lt;br /&gt;
 ######################################################&lt;br /&gt;
 &lt;br /&gt;
 Probe device&lt;br /&gt;
 &lt;br /&gt;
 Found Rafael Micro R820T tuner&lt;br /&gt;
 [INFO] [UHD] linux; GNU C++ version 8.2.0; Boost_106700; UHD_3.13.1.0-3&lt;br /&gt;
 Found Rafael Micro R820T tuner&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 -- Device identification&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
   driver=RTLSDR&lt;br /&gt;
   hardware=RTLSDR&lt;br /&gt;
   origin=&amp;lt;nowiki&amp;gt;https://github.com/pothosware/SoapyRTLSDR&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   rtl=0&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 -- Peripheral summary&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
   Channels: 1 Rx, 0 Tx&lt;br /&gt;
   Timestamps: NO&lt;br /&gt;
   Other Settings:&lt;br /&gt;
      * Direct Sampling - RTL-SDR Direct Sampling Mode&lt;br /&gt;
        [key=direct_samp, default=0, type=string, options=(0, 1, 2)]&lt;br /&gt;
      * Offset Tune - RTL-SDR Offset Tuning Mode&lt;br /&gt;
        [key=offset_tune, default=false, type=bool]&lt;br /&gt;
      * I/Q Swap - RTL-SDR I/Q Swap Mode&lt;br /&gt;
        [key=iq_swap, default=false, type=bool]&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 -- RX Channel 0&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
   Full-duplex: YES&lt;br /&gt;
   Supports AGC: YES&lt;br /&gt;
   Stream formats: CS8, CS16, CF32&lt;br /&gt;
   Native format: CS8 [full-scale=128]&lt;br /&gt;
   Stream args:&lt;br /&gt;
      * Buffer Size - Number of bytes per buffer, multiples of 512 only.&lt;br /&gt;
        [key=bufflen, units=bytes, default=262144, type=int]&lt;br /&gt;
      * Ring buffers - Number of buffers in the ring.&lt;br /&gt;
        [key=buffers, units=buffers, default=15, type=int]&lt;br /&gt;
      * Async buffers - Number of async usb buffers (advanced).&lt;br /&gt;
        [key=asyncBuffs, units=buffers, default=0, type=int]&lt;br /&gt;
   Antennas: RX&lt;br /&gt;
   Full gain range: [0, 49.6] dB&lt;br /&gt;
     TUNER gain range: [0, 49.6] dB&lt;br /&gt;
   Full freq range: [23.999, 1764] MHz&lt;br /&gt;
     RF freq range: [24, 1764] MHz&lt;br /&gt;
     CORR freq range: [-0.001, 0.001] MHz&lt;br /&gt;
   Sample rates: 0.25, 1.024, 1.536, 1.792, 1.92, 2.048, 2.16, 2.56, 2.88, 3.2 MSps&lt;br /&gt;
The above output is for a RTLSDR, and we can see that there is information on the 'Full gain range', and 'TUNER' gain. The Full gain setting is an 'abstracted' gain range, which in this case just directly links to the 'TUNER' gain, as that is the only gain setting presented by the RTLSDR driver. Other SDRs (e.g. AirSpy) may present more gain controls. Anyway, we can see that the gain range is 0 through 49.6 dB. It's quite possible that there are only discrete gain steps within this range (and this is very true for the RTLSDR), but SoapySDR will hide that from us and automatically use the nearest valid setting.&lt;br /&gt;
&lt;br /&gt;
Next up, we want a way of seeing a live spectrum from the SDR. This might be difficult, especially if you're just gone and mounted a RTLSDR in a metal box up a pole! Well, SoapySDR comes to the rescue again with SoapySDR Server - this allows us to serve up the SDR on the network, and access it with a client.&lt;br /&gt;
&lt;br /&gt;
Note: SoapySDR Server is not currently installed by default. It can be installed by running the commands:&lt;br /&gt;
 $ sudo apt-get install soapyremote-server&lt;br /&gt;
 $ sudo systemctl stop SoapySDRServer&lt;br /&gt;
 $ sudo systemctl disable SoapySDRServer&lt;br /&gt;
[https://cubicsdr.com/ CubicSDR] is a good cross-platform client that can connect to a SoapySDR Server, and you can [https://github.com/cjcliffe/CubicSDR/releases download the latest release by clicking here]. &lt;br /&gt;
On the RPi, you can start SoapySDR Server by running: &amp;lt;code&amp;gt;SoapySDRServer --bind=&amp;quot;0.0.0.0:55132&amp;quot;&amp;lt;/code&amp;gt;  Leave this running. &lt;br /&gt;
&lt;br /&gt;
Note: If you need to use the Bias-T option of an RTLSDR, you will need to activate this manually prior to running SoapySDRServer. This can be accomplished by [[Software Defined Radio#Using RTL-SDR.com V3 Dongle.27s Bias-T Power Supply|compiling the rtl_biast utility]], and running it with &amp;lt;code&amp;gt;./rtl_biast -b 1&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
Open up CubicSDR on another computer, on the same network as your SatNOGS station. It will pop up a window asking you to select a SDR device. With any luck, it will have auto-detected your SoapySDR Server, and it will show up in the 'Local Net' list. If not, you will need to select 'Remote', click 'Add', and then enter the IP address of your station. You should then have a SDR showing up in the list.&lt;br /&gt;
[[File:Screen Shot 2020-03-19 at 10.41.52 pm.png|alt=CubicSDR SDR Devices List|none|thumb|600x600px|CubicSDR SDR Devices List]]&lt;br /&gt;
You should now be able to click 'Start', and end up with a waterfall display. If the waterfall appears to glitch, or show a 'lumpy' pattern near the centre of the display, then this indicates packet loss between the SatNOGS station and your client. Try and connect via a direct LAN connection if possible. &lt;br /&gt;
In the settings menu of CubicSDR, disable &amp;quot;Automatic Gain&amp;quot; if it is set. This will allow manual control over the gain settings via sliders that will show up at the top left of the window.&lt;br /&gt;
[[File:CubicSDR Main Window.png|alt=CubicSDR Main Window (Annotated)|none|thumb|900x900px|CubicSDR Main Window (Annotated)]]&lt;br /&gt;
The above Figure shows the CubicSDR window, with the spectrum area, frequency selection, and gain settings annotated. Set the frequency to something suitable for your station. For example, if you are setting up a 70cm station, set a frequency of 437 MHz (437000000 Hz). For a 2m station, try 146 MHz.&lt;br /&gt;
Drag the gain slider so that the gain (visible at the bottom of the slider) is set to zero. Then, slowly drag it up until you see the noise floor start to rise. The gain at which this occurs is the gain you should set in SATNOGS_RF_GAIN (Available under the 'Basic' menu in satnogs-setup).&lt;br /&gt;
As an example, the following figure shows the noise floor observed on a station with a RTLSDR and a ~25dB masthead preamplifier, as gain levels on the RTLSDR are increased:&lt;br /&gt;
[[File:RTLSDR Noise Floor Variation with Gain Adjustment.png|alt=RTLSDR Noise Floor Variation with Gain Adjustment|none|thumb|900x900px|RTLSDR Noise Floor Variation with Gain Adjustment]]&lt;br /&gt;
We can see that between 0 db and 20 dB of gain there is essentially no change in the noise floor - this indicates the receive system is limited by the noise figure of the RTLSDR. As the gain increases through 30 dB, the noise floor starts to lift, indicating that we are now most likely limited by either the noise figure of the preamplifier, or the local noise environment. Any increase in gain past this point just results in reduction of the available receiver dynamic range.&lt;br /&gt;
===Hardware Configuration===&lt;br /&gt;
Basic hardware configuration is Antenna &amp;gt; Short coax &amp;gt; LNA &amp;gt; Coax &amp;gt; RTL SDR.&lt;br /&gt;
&lt;br /&gt;
===LNA===&lt;br /&gt;
The way to measure the performance of an antenna is using a figure of merit called the Antenna gain-to-noise-temperature (G/T). It's a positive unitless number, higher the better.&lt;br /&gt;
&lt;br /&gt;
G/T is comprised of antenna gain (in dB) on the top, and the system noise temperature (in Kelvins) on the bottom. There's a lot of somewhat-hard math involved, but here's the bottom line: to make your system perform better, you either need to increase the antenna gain or decrease the system noise temp. [https://en.wikipedia.org/wiki/Antenna_gain-to-noise-temperature Wikipedia]&lt;br /&gt;
&lt;br /&gt;
Increasing the antenna gain is difficult, only because we decided on an omnidirectional antenna as the basis for this How-To. Omnidirectional antennas top out at maybe 7 dB gain or so, and that's just from pushing the radiation pattern up to the sky away from the ground. Any more gain than that and it's not an omni antenna; it's got a direction that the antenna needs to be pointed in. And we want to stay away from pointing antennas for now.&lt;br /&gt;
&lt;br /&gt;
Reducing the system temperature is the the way forward then. The RTL-SDR dongle has a noise figure of [https://network.satnogs.org/stations/edit/ 6dB or so], depending on frequency, which is pretty horrible. But it turns out that the system noise temperature is largely determined by the first device in the receive chain. Since we can't change the antenna, adding a low-noise amplifier helps quite a bit. See this [https://www.youtube.com/watch?v=snifc_x_2sE youtube video] from Adam 9A4QV on how a LNA helps. (Also check out his other videos about the RTL SDR dongle, and SDR in general)&lt;br /&gt;
&lt;br /&gt;
More info on noise and preamps:&lt;br /&gt;
&lt;br /&gt;
*[https://en.wikipedia.org/wiki/Noise_temperature System noise from wikipedia], pretty high-level&lt;br /&gt;
*[https://www.rtl-sdr.com/tutorial-on-properly-positioning-a-preamp-lna-in-a-radio-system/ Where to put an LNA], from rtl-sdr.com&lt;br /&gt;
*[[SPF1589 LNA measurements|SPF5189 LNA measurements]]&lt;br /&gt;
&lt;br /&gt;
===Antenna===&lt;br /&gt;
For testing on the bench, pretty much any antenna will do. Or if you have a whip antenna already outside for repeater work, use that. As I mentioned before, I've successfully used a mag-mount antenna stuck to a cookie sheet, sitting inside my living room window.&lt;br /&gt;
&lt;br /&gt;
Also, remember that some new low emissivity double-pane windows use metal films to keep heat inside. Unfortunately, this also attenuates pretty much all RF signals, see [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5501855/ this article] for more background.&lt;br /&gt;
&lt;br /&gt;
==Testing the station==&lt;br /&gt;
[[File:Pass predictions.png|300px|right]]&lt;br /&gt;
Now that you have the hardware and software up and running, go ahead and schedule some passes. Navigate to your station page, and click on the Schedule button on the right side of some promising passes. The green and red bars beneath the satellite name is a quick visual indication of the number of Good and Bad passes on the network. Unfortunately, this data is not time-stamped at all, so a satellite that had a lot of Good observations a long time ago, but recently died, would still show as Green.&lt;br /&gt;
&lt;br /&gt;
===Rating an Observation===&lt;br /&gt;
[[File:Rating.png|right]]&lt;br /&gt;
After each observatios, you should rate it. More information [https://wiki.satnogs.org/Operation#Rating_observations here], but the bottom line is rate the observation:&lt;br /&gt;
&lt;br /&gt;
*'''Good''' if the satellite is seen in the waterfall at all. The satellite will be a straight line in the middle of the waterfall plot.&lt;br /&gt;
*'''Bad''' if the satellite is not seen.&lt;br /&gt;
*'''Failed''' if there was a problem with the station, such as a mis-configuration, or if the waterfall is missing or a solid color.&lt;br /&gt;
&lt;br /&gt;
For a more detailed guide on testing, see [[Operation]]&lt;br /&gt;
&lt;br /&gt;
===Calibrating frequency offset (PPM)===&lt;br /&gt;
This is not super important for a new station.&lt;br /&gt;
&lt;br /&gt;
==Next Steps==&lt;br /&gt;
Now that you've got this station working on the bench, what's next?&lt;br /&gt;
&lt;br /&gt;
For permanent mast-mounted installation, I would recommend adding:&lt;br /&gt;
&lt;br /&gt;
*[https://www.adafruit.com/product/3785 PoE splitter] - Make sure to get one that actually conforms to the 48-volt IEEE 802.3af standard&lt;br /&gt;
*POE injector for powering station remotely - Again, get a real 48-volt IEEE 802.3af standard&lt;br /&gt;
*Large mast-mounted waterproof box&lt;br /&gt;
*Waterproof cord grips, both to keep out the rain but also spiders and critters&lt;br /&gt;
*Desiccant to keep the humidity down&lt;br /&gt;
*Mastic tape for weatherproofing antenna connectors&lt;br /&gt;
*Better omnidirectional antenna&lt;br /&gt;
&lt;br /&gt;
===Building a Box===&lt;br /&gt;
&lt;br /&gt;
*[https://wiki.satnogs.org/No_rotator No-Rotator setup]&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
*IQ3KU Omnidirectional station [https://www.i3vfj.net/SATNOGS/Satnogs_348_notes.pdf build write-up].&lt;br /&gt;
&lt;br /&gt;
[[ Category:Build ]]&lt;br /&gt;
[[ Category:Hardware ]]&lt;br /&gt;
[[ Category:Antenna ]]&lt;/div&gt;</summary>
		<author><name>Vk5qi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Omnidirectional_Station_How_To&amp;diff=3526</id>
		<title>Omnidirectional Station How To</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Omnidirectional_Station_How_To&amp;diff=3526"/>
		<updated>2020-03-19T13:09:44Z</updated>

		<summary type="html">&lt;p&gt;Vk5qi: Chance SoapySDRServer command to use IPv4 address.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Omnidirectional VHF Turnstile Antenna.jpg|alt=VHF Turnstile Antenna|thumb|VHF Turnstile antenna, [https://network.satnogs.org/stations/23/ SatNOGS Station 23]]]&lt;br /&gt;
This How-To is written to get you quickly receiving satellite data with an Omnidirectional antenna (an antenna that does not move).&lt;br /&gt;
&lt;br /&gt;
==Prerequisites/Background==&lt;br /&gt;
I'm assuming that you are a bit familiar with amateur radio, or linux in general, or you already have a Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
===Expectation Management===&lt;br /&gt;
First off, I'd like to set some expectations around a SatNOGs station with an omnidirectional antenna. Yes, you will be able to hear satellites, Morse code beacons, maybe even some voice contacts on a FM transponder. But for CubeSats with 1 watt transmitters at 9600 baud, it's going to be really difficult to actually decode any data with an omni antenna. You'll definitely see squiggly lines on the waterfall plot, but demodulating the signal and extracting satellite telemetry is going to be pretty difficult.&lt;br /&gt;
&lt;br /&gt;
The only way to get more signal is a better antenna. And a better antenna with more gain is going to be more directional, which means you will need a way to point that antenna at the satellite, and this How-To just got a lot more complicated. So we're not going there.&lt;br /&gt;
&lt;br /&gt;
A better preamp helps a bit, see the LNA section below.&lt;br /&gt;
&lt;br /&gt;
===Hardware Required===&lt;br /&gt;
This is a list of the hardware for indoor/testing purposes:&lt;br /&gt;
&lt;br /&gt;
*Raspberry Pi&lt;br /&gt;
**Power supply + cable (see note below)&lt;br /&gt;
**Up to 16 GB Micro SD card&lt;br /&gt;
**Ethernet cable&lt;br /&gt;
*RTL SDR Blog v3 dongle&lt;br /&gt;
*Various short lengths of coax&lt;br /&gt;
*Preamp/LNA - Or not if your coax is short, see LNA section below&lt;br /&gt;
*Omnidirectional antenna - just a dual mag-mount on a cookie sheet will work OK for stronger satellites&lt;br /&gt;
&lt;br /&gt;
==Setting up the Raspberry Pi==&lt;br /&gt;
I chose the [https://www.raspberrypi.org/products/raspberry-pi-3-model-b/ Raspberry Pi 3 Model B] for my station. &lt;br /&gt;
&lt;br /&gt;
===Downloading/Writing the SD image===&lt;br /&gt;
The SatNOGS team has done a great job creating a Raspbian image with all the required software. Simply navigate over to the [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/tags latest tag on Gitlab], and click on the &amp;quot;Zipped image&amp;quot; link under the latest tag. It's about 650 MBytes.&lt;br /&gt;
&lt;br /&gt;
For linux:&lt;br /&gt;
&lt;br /&gt;
#Unzip the downloaded file: '''unzip image_2018-08-03-Raspbian-SatNOGS-lite.zip'''&lt;br /&gt;
#Figure out which device is the SD card. SD cards are usually start with mmcblk. '''sudo lsblk'''&lt;br /&gt;
#Write the image. This will take a while. Make sure you don't overwrite your host OS: '''sudo dd if=2018-08-03-Raspbian-SatNOGS-lite.img of=/dev/mmcblk0'''&lt;br /&gt;
&lt;br /&gt;
===Power notes===&lt;br /&gt;
Thinking I could save a few bucks, I used a no-name generic 2.4 amp &amp;quot;tablet&amp;quot; USB power supply I got as a freebie, and a micro-USB cable I use for charging my phone. What a mistake! The Micro-USB cable wire gauge was too small, so there was too much voltage drop on the cable, so the Raspberry Pi reported power problems every time it was doing anything.&lt;br /&gt;
&lt;br /&gt;
Power problems are indicated by either a lightning bolt in the upper right of the monitor, or the red power LED flashes on the board itself. If The Raspberry Pi processor itself is pretty forgiving of power droops because it runs at 3.3 volts. But the 5v USB ports are directly tied to input power, so undervoltage conditions will cause problems for USB devices, such as the RTL SDR dongle.&lt;br /&gt;
&lt;br /&gt;
==Software Configuration==&lt;br /&gt;
&lt;br /&gt;
===Creating a SatNOGS Network account===&lt;br /&gt;
There are several different websites to be aware of and sign in to. As of 12/2018, most of our websites use a unified login provided by Auth0, so when you create an account on one of these sites it will work across the others as well:&lt;br /&gt;
&lt;br /&gt;
*Required: [https://network.satnogs.org/ Network]: for registering your station and adding data to the network.&lt;br /&gt;
*Recommended: [https://community.libre.space Forums]: for asking questions.&lt;br /&gt;
*Optional: [https://db.satnogs.org/ Database]: Only if you want to add satellites/modes. Not necessary for receiving satellite data.&lt;br /&gt;
&lt;br /&gt;
===Registering the station===&lt;br /&gt;
Log in to your Network account, and click the &amp;quot;+ Add Ground Station&amp;quot; button, or click [https://network.satnogs.org/stations/edit/ here] Fill out the short form, and your station will be added to the database. For &amp;quot;Antenna&amp;quot;, pick something that encompasses the frequency range of your antenna. For wideband reception, use VHF Discone 26-1200 MHz.&lt;br /&gt;
&lt;br /&gt;
The important info you'll need later on is the Station ID number, lat/lon/altitiude. I would also use a Minimum Horizon of 30 degrees or so, this will keep your station from allowing low-elevation passes to be scheduled. Make sure to keep the &amp;quot;Testing&amp;quot; flag checked, as this lets people know that your station isn't quite ready for real use.&lt;br /&gt;
&lt;br /&gt;
===Booting and Configuring Raspbian===&lt;br /&gt;
After you have the image burned onto a Micro-SD card, boot it! I would recommend hooking up a keyboard and HDMI monitor, you can watch the boot process. If it doesn't boot at all, double check that you wrote the SatNOGS Raspbian image correctly.&lt;br /&gt;
&lt;br /&gt;
After a successful boot, log in with username '''pi''' and password '''raspberry'''&lt;br /&gt;
&lt;br /&gt;
#Change your password! '''passwd'''&lt;br /&gt;
#Run '''sudo raspi-config''' to set up the base OS. ''Tab'' switches between the options and ''select''.&lt;br /&gt;
##4 Localisation Options: I1 Change Locale: en_US.UTF-8 UTF-8&lt;br /&gt;
##4 Localisation Options: I2 Change Timezone: None of the above: UTC&lt;br /&gt;
##4 Localisation Options: I3 Change Keyboard Layout:&lt;br /&gt;
##7 Advanced Options: A1 Expand Filesystem &amp;lt;br /&amp;gt;This will expand the ~2GB Micro-SD card partition to fill the entire SD card.&lt;br /&gt;
&lt;br /&gt;
The Raspberry Pi needs to reboot to expand the filesystem, so do this now. It might take a while. '''sudo reboot''&lt;br /&gt;
&lt;br /&gt;
====Disabling WiFi and Bluetooth====&lt;br /&gt;
To disable WiFi and Bluetooth, edit the /boot/config.txt file, and add the following lines at the bottom:&lt;br /&gt;
 # Disable WiFi and bluetooth&lt;br /&gt;
 dtoverlay=pi3-disable-wifi&lt;br /&gt;
 dtoverlay=pi3-disable-bt&lt;br /&gt;
&lt;br /&gt;
Then reboot again. To make sure that it worked, run '''ifconfig''' and make sure that ''wlan0'' isn't listed. I'm not sure how to tell if bluetooth is turned off.&lt;br /&gt;
&lt;br /&gt;
====Additional software====&lt;br /&gt;
I like to install this additional software with '''sudo apt install bmon''' ...&lt;br /&gt;
&lt;br /&gt;
*bmon - a graphical network usage analyzer.&lt;br /&gt;
*vnstat - keeps track of your bandwidth usage&lt;br /&gt;
*vim - the world's best text editor ;)&lt;br /&gt;
*irssi - a terminal IRC client, for chatting on the #satnogs IRC channel&lt;br /&gt;
&lt;br /&gt;
If you can't tell by now, I'm always a big fan of rebooting. It certainly doesn't take that long... '''sudo reboot'''&lt;br /&gt;
&lt;br /&gt;
===Configuring the satnogs-client===&lt;br /&gt;
Once you have the base Raspbian Strech OS installed, updated, and looking good, you can configure SatNOGS. Plug in your RTL SDR if you haven't already.&lt;br /&gt;
&lt;br /&gt;
First thing to do is update the satnogs-setup program. Run '''sudo satnogs-setup'''. This will probably take a while, then '''Update''', which will also take a while. Per usual, after the update I like to reboot the raspberry pi just to make sure everything was updated and is actually running the new code.&lt;br /&gt;
&lt;br /&gt;
====Basic Configuration====&lt;br /&gt;
Then the actual configuration of the station:&lt;br /&gt;
&lt;br /&gt;
#Run '''sudo satnogs-setup''' again.&lt;br /&gt;
#Use the up/down and TAB keys to navigate, and Enter to select an option.&lt;br /&gt;
#Basic Configuration:&lt;br /&gt;
##SATNOGS_API_TOKEN: After logging in to network.satnogs.org, this is in the upper right under &amp;quot;API Key&amp;quot;&lt;br /&gt;
##SATNOGS_SOAPY_RX_DEVICE: device=rtlsdr&lt;br /&gt;
##SATNOGS_RX_SAMP_RATE: 2.048e6&lt;br /&gt;
##SATNOGS_RX_GAIN: Refer &amp;quot;Setting the gain&amp;quot; section below.&lt;br /&gt;
##SATNOGS_STATION_ELEV: station elevation in meters&lt;br /&gt;
##SATNOGS_STATION_ID: The ID number of your station.&lt;br /&gt;
##SATNOGS_STATION_LAT and LON: Latitude and Longitude in decimal degrees&lt;br /&gt;
&lt;br /&gt;
Then back to the main menu and ''Apply'' to save the configuration. Ansible will run and update the system. If you want to quit, just keep pressing cancel to exit.&lt;br /&gt;
&lt;br /&gt;
====Setting the gain====&lt;br /&gt;
The next step is to set the gain on the RTL SDR. The aim here (in the majority of cases) is to set the gain of your station to maximise sensitivity (best noise figure), but without limiting the available dynamic range of your station due to your local noise floor. This can be achieved in a fairly simple manner, by watching the level of the receivers noise floor as you slowly increase the receiver gain. At some point the noise floor will start to rise - at this point increasing the gain any further will of no use - you will only increase the noise level, and eat into your receiver's available dynamic range (for a RTLSDR, theoretically only 48 dB).&lt;br /&gt;
&lt;br /&gt;
There may be situations where strong local interferers may require the use of a lower gain setting to avoid intermodulation products appearing in the passband, though these cases would be better solved with a suitable bandpass filter somewhere in the receive chain.&lt;br /&gt;
&lt;br /&gt;
First, it is good to know the available gain range of your SDR. This can be accomplished by running &amp;lt;code&amp;gt;SoapySDRUtil --probe&amp;lt;/code&amp;gt;, which provides a considerable amount of information about the connected SDR:&lt;br /&gt;
 pi@satnogs:~ $ SoapySDRUtil --probe&lt;br /&gt;
 ######################################################&lt;br /&gt;
 ## Soapy SDR -- the SDR abstraction library&lt;br /&gt;
 ######################################################&lt;br /&gt;
 &lt;br /&gt;
 Probe device&lt;br /&gt;
 &lt;br /&gt;
 Found Rafael Micro R820T tuner&lt;br /&gt;
 [INFO] [UHD] linux; GNU C++ version 8.2.0; Boost_106700; UHD_3.13.1.0-3&lt;br /&gt;
 Found Rafael Micro R820T tuner&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 -- Device identification&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
   driver=RTLSDR&lt;br /&gt;
   hardware=RTLSDR&lt;br /&gt;
   origin=&amp;lt;nowiki&amp;gt;https://github.com/pothosware/SoapyRTLSDR&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   rtl=0&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 -- Peripheral summary&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
   Channels: 1 Rx, 0 Tx&lt;br /&gt;
   Timestamps: NO&lt;br /&gt;
   Other Settings:&lt;br /&gt;
      * Direct Sampling - RTL-SDR Direct Sampling Mode&lt;br /&gt;
        [key=direct_samp, default=0, type=string, options=(0, 1, 2)]&lt;br /&gt;
      * Offset Tune - RTL-SDR Offset Tuning Mode&lt;br /&gt;
        [key=offset_tune, default=false, type=bool]&lt;br /&gt;
      * I/Q Swap - RTL-SDR I/Q Swap Mode&lt;br /&gt;
        [key=iq_swap, default=false, type=bool]&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 -- RX Channel 0&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
   Full-duplex: YES&lt;br /&gt;
   Supports AGC: YES&lt;br /&gt;
   Stream formats: CS8, CS16, CF32&lt;br /&gt;
   Native format: CS8 [full-scale=128]&lt;br /&gt;
   Stream args:&lt;br /&gt;
      * Buffer Size - Number of bytes per buffer, multiples of 512 only.&lt;br /&gt;
        [key=bufflen, units=bytes, default=262144, type=int]&lt;br /&gt;
      * Ring buffers - Number of buffers in the ring.&lt;br /&gt;
        [key=buffers, units=buffers, default=15, type=int]&lt;br /&gt;
      * Async buffers - Number of async usb buffers (advanced).&lt;br /&gt;
        [key=asyncBuffs, units=buffers, default=0, type=int]&lt;br /&gt;
   Antennas: RX&lt;br /&gt;
   Full gain range: [0, 49.6] dB&lt;br /&gt;
     TUNER gain range: [0, 49.6] dB&lt;br /&gt;
   Full freq range: [23.999, 1764] MHz&lt;br /&gt;
     RF freq range: [24, 1764] MHz&lt;br /&gt;
     CORR freq range: [-0.001, 0.001] MHz&lt;br /&gt;
   Sample rates: 0.25, 1.024, 1.536, 1.792, 1.92, 2.048, 2.16, 2.56, 2.88, 3.2 MSps&lt;br /&gt;
The above output is for a RTLSDR, and we can see that there is information on the 'Full gain range', and 'TUNER' gain. The Full gain setting is an 'abstracted' gain range, which in this case just directly links to the 'TUNER' gain, as that is the only gain setting presented by the RTLSDR driver. Other SDRs (e.g. AirSpy) may present more gain controls. Anyway, we can see that the gain range is 0 through 49.6 dB. It's quite possible that there are only discrete gain steps within this range (and this is very true for the RTLSDR), but SoapySDR will hide that from us and automatically use the nearest valid setting.&lt;br /&gt;
&lt;br /&gt;
Next up, we want a way of seeing a live spectrum from the SDR. This might be difficult, especially if you're just gone and mounted a RTLSDR in a metal box up a pole! Well, SoapySDR comes to the rescue again with SoapySDR Server - this allows us to serve up the SDR on the network, and access it with a client.&lt;br /&gt;
&lt;br /&gt;
Note: SoapySDR Server is not currently installed by default. It can be installed by running the commands:&lt;br /&gt;
 $ sudo apt-get install soapyremote-server&lt;br /&gt;
 $ sudo systemctl stop SoapySDRServer&lt;br /&gt;
 $ sudo systemctl disable SoapySDRServer&lt;br /&gt;
[https://cubicsdr.com/ CubicSDR] is a good cross-platform client that can connect to a SoapySDR Server, and you can [https://github.com/cjcliffe/CubicSDR/releases download the latest release by clicking here]. &lt;br /&gt;
On the RPi, you can start SoapySDR Server by running: &amp;lt;code&amp;gt;SoapySDRServer --bind=&amp;quot;0.0.0.0:55132&amp;quot;&amp;lt;/code&amp;gt;  Leave this running. &lt;br /&gt;
&lt;br /&gt;
Open up CubicSDR on another computer, on the same network as your SatNOGS station. It will pop up a window asking you to select a SDR device. With any luck, it will have auto-detected your SoapySDR Server, and it will show up in the 'Local Net' list. If not, you will need to select 'Remote', click 'Add', and then enter the IP address of your station. You should then have a SDR showing up in the list.&lt;br /&gt;
[[File:Screen Shot 2020-03-19 at 10.41.52 pm.png|alt=CubicSDR SDR Devices List|none|thumb|600x600px|CubicSDR SDR Devices List]]&lt;br /&gt;
You should now be able to click 'Start', and end up with a waterfall display. If the waterfall appears to glitch, or show a 'lumpy' pattern near the centre of the display, then this indicates packet loss between the SatNOGS station and your client. Try and connect via a direct LAN connection if possible. &lt;br /&gt;
In the settings menu of CubicSDR, disable &amp;quot;Automatic Gain&amp;quot; if it is set. This will allow manual control over the gain settings via sliders that will show up at the top left of the window.&lt;br /&gt;
[[File:CubicSDR Main Window.png|alt=CubicSDR Main Window (Annotated)|none|thumb|900x900px|CubicSDR Main Window (Annotated)]]&lt;br /&gt;
The above Figure shows the CubicSDR window, with the spectrum area, frequency selection, and gain settings annotated. Set the frequency to something suitable for your station. For example, if you are setting up a 70cm station, set a frequency of 437 MHz (437000000 Hz). For a 2m station, try 146 MHz.&lt;br /&gt;
Drag the gain slider so that the gain (visible at the bottom of the slider) is set to zero. Then, slowly drag it up until you see the noise floor start to rise. The gain at which this occurs is the gain you should set in SATNOGS_RF_GAIN (Available under the 'Basic' menu in satnogs-setup).&lt;br /&gt;
As an example, the following figure shows the noise floor observed on a station with a RTLSDR and a ~25dB masthead preamplifier, as gain levels on the RTLSDR are increased:&lt;br /&gt;
[[File:RTLSDR Noise Floor Variation with Gain Adjustment.png|alt=RTLSDR Noise Floor Variation with Gain Adjustment|none|thumb|900x900px|RTLSDR Noise Floor Variation with Gain Adjustment]]&lt;br /&gt;
We can see that between 0 db and 20 dB of gain there is essentially no change in the noise floor - this indicates the receive system is limited by the noise figure of the RTLSDR. As the gain increases through 30 dB, the noise floor starts to lift, indicating that we are now most likely limited by either the noise figure of the preamplifier, or the local noise environment. Any increase in gain past this point just results in reduction of the available receiver dynamic range.&lt;br /&gt;
===Hardware Configuration===&lt;br /&gt;
Basic hardware configuration is Antenna &amp;gt; Short coax &amp;gt; LNA &amp;gt; Coax &amp;gt; RTL SDR.&lt;br /&gt;
&lt;br /&gt;
===LNA===&lt;br /&gt;
The way to measure the performance of an antenna is using a figure of merit called the Antenna gain-to-noise-temperature (G/T). It's a positive unitless number, higher the better.&lt;br /&gt;
&lt;br /&gt;
G/T is comprised of antenna gain (in dB) on the top, and the system noise temperature (in Kelvins) on the bottom. There's a lot of somewhat-hard math involved, but here's the bottom line: to make your system perform better, you either need to increase the antenna gain or decrease the system noise temp. [https://en.wikipedia.org/wiki/Antenna_gain-to-noise-temperature Wikipedia]&lt;br /&gt;
&lt;br /&gt;
Increasing the antenna gain is difficult, only because we decided on an omnidirectional antenna as the basis for this How-To. Omnidirectional antennas top out at maybe 7 dB gain or so, and that's just from pushing the radiation pattern up to the sky away from the ground. Any more gain than that and it's not an omni antenna; it's got a direction that the antenna needs to be pointed in. And we want to stay away from pointing antennas for now.&lt;br /&gt;
&lt;br /&gt;
Reducing the system temperature is the the way forward then. The RTL-SDR dongle has a noise figure of [https://network.satnogs.org/stations/edit/ 6dB or so], depending on frequency, which is pretty horrible. But it turns out that the system noise temperature is largely determined by the first device in the receive chain. Since we can't change the antenna, adding a low-noise amplifier helps quite a bit. See this [https://www.youtube.com/watch?v=snifc_x_2sE youtube video] from Adam 9A4QV on how a LNA helps. (Also check out his other videos about the RTL SDR dongle, and SDR in general)&lt;br /&gt;
&lt;br /&gt;
More info on noise and preamps:&lt;br /&gt;
&lt;br /&gt;
*[https://en.wikipedia.org/wiki/Noise_temperature System noise from wikipedia], pretty high-level&lt;br /&gt;
*[https://www.rtl-sdr.com/tutorial-on-properly-positioning-a-preamp-lna-in-a-radio-system/ Where to put an LNA], from rtl-sdr.com&lt;br /&gt;
*[[SPF1589 LNA measurements|SPF5189 LNA measurements]]&lt;br /&gt;
&lt;br /&gt;
===Antenna===&lt;br /&gt;
For testing on the bench, pretty much any antenna will do. Or if you have a whip antenna already outside for repeater work, use that. As I mentioned before, I've successfully used a mag-mount antenna stuck to a cookie sheet, sitting inside my living room window.&lt;br /&gt;
&lt;br /&gt;
Also, remember that some new low emissivity double-pane windows use metal films to keep heat inside. Unfortunately, this also attenuates pretty much all RF signals, see [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5501855/ this article] for more background.&lt;br /&gt;
&lt;br /&gt;
==Testing the station==&lt;br /&gt;
[[File:Pass predictions.png|300px|right]]&lt;br /&gt;
Now that you have the hardware and software up and running, go ahead and schedule some passes. Navigate to your station page, and click on the Schedule button on the right side of some promising passes. The green and red bars beneath the satellite name is a quick visual indication of the number of Good and Bad passes on the network. Unfortunately, this data is not time-stamped at all, so a satellite that had a lot of Good observations a long time ago, but recently died, would still show as Green.&lt;br /&gt;
&lt;br /&gt;
===Rating an Observation===&lt;br /&gt;
[[File:Rating.png|right]]&lt;br /&gt;
After each observatios, you should rate it. More information [https://wiki.satnogs.org/Operation#Rating_observations here], but the bottom line is rate the observation:&lt;br /&gt;
&lt;br /&gt;
*'''Good''' if the satellite is seen in the waterfall at all. The satellite will be a straight line in the middle of the waterfall plot.&lt;br /&gt;
*'''Bad''' if the satellite is not seen.&lt;br /&gt;
*'''Failed''' if there was a problem with the station, such as a mis-configuration, or if the waterfall is missing or a solid color.&lt;br /&gt;
&lt;br /&gt;
For a more detailed guide on testing, see [[Operation]]&lt;br /&gt;
&lt;br /&gt;
===Calibrating frequency offset (PPM)===&lt;br /&gt;
This is not super important for a new station.&lt;br /&gt;
&lt;br /&gt;
==Next Steps==&lt;br /&gt;
Now that you've got this station working on the bench, what's next?&lt;br /&gt;
&lt;br /&gt;
For permanent mast-mounted installation, I would recommend adding:&lt;br /&gt;
&lt;br /&gt;
*[https://www.adafruit.com/product/3785 PoE splitter] - Make sure to get one that actually conforms to the 48-volt IEEE 802.3af standard&lt;br /&gt;
*POE injector for powering station remotely - Again, get a real 48-volt IEEE 802.3af standard&lt;br /&gt;
*Large mast-mounted waterproof box&lt;br /&gt;
*Waterproof cord grips, both to keep out the rain but also spiders and critters&lt;br /&gt;
*Desiccant to keep the humidity down&lt;br /&gt;
*Mastic tape for weatherproofing antenna connectors&lt;br /&gt;
*Better omnidirectional antenna&lt;br /&gt;
&lt;br /&gt;
===Building a Box===&lt;br /&gt;
&lt;br /&gt;
*[https://wiki.satnogs.org/No_rotator No-Rotator setup]&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
*IQ3KU Omnidirectional station [https://www.i3vfj.net/SATNOGS/Satnogs_348_notes.pdf build write-up].&lt;br /&gt;
&lt;br /&gt;
[[ Category:Build ]]&lt;br /&gt;
[[ Category:Hardware ]]&lt;br /&gt;
[[ Category:Antenna ]]&lt;/div&gt;</summary>
		<author><name>Vk5qi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Omnidirectional_Station_How_To&amp;diff=3525</id>
		<title>Omnidirectional Station How To</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Omnidirectional_Station_How_To&amp;diff=3525"/>
		<updated>2020-03-19T13:04:41Z</updated>

		<summary type="html">&lt;p&gt;Vk5qi: Minor updates for better compatibility with recent client.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Omnidirectional VHF Turnstile Antenna.jpg|alt=VHF Turnstile Antenna|thumb|VHF Turnstile antenna, [https://network.satnogs.org/stations/23/ SatNOGS Station 23]]]&lt;br /&gt;
This How-To is written to get you quickly receiving satellite data with an Omnidirectional antenna (an antenna that does not move).&lt;br /&gt;
&lt;br /&gt;
==Prerequisites/Background==&lt;br /&gt;
I'm assuming that you are a bit familiar with amateur radio, or linux in general, or you already have a Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
===Expectation Management===&lt;br /&gt;
First off, I'd like to set some expectations around a SatNOGs station with an omnidirectional antenna. Yes, you will be able to hear satellites, Morse code beacons, maybe even some voice contacts on a FM transponder. But for CubeSats with 1 watt transmitters at 9600 baud, it's going to be really difficult to actually decode any data with an omni antenna. You'll definitely see squiggly lines on the waterfall plot, but demodulating the signal and extracting satellite telemetry is going to be pretty difficult.&lt;br /&gt;
&lt;br /&gt;
The only way to get more signal is a better antenna. And a better antenna with more gain is going to be more directional, which means you will need a way to point that antenna at the satellite, and this How-To just got a lot more complicated. So we're not going there.&lt;br /&gt;
&lt;br /&gt;
A better preamp helps a bit, see the LNA section below.&lt;br /&gt;
&lt;br /&gt;
===Hardware Required===&lt;br /&gt;
This is a list of the hardware for indoor/testing purposes:&lt;br /&gt;
&lt;br /&gt;
*Raspberry Pi&lt;br /&gt;
**Power supply + cable (see note below)&lt;br /&gt;
**Up to 16 GB Micro SD card&lt;br /&gt;
**Ethernet cable&lt;br /&gt;
*RTL SDR Blog v3 dongle&lt;br /&gt;
*Various short lengths of coax&lt;br /&gt;
*Preamp/LNA - Or not if your coax is short, see LNA section below&lt;br /&gt;
*Omnidirectional antenna - just a dual mag-mount on a cookie sheet will work OK for stronger satellites&lt;br /&gt;
&lt;br /&gt;
==Setting up the Raspberry Pi==&lt;br /&gt;
I chose the [https://www.raspberrypi.org/products/raspberry-pi-3-model-b/ Raspberry Pi 3 Model B] for my station. &lt;br /&gt;
&lt;br /&gt;
===Downloading/Writing the SD image===&lt;br /&gt;
The SatNOGS team has done a great job creating a Raspbian image with all the required software. Simply navigate over to the [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/tags latest tag on Gitlab], and click on the &amp;quot;Zipped image&amp;quot; link under the latest tag. It's about 650 MBytes.&lt;br /&gt;
&lt;br /&gt;
For linux:&lt;br /&gt;
&lt;br /&gt;
#Unzip the downloaded file: '''unzip image_2018-08-03-Raspbian-SatNOGS-lite.zip'''&lt;br /&gt;
#Figure out which device is the SD card. SD cards are usually start with mmcblk. '''sudo lsblk'''&lt;br /&gt;
#Write the image. This will take a while. Make sure you don't overwrite your host OS: '''sudo dd if=2018-08-03-Raspbian-SatNOGS-lite.img of=/dev/mmcblk0'''&lt;br /&gt;
&lt;br /&gt;
===Power notes===&lt;br /&gt;
Thinking I could save a few bucks, I used a no-name generic 2.4 amp &amp;quot;tablet&amp;quot; USB power supply I got as a freebie, and a micro-USB cable I use for charging my phone. What a mistake! The Micro-USB cable wire gauge was too small, so there was too much voltage drop on the cable, so the Raspberry Pi reported power problems every time it was doing anything.&lt;br /&gt;
&lt;br /&gt;
Power problems are indicated by either a lightning bolt in the upper right of the monitor, or the red power LED flashes on the board itself. If The Raspberry Pi processor itself is pretty forgiving of power droops because it runs at 3.3 volts. But the 5v USB ports are directly tied to input power, so undervoltage conditions will cause problems for USB devices, such as the RTL SDR dongle.&lt;br /&gt;
&lt;br /&gt;
==Software Configuration==&lt;br /&gt;
&lt;br /&gt;
===Creating a SatNOGS Network account===&lt;br /&gt;
There are several different websites to be aware of and sign in to. As of 12/2018, most of our websites use a unified login provided by Auth0, so when you create an account on one of these sites it will work across the others as well:&lt;br /&gt;
&lt;br /&gt;
*Required: [https://network.satnogs.org/ Network]: for registering your station and adding data to the network.&lt;br /&gt;
*Recommended: [https://community.libre.space Forums]: for asking questions.&lt;br /&gt;
*Optional: [https://db.satnogs.org/ Database]: Only if you want to add satellites/modes. Not necessary for receiving satellite data.&lt;br /&gt;
&lt;br /&gt;
===Registering the station===&lt;br /&gt;
Log in to your Network account, and click the &amp;quot;+ Add Ground Station&amp;quot; button, or click [https://network.satnogs.org/stations/edit/ here] Fill out the short form, and your station will be added to the database. For &amp;quot;Antenna&amp;quot;, pick something that encompasses the frequency range of your antenna. For wideband reception, use VHF Discone 26-1200 MHz.&lt;br /&gt;
&lt;br /&gt;
The important info you'll need later on is the Station ID number, lat/lon/altitiude. I would also use a Minimum Horizon of 30 degrees or so, this will keep your station from allowing low-elevation passes to be scheduled. Make sure to keep the &amp;quot;Testing&amp;quot; flag checked, as this lets people know that your station isn't quite ready for real use.&lt;br /&gt;
&lt;br /&gt;
===Booting and Configuring Raspbian===&lt;br /&gt;
After you have the image burned onto a Micro-SD card, boot it! I would recommend hooking up a keyboard and HDMI monitor, you can watch the boot process. If it doesn't boot at all, double check that you wrote the SatNOGS Raspbian image correctly.&lt;br /&gt;
&lt;br /&gt;
After a successful boot, log in with username '''pi''' and password '''raspberry'''&lt;br /&gt;
&lt;br /&gt;
#Change your password! '''passwd'''&lt;br /&gt;
#Run '''sudo raspi-config''' to set up the base OS. ''Tab'' switches between the options and ''select''.&lt;br /&gt;
##4 Localisation Options: I1 Change Locale: en_US.UTF-8 UTF-8&lt;br /&gt;
##4 Localisation Options: I2 Change Timezone: None of the above: UTC&lt;br /&gt;
##4 Localisation Options: I3 Change Keyboard Layout:&lt;br /&gt;
##7 Advanced Options: A1 Expand Filesystem &amp;lt;br /&amp;gt;This will expand the ~2GB Micro-SD card partition to fill the entire SD card.&lt;br /&gt;
&lt;br /&gt;
The Raspberry Pi needs to reboot to expand the filesystem, so do this now. It might take a while. '''sudo reboot''&lt;br /&gt;
&lt;br /&gt;
====Disabling WiFi and Bluetooth====&lt;br /&gt;
To disable WiFi and Bluetooth, edit the /boot/config.txt file, and add the following lines at the bottom:&lt;br /&gt;
 # Disable WiFi and bluetooth&lt;br /&gt;
 dtoverlay=pi3-disable-wifi&lt;br /&gt;
 dtoverlay=pi3-disable-bt&lt;br /&gt;
&lt;br /&gt;
Then reboot again. To make sure that it worked, run '''ifconfig''' and make sure that ''wlan0'' isn't listed. I'm not sure how to tell if bluetooth is turned off.&lt;br /&gt;
&lt;br /&gt;
====Additional software====&lt;br /&gt;
I like to install this additional software with '''sudo apt install bmon''' ...&lt;br /&gt;
&lt;br /&gt;
*bmon - a graphical network usage analyzer.&lt;br /&gt;
*vnstat - keeps track of your bandwidth usage&lt;br /&gt;
*vim - the world's best text editor ;)&lt;br /&gt;
*irssi - a terminal IRC client, for chatting on the #satnogs IRC channel&lt;br /&gt;
&lt;br /&gt;
If you can't tell by now, I'm always a big fan of rebooting. It certainly doesn't take that long... '''sudo reboot'''&lt;br /&gt;
&lt;br /&gt;
===Configuring the satnogs-client===&lt;br /&gt;
Once you have the base Raspbian Strech OS installed, updated, and looking good, you can configure SatNOGS. Plug in your RTL SDR if you haven't already.&lt;br /&gt;
&lt;br /&gt;
First thing to do is update the satnogs-setup program. Run '''sudo satnogs-setup'''. This will probably take a while, then '''Update''', which will also take a while. Per usual, after the update I like to reboot the raspberry pi just to make sure everything was updated and is actually running the new code.&lt;br /&gt;
&lt;br /&gt;
====Basic Configuration====&lt;br /&gt;
Then the actual configuration of the station:&lt;br /&gt;
&lt;br /&gt;
#Run '''sudo satnogs-setup''' again.&lt;br /&gt;
#Use the up/down and TAB keys to navigate, and Enter to select an option.&lt;br /&gt;
#Basic Configuration:&lt;br /&gt;
##SATNOGS_API_TOKEN: After logging in to network.satnogs.org, this is in the upper right under &amp;quot;API Key&amp;quot;&lt;br /&gt;
##SATNOGS_SOAPY_RX_DEVICE: device=rtlsdr&lt;br /&gt;
##SATNOGS_RX_SAMP_RATE: 2.048e6&lt;br /&gt;
##SATNOGS_RX_GAIN: Refer &amp;quot;Setting the gain&amp;quot; section below.&lt;br /&gt;
##SATNOGS_STATION_ELEV: station elevation in meters&lt;br /&gt;
##SATNOGS_STATION_ID: The ID number of your station. &lt;br /&gt;
##SATNOGS_STATION_LAT and LON: Latitude and Longitude in decimal degrees&lt;br /&gt;
&lt;br /&gt;
Then back to the main menu and ''Apply'' to save the configuration. Ansible will run and update the system. If you want to quit, just keep pressing cancel to exit.&lt;br /&gt;
&lt;br /&gt;
====Setting the gain====&lt;br /&gt;
The next step is to set the gain on the RTL SDR. The aim here (in the majority of cases) is to set the gain of your station to maximise sensitivity (best noise figure), but without limiting the available dynamic range of your station due to your local noise floor. This can be achieved in a fairly simple manner, by watching the level of the receivers noise floor as you slowly increase the receiver gain. At some point the noise floor will start to rise - at this point increasing the gain any further will of no use - you will only increase the noise level, and eat into your receiver's available dynamic range (for a RTLSDR, theoretically only 48 dB).&lt;br /&gt;
&lt;br /&gt;
There may be situations where strong local interferers may require the use of a lower gain setting to avoid intermodulation products appearing in the passband, though these cases would be better solved with a suitable bandpass filter somewhere in the receive chain.&lt;br /&gt;
&lt;br /&gt;
First, it is good to know the available gain range of your SDR. This can be accomplished by running &amp;lt;code&amp;gt;SoapySDRUtil --probe&amp;lt;/code&amp;gt;, which provides a considerable amount of information about the connected SDR:&lt;br /&gt;
 pi@satnogs:~ $ SoapySDRUtil --probe&lt;br /&gt;
 ######################################################&lt;br /&gt;
 ## Soapy SDR -- the SDR abstraction library&lt;br /&gt;
 ######################################################&lt;br /&gt;
 &lt;br /&gt;
 Probe device&lt;br /&gt;
 &lt;br /&gt;
 Found Rafael Micro R820T tuner&lt;br /&gt;
 [INFO] [UHD] linux; GNU C++ version 8.2.0; Boost_106700; UHD_3.13.1.0-3&lt;br /&gt;
 Found Rafael Micro R820T tuner&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 -- Device identification&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
   driver=RTLSDR&lt;br /&gt;
   hardware=RTLSDR&lt;br /&gt;
   origin=&amp;lt;nowiki&amp;gt;https://github.com/pothosware/SoapyRTLSDR&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   rtl=0&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 -- Peripheral summary&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
   Channels: 1 Rx, 0 Tx&lt;br /&gt;
   Timestamps: NO&lt;br /&gt;
   Other Settings:&lt;br /&gt;
      * Direct Sampling - RTL-SDR Direct Sampling Mode&lt;br /&gt;
        [key=direct_samp, default=0, type=string, options=(0, 1, 2)]&lt;br /&gt;
      * Offset Tune - RTL-SDR Offset Tuning Mode&lt;br /&gt;
        [key=offset_tune, default=false, type=bool]&lt;br /&gt;
      * I/Q Swap - RTL-SDR I/Q Swap Mode&lt;br /&gt;
        [key=iq_swap, default=false, type=bool]&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 -- RX Channel 0&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
   Full-duplex: YES&lt;br /&gt;
   Supports AGC: YES&lt;br /&gt;
   Stream formats: CS8, CS16, CF32&lt;br /&gt;
   Native format: CS8 [full-scale=128]&lt;br /&gt;
   Stream args:&lt;br /&gt;
      * Buffer Size - Number of bytes per buffer, multiples of 512 only.&lt;br /&gt;
        [key=bufflen, units=bytes, default=262144, type=int]&lt;br /&gt;
      * Ring buffers - Number of buffers in the ring.&lt;br /&gt;
        [key=buffers, units=buffers, default=15, type=int]&lt;br /&gt;
      * Async buffers - Number of async usb buffers (advanced).&lt;br /&gt;
        [key=asyncBuffs, units=buffers, default=0, type=int]&lt;br /&gt;
   Antennas: RX&lt;br /&gt;
   Full gain range: [0, 49.6] dB&lt;br /&gt;
     TUNER gain range: [0, 49.6] dB&lt;br /&gt;
   Full freq range: [23.999, 1764] MHz&lt;br /&gt;
     RF freq range: [24, 1764] MHz&lt;br /&gt;
     CORR freq range: [-0.001, 0.001] MHz&lt;br /&gt;
   Sample rates: 0.25, 1.024, 1.536, 1.792, 1.92, 2.048, 2.16, 2.56, 2.88, 3.2 MSps&lt;br /&gt;
The above output is for a RTLSDR, and we can see that there is information on the 'Full gain range', and 'TUNER' gain. The Full gain setting is an 'abstracted' gain range, which in this case just directly links to the 'TUNER' gain, as that is the only gain setting presented by the RTLSDR driver. Other SDRs (e.g. AirSpy) may present more gain controls. Anyway, we can see that the gain range is 0 through 49.6 dB. It's quite possible that there are only discrete gain steps within this range (and this is very true for the RTLSDR), but SoapySDR will hide that from us and automatically use the nearest valid setting.&lt;br /&gt;
&lt;br /&gt;
Next up, we want a way of seeing a live spectrum from the SDR. This might be difficult, especially if you're just gone and mounted a RTLSDR in a metal box up a pole! Well, SoapySDR comes to the rescue again with SoapySDR Server - this allows us to serve up the SDR on the network, and access it with a client.&lt;br /&gt;
&lt;br /&gt;
Note: SoapySDR Server is not currently installed by default. It can be installed by running the commands:&lt;br /&gt;
 $ sudo apt-get install soapyremote-server&lt;br /&gt;
 $ sudo systemctl stop SoapySDRServer&lt;br /&gt;
 $ sudo systemctl disable SoapySDRServer&lt;br /&gt;
[https://cubicsdr.com/ CubicSDR] is a good cross-platform client that can connect to a SoapySDR Server, and you can [https://github.com/cjcliffe/CubicSDR/releases download the latest release by clicking here]. &lt;br /&gt;
On the RPi, you can start SoapySDR Server by running: &amp;lt;code&amp;gt;SoapySDRServer --bind&amp;lt;/code&amp;gt;  Leave this running. &lt;br /&gt;
&lt;br /&gt;
Open up CubicSDR on another computer, on the same network as your SatNOGS station. It will pop up a window asking you to select a SDR device. With any luck, it will have auto-detected your SoapySDR Server, and it will show up in the 'Local Net' list. If not, you will need to select 'Remote', click 'Add', and then enter the IP address of your station. You should then have a SDR showing up in the list.&lt;br /&gt;
[[File:Screen Shot 2020-03-19 at 10.41.52 pm.png|alt=CubicSDR SDR Devices List|none|thumb|600x600px|CubicSDR SDR Devices List]]&lt;br /&gt;
You should now be able to click 'Start', and end up with a waterfall display. If the waterfall appears to glitch, or show a 'lumpy' pattern near the centre of the display, then this indicates packet loss between the SatNOGS station and your client. Try and connect via a direct LAN connection if possible. &lt;br /&gt;
In the settings menu of CubicSDR, disable &amp;quot;Automatic Gain&amp;quot; if it is set. This will allow manual control over the gain settings via sliders that will show up at the top left of the window.&lt;br /&gt;
[[File:CubicSDR Main Window.png|alt=CubicSDR Main Window (Annotated)|none|thumb|900x900px|CubicSDR Main Window (Annotated)]]&lt;br /&gt;
The above Figure shows the CubicSDR window, with the spectrum area, frequency selection, and gain settings annotated. Set the frequency to something suitable for your station. For example, if you are setting up a 70cm station, set a frequency of 437 MHz (437000000 Hz). For a 2m station, try 146 MHz.&lt;br /&gt;
Drag the gain slider so that the gain (visible at the bottom of the slider) is set to zero. Then, slowly drag it up until you see the noise floor start to rise. The gain at which this occurs is the gain you should set in SATNOGS_RF_GAIN (Available under the 'Basic' menu in satnogs-setup).&lt;br /&gt;
As an example, the following figure shows the noise floor observed on a station with a RTLSDR and a ~25dB masthead preamplifier, as gain levels on the RTLSDR are increased:&lt;br /&gt;
[[File:RTLSDR Noise Floor Variation with Gain Adjustment.png|alt=RTLSDR Noise Floor Variation with Gain Adjustment|none|thumb|900x900px|RTLSDR Noise Floor Variation with Gain Adjustment]]&lt;br /&gt;
We can see that between 0 db and 20 dB of gain there is essentially no change in the noise floor - this indicates the receive system is limited by the noise figure of the RTLSDR. As the gain increases through 30 dB, the noise floor starts to lift, indicating that we are now most likely limited by either the noise figure of the preamplifier, or the local noise environment. Any increase in gain past this point just results in reduction of the available receiver dynamic range.&lt;br /&gt;
===Hardware Configuration===&lt;br /&gt;
Basic hardware configuration is Antenna &amp;gt; Short coax &amp;gt; LNA &amp;gt; Coax &amp;gt; RTL SDR.&lt;br /&gt;
&lt;br /&gt;
===LNA===&lt;br /&gt;
The way to measure the performance of an antenna is using a figure of merit called the Antenna gain-to-noise-temperature (G/T). It's a positive unitless number, higher the better.&lt;br /&gt;
&lt;br /&gt;
G/T is comprised of antenna gain (in dB) on the top, and the system noise temperature (in Kelvins) on the bottom. There's a lot of somewhat-hard math involved, but here's the bottom line: to make your system perform better, you either need to increase the antenna gain or decrease the system noise temp. [https://en.wikipedia.org/wiki/Antenna_gain-to-noise-temperature Wikipedia]&lt;br /&gt;
&lt;br /&gt;
Increasing the antenna gain is difficult, only because we decided on an omnidirectional antenna as the basis for this How-To. Omnidirectional antennas top out at maybe 7 dB gain or so, and that's just from pushing the radiation pattern up to the sky away from the ground. Any more gain than that and it's not an omni antenna; it's got a direction that the antenna needs to be pointed in. And we want to stay away from pointing antennas for now.&lt;br /&gt;
&lt;br /&gt;
Reducing the system temperature is the the way forward then. The RTL-SDR dongle has a noise figure of [https://network.satnogs.org/stations/edit/ 6dB or so], depending on frequency, which is pretty horrible. But it turns out that the system noise temperature is largely determined by the first device in the receive chain. Since we can't change the antenna, adding a low-noise amplifier helps quite a bit. See this [https://www.youtube.com/watch?v=snifc_x_2sE youtube video] from Adam 9A4QV on how a LNA helps. (Also check out his other videos about the RTL SDR dongle, and SDR in general)&lt;br /&gt;
&lt;br /&gt;
More info on noise and preamps:&lt;br /&gt;
&lt;br /&gt;
*[https://en.wikipedia.org/wiki/Noise_temperature System noise from wikipedia], pretty high-level&lt;br /&gt;
*[https://www.rtl-sdr.com/tutorial-on-properly-positioning-a-preamp-lna-in-a-radio-system/ Where to put an LNA], from rtl-sdr.com&lt;br /&gt;
*[[SPF1589 LNA measurements|SPF5189 LNA measurements]]&lt;br /&gt;
&lt;br /&gt;
===Antenna===&lt;br /&gt;
For testing on the bench, pretty much any antenna will do. Or if you have a whip antenna already outside for repeater work, use that. As I mentioned before, I've successfully used a mag-mount antenna stuck to a cookie sheet, sitting inside my living room window.&lt;br /&gt;
&lt;br /&gt;
Also, remember that some new low emissivity double-pane windows use metal films to keep heat inside. Unfortunately, this also attenuates pretty much all RF signals, see [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5501855/ this article] for more background.&lt;br /&gt;
&lt;br /&gt;
==Testing the station==&lt;br /&gt;
[[File:Pass predictions.png|300px|right]]&lt;br /&gt;
Now that you have the hardware and software up and running, go ahead and schedule some passes. Navigate to your station page, and click on the Schedule button on the right side of some promising passes. The green and red bars beneath the satellite name is a quick visual indication of the number of Good and Bad passes on the network. Unfortunately, this data is not time-stamped at all, so a satellite that had a lot of Good observations a long time ago, but recently died, would still show as Green.&lt;br /&gt;
&lt;br /&gt;
===Rating an Observation===&lt;br /&gt;
[[File:Rating.png|right]]&lt;br /&gt;
After each observatios, you should rate it. More information [https://wiki.satnogs.org/Operation#Rating_observations here], but the bottom line is rate the observation:&lt;br /&gt;
&lt;br /&gt;
*'''Good''' if the satellite is seen in the waterfall at all. The satellite will be a straight line in the middle of the waterfall plot.&lt;br /&gt;
*'''Bad''' if the satellite is not seen.&lt;br /&gt;
*'''Failed''' if there was a problem with the station, such as a mis-configuration, or if the waterfall is missing or a solid color.&lt;br /&gt;
&lt;br /&gt;
For a more detailed guide on testing, see [[Operation]]&lt;br /&gt;
&lt;br /&gt;
===Calibrating frequency offset (PPM)===&lt;br /&gt;
This is not super important for a new station.&lt;br /&gt;
&lt;br /&gt;
==Next Steps==&lt;br /&gt;
Now that you've got this station working on the bench, what's next?&lt;br /&gt;
&lt;br /&gt;
For permanent mast-mounted installation, I would recommend adding:&lt;br /&gt;
&lt;br /&gt;
*[https://www.adafruit.com/product/3785 PoE splitter] - Make sure to get one that actually conforms to the 48-volt IEEE 802.3af standard&lt;br /&gt;
*POE injector for powering station remotely - Again, get a real 48-volt IEEE 802.3af standard&lt;br /&gt;
*Large mast-mounted waterproof box&lt;br /&gt;
*Waterproof cord grips, both to keep out the rain but also spiders and critters&lt;br /&gt;
*Desiccant to keep the humidity down&lt;br /&gt;
*Mastic tape for weatherproofing antenna connectors&lt;br /&gt;
*Better omnidirectional antenna&lt;br /&gt;
&lt;br /&gt;
===Building a Box===&lt;br /&gt;
&lt;br /&gt;
*[https://wiki.satnogs.org/No_rotator No-Rotator setup]&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
*IQ3KU Omnidirectional station [https://www.i3vfj.net/SATNOGS/Satnogs_348_notes.pdf build write-up].&lt;br /&gt;
&lt;br /&gt;
[[ Category:Build ]]&lt;br /&gt;
[[ Category:Hardware ]]&lt;br /&gt;
[[ Category:Antenna ]]&lt;/div&gt;</summary>
		<author><name>Vk5qi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Omnidirectional_Station_How_To&amp;diff=3524</id>
		<title>Omnidirectional Station How To</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Omnidirectional_Station_How_To&amp;diff=3524"/>
		<updated>2020-03-19T12:47:11Z</updated>

		<summary type="html">&lt;p&gt;Vk5qi: /* Setting the gain */  Re-write gain setting section, with examples.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Omnidirectional VHF Turnstile Antenna.jpg|alt=VHF Turnstile Antenna|thumb|VHF Turnstile antenna, [https://network.satnogs.org/stations/23/ SatNOGS Station 23]]]&lt;br /&gt;
This How-To is written to get you quickly receiving satellite data with an Omnidirectional antenna (an antenna that does not move).&lt;br /&gt;
&lt;br /&gt;
==Prerequisites/Background==&lt;br /&gt;
I'm assuming that you are a bit familiar with amateur radio, or linux in general, or you already have a Raspberry Pi. &lt;br /&gt;
&lt;br /&gt;
===Expectation Management===&lt;br /&gt;
First off, I'd like to set some expectations around a SatNOGs station with an omnidirectional antenna. Yes, you will be able to hear satellites, Morse code beacons, maybe even some voice contacts on a FM transponder. But for CubeSats with 1 watt transmitters at 9600 baud, it's going to be really difficult to actually decode any data with an omni antenna. You'll definitely see squiggly lines on the waterfall plot, but demodulating the signal and extracting satellite telemetry is going to be pretty difficult.&lt;br /&gt;
&lt;br /&gt;
The only way to get more signal is a better antenna. And a better antenna with more gain is going to be more directional, which means you will need a way to point that antenna at the satellite, and this How-To just got a lot more complicated. So we're not going there.&lt;br /&gt;
&lt;br /&gt;
A better preamp helps a bit, see the LNA section below.&lt;br /&gt;
&lt;br /&gt;
===Hardware Required===&lt;br /&gt;
This is a list of the hardware for indoor/testing purposes:&lt;br /&gt;
&lt;br /&gt;
*Raspberry Pi&lt;br /&gt;
**Power supply + cable (see note below)&lt;br /&gt;
**Up to 16 GB Micro SD card&lt;br /&gt;
**Ethernet cable&lt;br /&gt;
*RTL SDR Blog v3 dongle&lt;br /&gt;
*Various short lengths of coax&lt;br /&gt;
*Preamp/LNA - Or not if your coax is short, see LNA section below&lt;br /&gt;
*Omnidirectional antenna - just a dual mag-mount on a cookie sheet will work OK for stronger satellites&lt;br /&gt;
&lt;br /&gt;
==Setting up the Raspberry Pi==&lt;br /&gt;
I chose the [https://www.raspberrypi.org/products/raspberry-pi-3-model-b/ Raspberry Pi 3 Model B] for my station. &lt;br /&gt;
&lt;br /&gt;
===Downloading/Writing the SD image===&lt;br /&gt;
The SatNOGS team has done a great job creating a Raspbian image with all the required software. Simply navigate over to the [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/tags latest tag on Gitlab], and click on the &amp;quot;Zipped image&amp;quot; link under the latest tag. It's about 650 MBytes.&lt;br /&gt;
&lt;br /&gt;
For linux:&lt;br /&gt;
&lt;br /&gt;
#Unzip the downloaded file: '''unzip image_2018-08-03-Raspbian-SatNOGS-lite.zip'''&lt;br /&gt;
#Figure out which device is the SD card. SD cards are usually start with mmcblk. '''sudo lsblk'''&lt;br /&gt;
#Write the image. This will take a while. Make sure you don't overwrite your host OS: '''sudo dd if=2018-08-03-Raspbian-SatNOGS-lite.img of=/dev/mmcblk0'''&lt;br /&gt;
&lt;br /&gt;
===Power notes===&lt;br /&gt;
Thinking I could save a few bucks, I used a no-name generic 2.4 amp &amp;quot;tablet&amp;quot; USB power supply I got as a freebie, and a micro-USB cable I use for charging my phone. What a mistake! The Micro-USB cable wire gauge was too small, so there was too much voltage drop on the cable, so the Raspberry Pi reported power problems every time it was doing anything.&lt;br /&gt;
&lt;br /&gt;
Power problems are indicated by either a lightning bolt in the upper right of the monitor, or the red power LED flashes on the board itself. If The Raspberry Pi processor itself is pretty forgiving of power droops because it runs at 3.3 volts. But the 5v USB ports are directly tied to input power, so undervoltage conditions will cause problems for USB devices, such as the RTL SDR dongle.&lt;br /&gt;
&lt;br /&gt;
==Software Configuration==&lt;br /&gt;
&lt;br /&gt;
===Creating a SatNOGS Network account===&lt;br /&gt;
There are several different websites to be aware of and sign in to. As of 12/2018, most of our websites use a unified login provided by Auth0, so when you create an account on one of these sites it will work across the others as well:&lt;br /&gt;
&lt;br /&gt;
*Required: [https://network.satnogs.org/ Network]: for registering your station and adding data to the network.&lt;br /&gt;
*Recommended: [https://community.libre.space Forums]: for asking questions.&lt;br /&gt;
*Optional: [https://db.satnogs.org/ Database]: Only if you want to add satellites/modes. Not necessary for receiving satellite data.&lt;br /&gt;
&lt;br /&gt;
===Registering the station===&lt;br /&gt;
Log in to your Network account, and click the &amp;quot;+ Add Ground Station&amp;quot; button, or click [https://network.satnogs.org/stations/edit/ here] Fill out the short form, and your station will be added to the database. For &amp;quot;Antenna&amp;quot;, pick something that encompasses the frequency range of your antenna. For wideband reception, use VHF Discone 26-1200 MHz.&lt;br /&gt;
&lt;br /&gt;
The important info you'll need later on is the Station ID number, lat/lon/altitiude. I would also use a Minimum Horizon of 30 degrees or so, this will keep your station from allowing low-elevation passes to be scheduled. Make sure to keep the &amp;quot;Testing&amp;quot; flag checked, as this lets people know that your station isn't quite ready for real use.&lt;br /&gt;
&lt;br /&gt;
===Booting and Configuring Raspbian===&lt;br /&gt;
After you have the image burned onto a Micro-SD card, boot it! I would recommend hooking up a keyboard and HDMI monitor, you can watch the boot process. If it doesn't boot at all, double check that you wrote the SatNOGS Raspbian image correctly.&lt;br /&gt;
&lt;br /&gt;
After a successful boot, log in with username '''pi''' and password '''raspbian''' (or perhaps '''raspberry'''):&lt;br /&gt;
&lt;br /&gt;
#Change your password! '''passwd'''&lt;br /&gt;
#Update and upgrade raspbian strech: '''sudo apt update''' then '''sudo apt upgrade'''&lt;br /&gt;
#You'll probably update a lot of packages and get a new kernel, so reboot after this: '''sudo reboot'''&lt;br /&gt;
#Run '''sudo raspi-config''' to set up the base OS. ''Tab'' switches between the options and ''select''.&lt;br /&gt;
##4 Localisation Options: I1 Change Locale: en_US.UTF-8 UTF-8&lt;br /&gt;
##4 Localisation Options: I2 Change Timezone: None of the above: UTC&lt;br /&gt;
##4 Localisation Options: I3 Change Keyboard Layout:&lt;br /&gt;
##7 Advanced Options: A1 Expand Filesystem &amp;lt;br /&amp;gt;This will expand the ~2GB Micro-SD card partition to fill the entire SD card.&lt;br /&gt;
&lt;br /&gt;
The Raspberry Pi needs to reboot to expand the filesystem, so do this now. It might take a while. '''sudo reboot''&lt;br /&gt;
&lt;br /&gt;
====Disabling WiFi and Bluetooth====&lt;br /&gt;
To disable WiFi and Bluetooth, edit the /boot/config.txt file, and add the following lines at the bottom:&lt;br /&gt;
 # Disable WiFi and bluetooth&lt;br /&gt;
 dtoverlay=pi3-disable-wifi&lt;br /&gt;
 dtoverlay=pi3-disable-bt&lt;br /&gt;
&lt;br /&gt;
Then reboot again. To make sure that it worked, run '''ifconfig''' and make sure that ''wlan0'' isn't listed. I'm not sure how to tell if bluetooth is turned off.&lt;br /&gt;
&lt;br /&gt;
====Additional software====&lt;br /&gt;
I like to install this additional software with '''sudo apt install bmon''' ...&lt;br /&gt;
&lt;br /&gt;
*bmon - a graphical network usage analyzer.&lt;br /&gt;
*vnstat - keeps track of your bandwidth usage&lt;br /&gt;
*vim - the world's best text editor ;)&lt;br /&gt;
*irssi - a terminal IRC client, for chatting on the #satnogs IRC channel&lt;br /&gt;
&lt;br /&gt;
If you can't tell by now, I'm always a big fan of rebooting. It certainly doesn't take that long... '''sudo reboot'''&lt;br /&gt;
&lt;br /&gt;
===Configuring the satnogs-client===&lt;br /&gt;
Once you have the base Raspbian Strech OS installed, updated, and looking good, you can configure SatNOGS. Plug in your RTL SDR if you haven't already.&lt;br /&gt;
&lt;br /&gt;
First thing to do is update the satnogs-setup program. Run '''sudo satnogs-setup'''. This will probably take a while, then '''Update''', which will also take a while. Per usual, after the update I like to reboot the raspberry pi just to make sure everything was updated and is actually running the new code.&lt;br /&gt;
&lt;br /&gt;
====Basic Configuration====&lt;br /&gt;
Then the actual configuration of the station:&lt;br /&gt;
&lt;br /&gt;
#Run '''sudo satnogs-setup''' again&lt;br /&gt;
#Basic Configuration:&lt;br /&gt;
##SATNOGS_API_TOKEN: After logging in to network.satnogs.org, this is in the upper right under &amp;quot;API Key&amp;quot;&lt;br /&gt;
##SATNOGS_RX_DEVICE: rtlsdr&lt;br /&gt;
##SATNOGS_STATION_ELEV: station elevation in meters&lt;br /&gt;
##SATNOGS_STATION_ID: The number of your station. Newer stations are high 200s.&lt;br /&gt;
##SATNOGS_STATION_LAT and LON: Latitude and Longitude in decimal degrees&lt;br /&gt;
##HAMLIB_UTILS_ROT_ENABLE: no&lt;br /&gt;
&lt;br /&gt;
Then back to the main menu and ''Apply'' to save the configuration. Ansible will run, change some stuff, and probably take a while. If you want to quit, just keep pressing ''back'' to exit.&lt;br /&gt;
&lt;br /&gt;
====Setting the gain====&lt;br /&gt;
The next step is to set the gain on the RTL SDR. The aim here (in the majority of cases) is to set the gain of your station to maximise sensitivity (best noise figure), but without limiting the available dynamic range of your station due to your local noise floor. This can be achieved in a fairly simple manner, by watching the level of the receivers noise floor as you slowly increase the receiver gain. At some point the noise floor will start to rise - at this point increasing the gain any further will of no use - you will only increase the noise level, and eat into your receiver's available dynamic range (for a RTLSDR, theoretically only 48 dB).&lt;br /&gt;
&lt;br /&gt;
There may be situations where strong local interferers may require the use of a lower gain setting to avoid intermodulation products appearing in the passband, though these cases would be better solved with a suitable bandpass filter somewhere in the receive chain.&lt;br /&gt;
&lt;br /&gt;
First, it is good to know the available gain range of your SDR. This can be accomplished by running &amp;lt;code&amp;gt;SoapySDRUtil --probe&amp;lt;/code&amp;gt;, which provides a considerable amount of information about the connected SDR:&lt;br /&gt;
 pi@satnogs:~ $ SoapySDRUtil --probe&lt;br /&gt;
 ######################################################&lt;br /&gt;
 ## Soapy SDR -- the SDR abstraction library&lt;br /&gt;
 ######################################################&lt;br /&gt;
 &lt;br /&gt;
 Probe device&lt;br /&gt;
 &lt;br /&gt;
 Found Rafael Micro R820T tuner&lt;br /&gt;
 [INFO] [UHD] linux; GNU C++ version 8.2.0; Boost_106700; UHD_3.13.1.0-3&lt;br /&gt;
 Found Rafael Micro R820T tuner&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 -- Device identification&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
   driver=RTLSDR&lt;br /&gt;
   hardware=RTLSDR&lt;br /&gt;
   origin=&amp;lt;nowiki&amp;gt;https://github.com/pothosware/SoapyRTLSDR&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   rtl=0&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 -- Peripheral summary&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
   Channels: 1 Rx, 0 Tx&lt;br /&gt;
   Timestamps: NO&lt;br /&gt;
   Other Settings:&lt;br /&gt;
      * Direct Sampling - RTL-SDR Direct Sampling Mode&lt;br /&gt;
        [key=direct_samp, default=0, type=string, options=(0, 1, 2)]&lt;br /&gt;
      * Offset Tune - RTL-SDR Offset Tuning Mode&lt;br /&gt;
        [key=offset_tune, default=false, type=bool]&lt;br /&gt;
      * I/Q Swap - RTL-SDR I/Q Swap Mode&lt;br /&gt;
        [key=iq_swap, default=false, type=bool]&lt;br /&gt;
 &lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 -- RX Channel 0&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
   Full-duplex: YES&lt;br /&gt;
   Supports AGC: YES&lt;br /&gt;
   Stream formats: CS8, CS16, CF32&lt;br /&gt;
   Native format: CS8 [full-scale=128]&lt;br /&gt;
   Stream args:&lt;br /&gt;
      * Buffer Size - Number of bytes per buffer, multiples of 512 only.&lt;br /&gt;
        [key=bufflen, units=bytes, default=262144, type=int]&lt;br /&gt;
      * Ring buffers - Number of buffers in the ring.&lt;br /&gt;
        [key=buffers, units=buffers, default=15, type=int]&lt;br /&gt;
      * Async buffers - Number of async usb buffers (advanced).&lt;br /&gt;
        [key=asyncBuffs, units=buffers, default=0, type=int]&lt;br /&gt;
   Antennas: RX&lt;br /&gt;
   Full gain range: [0, 49.6] dB&lt;br /&gt;
     TUNER gain range: [0, 49.6] dB&lt;br /&gt;
   Full freq range: [23.999, 1764] MHz&lt;br /&gt;
     RF freq range: [24, 1764] MHz&lt;br /&gt;
     CORR freq range: [-0.001, 0.001] MHz&lt;br /&gt;
   Sample rates: 0.25, 1.024, 1.536, 1.792, 1.92, 2.048, 2.16, 2.56, 2.88, 3.2 MSps&lt;br /&gt;
The above output is for a RTLSDR, and we can see that there is information on the 'Full gain range', and 'TUNER' gain. The Full gain setting is an 'abstracted' gain range, which in this case just directly links to the 'TUNER' gain, as that is the only gain setting presented by the RTLSDR driver. Other SDRs (e.g. AirSpy) may present more gain controls. Anyway, we can see that the gain range is 0 through 49.6 dB. It's quite possible that there are only discrete gain steps within this range (and this is very true for the RTLSDR), but SoapySDR will hide that from us and automatically use the nearest valid setting.&lt;br /&gt;
Next up, we want a way of seeing a live spectrum from the SDR. This might be difficult, especially if you're just gone and mounted a RTLSDR in a metal box up a pole! Well, SoapySDR comes to the rescue again with SoapySDR Server - this allows us to serve up the SDR on the network, and access it with a client.&lt;br /&gt;
&lt;br /&gt;
Note: SoapySDR Server is not currently installed by default. It can be installed by running the commands:&lt;br /&gt;
 $ sudo apt-get install soapyremote-server&lt;br /&gt;
 $ sudo systemctl stop SoapySDRServer&lt;br /&gt;
 $ sudo systemctl disable SoapySDRServer&lt;br /&gt;
[https://cubicsdr.com/ CubicSDR] is a good cross-platform client that can connect to a SoapySDR Server, and you can [https://github.com/cjcliffe/CubicSDR/releases download the latest release by clicking here]. &lt;br /&gt;
On the RPi, you can start SoapySDR Server by running: &amp;lt;code&amp;gt;SoapySDRServer --bind&amp;lt;/code&amp;gt;  Leave this running. &lt;br /&gt;
Open up CubicSDR on another computer, on the same network as your SatNOGS station. It will pop up a window asking you to select a SDR device. With any luck, it will have auto-detected your SoapySDR Server, and it will show up in the 'Local Net' list. If not, you will need to select 'Remote', click 'Add', and then enter the IP address of your station. You should then have a SDR showing up in the list.&lt;br /&gt;
[[File:Screen Shot 2020-03-19 at 10.41.52 pm.png|alt=CubicSDR SDR Devices List|none|thumb|600x600px|CubicSDR SDR Devices List]]&lt;br /&gt;
You should now be able to click 'Start', and end up with a waterfall display. If the waterfall appears to glitch, or show a 'lumpy' pattern near the centre of the display, then this indicates packet loss between the SatNOGS station and your client. Try and connect via a direct LAN connection if possible. &lt;br /&gt;
In the settings menu of CubicSDR, disable &amp;quot;Automatic Gain&amp;quot; if it is set. This will allow manual control over the gain settings via sliders that will show up at the top left of the window.&lt;br /&gt;
[[File:CubicSDR Main Window.png|alt=CubicSDR Main Window (Annotated)|none|thumb|900x900px|CubicSDR Main Window (Annotated)]]&lt;br /&gt;
The above Figure shows the CubicSDR window, with the spectrum area, frequency selection, and gain settings annotated. Set the frequency to something suitable for your station. For example, if you are setting up a 70cm station, set a frequency of 437 MHz (437000000 Hz). For a 2m station, try 146 MHz.&lt;br /&gt;
Drag the gain slider so that the gain (visible at the bottom of the slider) is set to zero. Then, slowly drag it up until you see the noise floor start to rise. The gain at which this occurs is the gain you should set in SATNOGS_RF_GAIN (Available under the 'Basic' menu in satnogs-setup).&lt;br /&gt;
As an example, the following figure shows the noise floor observed on a station with a RTLSDR and a ~25dB masthead preamplifier, as gain levels on the RTLSDR are increased:&lt;br /&gt;
[[File:RTLSDR Noise Floor Variation with Gain Adjustment.png|alt=RTLSDR Noise Floor Variation with Gain Adjustment|none|thumb|900x900px|RTLSDR Noise Floor Variation with Gain Adjustment]]&lt;br /&gt;
We can see that between 0 db and 20 dB of gain there is essentially no change in the noise floor - this indicates the receive system is limited by the noise figure of the RTLSDR. As the gain increases through 30 dB, the noise floor starts to lift, indicating that we are now most likely limited by either the noise figure of the preamplifier, or the local noise environment. Any increase in gain past this point just results in reduction of the available receiver dynamic range.&lt;br /&gt;
===Checking the setup===&lt;br /&gt;
SatNOGS versions before v1.0 come with a built-in web server on port 5000. So just surf over to IP address of your Raspberry Pi on port 5000, and you should see a screen similar to this:&lt;br /&gt;
[[File:Satnogs client screenshot.png|center|thumb|800x800px|Satnogs Client]]&lt;br /&gt;
&lt;br /&gt;
==Hardware Configuration==&lt;br /&gt;
Basic hardware configuration is Antenna &amp;gt; Short coax &amp;gt; LNA &amp;gt; Coax &amp;gt; RTL SDR.&lt;br /&gt;
&lt;br /&gt;
===LNA===&lt;br /&gt;
The way to measure the performance of an antenna is using a figure of merit called the Antenna gain-to-noise-temperature (G/T). It's a positive unitless number, higher the better.&lt;br /&gt;
&lt;br /&gt;
G/T is comprised of antenna gain (in dB) on the top, and the system noise temperature (in Kelvins) on the bottom. There's a lot of somewhat-hard math involved, but here's the bottom line: to make your system perform better, you either need to increase the antenna gain or decrease the system noise temp. [https://en.wikipedia.org/wiki/Antenna_gain-to-noise-temperature Wikipedia]&lt;br /&gt;
&lt;br /&gt;
Increasing the antenna gain is difficult, only because we decided on an omnidirectional antenna as the basis for this How-To. Omnidirectional antennas top out at maybe 7 dB gain or so, and that's just from pushing the radiation pattern up to the sky away from the ground. Any more gain than that and it's not an omni antenna; it's got a direction that the antenna needs to be pointed in. And we want to stay away from pointing antennas for now.&lt;br /&gt;
&lt;br /&gt;
Reducing the system temperature is the the way forward then. The RTL-SDR dongle has a noise figure of [https://network.satnogs.org/stations/edit/ 6dB or so], depending on frequency, which is pretty horrible. But it turns out that the system noise temperature is largely determined by the first device in the receive chain. Since we can't change the antenna, adding a low-noise amplifier helps quite a bit. See this [https://www.youtube.com/watch?v=snifc_x_2sE youtube video] from Adam 9A4QV on how a LNA helps. (Also check out his other videos about the RTL SDR dongle, and SDR in general)&lt;br /&gt;
&lt;br /&gt;
More info on noise and preamps:&lt;br /&gt;
&lt;br /&gt;
*[https://en.wikipedia.org/wiki/Noise_temperature System noise from wikipedia], pretty high-level&lt;br /&gt;
*[https://www.rtl-sdr.com/tutorial-on-properly-positioning-a-preamp-lna-in-a-radio-system/ Where to put an LNA], from rtl-sdr.com&lt;br /&gt;
*[[SPF1589 LNA measurements|SPF5189 LNA measurements]]&lt;br /&gt;
&lt;br /&gt;
===Antenna===&lt;br /&gt;
For testing on the bench, pretty much any antenna will do. Or if you have a whip antenna already outside for repeater work, use that. As I mentioned before, I've successfully used a mag-mount antenna stuck to a cookie sheet, sitting inside my living room window.&lt;br /&gt;
&lt;br /&gt;
Also, remember that some new low emissivity double-pane windows use metal films to keep heat inside. Unfortunately, this also attenuates pretty much all RF signals, see [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5501855/ this article] for more background.&lt;br /&gt;
&lt;br /&gt;
==Testing the station==&lt;br /&gt;
[[File:Pass predictions.png|300px|right]]&lt;br /&gt;
Now that you have the hardware and software up and running, go ahead and schedule some passes. Navigate to your station page, and click on the Schedule button on the right side of some promising passes. The green and red bars beneath the satellite name is a quick visual indication of the number of Good and Bad passes on the network. Unfortunately, this data is not time-stamped at all, so a satellite that had a lot of Good observations a long time ago, but recently died, would still show as Green.&lt;br /&gt;
&lt;br /&gt;
===Rating an Observation===&lt;br /&gt;
[[File:Rating.png|right]]&lt;br /&gt;
After each observatios, you should rate it. More information [https://wiki.satnogs.org/Operation#Rating_observations here], but the bottom line is rate the observation:&lt;br /&gt;
&lt;br /&gt;
*'''Good''' if the satellite is seen in the waterfall at all. The satellite will be a straight line in the middle of the waterfall plot.&lt;br /&gt;
*'''Bad''' if the satellite is not seen.&lt;br /&gt;
*'''Failed''' if there was a problem with the station, such as a mis-configuration, or if the waterfall is missing or a solid color.&lt;br /&gt;
&lt;br /&gt;
For a more detailed guide on testing, see [[Operation]]&lt;br /&gt;
&lt;br /&gt;
===Calibrating frequency offset (PPM)===&lt;br /&gt;
This is not super important for a new station.&lt;br /&gt;
&lt;br /&gt;
==Next Steps==&lt;br /&gt;
Now that you've got this station working on the bench, what's next?&lt;br /&gt;
&lt;br /&gt;
For permanent mast-mounted installation, I would recommend adding:&lt;br /&gt;
&lt;br /&gt;
*[https://www.adafruit.com/product/3785 PoE splitter] - Make sure to get one that actually conforms to the 48-volt IEEE 802.3af standard&lt;br /&gt;
*POE injector for powering station remotely - Again, get a real 48-volt IEEE 802.3af standard&lt;br /&gt;
*Large mast-mounted waterproof box&lt;br /&gt;
*Waterproof cord grips, both to keep out the rain but also spiders and critters&lt;br /&gt;
*Desiccant to keep the humidity down&lt;br /&gt;
*Mastic tape for weatherproofing antenna connectors&lt;br /&gt;
*Better omnidirectional antenna&lt;br /&gt;
&lt;br /&gt;
===Building a Box===&lt;br /&gt;
&lt;br /&gt;
*[https://wiki.satnogs.org/No_rotator No-Rotator setup]&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
*IQ3KU Omnidirectional station [https://www.i3vfj.net/SATNOGS/Satnogs_348_notes.pdf build write-up].&lt;br /&gt;
&lt;br /&gt;
[[ Category:Build ]]&lt;br /&gt;
[[ Category:Hardware ]]&lt;br /&gt;
[[ Category:Antenna ]]&lt;/div&gt;</summary>
		<author><name>Vk5qi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=File:RTLSDR_Noise_Floor_Variation_with_Gain_Adjustment.png&amp;diff=3523</id>
		<title>File:RTLSDR Noise Floor Variation with Gain Adjustment.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=File:RTLSDR_Noise_Floor_Variation_with_Gain_Adjustment.png&amp;diff=3523"/>
		<updated>2020-03-19T12:39:24Z</updated>

		<summary type="html">&lt;p&gt;Vk5qi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RTLSDR Noise Floor Variation with Gain Adjustment&lt;/div&gt;</summary>
		<author><name>Vk5qi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=File:CubicSDR_Main_Window.png&amp;diff=3522</id>
		<title>File:CubicSDR Main Window.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=File:CubicSDR_Main_Window.png&amp;diff=3522"/>
		<updated>2020-03-19T12:24:10Z</updated>

		<summary type="html">&lt;p&gt;Vk5qi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CubicSDR Main Window&lt;/div&gt;</summary>
		<author><name>Vk5qi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=File:Screen_Shot_2020-03-19_at_10.47.57_pm.png&amp;diff=3521</id>
		<title>File:Screen Shot 2020-03-19 at 10.47.57 pm.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=File:Screen_Shot_2020-03-19_at_10.47.57_pm.png&amp;diff=3521"/>
		<updated>2020-03-19T12:22:19Z</updated>

		<summary type="html">&lt;p&gt;Vk5qi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CubicSDR Main Window (Annotated)&lt;/div&gt;</summary>
		<author><name>Vk5qi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=File:Screen_Shot_2020-03-19_at_10.41.52_pm.png&amp;diff=3520</id>
		<title>File:Screen Shot 2020-03-19 at 10.41.52 pm.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=File:Screen_Shot_2020-03-19_at_10.41.52_pm.png&amp;diff=3520"/>
		<updated>2020-03-19T12:13:40Z</updated>

		<summary type="html">&lt;p&gt;Vk5qi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CubicSDR SDR Devices List&lt;/div&gt;</summary>
		<author><name>Vk5qi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=File:Screen_Shot_2020-03-19_at_10.29.15_pm.png&amp;diff=3519</id>
		<title>File:Screen Shot 2020-03-19 at 10.29.15 pm.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=File:Screen_Shot_2020-03-19_at_10.29.15_pm.png&amp;diff=3519"/>
		<updated>2020-03-19T12:09:34Z</updated>

		<summary type="html">&lt;p&gt;Vk5qi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CubicSDR SDR Selection&lt;/div&gt;</summary>
		<author><name>Vk5qi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=SatNOGS_Setup_Legacy&amp;diff=3498</id>
		<title>SatNOGS Setup Legacy</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=SatNOGS_Setup_Legacy&amp;diff=3498"/>
		<updated>2020-03-14T08:06:09Z</updated>

		<summary type="html">&lt;p&gt;Vk5qi: /* Advanced Setup */  Added notes on networked rotator setup.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&amp;lt;code&amp;gt;satnogs-setup&amp;lt;/code&amp;gt; provides a set of scripts for configuring a '''SatNOGS Client''' system. &amp;lt;code&amp;gt;satnogs-setup&amp;lt;/code&amp;gt; main function is to bring up a menu-driven console configuration utility and provision the system using [[SatNOGS Client Ansible|Ansible]].&lt;br /&gt;
&lt;br /&gt;
==Initial Setup==&lt;br /&gt;
Right after the first boot of the system, packages and the configuration tool itself '''must be updated'''. Follow the [[SatNOGS Client Setup#Updating SatNOGS Client Software|Updating]] instruction found below.&lt;br /&gt;
&lt;br /&gt;
To configure a '''SatNOGS Client''' 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 '''all''' options in '''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;
{{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;
===Basic Configuration===&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, please don’t share your api key as this can give access to anyone to upload and change things in network related to your station and its observations.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_SOAPY_RX_DEVICE&amp;lt;/code&amp;gt;&lt;br /&gt;
|If you are using an RTL-SDR, this is &amp;lt;code&amp;gt;driver=rtlsdr&amp;lt;/code&amp;gt;.  See [https://github.com/pothosware/SoapyRTLSDR/wiki#modules pothosware/SoapyRTLSDR/wiki#modules] for other SDR modules (linked in the navigation bar at the right side of the page). If multiple devices are attached to your station you should also specify the serial of the desired device here, e.g. &amp;lt;code&amp;gt;driver=uhd,serial=3164495&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_RX_SAMP_RATE&amp;lt;/code&amp;gt;&lt;br /&gt;
|Specify the receiver sampling rate. Example value for RTL-SDR: &amp;lt;code&amp;gt;2.048e6&amp;lt;/code&amp;gt; (for 2Msps).&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 '''numeric ID''' assigned to your station in the SatNOGS Network site when the groundstation was created.&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;
&lt;br /&gt;
==Advanced Setup==&lt;br /&gt;
{{Warning|Changes to the following settings may be required to optimise station performance, or enable support for additional features (e.g. rotator control)}}A more detailed description on setting up a development environment using the SatNOGS reference setup is given in [[SatNOGS_Client_Development]].&lt;br /&gt;
&lt;br /&gt;
NOTE: To get your station online, you need to set SATNOGS_NETWORK_API_URL to https://network.satnogs.org/api/&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_RF_GAIN&amp;lt;/code&amp;gt;&lt;br /&gt;
|RF Gain value for your SDR hardware. Run &amp;lt;code&amp;gt;SoapySDRUtil --probe&amp;lt;/code&amp;gt; to see all possible gain values for your hardware.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_RX_BANDWIDTH&amp;lt;/code&amp;gt;&lt;br /&gt;
|TODO&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_ANTENNA&amp;lt;/code&amp;gt;&lt;br /&gt;
|TODO&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_DEV_ARGS&amp;lt;/code&amp;gt;&lt;br /&gt;
|Soapy device arguments (currently only accepting the &amp;lt;code&amp;gt;serial&amp;lt;/code&amp;gt; key successfully) and stream arguments.&lt;br /&gt;
NOTE: This parameter / its meaning might change in the near future, see issue [https://gitlab.com/librespacefoundation/satnogs/satnogs-client/-/issues/373 satnogs-client#373].&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_ROT_MODEL&amp;lt;/code&amp;gt;&lt;br /&gt;
|Hamlib rotator model. If you don't have a rotator (like the [[No rotator|No rotator setup]]), leave it empty.&lt;br /&gt;
Use the macro name for your rotator model from this [https://gist.github.com/kerel-fs/2354ff9c082cd3c1594afc38c67bc32a#hamlib-release-33 list of rotator models in Hamlib]. If you are connecting to a separate rotctld instance, use &amp;lt;code&amp;gt;ROT_MODEL_NETROTCTL&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_ROT_BAUD&amp;lt;/code&amp;gt;&lt;br /&gt;
|Baud rate for Hamlib rotator serial port, if using a serial-connected rotator.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_ROT_PORT&amp;lt;/code&amp;gt;&lt;br /&gt;
|Serial port for Hamlib rotator, OR the network address of a rotctld instance (e.g. &amp;lt;code&amp;gt;localhost:4533&amp;lt;/code&amp;gt; )&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_ROT_THRESHOLD&amp;lt;/code&amp;gt;&lt;br /&gt;
|Rotator movement threshold, in degrees. If set, the rotator will only be commanded when the target has moved more than &amp;lt;threshold&amp;gt; degrees away from the current azimuth/elevation position.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&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.&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:&lt;br /&gt;
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;
For a SatNOGS rotator &amp;lt;code&amp;gt;-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_PRE_OBSERVATION_SCRIPT&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;SATNOGS_POST_OBSERVATION_SCRIPT&amp;lt;/code&amp;gt;&lt;br /&gt;
|Allows execution of a shell script either pre or post-observation. The following can be entered into the script path to enable passing of information to the script:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{FREQ}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; - Observation Centre Frequency&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{TLE}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; - Target object TLE data, as a JSON-formatted object.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{TIMESTAMP}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; - Start time of the observation, in the format: %Y-%m-%dT%H-%M-%S%z&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ID}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; - Observation ID number.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{BAUD}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; - Baud rate of the modulation used, if applicable.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{SCRIPT_NAME}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; - The name of the demodulation flow-graph script in use.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;EXPERIMENTAL&amp;lt;/code&amp;gt;&lt;br /&gt;
|Install latest (experimental) versions of all software&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;APT_REPOSITORY&amp;lt;/code&amp;gt;&lt;br /&gt;
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:&lt;br /&gt;
&amp;lt;code&amp;gt;deb &amp;lt;nowiki&amp;gt;http://download.opensuse.org/repositories/home:/librespace:/satnogs-unstable/Raspbian_10&amp;lt;/nowiki&amp;gt; ./&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;APT_KEY_URL&amp;lt;/code&amp;gt;&lt;br /&gt;
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://download.opensuse.org/repositories/home:/librespace:/satnogs-unstable/Raspbian_10/Release.key&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;APT_KEY_ID&amp;lt;/code&amp;gt;&lt;br /&gt;
|This options allows you to specify an alternative SatNOGS packages repository key ID.&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;
&lt;br /&gt;
*&amp;lt;code&amp;gt;git+&amp;lt;nowiki&amp;gt;https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@master&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; -- the 'master' 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_FLOWGRAPHS_VERSION&amp;lt;/code&amp;gt;&lt;br /&gt;
|This options allows you to change the version of satnogs-flowgraphs package to be installed. For example:&lt;br /&gt;
&amp;lt;code&amp;gt;0.1-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;LOG_LEVEL&amp;lt;/code&amp;gt;&lt;br /&gt;
|Define SatNOGS client log level, available values: &amp;lt;code&amp;gt;ERROR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;WARNING&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;INFO&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DEBUG&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Obsolete Setup Variables==&lt;br /&gt;
The following options were available in previous versions of the SatNOGS client system and have no effect on the latest stable version.&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_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/airspymini&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;lime&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;hackrf&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_PPM_ERROR&amp;lt;/code&amp;gt;&lt;br /&gt;
|gr-satnogs: The PPM correction [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_DEV_ARGS&amp;lt;/code&amp;gt;&lt;br /&gt;
|gr-satnogs: SDR device specific arguments [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]&lt;br /&gt;
Note: This variable was re-purposed to set soapy device and stream arguments, so it's not obsolete anymore.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_IF_GAIN&amp;lt;/code&amp;gt;&lt;br /&gt;
|gr-satnogs: Intermediate frequency gain [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_BB_GAIN&amp;lt;/code&amp;gt;&lt;br /&gt;
|gr-satnogs: Baseband gain [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_RADIO_GR_SATNOGS_VERSION&amp;lt;/code&amp;gt;&lt;br /&gt;
|This options allows you to change the version of gr-satnogs package to be installed. For example: &amp;lt;code&amp;gt;1.5.1-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Updating SatNOGS Client Software==&lt;br /&gt;
To update SatNOGS software, including the configuration tool itself:&lt;br /&gt;
&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 and all distribution packages to the latest&lt;br /&gt;
#If you are prompt for a reboot during the upgrade, once the upgrade is finished, select &amp;lt;code&amp;gt;Reboot&amp;lt;/code&amp;gt;, SSH back into the system and re-run &amp;lt;code&amp;gt;satnogs-setup&amp;lt;/code&amp;gt; to continue to the next step&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;
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions&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;
===Upgrading from Debian 'stretch' to 'buster'===&lt;br /&gt;
Debian &amp;lt;code&amp;gt;stretch&amp;lt;/code&amp;gt; is no longer supported. If you have already installed an older version of Debian or Raspbian SatNOGS image based on &amp;lt;code&amp;gt;stretch&amp;lt;/code&amp;gt; (releases &amp;lt;= [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/tags/2018080300 2018080300]), you must upgrade to &amp;lt;code&amp;gt;buster&amp;lt;/code&amp;gt; otherwise it will be impossible to receive updates or upgrades in the future.&lt;br /&gt;
====Method 1: Reflashing and reinstalling (recommended)====&lt;br /&gt;
The recommended method to upgrade to &amp;lt;code&amp;gt;buster&amp;lt;/code&amp;gt; is reflashing the latest Raspbian SatNOGS image (or reinstalling latest Debian). Follow [[Raspberry Pi|Raspberry Pi]] installation instructions and reinstall from scratch.&lt;br /&gt;
====Method 2: Release upgrade using the configuration tool (advanced)====&lt;br /&gt;
{{Warning|Make sure you have a stable connection to the internet and your SatNOGS client during this process. Release upgrades can consume a lot of time, data and storage.}}To upgrade from stretch to buster using the configuration tool:&lt;br /&gt;
&lt;br /&gt;
#SSH into the system&lt;br /&gt;
#Make sure you have enough free space on your SD card (&amp;gt;2GiB) by running &amp;lt;code&amp;gt;df -h /&amp;lt;/code&amp;gt; on the console&lt;br /&gt;
#Run &amp;lt;code&amp;gt;sudo satnogs-setup&amp;lt;/code&amp;gt; to 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 and all distribution packages to the latest; this will also prompt you for a distribution upgrade, if it detects that one is needed&lt;br /&gt;
#Keep an eye on the upgrade progress; &amp;lt;code&amp;gt;dpkg&amp;lt;/code&amp;gt; may prompt for changes&lt;br /&gt;
#Once the upgrade is completed select &amp;lt;code&amp;gt;Reboot&amp;lt;/code&amp;gt;&lt;br /&gt;
#After the reboot, SSH back into the system and make sure you are on the correct release by running &amp;lt;code&amp;gt;lsb_release -a&amp;lt;/code&amp;gt;&lt;br /&gt;
#Re-run &amp;lt;code&amp;gt;sudo satnogs-setup&amp;lt;/code&amp;gt; and select &amp;lt;code&amp;gt;Update&amp;lt;/code&amp;gt; and then &amp;lt;code&amp;gt;Apply&amp;lt;/code&amp;gt;; this may take some time&lt;br /&gt;
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions&lt;br /&gt;
#Select &amp;lt;code&amp;gt;Back&amp;lt;/code&amp;gt; to exit&lt;br /&gt;
&lt;br /&gt;
==Verification of correct installation==&lt;br /&gt;
To see if satnogs-client has started successfully, check the logs with &amp;lt;code&amp;gt;systemctl&amp;lt;/code&amp;gt;:&amp;lt;pre&amp;gt;&lt;br /&gt;
$ systemctl status satnogs-client&lt;br /&gt;
&amp;lt;/pre&amp;gt;You should see an output that looks like this:&amp;lt;pre&amp;gt;&lt;br /&gt;
● satnogs-client.service - SatNOGS client&lt;br /&gt;
   Loaded: loaded (/etc/systemd/system/satnogs-client.service; enabled; vendor preset: enabled)&lt;br /&gt;
   Active: active (running) since Wed 2020-03-04 19:30:56 GMT; 6min ago&lt;br /&gt;
 Main PID: 6309 (satnogs-client)&lt;br /&gt;
    Tasks: 11 (limit: 2200)&lt;br /&gt;
   Memory: 37.9M&lt;br /&gt;
   CGroup: /system.slice/satnogs-client.service&lt;br /&gt;
           └─6309 /var/lib/satnogs/bin/python3 /var/lib/satnogs/bin/satnogs-client&lt;br /&gt;
&lt;br /&gt;
Mar 04 19:30:56 raspberrypi systemd[1]: Started SatNOGS client.&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[SatNOGS Client Ansible]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Build]]&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Vk5qi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=SatNOGS_Setup_Legacy&amp;diff=3497</id>
		<title>SatNOGS Setup Legacy</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=SatNOGS_Setup_Legacy&amp;diff=3497"/>
		<updated>2020-03-14T07:36:36Z</updated>

		<summary type="html">&lt;p&gt;Vk5qi: /* Advanced Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&amp;lt;code&amp;gt;satnogs-setup&amp;lt;/code&amp;gt; provides a set of scripts for configuring a '''SatNOGS Client''' system. &amp;lt;code&amp;gt;satnogs-setup&amp;lt;/code&amp;gt; main function is to bring up a menu-driven console configuration utility and provision the system using [[SatNOGS Client Ansible|Ansible]].&lt;br /&gt;
&lt;br /&gt;
==Initial Setup==&lt;br /&gt;
Right after the first boot of the system, packages and the configuration tool itself '''must be updated'''. Follow the [[SatNOGS Client Setup#Updating SatNOGS Client Software|Updating]] instruction found below.&lt;br /&gt;
&lt;br /&gt;
To configure a '''SatNOGS Client''' 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 '''all''' options in '''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;
{{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;
===Basic Configuration===&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, please don’t share your api key as this can give access to anyone to upload and change things in network related to your station and its observations.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_SOAPY_RX_DEVICE&amp;lt;/code&amp;gt;&lt;br /&gt;
|If you are using an RTL-SDR, this is &amp;lt;code&amp;gt;driver=rtlsdr&amp;lt;/code&amp;gt;.  See [https://github.com/pothosware/SoapyRTLSDR/wiki#modules pothosware/SoapyRTLSDR/wiki#modules] for other SDR modules (linked in the navigation bar at the right side of the page). If multiple devices are attached to your station you should also specify the serial of the desired device here, e.g. &amp;lt;code&amp;gt;driver=uhd,serial=3164495&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_RX_SAMP_RATE&amp;lt;/code&amp;gt;&lt;br /&gt;
|Specify the receiver sampling rate. Example value for RTL-SDR: &amp;lt;code&amp;gt;2.048e6&amp;lt;/code&amp;gt; (for 2Msps).&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 '''numeric ID''' assigned to your station in the SatNOGS Network site when the groundstation was created.&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;
&lt;br /&gt;
==Advanced Setup==&lt;br /&gt;
{{Warning|Changes to the following settings may be required to optimise station performance, or enable support for additional features (e.g. rotator control)}}A more detailed description on setting up a development environment using the SatNOGS reference setup is given in [[SatNOGS_Client_Development]].&lt;br /&gt;
&lt;br /&gt;
NOTE: To get your station online, you need to set SATNOGS_NETWORK_API_URL to https://network.satnogs.org/api/&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_RF_GAIN&amp;lt;/code&amp;gt;&lt;br /&gt;
|RF Gain value for your SDR hardware. Run &amp;lt;code&amp;gt;SoapySDRUtil --probe&amp;lt;/code&amp;gt; to see all possible gain values for your hardware.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_RX_BANDWIDTH&amp;lt;/code&amp;gt;&lt;br /&gt;
|TODO&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_ANTENNA&amp;lt;/code&amp;gt;&lt;br /&gt;
|TODO&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_DEV_ARGS&amp;lt;/code&amp;gt;&lt;br /&gt;
|Soapy device arguments (currently only accepting the &amp;lt;code&amp;gt;serial&amp;lt;/code&amp;gt; key successfully) and stream arguments.&lt;br /&gt;
NOTE: This parameter / its meaning might change in the near future, see issue [https://gitlab.com/librespacefoundation/satnogs/satnogs-client/-/issues/373 satnogs-client#373].&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_ROT_MODEL&amp;lt;/code&amp;gt;&lt;br /&gt;
|Hamlib rotator model. If you don't have a rotator (like the [[No rotator|No rotator setup]]), leave it empty.&lt;br /&gt;
Use the macro name for your rotator model from this [https://gist.github.com/kerel-fs/2354ff9c082cd3c1594afc38c67bc32a#hamlib-release-33 list of rotator models in Hamlib].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_ROT_BAUD&amp;lt;/code&amp;gt;&lt;br /&gt;
|Baud rate for Hamlib rotator serial port.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_ROT_PORT&amp;lt;/code&amp;gt;&lt;br /&gt;
|Serial port for Hamlib rotator.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_ROT_THRESHOLD&amp;lt;/code&amp;gt;&lt;br /&gt;
|Rotator movement threshold, in degrees. If set, the rotator will only be commanded when the target has moved more than &amp;lt;threshold&amp;gt; degrees away from the current azimuth/elevation position.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&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.&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:&lt;br /&gt;
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;
For a SatNOGS rotator &amp;lt;code&amp;gt;-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_PRE_OBSERVATION_SCRIPT&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;SATNOGS_POST_OBSERVATION_SCRIPT&amp;lt;/code&amp;gt;&lt;br /&gt;
|Allows execution of a shell script either pre or post-observation. The following can be entered into the script path to enable passing of information to the script:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{FREQ}}&amp;lt;/nowiki&amp;gt; - Observation Centre Frequency&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{TLE}}&amp;lt;/nowiki&amp;gt; - Target object TLE data, as a JSON-formatted object.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{TIMESTAMP}}&amp;lt;/nowiki&amp;gt; - Start time of the observation, in the format: %Y-%m-%dT%H-%M-%S%z&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{ID}}&amp;lt;/nowiki&amp;gt; - Observation ID number.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{BAUD}}&amp;lt;/nowiki&amp;gt; - Baud rate of the modulation used, if applicable.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{SCRIPT_NAME}}&amp;lt;/nowiki&amp;gt; - The name of the demodulation flowgraph script in use.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;EXPERIMENTAL&amp;lt;/code&amp;gt;&lt;br /&gt;
|Install latest (experimental) versions of all software&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;APT_REPOSITORY&amp;lt;/code&amp;gt;&lt;br /&gt;
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:&lt;br /&gt;
&amp;lt;code&amp;gt;deb &amp;lt;nowiki&amp;gt;http://download.opensuse.org/repositories/home:/librespace:/satnogs-unstable/Raspbian_10&amp;lt;/nowiki&amp;gt; ./&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;APT_KEY_URL&amp;lt;/code&amp;gt;&lt;br /&gt;
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://download.opensuse.org/repositories/home:/librespace:/satnogs-unstable/Raspbian_10/Release.key&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;APT_KEY_ID&amp;lt;/code&amp;gt;&lt;br /&gt;
|This options allows you to specify an alternative SatNOGS packages repository key ID.&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;
&lt;br /&gt;
*&amp;lt;code&amp;gt;git+&amp;lt;nowiki&amp;gt;https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@master&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; -- the 'master' 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_FLOWGRAPHS_VERSION&amp;lt;/code&amp;gt;&lt;br /&gt;
|This options allows you to change the version of satnogs-flowgraphs package to be installed. For example:&lt;br /&gt;
&amp;lt;code&amp;gt;0.1-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;LOG_LEVEL&amp;lt;/code&amp;gt;&lt;br /&gt;
|Define SatNOGS client log level, available values: &amp;lt;code&amp;gt;ERROR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;WARNING&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;INFO&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DEBUG&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Obsolete Setup Variables==&lt;br /&gt;
The following options were available in previous versions of the SatNOGS client system and have no effect on the latest stable version.&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_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/airspymini&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;lime&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;hackrf&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_PPM_ERROR&amp;lt;/code&amp;gt;&lt;br /&gt;
|gr-satnogs: The PPM correction [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_DEV_ARGS&amp;lt;/code&amp;gt;&lt;br /&gt;
|gr-satnogs: SDR device specific arguments [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]&lt;br /&gt;
Note: This variable was re-purposed to set soapy device and stream arguments, so it's not obsolete anymore.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_IF_GAIN&amp;lt;/code&amp;gt;&lt;br /&gt;
|gr-satnogs: Intermediate frequency gain [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_BB_GAIN&amp;lt;/code&amp;gt;&lt;br /&gt;
|gr-satnogs: Baseband gain [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_RADIO_GR_SATNOGS_VERSION&amp;lt;/code&amp;gt;&lt;br /&gt;
|This options allows you to change the version of gr-satnogs package to be installed. For example: &amp;lt;code&amp;gt;1.5.1-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Updating SatNOGS Client Software==&lt;br /&gt;
To update SatNOGS software, including the configuration tool itself:&lt;br /&gt;
&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 and all distribution packages to the latest&lt;br /&gt;
#If you are prompt for a reboot during the upgrade, once the upgrade is finished, select &amp;lt;code&amp;gt;Reboot&amp;lt;/code&amp;gt;, SSH back into the system and re-run &amp;lt;code&amp;gt;satnogs-setup&amp;lt;/code&amp;gt; to continue to the next step&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;
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions&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;
===Upgrading from Debian 'stretch' to 'buster'===&lt;br /&gt;
Debian &amp;lt;code&amp;gt;stretch&amp;lt;/code&amp;gt; is no longer supported. If you have already installed an older version of Debian or Raspbian SatNOGS image based on &amp;lt;code&amp;gt;stretch&amp;lt;/code&amp;gt; (releases &amp;lt;= [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/tags/2018080300 2018080300]), you must upgrade to &amp;lt;code&amp;gt;buster&amp;lt;/code&amp;gt; otherwise it will be impossible to receive updates or upgrades in the future.&lt;br /&gt;
====Method 1: Reflashing and reinstalling (recommended)====&lt;br /&gt;
The recommended method to upgrade to &amp;lt;code&amp;gt;buster&amp;lt;/code&amp;gt; is reflashing the latest Raspbian SatNOGS image (or reinstalling latest Debian). Follow [[Raspberry Pi|Raspberry Pi]] installation instructions and reinstall from scratch.&lt;br /&gt;
====Method 2: Release upgrade using the configuration tool (advanced)====&lt;br /&gt;
{{Warning|Make sure you have a stable connection to the internet and your SatNOGS client during this process. Release upgrades can consume a lot of time, data and storage.}}To upgrade from stretch to buster using the configuration tool:&lt;br /&gt;
&lt;br /&gt;
#SSH into the system&lt;br /&gt;
#Make sure you have enough free space on your SD card (&amp;gt;2GiB) by running &amp;lt;code&amp;gt;df -h /&amp;lt;/code&amp;gt; on the console&lt;br /&gt;
#Run &amp;lt;code&amp;gt;sudo satnogs-setup&amp;lt;/code&amp;gt; to 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 and all distribution packages to the latest; this will also prompt you for a distribution upgrade, if it detects that one is needed&lt;br /&gt;
#Keep an eye on the upgrade progress; &amp;lt;code&amp;gt;dpkg&amp;lt;/code&amp;gt; may prompt for changes&lt;br /&gt;
#Once the upgrade is completed select &amp;lt;code&amp;gt;Reboot&amp;lt;/code&amp;gt;&lt;br /&gt;
#After the reboot, SSH back into the system and make sure you are on the correct release by running &amp;lt;code&amp;gt;lsb_release -a&amp;lt;/code&amp;gt;&lt;br /&gt;
#Re-run &amp;lt;code&amp;gt;sudo satnogs-setup&amp;lt;/code&amp;gt; and select &amp;lt;code&amp;gt;Update&amp;lt;/code&amp;gt; and then &amp;lt;code&amp;gt;Apply&amp;lt;/code&amp;gt;; this may take some time&lt;br /&gt;
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions&lt;br /&gt;
#Select &amp;lt;code&amp;gt;Back&amp;lt;/code&amp;gt; to exit&lt;br /&gt;
&lt;br /&gt;
==Verification of correct installation==&lt;br /&gt;
To see if satnogs-client has started successfully, check the logs with &amp;lt;code&amp;gt;systemctl&amp;lt;/code&amp;gt;:&amp;lt;pre&amp;gt;&lt;br /&gt;
$ systemctl status satnogs-client&lt;br /&gt;
&amp;lt;/pre&amp;gt;You should see an output that looks like this:&amp;lt;pre&amp;gt;&lt;br /&gt;
● satnogs-client.service - SatNOGS client&lt;br /&gt;
   Loaded: loaded (/etc/systemd/system/satnogs-client.service; enabled; vendor preset: enabled)&lt;br /&gt;
   Active: active (running) since Wed 2020-03-04 19:30:56 GMT; 6min ago&lt;br /&gt;
 Main PID: 6309 (satnogs-client)&lt;br /&gt;
    Tasks: 11 (limit: 2200)&lt;br /&gt;
   Memory: 37.9M&lt;br /&gt;
   CGroup: /system.slice/satnogs-client.service&lt;br /&gt;
           └─6309 /var/lib/satnogs/bin/python3 /var/lib/satnogs/bin/satnogs-client&lt;br /&gt;
&lt;br /&gt;
Mar 04 19:30:56 raspberrypi systemd[1]: Started SatNOGS client.&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[SatNOGS Client Ansible]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Build]]&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Vk5qi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=SatNOGS_Setup_Legacy&amp;diff=3496</id>
		<title>SatNOGS Setup Legacy</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=SatNOGS_Setup_Legacy&amp;diff=3496"/>
		<updated>2020-03-14T07:35:08Z</updated>

		<summary type="html">&lt;p&gt;Vk5qi: /* Advanced Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&amp;lt;code&amp;gt;satnogs-setup&amp;lt;/code&amp;gt; provides a set of scripts for configuring a '''SatNOGS Client''' system. &amp;lt;code&amp;gt;satnogs-setup&amp;lt;/code&amp;gt; main function is to bring up a menu-driven console configuration utility and provision the system using [[SatNOGS Client Ansible|Ansible]].&lt;br /&gt;
&lt;br /&gt;
==Initial Setup==&lt;br /&gt;
Right after the first boot of the system, packages and the configuration tool itself '''must be updated'''. Follow the [[SatNOGS Client Setup#Updating SatNOGS Client Software|Updating]] instruction found below.&lt;br /&gt;
&lt;br /&gt;
To configure a '''SatNOGS Client''' 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 '''all''' options in '''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;
{{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;
===Basic Configuration===&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, please don’t share your api key as this can give access to anyone to upload and change things in network related to your station and its observations.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_SOAPY_RX_DEVICE&amp;lt;/code&amp;gt;&lt;br /&gt;
|If you are using an RTL-SDR, this is &amp;lt;code&amp;gt;driver=rtlsdr&amp;lt;/code&amp;gt;.  See [https://github.com/pothosware/SoapyRTLSDR/wiki#modules pothosware/SoapyRTLSDR/wiki#modules] for other SDR modules (linked in the navigation bar at the right side of the page). If multiple devices are attached to your station you should also specify the serial of the desired device here, e.g. &amp;lt;code&amp;gt;driver=uhd,serial=3164495&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_RX_SAMP_RATE&amp;lt;/code&amp;gt;&lt;br /&gt;
|Specify the receiver sampling rate. Example value for RTL-SDR: &amp;lt;code&amp;gt;2.048e6&amp;lt;/code&amp;gt; (for 2Msps).&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 '''numeric ID''' assigned to your station in the SatNOGS Network site when the groundstation was created.&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;
&lt;br /&gt;
==Advanced Setup==&lt;br /&gt;
{{Warning|Changes to the following settings may be required to optimise station performance, or enable support for additional features (e.g. rotator control)}}A more detailed description on setting up a development environment using the SatNOGS reference setup is given in [[SatNOGS_Client_Development]].&lt;br /&gt;
&lt;br /&gt;
NOTE: To get your station online, you need to set SATNOGS_NETWORK_API_URL to https://network.satnogs.org/api/&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_RF_GAIN&amp;lt;/code&amp;gt;&lt;br /&gt;
|RF Gain value for your SDR hardware. Run &amp;lt;code&amp;gt;SoapySDRUtil --probe&amp;lt;/code&amp;gt; to see all possible gain values for your hardware.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_RX_BANDWIDTH&amp;lt;/code&amp;gt;&lt;br /&gt;
|TODO&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_ANTENNA&amp;lt;/code&amp;gt;&lt;br /&gt;
|TODO&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_DEV_ARGS&amp;lt;/code&amp;gt;&lt;br /&gt;
|Soapy device arguments (currently only accepting the &amp;lt;code&amp;gt;serial&amp;lt;/code&amp;gt; key successfully) and stream arguments.&lt;br /&gt;
NOTE: This parameter / its meaning might change in the near future, see issue [https://gitlab.com/librespacefoundation/satnogs/satnogs-client/-/issues/373 satnogs-client#373].&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_ROT_MODEL&amp;lt;/code&amp;gt;&lt;br /&gt;
|Hamlib rotator model. If you don't have a rotator (like the [[No rotator|No rotator setup]]), leave it empty.&lt;br /&gt;
Use the macro name for your rotator model from this [https://gist.github.com/kerel-fs/2354ff9c082cd3c1594afc38c67bc32a#hamlib-release-33 list of rotator models in Hamlib].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_ROT_BAUD&amp;lt;/code&amp;gt;&lt;br /&gt;
|Baud rate for Hamlib rotator serial port.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_ROT_PORT&amp;lt;/code&amp;gt;&lt;br /&gt;
|Serial port for Hamlib rotator.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_ROT_THRESHOLD&amp;lt;/code&amp;gt;&lt;br /&gt;
|Rotator movement threshold, in degrees. If set, the rotator will only be commanded when the target has moved more than &amp;lt;threshold&amp;gt; degrees away from the current azimuth/elevation position.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&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.&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:&lt;br /&gt;
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;
For a SatNOGS rotator &amp;lt;code&amp;gt;-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_PRE_OBSERVATION_SCRIPT&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;SATNOGS_POST_OBSERVATION_SCRIPT&amp;lt;/code&amp;gt;&lt;br /&gt;
|Allows execution of a shell script either pre or post-observation. The following can be entered into the script path to enable passing of information to the script:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{FREQ}}&amp;lt;/nowiki&amp;gt; - Observation Centre Frequency&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{TLE}}&amp;lt;/nowiki&amp;gt; - Target object TLE data, as a JSON-formatted object.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{TIMESTAMP}}&amp;lt;/nowiki&amp;gt; - Start time of the observation, in the format: %Y-%m-%dT%H-%M-%S%z&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{ID}}&amp;lt;/nowiki&amp;gt; - Observation ID number.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{BAUD}}&amp;lt;/nowiki&amp;gt; - Baud rate of the modulation used, if applicable.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;EXPERIMENTAL&amp;lt;/code&amp;gt;&lt;br /&gt;
|Install latest (experimental) versions of all software&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;APT_REPOSITORY&amp;lt;/code&amp;gt;&lt;br /&gt;
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:&lt;br /&gt;
&amp;lt;code&amp;gt;deb &amp;lt;nowiki&amp;gt;http://download.opensuse.org/repositories/home:/librespace:/satnogs-unstable/Raspbian_10&amp;lt;/nowiki&amp;gt; ./&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;APT_KEY_URL&amp;lt;/code&amp;gt;&lt;br /&gt;
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://download.opensuse.org/repositories/home:/librespace:/satnogs-unstable/Raspbian_10/Release.key&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;APT_KEY_ID&amp;lt;/code&amp;gt;&lt;br /&gt;
|This options allows you to specify an alternative SatNOGS packages repository key ID.&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;
&lt;br /&gt;
*&amp;lt;code&amp;gt;git+&amp;lt;nowiki&amp;gt;https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@master&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; -- the 'master' 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_FLOWGRAPHS_VERSION&amp;lt;/code&amp;gt;&lt;br /&gt;
|This options allows you to change the version of satnogs-flowgraphs package to be installed. For example:&lt;br /&gt;
&amp;lt;code&amp;gt;0.1-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;LOG_LEVEL&amp;lt;/code&amp;gt;&lt;br /&gt;
|Define SatNOGS client log level, available values: &amp;lt;code&amp;gt;ERROR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;WARNING&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;INFO&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DEBUG&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Obsolete Setup Variables==&lt;br /&gt;
The following options were available in previous versions of the SatNOGS client system and have no effect on the latest stable version.&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_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/airspymini&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;lime&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;hackrf&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_PPM_ERROR&amp;lt;/code&amp;gt;&lt;br /&gt;
|gr-satnogs: The PPM correction [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_DEV_ARGS&amp;lt;/code&amp;gt;&lt;br /&gt;
|gr-satnogs: SDR device specific arguments [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]&lt;br /&gt;
Note: This variable was re-purposed to set soapy device and stream arguments, so it's not obsolete anymore.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_IF_GAIN&amp;lt;/code&amp;gt;&lt;br /&gt;
|gr-satnogs: Intermediate frequency gain [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_BB_GAIN&amp;lt;/code&amp;gt;&lt;br /&gt;
|gr-satnogs: Baseband gain [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_RADIO_GR_SATNOGS_VERSION&amp;lt;/code&amp;gt;&lt;br /&gt;
|This options allows you to change the version of gr-satnogs package to be installed. For example: &amp;lt;code&amp;gt;1.5.1-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Updating SatNOGS Client Software==&lt;br /&gt;
To update SatNOGS software, including the configuration tool itself:&lt;br /&gt;
&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 and all distribution packages to the latest&lt;br /&gt;
#If you are prompt for a reboot during the upgrade, once the upgrade is finished, select &amp;lt;code&amp;gt;Reboot&amp;lt;/code&amp;gt;, SSH back into the system and re-run &amp;lt;code&amp;gt;satnogs-setup&amp;lt;/code&amp;gt; to continue to the next step&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;
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions&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;
===Upgrading from Debian 'stretch' to 'buster'===&lt;br /&gt;
Debian &amp;lt;code&amp;gt;stretch&amp;lt;/code&amp;gt; is no longer supported. If you have already installed an older version of Debian or Raspbian SatNOGS image based on &amp;lt;code&amp;gt;stretch&amp;lt;/code&amp;gt; (releases &amp;lt;= [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/tags/2018080300 2018080300]), you must upgrade to &amp;lt;code&amp;gt;buster&amp;lt;/code&amp;gt; otherwise it will be impossible to receive updates or upgrades in the future.&lt;br /&gt;
====Method 1: Reflashing and reinstalling (recommended)====&lt;br /&gt;
The recommended method to upgrade to &amp;lt;code&amp;gt;buster&amp;lt;/code&amp;gt; is reflashing the latest Raspbian SatNOGS image (or reinstalling latest Debian). Follow [[Raspberry Pi|Raspberry Pi]] installation instructions and reinstall from scratch.&lt;br /&gt;
====Method 2: Release upgrade using the configuration tool (advanced)====&lt;br /&gt;
{{Warning|Make sure you have a stable connection to the internet and your SatNOGS client during this process. Release upgrades can consume a lot of time, data and storage.}}To upgrade from stretch to buster using the configuration tool:&lt;br /&gt;
&lt;br /&gt;
#SSH into the system&lt;br /&gt;
#Make sure you have enough free space on your SD card (&amp;gt;2GiB) by running &amp;lt;code&amp;gt;df -h /&amp;lt;/code&amp;gt; on the console&lt;br /&gt;
#Run &amp;lt;code&amp;gt;sudo satnogs-setup&amp;lt;/code&amp;gt; to 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 and all distribution packages to the latest; this will also prompt you for a distribution upgrade, if it detects that one is needed&lt;br /&gt;
#Keep an eye on the upgrade progress; &amp;lt;code&amp;gt;dpkg&amp;lt;/code&amp;gt; may prompt for changes&lt;br /&gt;
#Once the upgrade is completed select &amp;lt;code&amp;gt;Reboot&amp;lt;/code&amp;gt;&lt;br /&gt;
#After the reboot, SSH back into the system and make sure you are on the correct release by running &amp;lt;code&amp;gt;lsb_release -a&amp;lt;/code&amp;gt;&lt;br /&gt;
#Re-run &amp;lt;code&amp;gt;sudo satnogs-setup&amp;lt;/code&amp;gt; and select &amp;lt;code&amp;gt;Update&amp;lt;/code&amp;gt; and then &amp;lt;code&amp;gt;Apply&amp;lt;/code&amp;gt;; this may take some time&lt;br /&gt;
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions&lt;br /&gt;
#Select &amp;lt;code&amp;gt;Back&amp;lt;/code&amp;gt; to exit&lt;br /&gt;
&lt;br /&gt;
==Verification of correct installation==&lt;br /&gt;
To see if satnogs-client has started successfully, check the logs with &amp;lt;code&amp;gt;systemctl&amp;lt;/code&amp;gt;:&amp;lt;pre&amp;gt;&lt;br /&gt;
$ systemctl status satnogs-client&lt;br /&gt;
&amp;lt;/pre&amp;gt;You should see an output that looks like this:&amp;lt;pre&amp;gt;&lt;br /&gt;
● satnogs-client.service - SatNOGS client&lt;br /&gt;
   Loaded: loaded (/etc/systemd/system/satnogs-client.service; enabled; vendor preset: enabled)&lt;br /&gt;
   Active: active (running) since Wed 2020-03-04 19:30:56 GMT; 6min ago&lt;br /&gt;
 Main PID: 6309 (satnogs-client)&lt;br /&gt;
    Tasks: 11 (limit: 2200)&lt;br /&gt;
   Memory: 37.9M&lt;br /&gt;
   CGroup: /system.slice/satnogs-client.service&lt;br /&gt;
           └─6309 /var/lib/satnogs/bin/python3 /var/lib/satnogs/bin/satnogs-client&lt;br /&gt;
&lt;br /&gt;
Mar 04 19:30:56 raspberrypi systemd[1]: Started SatNOGS client.&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[SatNOGS Client Ansible]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Build]]&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Vk5qi</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=SatNOGS_Setup_Legacy&amp;diff=3495</id>
		<title>SatNOGS Setup Legacy</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=SatNOGS_Setup_Legacy&amp;diff=3495"/>
		<updated>2020-03-14T02:54:29Z</updated>

		<summary type="html">&lt;p&gt;Vk5qi: /* Advanced Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&amp;lt;code&amp;gt;satnogs-setup&amp;lt;/code&amp;gt; provides a set of scripts for configuring a '''SatNOGS Client''' system. &amp;lt;code&amp;gt;satnogs-setup&amp;lt;/code&amp;gt; main function is to bring up a menu-driven console configuration utility and provision the system using [[SatNOGS Client Ansible|Ansible]].&lt;br /&gt;
&lt;br /&gt;
==Initial Setup==&lt;br /&gt;
Right after the first boot of the system, packages and the configuration tool itself '''must be updated'''. Follow the [[SatNOGS Client Setup#Updating SatNOGS Client Software|Updating]] instruction found below.&lt;br /&gt;
&lt;br /&gt;
To configure a '''SatNOGS Client''' 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 '''all''' options in '''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;
{{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;
===Basic Configuration===&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, please don’t share your api key as this can give access to anyone to upload and change things in network related to your station and its observations.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_SOAPY_RX_DEVICE&amp;lt;/code&amp;gt;&lt;br /&gt;
|If you are using an RTL-SDR, this is &amp;lt;code&amp;gt;driver=rtlsdr&amp;lt;/code&amp;gt;.  See [https://github.com/pothosware/SoapyRTLSDR/wiki#modules pothosware/SoapyRTLSDR/wiki#modules] for other SDR modules (linked in the navigation bar at the right side of the page). If multiple devices are attached to your station you should also specify the serial of the desired device here, e.g. &amp;lt;code&amp;gt;driver=uhd,serial=3164495&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_RX_SAMP_RATE&amp;lt;/code&amp;gt;&lt;br /&gt;
|Specify the receiver sampling rate. Example value for RTL-SDR: &amp;lt;code&amp;gt;2.048e6&amp;lt;/code&amp;gt; (for 2Msps).&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 '''numeric ID''' assigned to your station in the SatNOGS Network site when the groundstation was created.&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;
&lt;br /&gt;
==Advanced Setup==&lt;br /&gt;
{{Warning|Changes to the following settings may be required to optimise station performance, or enable support for additional features (e.g. rotator control)}}A more detailed description on setting up a development environment using the SatNOGS reference setup is given in [[SatNOGS_Client_Development]].&lt;br /&gt;
&lt;br /&gt;
NOTE: To get your station online, you need to set SATNOGS_NETWORK_API_URL to https://network.satnogs.org/api/&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_RF_GAIN&amp;lt;/code&amp;gt;&lt;br /&gt;
|RF Gain value for your SDR hardware. Run &amp;lt;code&amp;gt;SoapySDRUtil --probe&amp;lt;/code&amp;gt; to see all possible gain values for your hardware.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_RX_BANDWIDTH&amp;lt;/code&amp;gt;&lt;br /&gt;
|TODO&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_ANTENNA&amp;lt;/code&amp;gt;&lt;br /&gt;
|TODO&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_DEV_ARGS&amp;lt;/code&amp;gt;&lt;br /&gt;
|Soapy device arguments (currently only accepting the &amp;lt;code&amp;gt;serial&amp;lt;/code&amp;gt; key successfully) and stream arguments.&lt;br /&gt;
NOTE: This parameter / its meaning might change in the near future, see issue [https://gitlab.com/librespacefoundation/satnogs/satnogs-client/-/issues/373 satnogs-client#373].&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_ROT_MODEL&amp;lt;/code&amp;gt;&lt;br /&gt;
|Hamlib rotator model. If you don't have a rotator (like the [[No rotator|No rotator setup]]), leave it empty.&lt;br /&gt;
Use the macro name for your rotator model from this [https://gist.github.com/kerel-fs/2354ff9c082cd3c1594afc38c67bc32a#hamlib-release-33 list of rotator models in Hamlib].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_ROT_BAUD&amp;lt;/code&amp;gt;&lt;br /&gt;
|Baud rate for Hamlib rotator serial port.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_ROT_PORT&amp;lt;/code&amp;gt;&lt;br /&gt;
|Serial port for Hamlib rotator.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_ROT_THRESHOLD&amp;lt;/code&amp;gt;&lt;br /&gt;
|Rotator movement threshold, in degrees. If set, the rotator will only be commanded when the target has moved more than &amp;lt;threshold&amp;gt; degrees away from the current azimuth/elevation position.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&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.&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:&lt;br /&gt;
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;
For a SatNOGS rotator &amp;lt;code&amp;gt;-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;EXPERIMENTAL&amp;lt;/code&amp;gt;&lt;br /&gt;
|Install latest (experimental) versions of all software&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;APT_REPOSITORY&amp;lt;/code&amp;gt;&lt;br /&gt;
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:&lt;br /&gt;
&amp;lt;code&amp;gt;deb &amp;lt;nowiki&amp;gt;http://download.opensuse.org/repositories/home:/librespace:/satnogs-unstable/Raspbian_10&amp;lt;/nowiki&amp;gt; ./&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;APT_KEY_URL&amp;lt;/code&amp;gt;&lt;br /&gt;
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://download.opensuse.org/repositories/home:/librespace:/satnogs-unstable/Raspbian_10/Release.key&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;APT_KEY_ID&amp;lt;/code&amp;gt;&lt;br /&gt;
|This options allows you to specify an alternative SatNOGS packages repository key ID.&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;
&lt;br /&gt;
*&amp;lt;code&amp;gt;git+&amp;lt;nowiki&amp;gt;https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@master&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; -- the 'master' 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_FLOWGRAPHS_VERSION&amp;lt;/code&amp;gt;&lt;br /&gt;
|This options allows you to change the version of satnogs-flowgraphs package to be installed. For example:&lt;br /&gt;
&amp;lt;code&amp;gt;0.1-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;LOG_LEVEL&amp;lt;/code&amp;gt;&lt;br /&gt;
|Define SatNOGS client log level, available values: &amp;lt;code&amp;gt;ERROR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;WARNING&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;INFO&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DEBUG&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Obsolete Setup Variables==&lt;br /&gt;
The following options were available in previous versions of the SatNOGS client system and have no effect on the latest stable version.&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_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/airspymini&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;lime&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;hackrf&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_PPM_ERROR&amp;lt;/code&amp;gt;&lt;br /&gt;
|gr-satnogs: The PPM correction [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_DEV_ARGS&amp;lt;/code&amp;gt;&lt;br /&gt;
|gr-satnogs: SDR device specific arguments [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]&lt;br /&gt;
Note: This variable was re-purposed to set soapy device and stream arguments, so it's not obsolete anymore.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_IF_GAIN&amp;lt;/code&amp;gt;&lt;br /&gt;
|gr-satnogs: Intermediate frequency gain [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_BB_GAIN&amp;lt;/code&amp;gt;&lt;br /&gt;
|gr-satnogs: Baseband gain [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SATNOGS_RADIO_GR_SATNOGS_VERSION&amp;lt;/code&amp;gt;&lt;br /&gt;
|This options allows you to change the version of gr-satnogs package to be installed. For example: &amp;lt;code&amp;gt;1.5.1-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Updating SatNOGS Client Software==&lt;br /&gt;
To update SatNOGS software, including the configuration tool itself:&lt;br /&gt;
&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 and all distribution packages to the latest&lt;br /&gt;
#If you are prompt for a reboot during the upgrade, once the upgrade is finished, select &amp;lt;code&amp;gt;Reboot&amp;lt;/code&amp;gt;, SSH back into the system and re-run &amp;lt;code&amp;gt;satnogs-setup&amp;lt;/code&amp;gt; to continue to the next step&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;
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions&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;
===Upgrading from Debian 'stretch' to 'buster'===&lt;br /&gt;
Debian &amp;lt;code&amp;gt;stretch&amp;lt;/code&amp;gt; is no longer supported. If you have already installed an older version of Debian or Raspbian SatNOGS image based on &amp;lt;code&amp;gt;stretch&amp;lt;/code&amp;gt; (releases &amp;lt;= [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/tags/2018080300 2018080300]), you must upgrade to &amp;lt;code&amp;gt;buster&amp;lt;/code&amp;gt; otherwise it will be impossible to receive updates or upgrades in the future.&lt;br /&gt;
====Method 1: Reflashing and reinstalling (recommended)====&lt;br /&gt;
The recommended method to upgrade to &amp;lt;code&amp;gt;buster&amp;lt;/code&amp;gt; is reflashing the latest Raspbian SatNOGS image (or reinstalling latest Debian). Follow [[Raspberry Pi|Raspberry Pi]] installation instructions and reinstall from scratch.&lt;br /&gt;
====Method 2: Release upgrade using the configuration tool (advanced)====&lt;br /&gt;
{{Warning|Make sure you have a stable connection to the internet and your SatNOGS client during this process. Release upgrades can consume a lot of time, data and storage.}}To upgrade from stretch to buster using the configuration tool:&lt;br /&gt;
&lt;br /&gt;
#SSH into the system&lt;br /&gt;
#Make sure you have enough free space on your SD card (&amp;gt;2GiB) by running &amp;lt;code&amp;gt;df -h /&amp;lt;/code&amp;gt; on the console&lt;br /&gt;
#Run &amp;lt;code&amp;gt;sudo satnogs-setup&amp;lt;/code&amp;gt; to 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 and all distribution packages to the latest; this will also prompt you for a distribution upgrade, if it detects that one is needed&lt;br /&gt;
#Keep an eye on the upgrade progress; &amp;lt;code&amp;gt;dpkg&amp;lt;/code&amp;gt; may prompt for changes&lt;br /&gt;
#Once the upgrade is completed select &amp;lt;code&amp;gt;Reboot&amp;lt;/code&amp;gt;&lt;br /&gt;
#After the reboot, SSH back into the system and make sure you are on the correct release by running &amp;lt;code&amp;gt;lsb_release -a&amp;lt;/code&amp;gt;&lt;br /&gt;
#Re-run &amp;lt;code&amp;gt;sudo satnogs-setup&amp;lt;/code&amp;gt; and select &amp;lt;code&amp;gt;Update&amp;lt;/code&amp;gt; and then &amp;lt;code&amp;gt;Apply&amp;lt;/code&amp;gt;; this may take some time&lt;br /&gt;
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions&lt;br /&gt;
#Select &amp;lt;code&amp;gt;Back&amp;lt;/code&amp;gt; to exit&lt;br /&gt;
&lt;br /&gt;
==Verification of correct installation==&lt;br /&gt;
To see if satnogs-client has started successfully, check the logs with &amp;lt;code&amp;gt;systemctl&amp;lt;/code&amp;gt;:&amp;lt;pre&amp;gt;&lt;br /&gt;
$ systemctl status satnogs-client&lt;br /&gt;
&amp;lt;/pre&amp;gt;You should see an output that looks like this:&amp;lt;pre&amp;gt;&lt;br /&gt;
● satnogs-client.service - SatNOGS client&lt;br /&gt;
   Loaded: loaded (/etc/systemd/system/satnogs-client.service; enabled; vendor preset: enabled)&lt;br /&gt;
   Active: active (running) since Wed 2020-03-04 19:30:56 GMT; 6min ago&lt;br /&gt;
 Main PID: 6309 (satnogs-client)&lt;br /&gt;
    Tasks: 11 (limit: 2200)&lt;br /&gt;
   Memory: 37.9M&lt;br /&gt;
   CGroup: /system.slice/satnogs-client.service&lt;br /&gt;
           └─6309 /var/lib/satnogs/bin/python3 /var/lib/satnogs/bin/satnogs-client&lt;br /&gt;
&lt;br /&gt;
Mar 04 19:30:56 raspberrypi systemd[1]: Started SatNOGS client.&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[SatNOGS Client Ansible]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Build]]&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Vk5qi</name></author>
		
	</entry>
</feed>