https://wiki.satnogs.org/api.php?action=feedcontributions&user=Acinonyx&feedformat=atomSatNOGS Wiki - User contributions [en]2024-03-29T00:05:52ZUser contributionsMediaWiki 1.32.0https://wiki.satnogs.org/index.php?title=SatNOGS_Client_Setup&diff=3855SatNOGS Client Setup2022-09-10T17:24:31Z<p>Acinonyx: /* Reflashing and reinstalling */</p>
<hr />
<div>==Introduction==<br />
<code>satnogs-setup</code> provides a set of scripts for configuring a '''SatNOGS Client''' system. <code>satnogs-setup</code> main function is to bring up a menu-driven console configuration utility and provision the system using [[SatNOGS Client Ansible|Ansible]].<br />
<br />
==Initial Setup==<br />
Before starting <code>satnogs-setup</code>, ensure the Raspberry Pi is up to date. This can be done with <code>sudo apt update</code> and then <code>sudo apt upgrade</code>. <br />
<br />
{{Message| In case of getting a similar error to this:<br />
<code>W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://download.opensuse.org/repositories/home:/librespace:/satnogs/Raspbian_10 ./ InRelease: The following signatures were invalid: EXPKEYSIG 8BD3901736A40B6C home:librespace OBS Project <home:librespace@build.opensuse.org><br />
</code><br />
Check at https://wiki.satnogs.org/Troubleshooting#Invalid_Signature_for_download.opensuse.org on how to solve it}}In case of getting a similar error to "Newer kernel available" annoying message after running sudo apt update:<br />
<br />
Package configuration <br />
<br />
┌──────────┤ Pending kernel upgrade ├─────────────────────┐<br />
<br />
│ │<br />
<br />
│ Newer kernel available │<br />
<br />
│ │<br />
<br />
│ The currently running kernel version is 4.19.97-v7l+ which is not the │<br />
<br />
│ expected kernel version 4.19.93-v8+. │<br />
<br />
│ │<br />
<br />
│ Restarting the system to load the new kernel will not be handled │<br />
<br />
│ automatically, so you should consider rebooting. │<br />
<br />
│ │<br />
<br />
│ <Ok> │<br />
<br />
│ │<br />
<br />
└─────────────────────────────────────────────────|<br />
<br />
Do a "sudo apt purge needrestart" after doing a reboot after doing a "sudo apt update"{{Message| In case of getting a similar error to this:<br />
<code><br />
E: Repository 'http://archive.raspberrypi.org/debian buster InRelease' changed its 'Suite' value from 'testing' to 'oldstable'<br />
<br />
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.<br />
<br />
E: Repository 'http://raspbian.raspberrypi.org/raspbian buster InRelease' changed its 'Suite' value from 'stable' to 'oldstable'<br />
<br />
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.<br />
</code><br />
Run <code>sudo apt-get update --allow-releaseinfo-change</code> instead of just <code>sudo apt-get update</code>}}<br />
<br />
(See: [[Troubleshooting#apt-get update: connection failed]] ).<br />
<br />
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.<br />
<br />
To configure a '''SatNOGS Client''' system:<br />
<br />
#SSH into the system and run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Set '''all''' options in '''Basic Configuration''' (see below)<br />
#Select <code>Apply</code> and the Raspberry Pi will configure itself; this may take some time<br />
#Select <code>Back</code> to exit<br />
{{Message|You can always reconfigure the software by running <code>sudo satnogs-setup</code> again.}}<br />
===Basic Configuration===<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_API_TOKEN</code><br />
|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.<br />
<br />
<br />
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 "Dashboard" option. On the top of the dashboard page right under the user icon click the button "API key" to show your API token.<br />
|-<br />
|<code>SATNOGS_SOAPY_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>driver=rtlsdr</code>. For other devices tested configurations can be found at [[Software_Defined_Radio]].<br />
<br />
<br />
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. <code>driver=uhd,serial=3164495</code>.<br />
|-<br />
|<code>SATNOGS_ANTENNA</code><br />
|If you are using an RTL-SDR, this is <code>RX</code>. For other devices tested configurations can be found at [[Software_Defined_Radio]].<br />
<br />
<br />
If your device is not listed there yet, use <code><nowiki>SoapySDRUtil --probe 2>&1| grep Antennas</nowiki></code> to get available antennas.<br />
|-<br />
|<code>SATNOGS_RX_SAMP_RATE</code><br />
|Specify the receiver sampling rate. Recommended value for RTL-SDR: <code>2.048e6</code> (for 2Msps), other devices will need different sample rates described at [[Software_Defined_Radio]] .<br />
<br />
<br />
The command <code><nowiki>SoapySDRUtil --probe 2>&1 | grep Sample</nowiki></code> can be used to find all valid sample rates.<br />
|-<br />
|<code>SATNOGS_RF_GAIN</code><br />
|RF Gain value for your SDR hardware.<br />
<br />
<br />
Run <code>SoapySDRUtil --probe</code> to see all possible gain values for your hardware.<br />
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.<br />
|-<br />
|<code>SATNOGS_STATION_ELEV</code><br />
|The height of your ground station above sea level in metres.<br />
|-<br />
|<code>SATNOGS_STATION_ID</code><br />
|The '''numeric ID''' assigned to your station in the SatNOGS Network site when the groundstation was created.<br />
|-<br />
|<code>SATNOGS_STATION_LAT</code><br />
|The latitude of your station. North is positive, south is negative.<br />
|-<br />
|<code>SATNOGS_STATION_LON</code><br />
|The longitude of your station. East is positive, west is negative.<br />
|}<br />
<br />
==Advanced Setup==<br />
{{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]].<br />
<br />
NOTE: To get your station online, you need to set SATNOGS_NETWORK_API_URL to https://network.satnogs.org/api/<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_PPM_ERROR</code><br />
|The local oscillator frequency deviation in ppm (value will be rounded to integer).<br />
Available with the following modules:<br />
<br />
*SoapyRTLSDR<br />
*SoapySDRPlay<br />
<br />
Not available with the following modules:<br />
<br />
*SoapyUHD<br />
*SoapyPluto<br />
|-<br />
|<code>SATNOGS_RX_BANDWIDTH</code><br />
|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.<br />
|-<br />
|<code>SATNOGS_DEV_ARGS</code><br />
|Soapy device arguments (currently only accepting the <code>serial</code> key successfully) and stream arguments.<br />
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].<br />
|-<br />
|<code>SATNOGS_GAIN_MODE</code><br />
|Choose the gain mode:<br />
<br />
*<code>"Overall"</code> (default): Set the gain with the single value from <code>SATNOGS_RF_GAIN</code><br />
*<code>"Settings Field"</code>: Ignore <code>SATNOGS_RF_GAIN</code>, use the settings from <code>SATNOGS_OTHER_SETTINGS</code> instead<br />
|-<br />
|<code>SATNOGS_STREAM_ARGS</code><br />
|<br />
|-<br />
|<code>SATNOGS_TUNE_ARGS</code><br />
|<br />
|-<br />
|<code>SATNOGS_OTHER_SETTINGS</code><br />
|Only available if <code>SATNOGS_GAIN_MODE</code>is<code>"Settings Field"</code>.<br />
Available gain settings can be retrieved using <code>SoapySDRUtil --probe="driver=xxxx`</code><br />
<br />
Example for Airspy: Use<code>"LNA=12,MIX=8,VGA=11"</code>See also: [[SDR#Airspy|Airspy support]]<br />
|-<br />
|<code>SATNOGS_DC_REMOVAL</code><br />
|<br />
|-<br />
|<code>SATNOGS_BB_FREQ</code><br />
|<br />
|-<br />
|<code>SATNOGS_LO_OFFSET</code><br />
|Don't use this parameter to correct for the local oscillator frequency deviation, use <code>SATNOGS_PPM_ERROR</code> instead!<br />
To avoid the SDR carrier at the DC the LO is shifted from the actual frequency a little. Default: <code>100e3</code> (100 kHz)<br />
|-<br />
|<br />
|<br />
|-<br />
|<code>SATNOGS_ROT_MODEL</code><br />
|Hamlib rotator model. If you don't have a rotator (like the [[No rotator|No rotator setup]]), leave it empty.<br />
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 <code>ROT_MODEL_NETROTCTL</code><br />
|-<br />
|<code>SATNOGS_ROT_BAUD</code><br />
|Baud rate for Hamlib rotator serial port, if using a serial-connected rotator.<br />
|-<br />
|<code>SATNOGS_ROT_PORT</code><br />
|Serial port for Hamlib rotator, OR the network address of a rotctld instance (e.g. <code>localhost:4533</code> )<br />
|-<br />
|<code>SATNOGS_ROT_THRESHOLD</code><br />
|Rotator movement threshold, in degrees. If set, the rotator will only be commanded when the target has moved more than <threshold> degrees away from the current azimuth/elevation position. Default: 4 degrees<br />
|-<br />
|<br />
|<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_ENABLED</code><br />
|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.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_OPTS</code><br />
|Options for rotcld:<br />
For a yaesu rotator, use <code>-m 601 -r /dev/ttyACM0 -s 9600 -T 0.0.0.0</code><br />
<br />
For a SatNOGS rotator <code>-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200</code> or <code>-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200</code><br />
|-<br />
|<br />
|<br />
|-<br />
|<code>SATNOGS_PRE_OBSERVATION_SCRIPT</code><code>SATNOGS_POST_OBSERVATION_SCRIPT</code><br />
|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:<br />
<code><nowiki>{{FREQ}}</nowiki></code> - Observation Centre Frequency<br />
<br />
<code><nowiki>{{TLE}}</nowiki></code> - Target object TLE data, as a JSON-formatted object.<br />
<br />
<code><nowiki>{{TIMESTAMP}}</nowiki></code> - Start time of the observation, in the format: %Y-%m-%dT%H-%M-%S%z<br />
<br />
<code><nowiki>{{ID}}</nowiki></code> - Observation ID number.<br />
<br />
<code><nowiki>{{BAUD}}</nowiki></code> - Baud rate of the modulation used, if applicable.<br />
<br />
<code><nowiki>{{SCRIPT_NAME}}</nowiki></code> - The name of the demodulation flow-graph script in use.<br />
|-<br />
|<br />
|<br />
|-<br />
|<code>EXPERIMENTAL</code><br />
|Install latest (experimental) versions of all software<br />
|-<br />
|<code>APT_REPOSITORY</code><br />
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:<br />
<code>deb <nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs-unstable/Raspbian_10</nowiki> ./</code><br />
|-<br />
|<code>APT_KEY_URL</code><br />
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:<br />
<code><nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs-unstable/Raspbian_10/Release.key</nowiki></code><br />
|-<br />
|<code>APT_KEY_ID</code><br />
|This options allows you to specify an alternative SatNOGS packages repository key ID.<br />
|-<br />
|<code>SATNOGS_CLIENT_URL</code><br />
|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:<br />
<br />
*<code>git+<nowiki>https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@master</nowiki></code> -- the 'master' branch (the current development version) of satnogs-client<br />
*<code><nowiki>git+https://gitlab.com/jdoe/satnogs-client.git@new-feature</nowiki></code> -- the 'new-feature' branch of jdoe's fork of satnogs-client<br />
|-<br />
|<code>SATNOGS_RADIO_FLOWGRAPHS_VERSION</code><br />
|This options allows you to change the version of satnogs-flowgraphs package to be installed. For example:<br />
<code>0.1-1</code><br />
|-<br />
|<br />
|<br />
|-<br />
|<code>LOG_LEVEL</code><br />
|Define SatNOGS client log level, available values: <code>ERROR</code>, <code>WARNING</code>, <code>INFO</code> and <code>DEBUG</code><br />
|-<br />
|<br />
|-<br />
|<code>SATNOGS_ARTIFACTS_ENABLED</code><br />
|Enable generation and uploading of HDF5 artifacts files to SatNOGS DB. (added in satnogs-client 1.7)<br />
|-<br />
|<code>SATNOGS_ARTIFACTS_API_TOKEN</code><br />
|SatNOGS DB API token associated with an account in SatNOGS DB. This token is secret. It is used to upload artifacts to SatNOGS DB. It can be found in SatNOGS DB user page. (added in satnogs-client 1.7)<br />
|}<br />
<br />
==Obsolete Setup Variables==<br />
The following options were available in previous versions of the SatNOGS client system and have no effect on the latest stable version.<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>rtlsdr</code>. Other devices supported by gr-satnogs include <code>usrpb200</code>, <code>usrp2</code>, <code>airspy/airspymini</code>, <code>lime</code>, or <code>hackrf</code>.<br />
|-<br />
|<code>SATNOGS_PPM_ERROR</code> (available again)<br />
|gr-satnogs: The PPM correction [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]<br />
|-<br />
|<code>SATNOGS_DEV_ARGS</code> (available again)<br />
|gr-satnogs: SDR device specific arguments [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]<br />
Note: This variable was re-purposed to set soapy device and stream arguments, so it's not obsolete anymore.<br />
|-<br />
|<code>SATNOGS_IF_GAIN</code><br />
|gr-satnogs: Intermediate frequency gain [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]<br />
|-<br />
|<code>SATNOGS_BB_GAIN</code><br />
|gr-satnogs: Baseband gain [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]<br />
|-<br />
|<code>SATNOGS_RADIO_GR_SATNOGS_VERSION</code><br />
|This options allows you to change the version of gr-satnogs package to be installed. For example: <code>1.5.1-1</code><br />
|}<br />
<br />
==Updating SatNOGS Client Software==<br />
{{Warning| An update can potentially interrupt a running observation!}}<br />
To update SatNOGS software, including the configuration tool itself:<br />
<br />
#SSH into the system and (re-)run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Select <code>Update</code> to update the configuration tool and all distribution packages to the latest<br />
#If you are prompted for a reboot during the upgrade, once the upgrade is finished, select <code>Reboot</code>, SSH back into the system and re-run <code>satnogs-setup</code> to continue to the next step<br />
#Select <code>Apply</code> and the Raspberry Pi will update itself; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
{{Message|You can check your current version of client (and other client software) at the top of window after running <code>sudo satnogs-setup</code>; alternatively you can generate the support report by going at <code>Advanced -> Support</code>.}}<br />
{{Message|Client version on SatNOGS Network is updated after the first observation with the new client.}}<br />
===Upgrading from Debian 'stretch' or 'buster', to 'bullseye'===<br />
Debian <code>stretch</code> and <code>buster</code> are no longer supported. If you have already installed an older version of Debian or Raspbian SatNOGS image based on <code>buster</code> or <code>stretch</code> (releases <= [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/tags/2020122700 2020122700]), you must upgrade to <code>bullseye</code> otherwise it will be impossible to receive updates or upgrades in the future.<br />
====Reflashing and reinstalling====<br />
The recommended method to upgrade to <code>bullseye</code> is reflashing the latest Raspbian SatNOGS image (or reinstalling latest Debian). Follow [[Raspberry Pi|Raspberry Pi]] installation instructions and reinstall from scratch.<br />
==Verification of correct installation==<br />
To see if satnogs-client has started successfully, check the logs with <code>systemctl</code>:<pre><br />
$ systemctl status satnogs-client<br />
</pre>You should see an output that looks like this:<pre><br />
● satnogs-client.service - SatNOGS client<br />
Loaded: loaded (/etc/systemd/system/satnogs-client.service; enabled; vendor preset: enabled)<br />
Active: active (running) since Wed 2020-03-04 19:30:56 GMT; 6min ago<br />
Main PID: 6309 (satnogs-client)<br />
Tasks: 11 (limit: 2200)<br />
Memory: 37.9M<br />
CGroup: /system.slice/satnogs-client.service<br />
└─6309 /var/lib/satnogs/bin/python3 /var/lib/satnogs/bin/satnogs-client<br />
<br />
Mar 04 19:30:56 raspberrypi systemd[1]: Started SatNOGS client.<br />
</pre>If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.<br />
<br />
==Backup & Restore the configuration==<br />
The configuration of your SatNOGS station is stored at <code>/etc/ansible/host_vars/localhost</code>. If your station software is broken (e.g. due to a corrupt SD card) or if you want to downgrade from the experimental software back to the stable releases, you can perform the following steps:<br />
<br />
#Backup the configuration file at <code>/etc/ansible/host_vars/localhost</code><br />
#Re-flash the SD card with a fresh image<br />
#Restore the configuration file<br />
#Run <code>sudo satnogs-setup</code> and select <code>Update</code> to update the tool itself and then select <code>Apply</code><br />
<br />
==See also==<br />
<br />
*[[SatNOGS Client Ansible]]<br />
<br />
[[Category:Build]]<br />
[[Category:Software]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=Raspberry_Pi&diff=3854Raspberry Pi2022-09-10T16:42:52Z<p>Acinonyx: Remove Pi4 Workaround</p>
<hr />
<div>[[File:B3342fcc865731d69e0c9d7a8b1abb887185bc13 1 531x500.jpg|alt=Libre Space Foundation Raspberry Pi Case|thumb|Libre Space Foundation Raspberry Pi Case, [https://www.thingiverse.com/thing:3233687 on thingiverse]]]<br />
<br />
==Introduction==<br />
<br />
The Raspberry Pi (version 3 and 4) is the reference platform for SatNOGS (see our [[SatNOGS Client Ansible|Ansible guide]] to install SatNOGS on other Linux machines). You can try using various distributions for this (eg. Debian/Armbian, Arch, Fedora), but the one we suggest is our custom image based on latest Raspbian.<br />
<br />
{{Message|This page assumes you have an account and a ground station registered on either network.satnogs.org or network-dev.satnogs.org. Make note of your station ID and API Key.}}<br />
<br />
==Download==<br />
'''<big>Raspbian SatNOGS Image:</big> <big>[https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/jobs/artifacts/2022091000/download?job=release artifacts.zip]</big> ''' (Release: 2022091000)<br />
<br />
Download the latest Raspbian SatNOGS Image from above (or via the "Download" icon on the right side of the [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/tags latest tag page on GitLab]). This image has the SatNOGS setup script installed, the SSH server enabled and all required packages preinstalled. You will get an <code>artifacts.zip</code> file with the following content:<br />
<br />
*A Zipped image file<br />
*An Image info file<br />
*A SHA256 checksum file<br />
<br />
===Data integrity verification===<br />
<br />
You should verify the data integrity of the artifacts by comparing the SHA256 checksums. On Linux, run <code>sha256sum -c sha256sums</code> in the directory where the artifacts are downloaded and unzipped.<br />
<br />
Example:<br />
<pre><br />
$ sha256sum -c sha256sums <br />
2022-09-10-Raspbian-SatNOGS-master-lite.info: OK<br />
image_2022-09-10-Raspbian-SatNOGS-master-lite.zip: OK<br />
</pre><br /><br />
==Flashing==<br />
[https://www.raspberrypi.org/documentation/installation/installing-images/README.md Follow the usual Raspbian flashing instructions], and boot your Raspberry Pi.<br />
<br />
==Getting console access==<br />
You can log in the Raspberry Pi by connecting it to a keyboard and monitor or through network via an SSH connection.<br />
<br />
===Keyboard and monitor===<br />
Once your Raspberry Pi is booted, log in with username "'''pi'''" password "'''raspberry'''".<br />
<br />
===Ethernet===<br />
If you are using wired Ethernet you should get connectivity right away. You just need to find the IP address of Raspberry Pi (e.g. in your router management interface). Log in with SSH using username "'''pi'''" password "'''raspberry'''", for example:<br />
$ ssh pi@192.168.1.2<br />
If your network supports [[wikipedia:Zero-configuration_networking|<code>zeroconf</code>]], then you can use the hostname of your Pi:<br />
$ ssh pi@raspberrypi.local<br />
<br />
===Pre-boot wireless configuration===<br />
If neither keyboard/monitor, nor a wired Ethernet are available, you can set up a WiFi connection before boot by mounting the boot partition of the flashed SD card and editing files directly. Note your OS may mount boot partition in a different location. [https://raspberrypi.stackexchange.com/questions/10251/prepare-sd-card-for-wifi-on-headless-pi#comment98121_57023 Windows users have line ending problems]. Suggested actions:<br />
<br />
$ $EDITOR /media/Raspbian_SatNOGS-boot/wpa_supplicant.conf<br />
<br />
contents: (note key_mgmt options include NONE, WPA-PSK, WPA-EAP)<br />
<br />
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br />
update_config=1<br />
country=US<br />
<br />
network={<br />
ssid="NETWORK_NAME"<br />
psk="password"<br />
key_mgmt=WPA-PSK<br />
}<br />
<br />
==Configuration==<br />
<br />
===Raspberry Pi Setup===<br />
Once your Raspberry Pi is booted, log in with username "'''pi'''" password "'''raspberry'''" and run: <br />
<pre><br />
$ sudo raspi-config<br />
</pre><br />
<br />
You will want to be sure to do the following:<br />
<br />
*Set a strong, unique password<br />
*Change localization settings:<br />
**by default the rpi locale is configured for EN-GB, change as appropriate (ie: to EN_US.UTF-8)<br />
**set timezone (we recommend UTC so your logs match the times in Network; UTC is under the 'none of the above' submenu)<br />
**set keyboard layout, again this is defaulting to a UK layout<br />
**set wifi country<br />
**expand filesystem (under the Advanced menu)<br />
*Configure network or WiFi (see [https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md this doc for network configuration instructions])<br />
*Finish and reboot<br />
<br />
===SatNOGS Setup===<br />
SSH to the Raspberry Pi with user "'''pi'''" and your new password.<br />
<br />
Follow [[SatNOGS Client Setup]] instructions to configure the system.<br />
<br />
[[Category:Build]]<br />
[[Category:Software]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=Raspberry_Pi&diff=3853Raspberry Pi2022-09-10T16:41:56Z<p>Acinonyx: SSH enabled during build</p>
<hr />
<div>[[File:B3342fcc865731d69e0c9d7a8b1abb887185bc13 1 531x500.jpg|alt=Libre Space Foundation Raspberry Pi Case|thumb|Libre Space Foundation Raspberry Pi Case, [https://www.thingiverse.com/thing:3233687 on thingiverse]]]<br />
<br />
==Introduction==<br />
<br />
The Raspberry Pi (version 3 and 4) is the reference platform for SatNOGS (see our [[SatNOGS Client Ansible|Ansible guide]] to install SatNOGS on other Linux machines). You can try using various distributions for this (eg. Debian/Armbian, Arch, Fedora), but the one we suggest is our custom image based on latest Raspbian.<br />
<br />
{{Message|This page assumes you have an account and a ground station registered on either network.satnogs.org or network-dev.satnogs.org. Make note of your station ID and API Key.}}<br />
<br />
==Download==<br />
'''<big>Raspbian SatNOGS Image:</big> <big>[https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/jobs/artifacts/2022091000/download?job=release artifacts.zip]</big> ''' (Release: 2022091000)<br />
<br />
Download the latest Raspbian SatNOGS Image from above (or via the "Download" icon on the right side of the [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/tags latest tag page on GitLab]). This image has the SatNOGS setup script installed, the SSH server enabled and all required packages preinstalled. You will get an <code>artifacts.zip</code> file with the following content:<br />
<br />
*A Zipped image file<br />
*An Image info file<br />
*A SHA256 checksum file<br />
<br />
===Data integrity verification===<br />
<br />
You should verify the data integrity of the artifacts by comparing the SHA256 checksums. On Linux, run <code>sha256sum -c sha256sums</code> in the directory where the artifacts are downloaded and unzipped.<br />
<br />
Example:<br />
<pre><br />
$ sha256sum -c sha256sums <br />
2022-09-10-Raspbian-SatNOGS-master-lite.info: OK<br />
image_2022-09-10-Raspbian-SatNOGS-master-lite.zip: OK<br />
</pre><br />
<br />
===Pi4 Workaround===<br />
<br />
With newer Pi4 models there where missing firmware files in the image, for now we have created a temporary solution.<br />
The updated image can be downloaded via the following [https://cloud.libre.space/s/4cfcK6H4joCdyCm link]<br />
<br />
Data integrity information:<br />
<br />
<pre><br />
md5: 5128e134554ef32aa7eb31267305b302<br />
sha256: c769ead89686f6b232a79f23637dedec018aa73982ec31e387e61d4d60029d52<br />
</pre><br />
<br />
<br />
==Flashing==<br />
[https://www.raspberrypi.org/documentation/installation/installing-images/README.md Follow the usual Raspbian flashing instructions], and boot your Raspberry Pi.<br />
<br />
==Getting console access==<br />
You can log in the Raspberry Pi by connecting it to a keyboard and monitor or through network via an SSH connection.<br />
<br />
===Keyboard and monitor===<br />
Once your Raspberry Pi is booted, log in with username "'''pi'''" password "'''raspberry'''".<br />
<br />
===Ethernet===<br />
If you are using wired Ethernet you should get connectivity right away. You just need to find the IP address of Raspberry Pi (e.g. in your router management interface). Log in with SSH using username "'''pi'''" password "'''raspberry'''", for example:<br />
$ ssh pi@192.168.1.2<br />
If your network supports [[wikipedia:Zero-configuration_networking|<code>zeroconf</code>]], then you can use the hostname of your Pi:<br />
$ ssh pi@raspberrypi.local<br />
<br />
===Pre-boot wireless configuration===<br />
If neither keyboard/monitor, nor a wired Ethernet are available, you can set up a WiFi connection before boot by mounting the boot partition of the flashed SD card and editing files directly. Note your OS may mount boot partition in a different location. [https://raspberrypi.stackexchange.com/questions/10251/prepare-sd-card-for-wifi-on-headless-pi#comment98121_57023 Windows users have line ending problems]. Suggested actions:<br />
<br />
$ $EDITOR /media/Raspbian_SatNOGS-boot/wpa_supplicant.conf<br />
<br />
contents: (note key_mgmt options include NONE, WPA-PSK, WPA-EAP)<br />
<br />
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br />
update_config=1<br />
country=US<br />
<br />
network={<br />
ssid="NETWORK_NAME"<br />
psk="password"<br />
key_mgmt=WPA-PSK<br />
}<br />
<br />
==Configuration==<br />
<br />
===Raspberry Pi Setup===<br />
Once your Raspberry Pi is booted, log in with username "'''pi'''" password "'''raspberry'''" and run: <br />
<pre><br />
$ sudo raspi-config<br />
</pre><br />
<br />
You will want to be sure to do the following:<br />
<br />
*Set a strong, unique password<br />
*Change localization settings:<br />
**by default the rpi locale is configured for EN-GB, change as appropriate (ie: to EN_US.UTF-8)<br />
**set timezone (we recommend UTC so your logs match the times in Network; UTC is under the 'none of the above' submenu)<br />
**set keyboard layout, again this is defaulting to a UK layout<br />
**set wifi country<br />
**expand filesystem (under the Advanced menu)<br />
*Configure network or WiFi (see [https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md this doc for network configuration instructions])<br />
*Finish and reboot<br />
<br />
===SatNOGS Setup===<br />
SSH to the Raspberry Pi with user "'''pi'''" and your new password.<br />
<br />
Follow [[SatNOGS Client Setup]] instructions to configure the system.<br />
<br />
[[Category:Build]]<br />
[[Category:Software]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=Raspberry_Pi&diff=3852Raspberry Pi2022-09-10T16:36:18Z<p>Acinonyx: Update image references and links</p>
<hr />
<div>[[File:B3342fcc865731d69e0c9d7a8b1abb887185bc13 1 531x500.jpg|alt=Libre Space Foundation Raspberry Pi Case|thumb|Libre Space Foundation Raspberry Pi Case, [https://www.thingiverse.com/thing:3233687 on thingiverse]]]<br />
<br />
==Introduction==<br />
<br />
The Raspberry Pi (version 3 and 4) is the reference platform for SatNOGS (see our [[SatNOGS Client Ansible|Ansible guide]] to install SatNOGS on other Linux machines). You can try using various distributions for this (eg. Debian/Armbian, Arch, Fedora), but the one we suggest is our custom image based on latest Raspbian.<br />
<br />
{{Message|This page assumes you have an account and a ground station registered on either network.satnogs.org or network-dev.satnogs.org. Make note of your station ID and API Key.}}<br />
<br />
==Download==<br />
'''<big>Raspbian SatNOGS Image:</big> <big>[https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/jobs/artifacts/2022091000/download?job=release artifacts.zip]</big> ''' (Release: 2022091000)<br />
<br />
Download the latest Raspbian SatNOGS Image from above (or via the "Download" icon on the right side of the [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/tags latest tag page on GitLab]). This image has the SatNOGS setup script installed, the SSH server enabled ( 2021-11-15 edit by PE2BZ there is no ssh file in the boot partition, this has to be added else the Pi will not be accessible by SSH) and all required packages preinstalled. You will get an <code>artifacts.zip</code> file with the following content:<br />
<br />
*A Zipped image file<br />
*An Image info file<br />
*A SHA256 checksum file<br />
<br />
===Data integrity verification===<br />
<br />
You should verify the data integrity of the artifacts by comparing the SHA256 checksums. On Linux, run <code>sha256sum -c sha256sums</code> in the directory where the artifacts are downloaded and unzipped.<br />
<br />
Example:<br />
<pre><br />
$ sha256sum -c sha256sums <br />
2022-09-10-Raspbian-SatNOGS-master-lite.info: OK<br />
image_2022-09-10-Raspbian-SatNOGS-master-lite.zip: OK<br />
</pre><br />
<br />
===Pi4 Workaround===<br />
<br />
With newer Pi4 models there where missing firmware files in the image, for now we have created a temporary solution.<br />
The updated image can be downloaded via the following [https://cloud.libre.space/s/4cfcK6H4joCdyCm link]<br />
<br />
Data integrity information:<br />
<br />
<pre><br />
md5: 5128e134554ef32aa7eb31267305b302<br />
sha256: c769ead89686f6b232a79f23637dedec018aa73982ec31e387e61d4d60029d52<br />
</pre><br />
<br />
<br />
==Flashing==<br />
[https://www.raspberrypi.org/documentation/installation/installing-images/README.md Follow the usual Raspbian flashing instructions], and boot your Raspberry Pi.<br />
<br />
==Getting console access==<br />
You can log in the Raspberry Pi by connecting it to a keyboard and monitor or through network via an SSH connection.<br />
<br />
===Keyboard and monitor===<br />
Once your Raspberry Pi is booted, log in with username "'''pi'''" password "'''raspberry'''".<br />
<br />
===Ethernet===<br />
If you are using wired Ethernet you should get connectivity right away. You just need to find the IP address of Raspberry Pi (e.g. in your router management interface). Log in with SSH using username "'''pi'''" password "'''raspberry'''", for example:<br />
$ ssh pi@192.168.1.2<br />
If your network supports [[wikipedia:Zero-configuration_networking|<code>zeroconf</code>]], then you can use the hostname of your Pi:<br />
$ ssh pi@raspberrypi.local<br />
<br />
===Pre-boot wireless configuration===<br />
If neither keyboard/monitor, nor a wired Ethernet are available, you can set up a WiFi connection before boot by mounting the boot partition of the flashed SD card and editing files directly. Note your OS may mount boot partition in a different location. [https://raspberrypi.stackexchange.com/questions/10251/prepare-sd-card-for-wifi-on-headless-pi#comment98121_57023 Windows users have line ending problems]. Suggested actions:<br />
<br />
$ $EDITOR /media/Raspbian_SatNOGS-boot/wpa_supplicant.conf<br />
<br />
contents: (note key_mgmt options include NONE, WPA-PSK, WPA-EAP)<br />
<br />
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br />
update_config=1<br />
country=US<br />
<br />
network={<br />
ssid="NETWORK_NAME"<br />
psk="password"<br />
key_mgmt=WPA-PSK<br />
}<br />
<br />
==Configuration==<br />
<br />
===Raspberry Pi Setup===<br />
Once your Raspberry Pi is booted, log in with username "'''pi'''" password "'''raspberry'''" and run: <br />
<pre><br />
$ sudo raspi-config<br />
</pre><br />
<br />
You will want to be sure to do the following:<br />
<br />
*Set a strong, unique password<br />
*Change localization settings:<br />
**by default the rpi locale is configured for EN-GB, change as appropriate (ie: to EN_US.UTF-8)<br />
**set timezone (we recommend UTC so your logs match the times in Network; UTC is under the 'none of the above' submenu)<br />
**set keyboard layout, again this is defaulting to a UK layout<br />
**set wifi country<br />
**expand filesystem (under the Advanced menu)<br />
*Configure network or WiFi (see [https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md this doc for network configuration instructions])<br />
*Finish and reboot<br />
<br />
===SatNOGS Setup===<br />
SSH to the Raspberry Pi with user "'''pi'''" and your new password.<br />
<br />
Follow [[SatNOGS Client Setup]] instructions to configure the system.<br />
<br />
[[Category:Build]]<br />
[[Category:Software]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=SatNOGS_Client_Setup&diff=3851SatNOGS Client Setup2022-09-10T16:29:33Z<p>Acinonyx: </p>
<hr />
<div>==Introduction==<br />
<code>satnogs-setup</code> provides a set of scripts for configuring a '''SatNOGS Client''' system. <code>satnogs-setup</code> main function is to bring up a menu-driven console configuration utility and provision the system using [[SatNOGS Client Ansible|Ansible]].<br />
<br />
==Initial Setup==<br />
Before starting <code>satnogs-setup</code>, ensure the Raspberry Pi is up to date. This can be done with <code>sudo apt update</code> and then <code>sudo apt upgrade</code>. <br />
<br />
{{Message| In case of getting a similar error to this:<br />
<code>W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://download.opensuse.org/repositories/home:/librespace:/satnogs/Raspbian_10 ./ InRelease: The following signatures were invalid: EXPKEYSIG 8BD3901736A40B6C home:librespace OBS Project <home:librespace@build.opensuse.org><br />
</code><br />
Check at https://wiki.satnogs.org/Troubleshooting#Invalid_Signature_for_download.opensuse.org on how to solve it}}In case of getting a similar error to "Newer kernel available" annoying message after running sudo apt update:<br />
<br />
Package configuration <br />
<br />
┌──────────┤ Pending kernel upgrade ├─────────────────────┐<br />
<br />
│ │<br />
<br />
│ Newer kernel available │<br />
<br />
│ │<br />
<br />
│ The currently running kernel version is 4.19.97-v7l+ which is not the │<br />
<br />
│ expected kernel version 4.19.93-v8+. │<br />
<br />
│ │<br />
<br />
│ Restarting the system to load the new kernel will not be handled │<br />
<br />
│ automatically, so you should consider rebooting. │<br />
<br />
│ │<br />
<br />
│ <Ok> │<br />
<br />
│ │<br />
<br />
└─────────────────────────────────────────────────|<br />
<br />
Do a "sudo apt purge needrestart" after doing a reboot after doing a "sudo apt update"{{Message| In case of getting a similar error to this:<br />
<code><br />
E: Repository 'http://archive.raspberrypi.org/debian buster InRelease' changed its 'Suite' value from 'testing' to 'oldstable'<br />
<br />
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.<br />
<br />
E: Repository 'http://raspbian.raspberrypi.org/raspbian buster InRelease' changed its 'Suite' value from 'stable' to 'oldstable'<br />
<br />
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.<br />
</code><br />
Run <code>sudo apt-get update --allow-releaseinfo-change</code> instead of just <code>sudo apt-get update</code>}}<br />
<br />
(See: [[Troubleshooting#apt-get update: connection failed]] ).<br />
<br />
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.<br />
<br />
To configure a '''SatNOGS Client''' system:<br />
<br />
#SSH into the system and run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Set '''all''' options in '''Basic Configuration''' (see below)<br />
#Select <code>Apply</code> and the Raspberry Pi will configure itself; this may take some time<br />
#Select <code>Back</code> to exit<br />
{{Message|You can always reconfigure the software by running <code>sudo satnogs-setup</code> again.}}<br />
===Basic Configuration===<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_API_TOKEN</code><br />
|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.<br />
<br />
<br />
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 "Dashboard" option. On the top of the dashboard page right under the user icon click the button "API key" to show your API token.<br />
|-<br />
|<code>SATNOGS_SOAPY_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>driver=rtlsdr</code>. For other devices tested configurations can be found at [[Software_Defined_Radio]].<br />
<br />
<br />
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. <code>driver=uhd,serial=3164495</code>.<br />
|-<br />
|<code>SATNOGS_ANTENNA</code><br />
|If you are using an RTL-SDR, this is <code>RX</code>. For other devices tested configurations can be found at [[Software_Defined_Radio]].<br />
<br />
<br />
If your device is not listed there yet, use <code><nowiki>SoapySDRUtil --probe 2>&1| grep Antennas</nowiki></code> to get available antennas.<br />
|-<br />
|<code>SATNOGS_RX_SAMP_RATE</code><br />
|Specify the receiver sampling rate. Recommended value for RTL-SDR: <code>2.048e6</code> (for 2Msps), other devices will need different sample rates described at [[Software_Defined_Radio]] .<br />
<br />
<br />
The command <code><nowiki>SoapySDRUtil --probe 2>&1 | grep Sample</nowiki></code> can be used to find all valid sample rates.<br />
|-<br />
|<code>SATNOGS_RF_GAIN</code><br />
|RF Gain value for your SDR hardware.<br />
<br />
<br />
Run <code>SoapySDRUtil --probe</code> to see all possible gain values for your hardware.<br />
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.<br />
|-<br />
|<code>SATNOGS_STATION_ELEV</code><br />
|The height of your ground station above sea level in metres.<br />
|-<br />
|<code>SATNOGS_STATION_ID</code><br />
|The '''numeric ID''' assigned to your station in the SatNOGS Network site when the groundstation was created.<br />
|-<br />
|<code>SATNOGS_STATION_LAT</code><br />
|The latitude of your station. North is positive, south is negative.<br />
|-<br />
|<code>SATNOGS_STATION_LON</code><br />
|The longitude of your station. East is positive, west is negative.<br />
|}<br />
<br />
==Advanced Setup==<br />
{{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]].<br />
<br />
NOTE: To get your station online, you need to set SATNOGS_NETWORK_API_URL to https://network.satnogs.org/api/<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_PPM_ERROR</code><br />
|The local oscillator frequency deviation in ppm (value will be rounded to integer).<br />
Available with the following modules:<br />
<br />
*SoapyRTLSDR<br />
*SoapySDRPlay<br />
<br />
Not available with the following modules:<br />
<br />
*SoapyUHD<br />
*SoapyPluto<br />
|-<br />
|<code>SATNOGS_RX_BANDWIDTH</code><br />
|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.<br />
|-<br />
|<code>SATNOGS_DEV_ARGS</code><br />
|Soapy device arguments (currently only accepting the <code>serial</code> key successfully) and stream arguments.<br />
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].<br />
|-<br />
|<code>SATNOGS_GAIN_MODE</code><br />
|Choose the gain mode:<br />
<br />
*<code>"Overall"</code> (default): Set the gain with the single value from <code>SATNOGS_RF_GAIN</code><br />
*<code>"Settings Field"</code>: Ignore <code>SATNOGS_RF_GAIN</code>, use the settings from <code>SATNOGS_OTHER_SETTINGS</code> instead<br />
|-<br />
|<code>SATNOGS_STREAM_ARGS</code><br />
|<br />
|-<br />
|<code>SATNOGS_TUNE_ARGS</code><br />
|<br />
|-<br />
|<code>SATNOGS_OTHER_SETTINGS</code><br />
|Only available if <code>SATNOGS_GAIN_MODE</code>is<code>"Settings Field"</code>.<br />
Available gain settings can be retrieved using <code>SoapySDRUtil --probe="driver=xxxx`</code><br />
<br />
Example for Airspy: Use<code>"LNA=12,MIX=8,VGA=11"</code>See also: [[SDR#Airspy|Airspy support]]<br />
|-<br />
|<code>SATNOGS_DC_REMOVAL</code><br />
|<br />
|-<br />
|<code>SATNOGS_BB_FREQ</code><br />
|<br />
|-<br />
|<code>SATNOGS_LO_OFFSET</code><br />
|Don't use this parameter to correct for the local oscillator frequency deviation, use <code>SATNOGS_PPM_ERROR</code> instead!<br />
To avoid the SDR carrier at the DC the LO is shifted from the actual frequency a little. Default: <code>100e3</code> (100 kHz)<br />
|-<br />
|<br />
|<br />
|-<br />
|<code>SATNOGS_ROT_MODEL</code><br />
|Hamlib rotator model. If you don't have a rotator (like the [[No rotator|No rotator setup]]), leave it empty.<br />
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 <code>ROT_MODEL_NETROTCTL</code><br />
|-<br />
|<code>SATNOGS_ROT_BAUD</code><br />
|Baud rate for Hamlib rotator serial port, if using a serial-connected rotator.<br />
|-<br />
|<code>SATNOGS_ROT_PORT</code><br />
|Serial port for Hamlib rotator, OR the network address of a rotctld instance (e.g. <code>localhost:4533</code> )<br />
|-<br />
|<code>SATNOGS_ROT_THRESHOLD</code><br />
|Rotator movement threshold, in degrees. If set, the rotator will only be commanded when the target has moved more than <threshold> degrees away from the current azimuth/elevation position. Default: 4 degrees<br />
|-<br />
|<br />
|<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_ENABLED</code><br />
|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.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_OPTS</code><br />
|Options for rotcld:<br />
For a yaesu rotator, use <code>-m 601 -r /dev/ttyACM0 -s 9600 -T 0.0.0.0</code><br />
<br />
For a SatNOGS rotator <code>-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200</code> or <code>-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200</code><br />
|-<br />
|<br />
|<br />
|-<br />
|<code>SATNOGS_PRE_OBSERVATION_SCRIPT</code><code>SATNOGS_POST_OBSERVATION_SCRIPT</code><br />
|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:<br />
<code><nowiki>{{FREQ}}</nowiki></code> - Observation Centre Frequency<br />
<br />
<code><nowiki>{{TLE}}</nowiki></code> - Target object TLE data, as a JSON-formatted object.<br />
<br />
<code><nowiki>{{TIMESTAMP}}</nowiki></code> - Start time of the observation, in the format: %Y-%m-%dT%H-%M-%S%z<br />
<br />
<code><nowiki>{{ID}}</nowiki></code> - Observation ID number.<br />
<br />
<code><nowiki>{{BAUD}}</nowiki></code> - Baud rate of the modulation used, if applicable.<br />
<br />
<code><nowiki>{{SCRIPT_NAME}}</nowiki></code> - The name of the demodulation flow-graph script in use.<br />
|-<br />
|<br />
|<br />
|-<br />
|<code>EXPERIMENTAL</code><br />
|Install latest (experimental) versions of all software<br />
|-<br />
|<code>APT_REPOSITORY</code><br />
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:<br />
<code>deb <nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs-unstable/Raspbian_10</nowiki> ./</code><br />
|-<br />
|<code>APT_KEY_URL</code><br />
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:<br />
<code><nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs-unstable/Raspbian_10/Release.key</nowiki></code><br />
|-<br />
|<code>APT_KEY_ID</code><br />
|This options allows you to specify an alternative SatNOGS packages repository key ID.<br />
|-<br />
|<code>SATNOGS_CLIENT_URL</code><br />
|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:<br />
<br />
*<code>git+<nowiki>https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@master</nowiki></code> -- the 'master' branch (the current development version) of satnogs-client<br />
*<code><nowiki>git+https://gitlab.com/jdoe/satnogs-client.git@new-feature</nowiki></code> -- the 'new-feature' branch of jdoe's fork of satnogs-client<br />
|-<br />
|<code>SATNOGS_RADIO_FLOWGRAPHS_VERSION</code><br />
|This options allows you to change the version of satnogs-flowgraphs package to be installed. For example:<br />
<code>0.1-1</code><br />
|-<br />
|<br />
|<br />
|-<br />
|<code>LOG_LEVEL</code><br />
|Define SatNOGS client log level, available values: <code>ERROR</code>, <code>WARNING</code>, <code>INFO</code> and <code>DEBUG</code><br />
|-<br />
|<br />
|-<br />
|<code>SATNOGS_ARTIFACTS_ENABLED</code><br />
|Enable generation and uploading of HDF5 artifacts files to SatNOGS DB. (added in satnogs-client 1.7)<br />
|-<br />
|<code>SATNOGS_ARTIFACTS_API_TOKEN</code><br />
|SatNOGS DB API token associated with an account in SatNOGS DB. This token is secret. It is used to upload artifacts to SatNOGS DB. It can be found in SatNOGS DB user page. (added in satnogs-client 1.7)<br />
|}<br />
<br />
==Obsolete Setup Variables==<br />
The following options were available in previous versions of the SatNOGS client system and have no effect on the latest stable version.<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>rtlsdr</code>. Other devices supported by gr-satnogs include <code>usrpb200</code>, <code>usrp2</code>, <code>airspy/airspymini</code>, <code>lime</code>, or <code>hackrf</code>.<br />
|-<br />
|<code>SATNOGS_PPM_ERROR</code> (available again)<br />
|gr-satnogs: The PPM correction [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]<br />
|-<br />
|<code>SATNOGS_DEV_ARGS</code> (available again)<br />
|gr-satnogs: SDR device specific arguments [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]<br />
Note: This variable was re-purposed to set soapy device and stream arguments, so it's not obsolete anymore.<br />
|-<br />
|<code>SATNOGS_IF_GAIN</code><br />
|gr-satnogs: Intermediate frequency gain [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]<br />
|-<br />
|<code>SATNOGS_BB_GAIN</code><br />
|gr-satnogs: Baseband gain [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]<br />
|-<br />
|<code>SATNOGS_RADIO_GR_SATNOGS_VERSION</code><br />
|This options allows you to change the version of gr-satnogs package to be installed. For example: <code>1.5.1-1</code><br />
|}<br />
<br />
==Updating SatNOGS Client Software==<br />
{{Warning| An update can potentially interrupt a running observation!}}<br />
To update SatNOGS software, including the configuration tool itself:<br />
<br />
#SSH into the system and (re-)run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Select <code>Update</code> to update the configuration tool and all distribution packages to the latest<br />
#If you are prompted for a reboot during the upgrade, once the upgrade is finished, select <code>Reboot</code>, SSH back into the system and re-run <code>satnogs-setup</code> to continue to the next step<br />
#Select <code>Apply</code> and the Raspberry Pi will update itself; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
{{Message|You can check your current version of client (and other client software) at the top of window after running <code>sudo satnogs-setup</code>; alternatively you can generate the support report by going at <code>Advanced -> Support</code>.}}<br />
{{Message|Client version on SatNOGS Network is updated after the first observation with the new client.}}<br />
===Upgrading from Debian 'stretch' or 'buster', to 'bullseye'===<br />
Debian <code>stretch</code> and <code>buster</code> are no longer supported. If you have already installed an older version of Debian or Raspbian SatNOGS image based on <code>buster</code> or <code>stretch</code> (releases <= [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/tags/2020122700 2020122700]), you must upgrade to <code>bullseye</code> otherwise it will be impossible to receive updates or upgrades in the future.<br />
====<s>Reflashing and reinstalling</s>====<br />
<s>The recommended method to upgrade to <code>bullseye</code> is reflashing the latest Raspbian SatNOGS image (or reinstalling latest Debian). Follow [[Raspberry Pi|Raspberry Pi]] installation instructions and reinstall from scratch.</s><br />
==Verification of correct installation==<br />
To see if satnogs-client has started successfully, check the logs with <code>systemctl</code>:<pre><br />
$ systemctl status satnogs-client<br />
</pre>You should see an output that looks like this:<pre><br />
● satnogs-client.service - SatNOGS client<br />
Loaded: loaded (/etc/systemd/system/satnogs-client.service; enabled; vendor preset: enabled)<br />
Active: active (running) since Wed 2020-03-04 19:30:56 GMT; 6min ago<br />
Main PID: 6309 (satnogs-client)<br />
Tasks: 11 (limit: 2200)<br />
Memory: 37.9M<br />
CGroup: /system.slice/satnogs-client.service<br />
└─6309 /var/lib/satnogs/bin/python3 /var/lib/satnogs/bin/satnogs-client<br />
<br />
Mar 04 19:30:56 raspberrypi systemd[1]: Started SatNOGS client.<br />
</pre>If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.<br />
<br />
==Backup & Restore the configuration==<br />
The configuration of your SatNOGS station is stored at <code>/etc/ansible/host_vars/localhost</code>. If your station software is broken (e.g. due to a corrupt SD card) or if you want to downgrade from the experimental software back to the stable releases, you can perform the following steps:<br />
<br />
#Backup the configuration file at <code>/etc/ansible/host_vars/localhost</code><br />
#Re-flash the SD card with a fresh image<br />
#Restore the configuration file<br />
#Run <code>sudo satnogs-setup</code> and select <code>Update</code> to update the tool itself and then select <code>Apply</code><br />
<br />
==See also==<br />
<br />
*[[SatNOGS Client Ansible]]<br />
<br />
[[Category:Build]]<br />
[[Category:Software]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=SatNOGS_Client_Setup&diff=3850SatNOGS Client Setup2022-09-10T16:17:49Z<p>Acinonyx: Upgrading to Debian 'bullseye'</p>
<hr />
<div>==Introduction==<br />
<code>satnogs-setup</code> provides a set of scripts for configuring a '''SatNOGS Client''' system. <code>satnogs-setup</code> main function is to bring up a menu-driven console configuration utility and provision the system using [[SatNOGS Client Ansible|Ansible]].<br />
<br />
==Initial Setup==<br />
Before starting <code>satnogs-setup</code>, ensure the Raspberry Pi is up to date. This can be done with <code>sudo apt update</code> and then <code>sudo apt upgrade</code>. <br />
<br />
{{Message| In case of getting a similar error to this:<br />
<code>W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://download.opensuse.org/repositories/home:/librespace:/satnogs/Raspbian_10 ./ InRelease: The following signatures were invalid: EXPKEYSIG 8BD3901736A40B6C home:librespace OBS Project <home:librespace@build.opensuse.org><br />
</code><br />
Check at https://wiki.satnogs.org/Troubleshooting#Invalid_Signature_for_download.opensuse.org on how to solve it}}In case of getting a similar error to "Newer kernel available" annoying message after running sudo apt update:<br />
<br />
Package configuration <br />
<br />
┌──────────┤ Pending kernel upgrade ├─────────────────────┐<br />
<br />
│ │<br />
<br />
│ Newer kernel available │<br />
<br />
│ │<br />
<br />
│ The currently running kernel version is 4.19.97-v7l+ which is not the │<br />
<br />
│ expected kernel version 4.19.93-v8+. │<br />
<br />
│ │<br />
<br />
│ Restarting the system to load the new kernel will not be handled │<br />
<br />
│ automatically, so you should consider rebooting. │<br />
<br />
│ │<br />
<br />
│ <Ok> │<br />
<br />
│ │<br />
<br />
└─────────────────────────────────────────────────|<br />
<br />
Do a "sudo apt purge needrestart" after doing a reboot after doing a "sudo apt update"{{Message| In case of getting a similar error to this:<br />
<code><br />
E: Repository 'http://archive.raspberrypi.org/debian buster InRelease' changed its 'Suite' value from 'testing' to 'oldstable'<br />
<br />
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.<br />
<br />
E: Repository 'http://raspbian.raspberrypi.org/raspbian buster InRelease' changed its 'Suite' value from 'stable' to 'oldstable'<br />
<br />
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.<br />
</code><br />
Run <code>sudo apt-get update --allow-releaseinfo-change</code> instead of just <code>sudo apt-get update</code>}}<br />
<br />
(See: [[Troubleshooting#apt-get update: connection failed]] ).<br />
<br />
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.<br />
<br />
To configure a '''SatNOGS Client''' system:<br />
<br />
#SSH into the system and run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Set '''all''' options in '''Basic Configuration''' (see below)<br />
#Select <code>Apply</code> and the Raspberry Pi will configure itself; this may take some time<br />
#Select <code>Back</code> to exit<br />
{{Message|You can always reconfigure the software by running <code>sudo satnogs-setup</code> again.}}<br />
===Basic Configuration===<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_API_TOKEN</code><br />
|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.<br />
<br />
<br />
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 "Dashboard" option. On the top of the dashboard page right under the user icon click the button "API key" to show your API token.<br />
|-<br />
|<code>SATNOGS_SOAPY_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>driver=rtlsdr</code>. For other devices tested configurations can be found at [[Software_Defined_Radio]].<br />
<br />
<br />
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. <code>driver=uhd,serial=3164495</code>.<br />
|-<br />
|<code>SATNOGS_ANTENNA</code><br />
|If you are using an RTL-SDR, this is <code>RX</code>. For other devices tested configurations can be found at [[Software_Defined_Radio]].<br />
<br />
<br />
If your device is not listed there yet, use <code><nowiki>SoapySDRUtil --probe 2>&1| grep Antennas</nowiki></code> to get available antennas.<br />
|-<br />
|<code>SATNOGS_RX_SAMP_RATE</code><br />
|Specify the receiver sampling rate. Recommended value for RTL-SDR: <code>2.048e6</code> (for 2Msps), other devices will need different sample rates described at [[Software_Defined_Radio]] .<br />
<br />
<br />
The command <code><nowiki>SoapySDRUtil --probe 2>&1 | grep Sample</nowiki></code> can be used to find all valid sample rates.<br />
|-<br />
|<code>SATNOGS_RF_GAIN</code><br />
|RF Gain value for your SDR hardware.<br />
<br />
<br />
Run <code>SoapySDRUtil --probe</code> to see all possible gain values for your hardware.<br />
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.<br />
|-<br />
|<code>SATNOGS_STATION_ELEV</code><br />
|The height of your ground station above sea level in metres.<br />
|-<br />
|<code>SATNOGS_STATION_ID</code><br />
|The '''numeric ID''' assigned to your station in the SatNOGS Network site when the groundstation was created.<br />
|-<br />
|<code>SATNOGS_STATION_LAT</code><br />
|The latitude of your station. North is positive, south is negative.<br />
|-<br />
|<code>SATNOGS_STATION_LON</code><br />
|The longitude of your station. East is positive, west is negative.<br />
|}<br />
<br />
==Advanced Setup==<br />
{{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]].<br />
<br />
NOTE: To get your station online, you need to set SATNOGS_NETWORK_API_URL to https://network.satnogs.org/api/<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_PPM_ERROR</code><br />
|The local oscillator frequency deviation in ppm (value will be rounded to integer).<br />
Available with the following modules:<br />
<br />
*SoapyRTLSDR<br />
*SoapySDRPlay<br />
<br />
Not available with the following modules:<br />
<br />
*SoapyUHD<br />
*SoapyPluto<br />
|-<br />
|<code>SATNOGS_RX_BANDWIDTH</code><br />
|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.<br />
|-<br />
|<code>SATNOGS_DEV_ARGS</code><br />
|Soapy device arguments (currently only accepting the <code>serial</code> key successfully) and stream arguments.<br />
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].<br />
|-<br />
|<code>SATNOGS_GAIN_MODE</code><br />
|Choose the gain mode:<br />
<br />
*<code>"Overall"</code> (default): Set the gain with the single value from <code>SATNOGS_RF_GAIN</code><br />
*<code>"Settings Field"</code>: Ignore <code>SATNOGS_RF_GAIN</code>, use the settings from <code>SATNOGS_OTHER_SETTINGS</code> instead<br />
|-<br />
|<code>SATNOGS_STREAM_ARGS</code><br />
|<br />
|-<br />
|<code>SATNOGS_TUNE_ARGS</code><br />
|<br />
|-<br />
|<code>SATNOGS_OTHER_SETTINGS</code><br />
|Only available if <code>SATNOGS_GAIN_MODE</code>is<code>"Settings Field"</code>.<br />
Available gain settings can be retrieved using <code>SoapySDRUtil --probe="driver=xxxx`</code><br />
<br />
Example for Airspy: Use<code>"LNA=12,MIX=8,VGA=11"</code>See also: [[SDR#Airspy|Airspy support]]<br />
|-<br />
|<code>SATNOGS_DC_REMOVAL</code><br />
|<br />
|-<br />
|<code>SATNOGS_BB_FREQ</code><br />
|<br />
|-<br />
|<code>SATNOGS_LO_OFFSET</code><br />
|Don't use this parameter to correct for the local oscillator frequency deviation, use <code>SATNOGS_PPM_ERROR</code> instead!<br />
To avoid the SDR carrier at the DC the LO is shifted from the actual frequency a little. Default: <code>100e3</code> (100 kHz)<br />
|-<br />
|<br />
|<br />
|-<br />
|<code>SATNOGS_ROT_MODEL</code><br />
|Hamlib rotator model. If you don't have a rotator (like the [[No rotator|No rotator setup]]), leave it empty.<br />
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 <code>ROT_MODEL_NETROTCTL</code><br />
|-<br />
|<code>SATNOGS_ROT_BAUD</code><br />
|Baud rate for Hamlib rotator serial port, if using a serial-connected rotator.<br />
|-<br />
|<code>SATNOGS_ROT_PORT</code><br />
|Serial port for Hamlib rotator, OR the network address of a rotctld instance (e.g. <code>localhost:4533</code> )<br />
|-<br />
|<code>SATNOGS_ROT_THRESHOLD</code><br />
|Rotator movement threshold, in degrees. If set, the rotator will only be commanded when the target has moved more than <threshold> degrees away from the current azimuth/elevation position. Default: 4 degrees<br />
|-<br />
|<br />
|<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_ENABLED</code><br />
|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.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_OPTS</code><br />
|Options for rotcld:<br />
For a yaesu rotator, use <code>-m 601 -r /dev/ttyACM0 -s 9600 -T 0.0.0.0</code><br />
<br />
For a SatNOGS rotator <code>-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200</code> or <code>-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200</code><br />
|-<br />
|<br />
|<br />
|-<br />
|<code>SATNOGS_PRE_OBSERVATION_SCRIPT</code><code>SATNOGS_POST_OBSERVATION_SCRIPT</code><br />
|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:<br />
<code><nowiki>{{FREQ}}</nowiki></code> - Observation Centre Frequency<br />
<br />
<code><nowiki>{{TLE}}</nowiki></code> - Target object TLE data, as a JSON-formatted object.<br />
<br />
<code><nowiki>{{TIMESTAMP}}</nowiki></code> - Start time of the observation, in the format: %Y-%m-%dT%H-%M-%S%z<br />
<br />
<code><nowiki>{{ID}}</nowiki></code> - Observation ID number.<br />
<br />
<code><nowiki>{{BAUD}}</nowiki></code> - Baud rate of the modulation used, if applicable.<br />
<br />
<code><nowiki>{{SCRIPT_NAME}}</nowiki></code> - The name of the demodulation flow-graph script in use.<br />
|-<br />
|<br />
|<br />
|-<br />
|<code>EXPERIMENTAL</code><br />
|Install latest (experimental) versions of all software<br />
|-<br />
|<code>APT_REPOSITORY</code><br />
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:<br />
<code>deb <nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs-unstable/Raspbian_10</nowiki> ./</code><br />
|-<br />
|<code>APT_KEY_URL</code><br />
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:<br />
<code><nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs-unstable/Raspbian_10/Release.key</nowiki></code><br />
|-<br />
|<code>APT_KEY_ID</code><br />
|This options allows you to specify an alternative SatNOGS packages repository key ID.<br />
|-<br />
|<code>SATNOGS_CLIENT_URL</code><br />
|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:<br />
<br />
*<code>git+<nowiki>https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@master</nowiki></code> -- the 'master' branch (the current development version) of satnogs-client<br />
*<code><nowiki>git+https://gitlab.com/jdoe/satnogs-client.git@new-feature</nowiki></code> -- the 'new-feature' branch of jdoe's fork of satnogs-client<br />
|-<br />
|<code>SATNOGS_RADIO_FLOWGRAPHS_VERSION</code><br />
|This options allows you to change the version of satnogs-flowgraphs package to be installed. For example:<br />
<code>0.1-1</code><br />
|-<br />
|<br />
|<br />
|-<br />
|<code>LOG_LEVEL</code><br />
|Define SatNOGS client log level, available values: <code>ERROR</code>, <code>WARNING</code>, <code>INFO</code> and <code>DEBUG</code><br />
|-<br />
|<br />
|-<br />
|<code>SATNOGS_ARTIFACTS_ENABLED</code><br />
|Enable generation and uploading of HDF5 artifacts files to SatNOGS DB. (added in satnogs-client 1.7)<br />
|-<br />
|<code>SATNOGS_ARTIFACTS_API_TOKEN</code><br />
|SatNOGS DB API token associated with an account in SatNOGS DB. This token is secret. It is used to upload artifacts to SatNOGS DB. It can be found in SatNOGS DB user page. (added in satnogs-client 1.7)<br />
|}<br />
<br />
==Obsolete Setup Variables==<br />
The following options were available in previous versions of the SatNOGS client system and have no effect on the latest stable version.<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>rtlsdr</code>. Other devices supported by gr-satnogs include <code>usrpb200</code>, <code>usrp2</code>, <code>airspy/airspymini</code>, <code>lime</code>, or <code>hackrf</code>.<br />
|-<br />
|<code>SATNOGS_PPM_ERROR</code> (available again)<br />
|gr-satnogs: The PPM correction [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]<br />
|-<br />
|<code>SATNOGS_DEV_ARGS</code> (available again)<br />
|gr-satnogs: SDR device specific arguments [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]<br />
Note: This variable was re-purposed to set soapy device and stream arguments, so it's not obsolete anymore.<br />
|-<br />
|<code>SATNOGS_IF_GAIN</code><br />
|gr-satnogs: Intermediate frequency gain [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]<br />
|-<br />
|<code>SATNOGS_BB_GAIN</code><br />
|gr-satnogs: Baseband gain [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]<br />
|-<br />
|<code>SATNOGS_RADIO_GR_SATNOGS_VERSION</code><br />
|This options allows you to change the version of gr-satnogs package to be installed. For example: <code>1.5.1-1</code><br />
|}<br />
<br />
==Updating SatNOGS Client Software==<br />
{{Warning| An update can potentially interrupt a running observation!}}<br />
To update SatNOGS software, including the configuration tool itself:<br />
<br />
#SSH into the system and (re-)run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Select <code>Update</code> to update the configuration tool and all distribution packages to the latest<br />
#If you are prompted for a reboot during the upgrade, once the upgrade is finished, select <code>Reboot</code>, SSH back into the system and re-run <code>satnogs-setup</code> to continue to the next step<br />
#Select <code>Apply</code> and the Raspberry Pi will update itself; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
{{Message|You can check your current version of client (and other client software) at the top of window after running <code>sudo satnogs-setup</code>; alternatively you can generate the support report by going at <code>Advanced -> Support</code>.}}<br />
{{Message|Client version on SatNOGS Network is updated after the first observation with the new client.}}<br />
===Upgrading from Debian 'stretch' or 'buster', to 'bullseye'===<br />
Debian <code>stretch</code> and <code>buster</code> are no longer supported. If you have already installed an older version of Debian or Raspbian SatNOGS image based on <code>buster</code> or <code>stretch</code> (<s>releases <= [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/tags/2018080300 2018080300]</s>), you must upgrade to <code>bullseye</code> otherwise it will be impossible to receive updates or upgrades in the future.<br />
====<s>Reflashing and reinstalling</s>====<br />
<s>The recommended method to upgrade to <code>bullseye</code> is reflashing the latest Raspbian SatNOGS image (or reinstalling latest Debian). Follow [[Raspberry Pi|Raspberry Pi]] installation instructions and reinstall from scratch.</s><br />
==Verification of correct installation==<br />
To see if satnogs-client has started successfully, check the logs with <code>systemctl</code>:<pre><br />
$ systemctl status satnogs-client<br />
</pre>You should see an output that looks like this:<pre><br />
● satnogs-client.service - SatNOGS client<br />
Loaded: loaded (/etc/systemd/system/satnogs-client.service; enabled; vendor preset: enabled)<br />
Active: active (running) since Wed 2020-03-04 19:30:56 GMT; 6min ago<br />
Main PID: 6309 (satnogs-client)<br />
Tasks: 11 (limit: 2200)<br />
Memory: 37.9M<br />
CGroup: /system.slice/satnogs-client.service<br />
└─6309 /var/lib/satnogs/bin/python3 /var/lib/satnogs/bin/satnogs-client<br />
<br />
Mar 04 19:30:56 raspberrypi systemd[1]: Started SatNOGS client.<br />
</pre>If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.<br />
<br />
==Backup & Restore the configuration==<br />
The configuration of your SatNOGS station is stored at <code>/etc/ansible/host_vars/localhost</code>. If your station software is broken (e.g. due to a corrupt SD card) or if you want to downgrade from the experimental software back to the stable releases, you can perform the following steps:<br />
<br />
#Backup the configuration file at <code>/etc/ansible/host_vars/localhost</code><br />
#Re-flash the SD card with a fresh image<br />
#Restore the configuration file<br />
#Run <code>sudo satnogs-setup</code> and select <code>Update</code> to update the tool itself and then select <code>Apply</code><br />
<br />
==See also==<br />
<br />
*[[SatNOGS Client Ansible]]<br />
<br />
[[Category:Build]]<br />
[[Category:Software]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=Omnidirectional_Station_How_To&diff=3742Omnidirectional Station How To2021-04-27T21:19:53Z<p>Acinonyx: Add warning about outdated information</p>
<hr />
<div>{{Warning|WARNING: Information on this page may be outdated! Cross-check with individual 'Build' pages as well.}}[[File:Omnidirectional VHF Turnstile Antenna.jpg|alt=VHF Turnstile Antenna|thumb|VHF Turnstile antenna, [https://network.satnogs.org/stations/23/ SatNOGS Station 23]]]<br />
This How-To is written to get you quickly receiving satellite data with an Omnidirectional antenna (an antenna that does not move).<br />
<br />
==Prerequisites/Background==<br />
I'm assuming that you are a bit familiar with amateur radio, or linux in general, or you already have a Raspberry Pi. <br />
<br />
===Expectation Management===<br />
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.<br />
<br />
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.<br />
<br />
A better preamp helps a bit, see the LNA section below.<br />
<br />
===Hardware Required===<br />
This is a list of the hardware for indoor/testing purposes:<br />
<br />
*Raspberry Pi<br />
**Power supply + cable (see note below)<br />
**Up to 16 GB Micro SD card<br />
**Ethernet cable<br />
*RTL SDR Blog v3 dongle<br />
*Various short lengths of coax<br />
*Preamp/LNA - Or not if your coax is short, see LNA section below<br />
*Omnidirectional antenna - just a dual mag-mount on a cookie sheet will work OK for stronger satellites<br />
<br />
==Setting up the Raspberry Pi==<br />
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. <br />
<br />
===Downloading/Writing the SD image===<br />
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 "Zipped image" link under the latest tag. It's about 650 MBytes.<br />
<br />
For linux:<br />
<br />
#Unzip the downloaded file: '''unzip image_<latest_image_date>-Raspbian-SatNOGS-lite.zip'''<br />
#Figure out which device is the SD card. SD cards are usually start with mmcblk. '''sudo lsblk'''<br />
#Write the image. This will take a while. Make sure you don't overwrite your host OS: '''sudo dd if=<latest_image_date>-Raspbian-SatNOGS-lite.img of=/dev/mmcblk0'''<br />
<br />
===Power notes===<br />
Thinking I could save a few bucks, I used a no-name generic 2.4 amp "tablet" 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.<br />
<br />
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.<br />
<br />
==Software Configuration==<br />
<br />
===Creating a SatNOGS Network account===<br />
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:<br />
<br />
*Required: [https://network.satnogs.org/ Network]: for registering your station and adding data to the network.<br />
*Recommended: [https://community.libre.space Forums]: for asking questions.<br />
*Optional: [https://db.satnogs.org/ Database]: Only if you want to add satellites/modes. Not necessary for receiving satellite data.<br />
<br />
===Registering the station===<br />
Log in to your Network account, and click the "+ Add Ground Station" 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 "Antenna", pick something that encompasses the frequency range of your antenna. For wideband reception, use VHF Discone 26-1200 MHz.<br />
<br />
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 "Testing" flag checked, as this lets people know that your station isn't quite ready for real use.<br />
<br />
To help your fellow operators please consider placing the following information into the "Description" 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.<br />
<br />
===Booting and Configuring Raspbian===<br />
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.<br />
<br />
After a successful boot, log in with username '''pi''' and password '''raspberry'''<br />
<br />
#Change your password! '''passwd'''<br />
#Run '''sudo raspi-config''' to set up the base OS. ''Tab'' switches between the options and ''select''.<br />
##4 Localisation Options: I1 Change Locale: en_US.UTF-8 UTF-8<br />
##4 Localisation Options: I2 Change Timezone: None of the above: UTC<br />
##4 Localisation Options: I3 Change Keyboard Layout:<br />
##7 Advanced Options: A1 Expand Filesystem <br />This will expand the ~2GB Micro-SD card partition to fill the entire SD card.<br />
<br />
The Raspberry Pi needs to reboot to expand the filesystem, so do this now. It might take a while. '''sudo reboot''<br />
<br />
====Disabling WiFi and Bluetooth====<br />
To disable WiFi and Bluetooth, edit the /boot/config.txt file, and add the following lines at the bottom:<br />
<br />
# Disable WiFi and Bluetooth<br />
dtoverlay=pi3-disable-wifi<br />
dtoverlay=pi3-disable-bt<br />
<br />
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.<br />
<br />
Note: Newer versions of Raspbian may require the following lines instead of the above.<br />
<br />
# Disable WiFi and Bluetooth<br />
dtoverlay=disable-wifi<br />
dtoverlay=disable-bt<br />
<br />
====Additional software====<br />
I like to install this additional software with '''sudo apt install bmon''' ...<br />
<br />
*bmon - a graphical network usage analyzer.<br />
*vnstat - keeps track of your bandwidth usage<br />
*vim - the world's best text editor ;)<br />
*irssi - a terminal IRC client, for chatting on the #satnogs IRC channel<br />
<br />
If you can't tell by now, I'm always a big fan of rebooting. It certainly doesn't take that long... '''sudo reboot'''<br />
<br />
===Configuring the satnogs-client===<br />
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.<br />
<br />
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.<br />
<br />
====Basic Configuration====<br />
Then the actual configuration of the station:<br />
<br />
#Run '''sudo satnogs-setup''' again.<br />
#Use the up/down and TAB keys to navigate, and Enter to select an option.<br />
#Basic Configuration:<br />
##SATNOGS_API_TOKEN: After logging in to network.satnogs.org, this is in the upper right under "API Key" [no longer exsists? Add direct link]<br />
##SATNOGS_SOAPY_RX_DEVICE: driver=rtlsdr<br />
##SATNOGS_RX_SAMP_RATE: 2.048e6<br />
##SATNOGS_RX_GAIN: Refer "Setting the gain" section below.<br />
##SATNOGS_STATION_ELEV: station elevation in meters<br />
##SATNOGS_STATION_ID: The ID number of your station.<br />
##SATNOGS_STATION_LAT and LON: Latitude and Longitude in decimal degrees<br />
<br />
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.<br />
<br />
====Setting the gain====<br />
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).<br />
<br />
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.<br />
<br />
First, it is good to know the available gain range of your SDR. This can be accomplished by running <code>SoapySDRUtil --probe</code>, which provides a considerable amount of information about the connected SDR:<br />
pi@satnogs:~ $ SoapySDRUtil --probe<br />
######################################################<br />
## Soapy SDR -- the SDR abstraction library<br />
######################################################<br />
<br />
Probe device<br />
<br />
Found Rafael Micro R820T tuner<br />
[INFO] [UHD] linux; GNU C++ version 8.2.0; Boost_106700; UHD_3.13.1.0-3<br />
Found Rafael Micro R820T tuner<br />
<br />
----------------------------------------------------<br />
-- Device identification<br />
----------------------------------------------------<br />
driver=RTLSDR<br />
hardware=RTLSDR<br />
origin=<nowiki>https://github.com/pothosware/SoapyRTLSDR</nowiki><br />
rtl=0<br />
<br />
----------------------------------------------------<br />
-- Peripheral summary<br />
----------------------------------------------------<br />
Channels: 1 Rx, 0 Tx<br />
Timestamps: NO<br />
Other Settings:<br />
* Direct Sampling - RTL-SDR Direct Sampling Mode<br />
[key=direct_samp, default=0, type=string, options=(0, 1, 2)]<br />
* Offset Tune - RTL-SDR Offset Tuning Mode<br />
[key=offset_tune, default=false, type=bool]<br />
* I/Q Swap - RTL-SDR I/Q Swap Mode<br />
[key=iq_swap, default=false, type=bool]<br />
<br />
----------------------------------------------------<br />
-- RX Channel 0<br />
----------------------------------------------------<br />
Full-duplex: YES<br />
Supports AGC: YES<br />
Stream formats: CS8, CS16, CF32<br />
Native format: CS8 [full-scale=128]<br />
Stream args:<br />
* Buffer Size - Number of bytes per buffer, multiples of 512 only.<br />
[key=bufflen, units=bytes, default=262144, type=int]<br />
* Ring buffers - Number of buffers in the ring.<br />
[key=buffers, units=buffers, default=15, type=int]<br />
* Async buffers - Number of async usb buffers (advanced).<br />
[key=asyncBuffs, units=buffers, default=0, type=int]<br />
Antennas: RX<br />
Full gain range: [0, 49.6] dB<br />
TUNER gain range: [0, 49.6] dB<br />
Full freq range: [23.999, 1764] MHz<br />
RF freq range: [24, 1764] MHz<br />
CORR freq range: [-0.001, 0.001] MHz<br />
Sample rates: 0.25, 1.024, 1.536, 1.792, 1.92, 2.048, 2.16, 2.56, 2.88, 3.2 MSps<br />
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.<br />
<br />
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.<br />
<br />
Note: SoapySDR Server is not currently installed by default. It can be installed by running the commands:<br />
$ sudo apt-get install soapyremote-server<br />
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:<br />
$ sudo systemctl stop soapyremote-server<br />
$ sudo systemctl disable soapyremote-server<br />
<br />
(These commands may result in errors indicating that the server wasn't running and/or enabled. This is OK! <br />
<br />
[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]. <br />
<br />
On the RPi, you can manually start SoapySDR Server by running: <code>SoapySDRServer --bind="0.0.0.0:55132"</code> Leave this running. <br />
<br />
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 <code>./rtl_biast -b 1</code> . ('''NOTE: This advice may be outdated - need to confirm how to set the RTLSDRs bias on more recent SoapySDR versions)''' <br />
<br />
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.<br />
[[File:Screen Shot 2020-03-19 at 10.41.52 pm.png|alt=CubicSDR SDR Devices List|none|thumb|600x600px|CubicSDR SDR Devices List]]<br />
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. <br />
In the settings menu of CubicSDR, disable "Automatic Gain" 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.<br />
[[File:CubicSDR Main Window.png|alt=CubicSDR Main Window (Annotated)|none|thumb|900x900px|CubicSDR Main Window (Annotated)]]<br />
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.<br />
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).<br />
<br />
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.<br />
<br />
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:<br />
[[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]]<br />
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.<br />
<br />
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:<br />
<br />
https://docs.satnogs.org/projects/satnogs-client/en/stable/userguide.html#satnogs-waterfall-autorange<br />
<br />
'''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.'''<br />
===Hardware Configuration===<br />
Basic hardware configuration is Antenna > Short coax > LNA > Coax > RTL SDR -> Raspberry Pi.<br />
<br />
===LNA===<br />
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.<br />
<br />
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]<br />
<br />
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.<br />
<br />
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)<br />
<br />
More info on SDR noise figures:<br />
<br />
*[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]<br />
<br />
<br />
More info on noise and preamps:<br />
<br />
*[https://en.wikipedia.org/wiki/Noise_temperature System noise from wikipedia], pretty high-level<br />
*[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<br />
*[[SPF1589 LNA measurements|SPF5189 LNA measurements]]<br />
<br />
<br />
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:<br />
<br />
*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.<br />
*[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).<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
===Antenna===<br />
For testing on the bench, pretty much any antenna will do, however set your expectations accordingly:<br />
<br />
*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.<br />
*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.<br />
*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.<br />
<br />
<br />
Refer to the [[Antennas|Antennas page]] for more information on antennas which are well suited to satellite observations.<br />
<br />
==Testing the station==<br />
[[File:Pass predictions.png|300px|right]]<br />
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.<br />
<br />
===Recommended Satellite Transmitters for Station Performance Benchmarking===<br />
A few known-good satellite transmitters to test with with (as of November 2020) are:<br />
<br />
*For a station operating on the VHF Band:<br />
**NOAA 15, 18, 19- The APT transmitters (very strong signals - considered to be the 'hello world' of satellite observations)<br />
**ISS - If operating, the APRS transmitter is very strong, but may only transmit intermittently throughout a pass.<br />
**CAS4A / CAS4B - Continuous CW and GMSK transmitters - a good example of a 'weaker' cube-sat signal.<br />
**Max Valier Sat - Another weaker CW signal.<br />
*For a station operating on the UHF band:<br />
**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.<br />
**SpooQy-1 - Regular GMSK packets.<br />
**OPS-SAT - Regular GMSK packets, fairly strong.<br />
**ARMADILLO - A higher data rate signal, requiring a fairly good SNR to be able to decode the (hillarious) 19.2kbps GFSK packets.<br />
**LUSAT - CW Signal Generator in space. Continuous, strong signal.<br />
<br />
===Rating an Observation===<br />
[[File:Waterfall Vetting Buttons.png|right|frameless]]<br />
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:<br />
<br />
*'''Good''' if the satellite is seen in the waterfall at all. Different modulations appear differently in the waterfall, but will appear<br />
*'''Bad''' if the satellite is not seen.<br />
<br />
Observations which do not produce any artefacts (Waterfall, audio, data packets) will automatically be considered as failed, and will eventually be deleted.<br />
<br />
For a more detailed guide on testing, see [[Operation]]<br />
<br />
===Calibrating frequency offset (PPM)===<br />
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]]<br />
<br />
===Mitigating Local Noise===<br />
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:<br />
<br />
*Turn on/off nearby electrical devices while an observation is running (or while looking at a waterfall using CubicSDR as described further above).<br />
*Common sources of electrical noise include:<br />
**LED lightbulbs or floodlights<br />
**USB Chargers (or really any switch-mode power supply)<br />
**Power-over-Ethernet systems<br />
**Unshielded ethernet cables (or even shielded cables)<br />
**HDMI and DVI cables, and computer monitors.<br />
<br />
<br /><br />
<br />
==Next Steps==<br />
Now that you've got this station working on the bench, what's next?<br />
<br />
*Buy/Build an antenna suited to satellite observations. Check out the [[Antennas|Antennas page]] for ideas.<br />
*Mount your antenna away from obstructions, and ideally away from sources of electrical noise like ethernet cables, LED lights, and other electronic equipment.<br />
*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)<br />
<br />
===Building a Box===<br />
<br />
*[https://wiki.satnogs.org/No_rotator No-Rotator setup] (Note the warning at the top of this page)<br />
<br />
[[ Category:Build ]]<br />
[[ Category:Hardware ]]<br />
[[ Category:Antenna ]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=SatNOGS_Client_Ansible&diff=3741SatNOGS Client Ansible2021-04-26T19:30:46Z<p>Acinonyx: Fix Ansible installation URL</p>
<hr />
<div>==Introduction==<br />
<br />
'''SatNOGS Client Ansible''' makes the actual provisioning of the '''SatNOGS Client''' system. It is called, under the hood, when applying the configuration using [[SatNOGS Client Setup|SatNOGS Client Setup utility]]. It currently supports Raspbian and Debian (stretch and buster). <br />
<br />
==Raspbian==<br />
<br />
For Raspberry Pi, which is the reference platform for SatNOGS, a [[Raspberry Pi|Raspbian image]] with '''SatNOGS Client Ansible''' pre-installed is available.<br />
<br />
==Debian==<br />
<br />
{{Warning|Follow these instructions only if you are provisioning SatNOGS to Debian from another host or are installing on the same host. If you are using [[Raspberry_Pi|SatNOGS Raspbian]] image, follow [[SatNOGS_Client_Setup|SatNOGS Client Setup]] to set up your system. }}These sections contain generic instructions for installing SatNOGS Client on a Debian system.<br />
<br />
===Prerequisites===<br />
<br />
*A target Debian system. To install Debian please follow the [https://www.debian.org/releases/stretch/installmanual Debian Installation Guide] and chose the net installer if you want to run a headless server. The target system can be the host itself.<br />
*A user (referenced later as ''youruser'') which is member of 'sudo' group exists on the target system.<br />
*An SSH server running on the target system.<br />
*A host system with Git and latest version of Ansible installed. To install Ansible on Debian, follow the [https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#installing-ansible-on-debian Ansible Installation Guide].<br />
<br />
===Installation===<br />
<br />
On the host system run the following commands:<br />
$ git clone <nowiki>https://gitlab.com/librespacefoundation/satnogs/satnogs-client-ansible.git</nowiki> # Clone SatNOGS Client Ansible repository<br />
$ cd satnogs-client-ansible # Change to cloned repository directory<br />
$ git checkout stable # Optionally, check out stable (Debian Buster 10) branch<br />
$ cp -r production.dist production # Copy dist configuration<br />
$ vi production/inventory/hosts # Update file with your own target host e.g. 127.0.0.1, user and SSH password<br />
$ ssh youruser@yourtargetsystem true # Test SSH connection to target system<br />
$ ansible-playbook -i production/inventory/hosts -K site.yml # Run Ansible playbook<br />
$ ssh -t youruser@yourtargetsystem sudo satnogs-setup # Setup SatNOGS client (see below)<br />
<br />
<br /><br />
<br />
==See also==<br />
<br />
*[[SatNOGS Client Setup]]<br />
<br />
[[Category:Build]]<br />
[[Category:Software]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=Raspberry_Pi&diff=3720Raspberry Pi2020-12-27T21:33:08Z<p>Acinonyx: Bump image version</p>
<hr />
<div>[[File:B3342fcc865731d69e0c9d7a8b1abb887185bc13 1 531x500.jpg|alt=Libre Space Foundation Raspberry Pi Case|thumb|Libre Space Foundation Raspberry Pi Case, [https://www.thingiverse.com/thing:3233687 on thingiverse]]]<br />
<br />
==Introduction==<br />
<br />
The Raspberry Pi (version 3 and 4) is the reference platform for SatNOGS (see our [[SatNOGS Client Ansible|Ansible guide]] to install SatNOGS on other Linux machines). You can try using various distributions for this (eg. Debian/Armbian, Arch, Fedora), but the one we suggest is our custom image based on latest Raspbian.<br />
<br />
{{Message|This page assumes you have an account and a ground station registered on either network.satnogs.org or network-dev.satnogs.org. Make note of your station ID and API Key.}}<br />
<br />
==Download==<br />
'''<big>Raspbian SatNOGS Image:</big> <big>[https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/jobs/artifacts/2020122700/download?job=release artifacts.zip]</big> ''' (Release: 2020122700)<br />
<br />
Download the latest Raspbian SatNOGS Image from above (or via the "Download" icon on the right side of the [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/tags latest tag page on GitLab]). This image has the SatNOGS setup script installed, the SSH server enabled and all required packages preinstalled. You will get an <code>artifacts.zip</code> file with the following content:<br />
<br />
*A Zipped image file<br />
*An Image info file<br />
*A SHA256 checksum file<br />
<br />
===Data integrity verification===<br />
<br />
You should verify the data integrity of the artifacts by comparing the SHA256 checksums. On Linux, run <code>sha256sum -c sha256sums</code> in the directory where the artifacts are downloaded and unzipped.<br />
<br />
Example:<br />
<pre><br />
$ sha256sum -c sha256sums <br />
2020-12-27-Raspbian-SatNOGS-master-lite.info: OK<br />
image_2020-12-27-Raspbian-SatNOGS-master-lite.zip: OK<br />
</pre><br />
<br />
==Flashing==<br />
[https://www.raspberrypi.org/documentation/installation/installing-images/README.md Follow the usual Raspbian flashing instructions], and boot your Raspberry Pi.<br />
<br />
==Getting console access==<br />
You can log in the Raspberry Pi by connecting it to a keyboard and monitor or through network via an SSH connection.<br />
<br />
===Keyboard and monitor===<br />
Once your Raspberry Pi is booted, log in with username "'''pi'''" password "'''raspberry'''".<br />
<br />
===Ethernet===<br />
If you are using wired Ethernet you should get connectivity right away. You just need to find the IP address of Raspberry Pi (e.g. in your router management interface). Log in with SSH using username "'''pi'''" password "'''raspberry'''", for example:<br />
$ ssh pi@192.168.1.2<br />
If your network supports [[wikipedia:Zero-configuration_networking|<code>zeroconf</code>]], then you can use the hostname of your Pi:<br />
$ ssh pi@raspberrypi.local<br />
<br />
===Pre-boot wireless configuration===<br />
If neither keyboard/monitor, nor a wired Ethernet are available, you can set up a WiFi connection before boot by mounting the boot partition of the flashed SD card and editing files directly. Note your OS may mount boot partition in a different location. [https://raspberrypi.stackexchange.com/questions/10251/prepare-sd-card-for-wifi-on-headless-pi#comment98121_57023 Windows users have line ending problems]. Suggested actions:<br />
<br />
$ $EDITOR /media/Raspbian_SatNOGS-boot/wpa_supplicant.conf<br />
<br />
contents: (note key_mgmt options include NONE, WPA-PSK, WPA-EAP)<br />
<br />
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br />
update_config=1<br />
country=US<br />
<br />
network={<br />
ssid="NETWORK_NAME"<br />
psk="password"<br />
key_mgmt=WPA-PSK<br />
}<br />
<br />
==Configuration==<br />
<br />
===Raspberry Pi Setup===<br />
Once your Raspberry Pi is booted, log in with username "'''pi'''" password "'''raspberry'''" and run: <br />
<pre><br />
$ sudo raspi-config<br />
</pre><br />
<br />
You will want to be sure to do the following:<br />
<br />
*Set a strong, unique password<br />
*Change localization settings:<br />
**by default the rpi locale is configured for EN-GB, change as appropriate (ie: to EN_US.UTF-8)<br />
**set timezone (we recommend UTC so your logs match the times in Network; UTC is under the 'none of the above' submenu)<br />
**set keyboard layout, again this is defaulting to a UK layout<br />
**set wifi country<br />
**expand filesystem (under the Advanced menu)<br />
*Configure network or WiFi (see [https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md this doc for network configuration instructions])<br />
*Finish and reboot<br />
<br />
===SatNOGS Setup===<br />
SSH to the Raspberry Pi with user "'''pi'''" and your new password.<br />
<br />
Follow [[SatNOGS Client Setup]] instructions to configure the system.<br />
<br />
[[Category:Build]]<br />
[[Category:Software]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=Raspberry_Pi&diff=3693Raspberry Pi2020-10-18T10:20:10Z<p>Acinonyx: </p>
<hr />
<div>[[File:B3342fcc865731d69e0c9d7a8b1abb887185bc13 1 531x500.jpg|alt=Libre Space Foundation Raspberry Pi Case|thumb|Libre Space Foundation Raspberry Pi Case, [https://www.thingiverse.com/thing:3233687 on thingiverse]]]<br />
<br />
==Introduction==<br />
<br />
The Raspberry Pi (version 3 and 4) is the reference platform for SatNOGS (see our [[SatNOGS Client Ansible|Ansible guide]] to install SatNOGS on other Linux machines). You can try using various distributions for this (eg. Debian/Armbian, Arch, Fedora), but the one we suggest is our custom image based on latest Raspbian.<br />
<br />
{{Message|This page assumes you have an account and a ground station registered on either network.satnogs.org or network-dev.satnogs.org. Make note of your station ID and API Key.}}<br />
<br />
==Download==<br />
'''<big>Raspbian SatNOGS Image:</big> [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/jobs/artifacts/2020100800/download?job=release <big>artifacts.zip</big>] ''' (Release: 2020100800)<br />
<br />
Download the latest Raspbian SatNOGS Image from above (or via the "Download" icon on the right side of the [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/tags latest tag page on GitLab]). This image has the SatNOGS setup script installed, the SSH server enabled and all required packages preinstalled. You will get an <code>artifacts.zip</code> file with the following content:<br />
<br />
*A Zipped image file<br />
*An Image info file<br />
*A SHA256 checksum file<br />
<br />
===Data integrity verification===<br />
<br />
You should verify the data integrity of the artifacts by comparing the SHA256 checksums. On Linux, run <code>sha256sum -c sha256sums</code> in the directory where the artifacts are downloaded and unzipped.<br />
<br />
Example:<br />
<pre><br />
$ sha256sum -c sha256sums <br />
2020-10-08-Raspbian-SatNOGS-master-lite.info: OK<br />
image_2020-10-08-Raspbian-SatNOGS-master-lite.zip: OK<br />
</pre><br />
<br />
==Flashing==<br />
[https://www.raspberrypi.org/documentation/installation/installing-images/README.md Follow the usual Raspbian flashing instructions], and boot your Raspberry Pi.<br />
<br />
==Getting console access==<br />
You can log in the Raspberry Pi by connecting it to a keyboard and monitor or through network via an SSH connection.<br />
<br />
===Keyboard and monitor===<br />
Once your Raspberry Pi is booted, log in with username "'''pi'''" password "'''raspberry'''".<br />
<br />
===Ethernet===<br />
If you are using wired Ethernet you should get connectivity right away. You just need to find the IP address of Raspberry Pi (e.g. in your router management interface). Log in with SSH using username "'''pi'''" password "'''raspberry'''", for example:<br />
$ ssh pi@192.168.1.2<br />
If your network supports [[wikipedia:Zero-configuration_networking|<code>zeroconf</code>]], then you can use the hostname of your Pi:<br />
$ ssh pi@raspberrypi.local<br />
<br />
===Pre-boot wireless configuration===<br />
If neither keyboard/monitor, nor a wired Ethernet are available, you can set up a WiFi connection before boot by mounting the boot partition of the flashed SD card and editing files directly. Note your OS may mount boot partition in a different location. [https://raspberrypi.stackexchange.com/questions/10251/prepare-sd-card-for-wifi-on-headless-pi#comment98121_57023 Windows users have line ending problems]. Suggested actions:<br />
<br />
$ $EDITOR /media/Raspbian_SatNOGS-boot/wpa_supplicant.conf<br />
<br />
contents: (note key_mgmt options include NONE, WPA-PSK, WPA-EAP)<br />
<br />
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br />
update_config=1<br />
country=US<br />
<br />
network={<br />
ssid="NETWORK_NAME"<br />
psk="password"<br />
key_mgmt=WPA-PSK<br />
}<br />
<br />
==Configuration==<br />
<br />
===Raspberry Pi Setup===<br />
Once your Raspberry Pi is booted, log in with username "'''pi'''" password "'''raspberry'''" and run: <br />
<pre><br />
$ sudo raspi-config<br />
</pre><br />
<br />
You will want to be sure to do the following:<br />
<br />
*Set a strong, unique password<br />
*Change localization settings:<br />
**by default the rpi locale is configured for EN-GB, change as appropriate (ie: to EN_US.UTF-8)<br />
**set timezone (we recommend UTC so your logs match the times in Network; UTC is under the 'none of the above' submenu)<br />
**set keyboard layout, again this is defaulting to a UK layout<br />
**set wifi country<br />
**expand filesystem (under the Advanced menu)<br />
*Configure network or WiFi (see [https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md this doc for network configuration instructions])<br />
*Finish and reboot<br />
<br />
===SatNOGS Setup===<br />
SSH to the Raspberry Pi with user "'''pi'''" and your new password.<br />
<br />
Follow [[SatNOGS Client Setup]] instructions to configure the system.<br />
<br />
[[Category:Build]]<br />
[[Category:Software]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=Raspberry_Pi&diff=3692Raspberry Pi2020-10-08T08:48:56Z<p>Acinonyx: Bump image version</p>
<hr />
<div>[[File:B3342fcc865731d69e0c9d7a8b1abb887185bc13 1 531x500.jpg|alt=Libre Space Foundation Raspberry Pi Case|thumb|Libre Space Foundation Raspberry Pi Case, [https://www.thingiverse.com/thing:3233687 on thingiverse]]]<br />
<br />
==Introduction==<br />
<br />
The Raspberry Pi (version 3 and 4) is the reference platform for SatNOGS (see our [[SatNOGS Client Ansible|Ansible guide]] to install SatNOGS on other Linux machines). You can try using various distributions for this (eg. Debian/Armbian, Arch, Fedora), but the one we suggest is our custom image based on latest Raspbian.<br />
<br />
{{Message|This page assumes you have an account and a ground station registered on either network.satnogs.org or network-dev.satnogs.org. Make note of your station ID and API Key.}}<br />
<br />
==Download==<br />
'''<big>Raspbian SatNOGS Image:</big> [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/jobs/artifacts/2020100800/download?job=release <big>artifacts.zip</big>] ''' (Release: 2020100800)<br />
<br />
'''[https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/jobs/artifacts/2020030400/download?job=release <span class="glyphicon glyphicon-save"></span>]'''<br />
<br />
Download the latest Raspbian SatNOGS Image from above (or via the "Download" icon on the right side of the [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/tags latest tag page on GitLab]). This image has the SatNOGS setup script installed, the SSH server enabled and all required packages preinstalled. You will get an <code>artifacts.zip</code> file with the following content:<br />
<br />
*A Zipped image file<br />
*An Image info file<br />
*A SHA256 checksum file<br />
<br />
===Data integrity verification===<br />
<br />
You should verify the data integrity of the artifacts by comparing the SHA256 checksums. On Linux, run <code>sha256sum -c sha256sums</code> in the directory where the artifacts are downloaded and unzipped.<br />
<br />
Example:<br />
<pre><br />
$ sha256sum -c sha256sums <br />
2020-10-08-Raspbian-SatNOGS-master-lite.info: OK<br />
image_2020-10-08-Raspbian-SatNOGS-master-lite.zip: OK<br />
</pre><br />
<br />
==Flashing==<br />
[https://www.raspberrypi.org/documentation/installation/installing-images/README.md Follow the usual Raspbian flashing instructions], and boot your Raspberry Pi.<br />
<br />
==Getting console access==<br />
You can log in the Raspberry Pi by connecting it to a keyboard and monitor or through network via an SSH connection.<br />
<br />
===Keyboard and monitor===<br />
Once your Raspberry Pi is booted, log in with username "'''pi'''" password "'''raspberry'''".<br />
<br />
===Ethernet===<br />
If you are using wired Ethernet you should get connectivity right away. You just need to find the IP address of Raspberry Pi (e.g. in your router management interface). Log in with SSH using username "'''pi'''" password "'''raspberry'''", for example:<br />
$ ssh pi@192.168.1.2<br />
If your network supports [[wikipedia:Zero-configuration_networking|<code>zeroconf</code>]], then you can use the hostname of your Pi:<br />
$ ssh pi@raspberrypi.local<br />
<br />
===Pre-boot wireless configuration===<br />
If neither keyboard/monitor, nor a wired Ethernet are available, you can set up a WiFi connection before boot by mounting the boot partition of the flashed SD card and editing files directly. Note your OS may mount boot partition in a different location. [https://raspberrypi.stackexchange.com/questions/10251/prepare-sd-card-for-wifi-on-headless-pi#comment98121_57023 Windows users have line ending problems]. Suggested actions:<br />
<br />
$ $EDITOR /media/Raspbian_SatNOGS-boot/wpa_supplicant.conf<br />
<br />
contents: (note key_mgmt options include NONE, WPA-PSK, WPA-EAP)<br />
<br />
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br />
update_config=1<br />
country=US<br />
<br />
network={<br />
ssid="NETWORK_NAME"<br />
psk="password"<br />
key_mgmt=WPA-PSK<br />
}<br />
<br />
==Configuration==<br />
<br />
===Raspberry Pi Setup===<br />
Once your Raspberry Pi is booted, log in with username "'''pi'''" password "'''raspberry'''" and run: <br />
<pre><br />
$ sudo raspi-config<br />
</pre><br />
<br />
You will want to be sure to do the following:<br />
<br />
*Set a strong, unique password<br />
*Change localization settings:<br />
**by default the rpi locale is configured for EN-GB, change as appropriate (ie: to EN_US.UTF-8)<br />
**set timezone (we recommend UTC so your logs match the times in Network; UTC is under the 'none of the above' submenu)<br />
**set keyboard layout, again this is defaulting to a UK layout<br />
**set wifi country<br />
**expand filesystem (under the Advanced menu)<br />
*Configure network or WiFi (see [https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md this doc for network configuration instructions])<br />
*Finish and reboot<br />
<br />
===SatNOGS Setup===<br />
SSH to the Raspberry Pi with user "'''pi'''" and your new password.<br />
<br />
Follow [[SatNOGS Client Setup]] instructions to configure the system.<br />
<br />
[[Category:Build]]<br />
[[Category:Software]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=SatNOGS_Client_Setup&diff=3571SatNOGS Client Setup2020-04-06T21:03:12Z<p>Acinonyx: Add step to update configuration tool</p>
<hr />
<div>==Introduction==<br />
<code>satnogs-setup</code> provides a set of scripts for configuring a '''SatNOGS Client''' system. <code>satnogs-setup</code> main function is to bring up a menu-driven console configuration utility and provision the system using [[SatNOGS Client Ansible|Ansible]].<br />
<br />
==Initial Setup==<br />
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.<br />
<br />
To configure a '''SatNOGS Client''' system:<br />
<br />
#SSH into the system and run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Set '''all''' options in '''Basic Configuration''' (see below)<br />
#Select <code>Apply</code> and the Raspberry Pi will configure itself; this may take some time<br />
#Select <code>Back</code> to exit<br />
{{Message|You can always reconfigure the software by running <code>sudo satnogs-setup</code> again.}}<br />
===Basic Configuration===<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_API_TOKEN</code><br />
|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.<br />
<br />
<br />
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 "Dashboard" option. On the top of the dashboard page right under the user icon click the button "API key" to show your API token.<br />
|-<br />
|<code>SATNOGS_SOAPY_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>driver=rtlsdr</code>. 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. <code>driver=uhd,serial=3164495</code>.<br />
|-<br />
|<code>SATNOGS_ANTENNA</code><br />
|If you are using an RTL-SDR, this is <code>RX</code>. Use <code><nowiki>SoapySDRUtil --probe 2>&1| grep Antennas</nowiki></code> to get available antennas for other [https://github.com/pothosware/SoapyRTLSDR/wiki#modules modules].<br />
|-<br />
|<code>SATNOGS_RX_SAMP_RATE</code><br />
|Specify the receiver sampling rate. Recommended value for RTL-SDR: <code>2.048e6</code> (for 2Msps).<br />
|-<br />
|<code>SATNOGS_RF_GAIN</code><br />
|RF Gain value for your SDR hardware. Run <code>SoapySDRUtil --probe</code> to see all possible gain values for your hardware.<br />
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.<br />
|-<br />
|<code>SATNOGS_STATION_ELEV</code><br />
|The height of your ground station above sea level in metres.<br />
|-<br />
|<code>SATNOGS_STATION_ID</code><br />
|The '''numeric ID''' assigned to your station in the SatNOGS Network site when the groundstation was created.<br />
|-<br />
|<code>SATNOGS_STATION_LAT</code><br />
|The latitude of your station. North is positive, south is negative.<br />
|-<br />
|<code>SATNOGS_STATION_LON</code><br />
|The longitude of your station. East is positive, west is negative.<br />
|}<br />
<br />
==Advanced Setup==<br />
{{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]].<br />
<br />
NOTE: To get your station online, you need to set SATNOGS_NETWORK_API_URL to https://network.satnogs.org/api/<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_PPM_ERROR</code><br />
|The local oscillator frequency deviation in ppm.<br />
|-<br />
|<code>SATNOGS_RX_BANDWIDTH</code><br />
|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.<br />
|-<br />
|<code>SATNOGS_DEV_ARGS</code><br />
|Soapy device arguments (currently only accepting the <code>serial</code> key successfully) and stream arguments.<br />
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].<br />
|-<br />
|<code>SATNOGS_GAIN_MODE</code><br />
|Choose the gain mode:<br />
<br />
*<code>"Overall"</code> (default): Set the gain with the single value from <code>SATNOGS_RF_GAIN</code><br />
*<code>"Settings Field"</code>: Ignore <code>SATNOGS_RF_GAIN</code>, use the settings from <code>SATNOGS_OTHER_SETTINGS</code> instead<br />
|-<br />
|<code>SATNOGS_STREAM_ARGS</code><br />
|<br />
|-<br />
|<code>SATNOGS_TUNE_ARGS</code><br />
|<br />
|-<br />
|<code>SATNOGS_OTHER_SETTINGS</code><br />
|Only available if <code>SATNOGS_GAIN_MODE</code>is<code>"Settings Field"</code>.<br />
Available gain settings can be retrieved using <code>SoapySDRUtil --probe="driver=xxxx`</code><br />
<br />
Example for Airspy: Use<code>"LNA=12,MIX=8,VGA=11"</code>See also: [[SDR#Airspy|Airspy support]]<br />
|-<br />
|<code>SATNOGS_DC_REMOVAL</code><br />
|<br />
|-<br />
|<code>SATNOGS_BB_FREQ</code><br />
|<br />
|-<br />
|<code>SATNOGS_LO_OFFSET</code><br />
|Don't use this parameter to correct for the local oscillator frequency deviation, use <code>SATNOGS_PPM_ERROR</code> instead!<br />
To avoid the SDR carrier at the DC the LO is shifted from the actual frequency a little. Default: <code>100e3</code> (100 kHz)<br />
|-<br />
|<br />
|<br />
|-<br />
|<code>SATNOGS_ROT_MODEL</code><br />
|Hamlib rotator model. If you don't have a rotator (like the [[No rotator|No rotator setup]]), leave it empty.<br />
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 <code>ROT_MODEL_NETROTCTL</code><br />
|-<br />
|<code>SATNOGS_ROT_BAUD</code><br />
|Baud rate for Hamlib rotator serial port, if using a serial-connected rotator.<br />
|-<br />
|<code>SATNOGS_ROT_PORT</code><br />
|Serial port for Hamlib rotator, OR the network address of a rotctld instance (e.g. <code>localhost:4533</code> )<br />
|-<br />
|<code>SATNOGS_ROT_THRESHOLD</code><br />
|Rotator movement threshold, in degrees. If set, the rotator will only be commanded when the target has moved more than <threshold> degrees away from the current azimuth/elevation position. Default: 4 degrees<br />
|-<br />
|<br />
|<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_ENABLED</code><br />
|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.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_OPTS</code><br />
|Options for rotcld:<br />
For a yaesu rotator, use <code>-m 601 -r /dev/ttyACM0 -s 9600 -T 0.0.0.0</code><br />
<br />
For a SatNOGS rotator <code>-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200</code> or <code>-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200</code><br />
|-<br />
|<br />
|<br />
|-<br />
|<code>SATNOGS_PRE_OBSERVATION_SCRIPT</code><code>SATNOGS_POST_OBSERVATION_SCRIPT</code><br />
|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:<br />
<code><nowiki>{{FREQ}}</nowiki></code> - Observation Centre Frequency<br />
<br />
<code><nowiki>{{TLE}}</nowiki></code> - Target object TLE data, as a JSON-formatted object.<br />
<br />
<code><nowiki>{{TIMESTAMP}}</nowiki></code> - Start time of the observation, in the format: %Y-%m-%dT%H-%M-%S%z<br />
<br />
<code><nowiki>{{ID}}</nowiki></code> - Observation ID number.<br />
<br />
<code><nowiki>{{BAUD}}</nowiki></code> - Baud rate of the modulation used, if applicable.<br />
<br />
<code><nowiki>{{SCRIPT_NAME}}</nowiki></code> - The name of the demodulation flow-graph script in use.<br />
|-<br />
|<br />
|<br />
|-<br />
|<code>EXPERIMENTAL</code><br />
|Install latest (experimental) versions of all software<br />
|-<br />
|<code>APT_REPOSITORY</code><br />
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:<br />
<code>deb <nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs-unstable/Raspbian_10</nowiki> ./</code><br />
|-<br />
|<code>APT_KEY_URL</code><br />
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:<br />
<code><nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs-unstable/Raspbian_10/Release.key</nowiki></code><br />
|-<br />
|<code>APT_KEY_ID</code><br />
|This options allows you to specify an alternative SatNOGS packages repository key ID.<br />
|-<br />
|<code>SATNOGS_CLIENT_URL</code><br />
|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:<br />
<br />
*<code>git+<nowiki>https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@master</nowiki></code> -- the 'master' branch (the current development version) of satnogs-client<br />
*<code><nowiki>git+https://gitlab.com/jdoe/satnogs-client.git@new-feature</nowiki></code> -- the 'new-feature' branch of jdoe's fork of satnogs-client<br />
|-<br />
|<code>SATNOGS_RADIO_FLOWGRAPHS_VERSION</code><br />
|This options allows you to change the version of satnogs-flowgraphs package to be installed. For example:<br />
<code>0.1-1</code><br />
|-<br />
|<br />
|<br />
|-<br />
|<code>LOG_LEVEL</code><br />
|Define SatNOGS client log level, available values: <code>ERROR</code>, <code>WARNING</code>, <code>INFO</code> and <code>DEBUG</code><br />
|}<br />
<br />
==Obsolete Setup Variables==<br />
The following options were available in previous versions of the SatNOGS client system and have no effect on the latest stable version.<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>rtlsdr</code>. Other devices supported by gr-satnogs include <code>usrpb200</code>, <code>usrp2</code>, <code>airspy/airspymini</code>, <code>lime</code>, or <code>hackrf</code>.<br />
|-<br />
|<code>SATNOGS_PPM_ERROR</code> (available again)<br />
|gr-satnogs: The PPM correction [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]<br />
|-<br />
|<code>SATNOGS_DEV_ARGS</code> (available again)<br />
|gr-satnogs: SDR device specific arguments [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]<br />
Note: This variable was re-purposed to set soapy device and stream arguments, so it's not obsolete anymore.<br />
|-<br />
|<code>SATNOGS_IF_GAIN</code><br />
|gr-satnogs: Intermediate frequency gain [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]<br />
|-<br />
|<code>SATNOGS_BB_GAIN</code><br />
|gr-satnogs: Baseband gain [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]<br />
|-<br />
|<code>SATNOGS_RADIO_GR_SATNOGS_VERSION</code><br />
|This options allows you to change the version of gr-satnogs package to be installed. For example: <code>1.5.1-1</code><br />
|}<br />
<br />
==Updating SatNOGS Client Software==<br />
To update SatNOGS software, including the configuration tool itself:<br />
<br />
#SSH into the system and (re-)run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Select <code>Update</code> to update the configuration tool and all distribution packages to the latest<br />
#If you are prompt for a reboot during the upgrade, once the upgrade is finished, select <code>Reboot</code>, SSH back into the system and re-run <code>satnogs-setup</code> to continue to the next step<br />
#Select <code>Apply</code> and the Raspberry Pi will update itself; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
'''WARNING: An update can potentially interrupt a running observation!'''<br />
===Upgrading from Debian 'stretch' to 'buster'===<br />
Debian <code>stretch</code> is no longer supported. If you have already installed an older version of Debian or Raspbian SatNOGS image based on <code>stretch</code> (releases <= [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/tags/2018080300 2018080300]), you must upgrade to <code>buster</code> otherwise it will be impossible to receive updates or upgrades in the future.<br />
====Method 1: Reflashing and reinstalling (recommended)====<br />
The recommended method to upgrade to <code>buster</code> is reflashing the latest Raspbian SatNOGS image (or reinstalling latest Debian). Follow [[Raspberry Pi|Raspberry Pi]] installation instructions and reinstall from scratch.<br />
====Method 2: Release upgrade using satnogs-upgrade (advanced)====<br />
{{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:<br />
<br />
#SSH into the system<br />
#Make sure you have enough free space on your SD card (>2GiB) by running <code>df -h /</code> on the console<br />
#Run <code>sudo satnogs-setup</code> and select <code>Update</code> to update the tool itself and then select <code>Apply</code>. This may inform you that the current distribution is not supported and exit. If not, select <code>Exit</code> to exit the tool.<br />
#Run <code>sudo satnogs-upgrade</code> to update all distribution packages to the latest; this will also prompt you for a distribution upgrade, if it detects that one is needed<br />
#Keep an eye on the upgrade progress; <code>dpkg</code> may prompt for changes<br />
#Once the upgrade is completed run <code>sudo sync; sudo reboot</code><br />
#After the reboot, SSH back into the system and make sure you are on the correct release by running <code>lsb_release -a</code><br />
#Run <code>sudo rm -f /root/.satnogs/.bootstrapped; sudo satnogs-setup</code> and select <code>Update</code> and then <code>Apply</code>; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
==Verification of correct installation==<br />
To see if satnogs-client has started successfully, check the logs with <code>systemctl</code>:<pre><br />
$ systemctl status satnogs-client<br />
</pre>You should see an output that looks like this:<pre><br />
● satnogs-client.service - SatNOGS client<br />
Loaded: loaded (/etc/systemd/system/satnogs-client.service; enabled; vendor preset: enabled)<br />
Active: active (running) since Wed 2020-03-04 19:30:56 GMT; 6min ago<br />
Main PID: 6309 (satnogs-client)<br />
Tasks: 11 (limit: 2200)<br />
Memory: 37.9M<br />
CGroup: /system.slice/satnogs-client.service<br />
└─6309 /var/lib/satnogs/bin/python3 /var/lib/satnogs/bin/satnogs-client<br />
<br />
Mar 04 19:30:56 raspberrypi systemd[1]: Started SatNOGS client.<br />
</pre>If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.<br />
<br />
==See also==<br />
<br />
*[[SatNOGS Client Ansible]]<br />
<br />
[[Category:Build]]<br />
[[Category:Software]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=SatNOGS_Client_Setup&diff=3530SatNOGS Client Setup2020-03-21T20:50:13Z<p>Acinonyx: Add Description for SATNOGS_ANTENNA setting</p>
<hr />
<div>==Introduction==<br />
<code>satnogs-setup</code> provides a set of scripts for configuring a '''SatNOGS Client''' system. <code>satnogs-setup</code> main function is to bring up a menu-driven console configuration utility and provision the system using [[SatNOGS Client Ansible|Ansible]].<br />
<br />
==Initial Setup==<br />
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.<br />
<br />
To configure a '''SatNOGS Client''' system:<br />
<br />
#SSH into the system and run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Set '''all''' options in '''Basic Configuration''' (see below)<br />
#Select <code>Apply</code> and the Raspberry Pi will configure itself; this may take some time<br />
#Select <code>Back</code> to exit<br />
{{Message|You can always reconfigure the software by running <code>sudo satnogs-setup</code> again.}}<br />
===Basic Configuration===<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_API_TOKEN</code><br />
|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.<br />
<br />
<br />
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 "Dashboard" option. On the top of the dashboard page right under the user icon click the button "API key" to show your API token.<br />
|-<br />
|<code>SATNOGS_SOAPY_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>driver=rtlsdr</code>. 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. <code>driver=uhd,serial=3164495</code>.<br />
|-<br />
|<code>SATNOGS_ANTENNA</code><br />
|If you are using an RTL-SDR, this is <code>RX</code>. Use <code><nowiki>SoapySDRUtil --probe 2>&1| grep Antennas</nowiki></code> to get available antennas for other [https://github.com/pothosware/SoapyRTLSDR/wiki#modules modules].<br />
|-<br />
|<code>SATNOGS_RX_SAMP_RATE</code><br />
|Specify the receiver sampling rate. Recommended value for RTL-SDR: <code>2.048e6</code> (for 2Msps).<br />
|-<br />
|<code>SATNOGS_RF_GAIN</code><br />
|RF Gain value for your SDR hardware. Run <code>SoapySDRUtil --probe</code> to see all possible gain values for your hardware.<br />
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.<br />
|-<br />
|<code>SATNOGS_STATION_ELEV</code><br />
|The height of your ground station above sea level in metres.<br />
|-<br />
|<code>SATNOGS_STATION_ID</code><br />
|The '''numeric ID''' assigned to your station in the SatNOGS Network site when the groundstation was created.<br />
|-<br />
|<code>SATNOGS_STATION_LAT</code><br />
|The latitude of your station. North is positive, south is negative.<br />
|-<br />
|<code>SATNOGS_STATION_LON</code><br />
|The longitude of your station. East is positive, west is negative.<br />
|}<br />
<br />
==Advanced Setup==<br />
{{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]].<br />
<br />
NOTE: To get your station online, you need to set SATNOGS_NETWORK_API_URL to https://network.satnogs.org/api/<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_RX_BANDWIDTH</code><br />
|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.<br />
|-<br />
|<code>SATNOGS_DEV_ARGS</code><br />
|Soapy device arguments (currently only accepting the <code>serial</code> key successfully) and stream arguments.<br />
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].<br />
|-<br />
|<br />
|<br />
|-<br />
|<code>SATNOGS_ROT_MODEL</code><br />
|Hamlib rotator model. If you don't have a rotator (like the [[No rotator|No rotator setup]]), leave it empty.<br />
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 <code>ROT_MODEL_NETROTCTL</code><br />
|-<br />
|<code>SATNOGS_ROT_BAUD</code><br />
|Baud rate for Hamlib rotator serial port, if using a serial-connected rotator.<br />
|-<br />
|<code>SATNOGS_ROT_PORT</code><br />
|Serial port for Hamlib rotator, OR the network address of a rotctld instance (e.g. <code>localhost:4533</code> )<br />
|-<br />
|<code>SATNOGS_ROT_THRESHOLD</code><br />
|Rotator movement threshold, in degrees. If set, the rotator will only be commanded when the target has moved more than <threshold> degrees away from the current azimuth/elevation position. Default: 4 degrees<br />
|-<br />
|<br />
|<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_ENABLED</code><br />
|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.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_OPTS</code><br />
|Options for rotcld:<br />
For a yaesu rotator, use <code>-m 601 -r /dev/ttyACM0 -s 9600 -T 0.0.0.0</code><br />
<br />
For a SatNOGS rotator <code>-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200</code> or <code>-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200</code><br />
|-<br />
|<br />
|<br />
|-<br />
|<code>SATNOGS_PRE_OBSERVATION_SCRIPT</code><code>SATNOGS_POST_OBSERVATION_SCRIPT</code><br />
|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:<br />
<code><nowiki>{{FREQ}}</nowiki></code> - Observation Centre Frequency<br />
<br />
<code><nowiki>{{TLE}}</nowiki></code> - Target object TLE data, as a JSON-formatted object.<br />
<br />
<code><nowiki>{{TIMESTAMP}}</nowiki></code> - Start time of the observation, in the format: %Y-%m-%dT%H-%M-%S%z<br />
<br />
<code><nowiki>{{ID}}</nowiki></code> - Observation ID number.<br />
<br />
<code><nowiki>{{BAUD}}</nowiki></code> - Baud rate of the modulation used, if applicable.<br />
<br />
<code><nowiki>{{SCRIPT_NAME}}</nowiki></code> - The name of the demodulation flow-graph script in use.<br />
|-<br />
|<br />
|<br />
|-<br />
|<code>EXPERIMENTAL</code><br />
|Install latest (experimental) versions of all software<br />
|-<br />
|<code>APT_REPOSITORY</code><br />
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:<br />
<code>deb <nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs-unstable/Raspbian_10</nowiki> ./</code><br />
|-<br />
|<code>APT_KEY_URL</code><br />
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:<br />
<code><nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs-unstable/Raspbian_10/Release.key</nowiki></code><br />
|-<br />
|<code>APT_KEY_ID</code><br />
|This options allows you to specify an alternative SatNOGS packages repository key ID.<br />
|-<br />
|<code>SATNOGS_CLIENT_URL</code><br />
|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:<br />
<br />
*<code>git+<nowiki>https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@master</nowiki></code> -- the 'master' branch (the current development version) of satnogs-client<br />
*<code><nowiki>git+https://gitlab.com/jdoe/satnogs-client.git@new-feature</nowiki></code> -- the 'new-feature' branch of jdoe's fork of satnogs-client<br />
|-<br />
|<code>SATNOGS_RADIO_FLOWGRAPHS_VERSION</code><br />
|This options allows you to change the version of satnogs-flowgraphs package to be installed. For example:<br />
<code>0.1-1</code><br />
|-<br />
|<br />
|<br />
|-<br />
|<code>LOG_LEVEL</code><br />
|Define SatNOGS client log level, available values: <code>ERROR</code>, <code>WARNING</code>, <code>INFO</code> and <code>DEBUG</code><br />
|}<br />
<br />
==Obsolete Setup Variables==<br />
The following options were available in previous versions of the SatNOGS client system and have no effect on the latest stable version.<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>rtlsdr</code>. Other devices supported by gr-satnogs include <code>usrpb200</code>, <code>usrp2</code>, <code>airspy/airspymini</code>, <code>lime</code>, or <code>hackrf</code>.<br />
|-<br />
|<code>SATNOGS_PPM_ERROR</code><br />
|gr-satnogs: The PPM correction [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]<br />
|-<br />
|<code>SATNOGS_DEV_ARGS</code> (available again)<br />
|gr-satnogs: SDR device specific arguments [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]<br />
Note: This variable was re-purposed to set soapy device and stream arguments, so it's not obsolete anymore.<br />
|-<br />
|<code>SATNOGS_IF_GAIN</code><br />
|gr-satnogs: Intermediate frequency gain [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]<br />
|-<br />
|<code>SATNOGS_BB_GAIN</code><br />
|gr-satnogs: Baseband gain [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]<br />
|-<br />
|<code>SATNOGS_RADIO_GR_SATNOGS_VERSION</code><br />
|This options allows you to change the version of gr-satnogs package to be installed. For example: <code>1.5.1-1</code><br />
|}<br />
<br />
==Updating SatNOGS Client Software==<br />
To update SatNOGS software, including the configuration tool itself:<br />
<br />
#SSH into the system and (re-)run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Select <code>Update</code> to update the configuration tool and all distribution packages to the latest<br />
#If you are prompt for a reboot during the upgrade, once the upgrade is finished, select <code>Reboot</code>, SSH back into the system and re-run <code>satnogs-setup</code> to continue to the next step<br />
#Select <code>Apply</code> and the Raspberry Pi will update itself; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
'''WARNING: An update can potentially interrupt a running observation!'''<br />
===Upgrading from Debian 'stretch' to 'buster'===<br />
Debian <code>stretch</code> is no longer supported. If you have already installed an older version of Debian or Raspbian SatNOGS image based on <code>stretch</code> (releases <= [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/tags/2018080300 2018080300]), you must upgrade to <code>buster</code> otherwise it will be impossible to receive updates or upgrades in the future.<br />
====Method 1: Reflashing and reinstalling (recommended)====<br />
The recommended method to upgrade to <code>buster</code> is reflashing the latest Raspbian SatNOGS image (or reinstalling latest Debian). Follow [[Raspberry Pi|Raspberry Pi]] installation instructions and reinstall from scratch.<br />
====Method 2: Release upgrade using satnogs-upgrade (advanced)====<br />
{{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:<br />
<br />
#SSH into the system<br />
#Make sure you have enough free space on your SD card (>2GiB) by running <code>df -h /</code> on the console<br />
#Run <code>sudo satnogs-upgrade</code> to update all distribution packages to the latest; this will also prompt you for a distribution upgrade, if it detects that one is needed<br />
#Keep an eye on the upgrade progress; <code>dpkg</code> may prompt for changes<br />
#Once the upgrade is completed run <code>sudo sync; sudo reboot</code><br />
#After the reboot, SSH back into the system and make sure you are on the correct release by running <code>lsb_release -a</code><br />
#Run <code>sudo rm -f /root/.satnogs/.bootstrapped; sudo satnogs-setup</code> and select <code>Update</code> and then <code>Apply</code>; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
==Verification of correct installation==<br />
To see if satnogs-client has started successfully, check the logs with <code>systemctl</code>:<pre><br />
$ systemctl status satnogs-client<br />
</pre>You should see an output that looks like this:<pre><br />
● satnogs-client.service - SatNOGS client<br />
Loaded: loaded (/etc/systemd/system/satnogs-client.service; enabled; vendor preset: enabled)<br />
Active: active (running) since Wed 2020-03-04 19:30:56 GMT; 6min ago<br />
Main PID: 6309 (satnogs-client)<br />
Tasks: 11 (limit: 2200)<br />
Memory: 37.9M<br />
CGroup: /system.slice/satnogs-client.service<br />
└─6309 /var/lib/satnogs/bin/python3 /var/lib/satnogs/bin/satnogs-client<br />
<br />
Mar 04 19:30:56 raspberrypi systemd[1]: Started SatNOGS client.<br />
</pre>If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.<br />
<br />
==See also==<br />
<br />
*[[SatNOGS Client Ansible]]<br />
<br />
[[Category:Build]]<br />
[[Category:Software]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=SatNOGS_Client_Setup&diff=3527SatNOGS Client Setup2020-03-19T13:28:28Z<p>Acinonyx: Distribution upgrade with 'satnogs-upgrade'</p>
<hr />
<div>==Introduction==<br />
<code>satnogs-setup</code> provides a set of scripts for configuring a '''SatNOGS Client''' system. <code>satnogs-setup</code> main function is to bring up a menu-driven console configuration utility and provision the system using [[SatNOGS Client Ansible|Ansible]].<br />
<br />
==Initial Setup==<br />
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.<br />
<br />
To configure a '''SatNOGS Client''' system:<br />
<br />
#SSH into the system and run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Set '''all''' options in '''Basic Configuration''' (see below)<br />
#Select <code>Apply</code> and the Raspberry Pi will configure itself; this may take some time<br />
#Select <code>Back</code> to exit<br />
{{Message|You can always reconfigure the software by running <code>sudo satnogs-setup</code> again.}}<br />
===Basic Configuration===<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_API_TOKEN</code><br />
|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.<br />
<br />
<br />
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 "Dashboard" option. On the top of the dashboard page right under the user icon click the button "API key" to show your API token.<br />
|-<br />
|<code>SATNOGS_SOAPY_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>driver=rtlsdr</code>. 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. <code>driver=uhd,serial=3164495</code>.<br />
|-<br />
|<code>SATNOGS_RX_SAMP_RATE</code><br />
|Specify the receiver sampling rate. Recommended value for RTL-SDR: <code>2.048e6</code> (for 2Msps).<br />
|-<br />
|<code>SATNOGS_RF_GAIN</code><br />
|RF Gain value for your SDR hardware. Run <code>SoapySDRUtil --probe</code> to see all possible gain values for your hardware.<br />
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.<br />
|-<br />
|<code>SATNOGS_STATION_ELEV</code><br />
|The height of your ground station above sea level in metres.<br />
|-<br />
|<code>SATNOGS_STATION_ID</code><br />
|The '''numeric ID''' assigned to your station in the SatNOGS Network site when the groundstation was created.<br />
|-<br />
|<code>SATNOGS_STATION_LAT</code><br />
|The latitude of your station. North is positive, south is negative.<br />
|-<br />
|<code>SATNOGS_STATION_LON</code><br />
|The longitude of your station. East is positive, west is negative.<br />
|}<br />
<br />
==Advanced Setup==<br />
{{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]].<br />
<br />
NOTE: To get your station online, you need to set SATNOGS_NETWORK_API_URL to https://network.satnogs.org/api/<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_RX_BANDWIDTH</code><br />
|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.<br />
|-<br />
|<code>SATNOGS_ANTENNA</code><br />
|TODO<br />
|-<br />
|<code>SATNOGS_DEV_ARGS</code><br />
|Soapy device arguments (currently only accepting the <code>serial</code> key successfully) and stream arguments.<br />
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].<br />
|-<br />
|<br />
|<br />
|-<br />
|<code>SATNOGS_ROT_MODEL</code><br />
|Hamlib rotator model. If you don't have a rotator (like the [[No rotator|No rotator setup]]), leave it empty.<br />
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 <code>ROT_MODEL_NETROTCTL</code><br />
|-<br />
|<code>SATNOGS_ROT_BAUD</code><br />
|Baud rate for Hamlib rotator serial port, if using a serial-connected rotator.<br />
|-<br />
|<code>SATNOGS_ROT_PORT</code><br />
|Serial port for Hamlib rotator, OR the network address of a rotctld instance (e.g. <code>localhost:4533</code> )<br />
|-<br />
|<code>SATNOGS_ROT_THRESHOLD</code><br />
|Rotator movement threshold, in degrees. If set, the rotator will only be commanded when the target has moved more than <threshold> degrees away from the current azimuth/elevation position. Default: 4 degrees<br />
|-<br />
|<br />
|<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_ENABLED</code><br />
|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.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_OPTS</code><br />
|Options for rotcld:<br />
For a yaesu rotator, use <code>-m 601 -r /dev/ttyACM0 -s 9600 -T 0.0.0.0</code><br />
<br />
For a SatNOGS rotator <code>-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200</code> or <code>-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200</code><br />
|-<br />
|<br />
|<br />
|-<br />
|<code>SATNOGS_PRE_OBSERVATION_SCRIPT</code><code>SATNOGS_POST_OBSERVATION_SCRIPT</code><br />
|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:<br />
<code><nowiki>{{FREQ}}</nowiki></code> - Observation Centre Frequency<br />
<br />
<code><nowiki>{{TLE}}</nowiki></code> - Target object TLE data, as a JSON-formatted object.<br />
<br />
<code><nowiki>{{TIMESTAMP}}</nowiki></code> - Start time of the observation, in the format: %Y-%m-%dT%H-%M-%S%z<br />
<br />
<code><nowiki>{{ID}}</nowiki></code> - Observation ID number.<br />
<br />
<code><nowiki>{{BAUD}}</nowiki></code> - Baud rate of the modulation used, if applicable.<br />
<br />
<code><nowiki>{{SCRIPT_NAME}}</nowiki></code> - The name of the demodulation flow-graph script in use.<br />
|-<br />
|<br />
|<br />
|-<br />
|<code>EXPERIMENTAL</code><br />
|Install latest (experimental) versions of all software<br />
|-<br />
|<code>APT_REPOSITORY</code><br />
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:<br />
<code>deb <nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs-unstable/Raspbian_10</nowiki> ./</code><br />
|-<br />
|<code>APT_KEY_URL</code><br />
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:<br />
<code><nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs-unstable/Raspbian_10/Release.key</nowiki></code><br />
|-<br />
|<code>APT_KEY_ID</code><br />
|This options allows you to specify an alternative SatNOGS packages repository key ID.<br />
|-<br />
|<code>SATNOGS_CLIENT_URL</code><br />
|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:<br />
<br />
*<code>git+<nowiki>https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@master</nowiki></code> -- the 'master' branch (the current development version) of satnogs-client<br />
*<code><nowiki>git+https://gitlab.com/jdoe/satnogs-client.git@new-feature</nowiki></code> -- the 'new-feature' branch of jdoe's fork of satnogs-client<br />
|-<br />
|<code>SATNOGS_RADIO_FLOWGRAPHS_VERSION</code><br />
|This options allows you to change the version of satnogs-flowgraphs package to be installed. For example:<br />
<code>0.1-1</code><br />
|-<br />
|<br />
|<br />
|-<br />
|<code>LOG_LEVEL</code><br />
|Define SatNOGS client log level, available values: <code>ERROR</code>, <code>WARNING</code>, <code>INFO</code> and <code>DEBUG</code><br />
|}<br />
<br />
==Obsolete Setup Variables==<br />
The following options were available in previous versions of the SatNOGS client system and have no effect on the latest stable version.<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>rtlsdr</code>. Other devices supported by gr-satnogs include <code>usrpb200</code>, <code>usrp2</code>, <code>airspy/airspymini</code>, <code>lime</code>, or <code>hackrf</code>.<br />
|-<br />
|<code>SATNOGS_PPM_ERROR</code><br />
|gr-satnogs: The PPM correction [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]<br />
|-<br />
|<code>SATNOGS_DEV_ARGS</code> (available again)<br />
|gr-satnogs: SDR device specific arguments [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]<br />
Note: This variable was re-purposed to set soapy device and stream arguments, so it's not obsolete anymore.<br />
|-<br />
|<code>SATNOGS_IF_GAIN</code><br />
|gr-satnogs: Intermediate frequency gain [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]<br />
|-<br />
|<code>SATNOGS_BB_GAIN</code><br />
|gr-satnogs: Baseband gain [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/apps/flowgraphs/README.md#execution-arguements-interface]<br />
|-<br />
|<code>SATNOGS_RADIO_GR_SATNOGS_VERSION</code><br />
|This options allows you to change the version of gr-satnogs package to be installed. For example: <code>1.5.1-1</code><br />
|}<br />
<br />
==Updating SatNOGS Client Software==<br />
To update SatNOGS software, including the configuration tool itself:<br />
<br />
#SSH into the system and (re-)run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Select <code>Update</code> to update the configuration tool and all distribution packages to the latest<br />
#If you are prompt for a reboot during the upgrade, once the upgrade is finished, select <code>Reboot</code>, SSH back into the system and re-run <code>satnogs-setup</code> to continue to the next step<br />
#Select <code>Apply</code> and the Raspberry Pi will update itself; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
'''WARNING: An update can potentially interrupt a running observation!'''<br />
===Upgrading from Debian 'stretch' to 'buster'===<br />
Debian <code>stretch</code> is no longer supported. If you have already installed an older version of Debian or Raspbian SatNOGS image based on <code>stretch</code> (releases <= [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/tags/2018080300 2018080300]), you must upgrade to <code>buster</code> otherwise it will be impossible to receive updates or upgrades in the future.<br />
====Method 1: Reflashing and reinstalling (recommended)====<br />
The recommended method to upgrade to <code>buster</code> is reflashing the latest Raspbian SatNOGS image (or reinstalling latest Debian). Follow [[Raspberry Pi|Raspberry Pi]] installation instructions and reinstall from scratch.<br />
====Method 2: Release upgrade using satnogs-upgrade (advanced)====<br />
{{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:<br />
<br />
#SSH into the system<br />
#Make sure you have enough free space on your SD card (>2GiB) by running <code>df -h /</code> on the console<br />
#Run <code>sudo satnogs-upgrade</code> to update all distribution packages to the latest; this will also prompt you for a distribution upgrade, if it detects that one is needed<br />
#Keep an eye on the upgrade progress; <code>dpkg</code> may prompt for changes<br />
#Once the upgrade is completed run <code>sudo sync; sudo reboot</code><br />
#After the reboot, SSH back into the system and make sure you are on the correct release by running <code>lsb_release -a</code><br />
#Run <code>sudo rm -f /root/.satnogs/.bootstrapped; sudo satnogs-setup</code> and select <code>Update</code> and then <code>Apply</code>; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
==Verification of correct installation==<br />
To see if satnogs-client has started successfully, check the logs with <code>systemctl</code>:<pre><br />
$ systemctl status satnogs-client<br />
</pre>You should see an output that looks like this:<pre><br />
● satnogs-client.service - SatNOGS client<br />
Loaded: loaded (/etc/systemd/system/satnogs-client.service; enabled; vendor preset: enabled)<br />
Active: active (running) since Wed 2020-03-04 19:30:56 GMT; 6min ago<br />
Main PID: 6309 (satnogs-client)<br />
Tasks: 11 (limit: 2200)<br />
Memory: 37.9M<br />
CGroup: /system.slice/satnogs-client.service<br />
└─6309 /var/lib/satnogs/bin/python3 /var/lib/satnogs/bin/satnogs-client<br />
<br />
Mar 04 19:30:56 raspberrypi systemd[1]: Started SatNOGS client.<br />
</pre>If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.<br />
<br />
==See also==<br />
<br />
*[[SatNOGS Client Ansible]]<br />
<br />
[[Category:Build]]<br />
[[Category:Software]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=Raspberry_Pi&diff=3475Raspberry Pi2020-03-06T21:11:31Z<p>Acinonyx: Update image download URL</p>
<hr />
<div>[[File:B3342fcc865731d69e0c9d7a8b1abb887185bc13 1 531x500.jpg|alt=Libre Space Foundation Raspberry Pi Case|thumb|Libre Space Foundation Raspberry Pi Case, [https://www.thingiverse.com/thing:3233687 on thingiverse]]]<br />
<br />
==Introduction==<br />
<br />
The Raspberry Pi (version 3 and 4) is the reference platform for SatNOGS (see our [[SatNOGS Client Ansible|Ansible guide]] to install SatNOGS on other Linux machines). You can try using various distributions for this (eg. Debian/Armbian, Arch, Fedora), but the one we suggest is our custom image based on latest Raspbian.<br />
<br />
{{Message|This page assumes you have an account and a ground station registered on either network.satnogs.org or network-dev.satnogs.org. Make note of your station ID and API Key.}}<br />
==[https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/jobs/artifacts/2019091100/download?job=release <span class="glyphicon glyphicon-save"></span>][https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/jobs/artifacts/2020030400/download?job=release Download]==<br />
<br />
You can download the latest Raspbian SatNOGS image following the links from the [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/tags latest tag on GitLab]. This image has the SatNOGS setup script installed, the SSH server enabled and all required packages preinstalled. Click on the cloud icon and then click "Download release". You will get an Artifacts.zip file:<br />
<br />
==Artifacts list==<br />
<br />
The current artifacts list consists of:<br />
<br />
*A Zipped image file<br />
*An Image info file<br />
*A SHA256 checksums file<br />
<br />
===Data integrity verification===<br />
<br />
You should verify the data integrity of the artifacts by checking the SHA256 checksums. On Linux, run <code>sha256sum -c sha256sums</code> in the directory where the artifacts are downloaded and unzipped.<br />
<br />
Example:<br />
<pre><br />
$ sha256sum -c sha256sums <br />
2017-09-29-Raspbian-SatNOGS-master-lite.info: OK<br />
image_2017-09-29-Raspbian-SatNOGS-master-lite.zip: OK<br />
</pre><br />
<br />
==Flashing==<br />
[https://www.raspberrypi.org/documentation/installation/installing-images/README.md Follow the usual Raspbian flashing instructions], and boot your Raspberry Pi.<br />
<br />
==Getting console access==<br />
You can log in the Raspberry Pi by connecting it to a keyboard and monitor or through network via an SSH connection.<br />
<br />
===Keyboard and monitor===<br />
Once your Raspberry Pi is booted, log in with username "'''pi'''" password "'''raspberry'''".<br />
<br />
===Ethernet===<br />
If you are using wired Ethernet you should get connectivity right away. You just need to find the IP address of Raspberry Pi (e.g. in your router management interface). Log in with SSH using username "'''pi'''" password "'''raspberry'''", for example:<br />
$ ssh pi@192.168.1.2<br />
If your network supports [[wikipedia:Zero-configuration_networking|<code>zeroconf</code>]], then you can use the hostname of your Pi:<br />
$ ssh pi@raspberrypi.local<br />
<br />
===Pre-boot wireless configuration===<br />
If neither keyboard/monitor, nor a wired Ethernet are available, you can set up a WiFi connection before boot by mounting the boot partition of the flashed SD card and editing files directly. Note your OS may mount boot partition in a different location. [https://raspberrypi.stackexchange.com/questions/10251/prepare-sd-card-for-wifi-on-headless-pi#comment98121_57023 Windows users have line ending problems]. Suggested actions:<br />
<br />
$ $EDITOR /media/Raspbian_SatNOGS-boot/wpa_supplicant.conf<br />
<br />
contents: (note key_mgmt options include NONE, WPA-PSK, WPA-EAP)<br />
<br />
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br />
update_config=1<br />
country=US<br />
<br />
network={<br />
ssid="NETWORK_NAME"<br />
psk="password"<br />
key_mgmt=WPA-PSK<br />
}<br />
<br />
==Configuration==<br />
<br />
===Raspberry Pi Setup===<br />
Once your Raspberry Pi is booted, log in with username "'''pi'''" password "'''raspberry'''" and run: <br />
<pre><br />
$ sudo raspi-config<br />
</pre><br />
<br />
You will want to be sure to do the following:<br />
<br />
*Set a strong, unique password<br />
*Change localization settings:<br />
**by default the rpi locale is configured for EN-GB, change as appropriate (ie: to EN_US.UTF-8)<br />
**set timezone (we recommend UTC so your logs match the times in Network)<br />
**set keyboard layout, again this is defaulting to a UK layout<br />
**set wifi country<br />
**expand filesystem<br />
*Configure network or WiFi (see [https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md this doc for network configuration instructions])<br />
*Finish and reboot<br />
<br />
===SatNOGS Setup===<br />
SSH to the Raspberry Pi with user "'''pi'''" and your new password.<br />
<br />
Follow [[SatNOGS Client Setup]] instructions to configure the system.<br />
<br />
[[Category:Build]]<br />
[[Category:Software]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=SatNOGS_Client_Setup&diff=3474SatNOGS Client Setup2020-03-04T19:39:16Z<p>Acinonyx: Update verification of correct installation</p>
<hr />
<div>==Introduction==<br />
<code>satnogs-setup</code> provides a set of scripts for configuring a '''SatNOGS Client''' system. <code>satnogs-setup</code> main function is to bring up a menu-driven console configuration utility and provision the system using [[SatNOGS Client Ansible|Ansible]].<br />
<br />
==Initial Setup==<br />
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.<br />
<br />
To configure a '''SatNOGS Client''' system:<br />
<br />
#SSH into the system and run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Set '''all''' options in '''Basic Configuration''' (see below)<br />
#Select <code>Apply</code> and the Raspberry Pi will configure itself; this may take some time<br />
#Select <code>Back</code> to exit<br />
{{Message|You can always reconfigure the software by running <code>sudo satnogs-setup</code> again.}}<br />
===Basic Configuration===<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_API_TOKEN</code><br />
|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.<br />
|-<br />
|<code>SATNOGS_SOAPY_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>driver=rtlsdr</code>. 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. <code>driver=uhd,serial=3164495</code>.<br />
|-<br />
|<code>SATNOGS_RX_SAMP_RATE</code><br />
|Specify the receiver sampling rate. Example value for RTL-SDR: <code>2.048e6</code> (for 2Msps).<br />
|-<br />
|<code>SATNOGS_STATION_ELEV</code><br />
|The height of your ground station above sea level in metres.<br />
|-<br />
|<code>SATNOGS_STATION_ID</code><br />
|The '''numeric ID''' assigned to your station in the SatNOGS Network site when the groundstation was created.<br />
|-<br />
|<code>SATNOGS_STATION_LAT</code><br />
|The latitude of your station. North is positive, south is negative.<br />
|-<br />
|<code>SATNOGS_STATION_LON</code><br />
|The longitude of your station. East is positive, west is negative.<br />
|}<br />
<br />
==Advanced Setup==<br />
{{Warning|Changing these settings is ''not'' recommended unless you're developing SatNOGS.}}A more detailed description on setting up a development environment using the SatNOGS reference setup is given in [[SatNOGS_Client_Development]].<br />
<br />
NOTE: To get your station online, you need to set SATNOGS_NETWORK_API_URL to https://network.satnogs.org/api/<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_RF_GAIN</code><br />
|RF Gain value for your SDR hardware. Run <code>SoapySDRUtil --probe</code> to see all possible gain values for your hardware.<br />
|-<br />
|<code>SATNOGS_RX_BANDWIDTH</code><br />
|TODO<br />
|-<br />
|<code>SATNOGS_ANTENNA</code><br />
|TODO<br />
|-<br />
|<br />
|<br />
|-<br />
|<code>SATNOGS_ROT_MODEL</code><br />
|Hamlib rotator model. If you don't have a rotator (like the [[No rotator|No rotator setup]]), leave it empty.<br />
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].<br />
|-<br />
|<code>SATNOGS_ROT_BAUD</code><br />
|Baud rate for Hamlib rotator serial port.<br />
|-<br />
|<code>SATNOGS_ROT_PORT</code><br />
|Serial port for Hamlib rotator.<br />
|-<br />
|<br />
|<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_ENABLED</code><br />
|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.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_OPTS</code><br />
|Options for rotcld:<br />
For a yaesu rotator, use <code>-m 601 -r /dev/ttyACM0 -s 9600 -T 0.0.0.0</code><br />
<br />
For a SatNOGS rotator <code>-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200</code> or <code>-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200</code><br />
|-<br />
|<br />
|<br />
|-<br />
|<code>EXPERIMENTAL</code><br />
|Install latest (experimental) versions of all software<br />
|-<br />
|<code>APT_REPOSITORY</code><br />
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:<br />
<code>deb <nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs-unstable/Raspbian_10</nowiki> ./</code><br />
|-<br />
|<code>APT_KEY_URL</code><br />
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:<br />
<code><nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs-unstable/Raspbian_10/Release.key</nowiki></code><br />
|-<br />
|<code>APT_KEY_ID</code><br />
|This options allows you to specify an alternative SatNOGS packages repository key ID.<br />
|-<br />
|<code>SATNOGS_CLIENT_URL</code><br />
|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:<br />
<br />
*<code>git+<nowiki>https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@master</nowiki></code> -- the 'master' branch (the current development version) of satnogs-client<br />
*<code><nowiki>git+https://gitlab.com/jdoe/satnogs-client.git@new-feature</nowiki></code> -- the 'new-feature' branch of jdoe's fork of satnogs-client<br />
|-<br />
|<code>SATNOGS_RADIO_FLOWGRAPHS_VERSION</code><br />
|This options allows you to change the version of satnogs-flowgraphs package to be installed. For example:<br />
<code>0.1-1</code><br />
|-<br />
|<br />
|<br />
|-<br />
|<code>LOG_LEVEL</code><br />
|Define SatNOGS client log level, available values: <code>ERROR</code>, <code>WARNING</code>, <code>INFO</code> and <code>DEBUG</code><br />
|}<br />
<br />
==Obsolete Setup Variables==<br />
The following options were available in previous versions of the SatNOGS client system and have no effect on the latest stable version.<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>rtlsdr</code>. Other devices supported by gr-satnogs include <code>usrpb200</code>, <code>usrp2</code>, <code>airspy/airspymini</code>, <code>lime</code>, or <code>hackrf</code>.<br />
|-<br />
|<code>SATNOGS_PPM_ERROR</code><br />
|<br />
|-<br />
|<code>SATNOGS_IF_GAIN</code><br />
|<br />
|-<br />
|<code>SATNOGS_BB_GAIN</code><br />
|<br />
|-<br />
|<code>SATNOGS_RADIO_GR_SATNOGS_VERSION</code><br />
|This options allows you to change the version of gr-satnogs package to be installed. For example: <code>1.5.1-1</code><br />
|}<br />
<br />
==Updating SatNOGS Client Software==<br />
To update SatNOGS software, including the configuration tool itself:<br />
<br />
#SSH into the system and (re-)run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Select <code>Update</code> to update the configuration tool and all distribution packages to the latest<br />
#If you are prompt for a reboot during the upgrade, once the upgrade is finished, select <code>Reboot</code>, SSH back into the system and re-run <code>satnogs-config</code> to continue to the next step<br />
#Select <code>Apply</code> and the Raspberry Pi will update itself; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
'''WARNING: An update can potentially interrupt a running observation!'''<br />
===Upgrading from Debian 'stretch' to 'buster'===<br />
Debian <code>stretch</code> is no longer supported. If you have already installed an older version of Debian or Raspbian SatNOGS image based on <code>stretch</code> (releases <= [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/tags/2018080300 2018080300]), you must upgrade to <code>buster</code> otherwise it will be impossible to receive updates or upgrades in the future.<br />
====Method 1: Reflashing and reinstalling (recommended)====<br />
The recommended method to upgrade to <code>buster</code> is reflashing the latest Raspbian SatNOGS image (or reinstalling latest Debian). Follow [[Raspberry Pi|Raspberry Pi]] installation instructions and reinstall from scratch.<br />
====Method 2: Release upgrade using the configuration tool (advanced)====<br />
{{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:<br />
<br />
#SSH into the system<br />
#Make sure you have enough free space on your SD card (>2GiB) by running <code>df -h /</code> on the console<br />
#Run <code>sudo satnogs-setup</code> to bring up the configuration menu<br />
#Select <code>Update</code> 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<br />
#Keep an eye on the upgrade progress; <code>dpkg</code> may prompt for changes<br />
#Once the upgrade is completed select <code>Reboot</code><br />
#After the reboot, SSH back into the system and make sure you are on the correct release by running <code>lsb_release -a</code><br />
#Re-run <code>sudo satnogs-setup</code> and select <code>Update</code> and then <code>Apply</code>; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
==Verification of correct installation==<br />
To see if satnogs-client has started successfully, check the logs with <code>systemctl</code>:<pre><br />
$ systemctl status satnogs-client<br />
</pre>You should see an output that looks like this:<pre><br />
● satnogs-client.service - SatNOGS client<br />
Loaded: loaded (/etc/systemd/system/satnogs-client.service; enabled; vendor preset: enabled)<br />
Active: active (running) since Wed 2020-03-04 19:30:56 GMT; 6min ago<br />
Main PID: 6309 (satnogs-client)<br />
Tasks: 11 (limit: 2200)<br />
Memory: 37.9M<br />
CGroup: /system.slice/satnogs-client.service<br />
└─6309 /var/lib/satnogs/bin/python3 /var/lib/satnogs/bin/satnogs-client<br />
<br />
Mar 04 19:30:56 raspberrypi systemd[1]: Started SatNOGS client.<br />
</pre>If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.<br />
<br />
==See also==<br />
<br />
*[[SatNOGS Client Ansible]]<br />
<br />
[[Category:Build]]<br />
[[Category:Software]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=SatNOGS_Client_Setup&diff=3454SatNOGS Client Setup2020-02-28T08:23:54Z<p>Acinonyx: Remove rotctld options from Basic Configuration</p>
<hr />
<div>==Introduction==<br />
<code>satnogs-setup</code> provides a set of scripts for configuring a '''SatNOGS Client''' system. <code>satnogs-setup</code> main function is to bring up a menu-driven console configuration utility and provision the system using [[SatNOGS Client Ansible|Ansible]].<br />
<br />
==Initial Setup==<br />
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.<br />
<br />
To configure a '''SatNOGS Client''' system:<br />
<br />
#SSH into the system and run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Set '''all''' options in '''Basic Configuration''' (see below)<br />
#Select <code>Apply</code> and the Raspberry Pi will configure itself; this may take some time<br />
#Select <code>Back</code> to exit<br />
{{Message|You can always reconfigure the software by running <code>sudo satnogs-setup</code> again.}}<br />
===Basic Configuration===<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_API_TOKEN</code><br />
|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.<br />
|-<br />
|<code>SATNOGS_SOAPY_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>driver=rtlsdr</code>. 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. <code>driver=uhd,serial=3164495</code>.<br />
|-<br />
|<code>SATNOGS_RX_SAMP_RATE</code><br />
|Specify the receiver sampling rate. Example value for RTL-SDR: <code>2.048e6</code> (for 2Msps).<br />
|-<br />
|<code>SATNOGS_STATION_ELEV</code><br />
|The height of your ground station above sea level in metres.<br />
|-<br />
|<code>SATNOGS_STATION_ID</code><br />
|The '''numeric ID''' assigned to your station in the SatNOGS Network site when the groundstation was created.<br />
|-<br />
|<code>SATNOGS_STATION_LAT</code><br />
|The latitude of your station. North is positive, south is negative.<br />
|-<br />
|<code>SATNOGS_STATION_LON</code><br />
|The longitude of your station. East is positive, west is negative.<br />
|}<br />
<br />
==Advanced Setup==<br />
{{Warning|Changing these settings is ''not'' recommended unless you're developing SatNOGS.}}A more detailed description on setting up a development environment using the SatNOGS reference setup is given in [[SatNOGS_Client_Development]].<br />
<br />
NOTE: To get your station online, you need to set SATNOGS_NETWORK_API_URL to https://network.satnogs.org/api/<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>EXPERIMENTAL</code><br />
|Install latest (experimental) versions of all software<br />
|-<br />
|<code>APT_REPOSITORY</code><br />
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:<br />
<code>deb <nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs-unstable/Raspbian_10</nowiki> ./</code><br />
|-<br />
|<code>APT_KEY_URL</code><br />
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:<br />
<code><nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs-unstable/Raspbian_10/Release.key</nowiki></code><br />
|-<br />
|<code>APT_KEY_ID</code><br />
|This options allows you to specify an alternative SatNOGS packages repository key ID.<br />
|-<br />
|<code>SATNOGS_CLIENT_URL</code><br />
|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:<br />
<br />
*<code>git+<nowiki>https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@master</nowiki></code> -- the 'master' branch (the current development version) of satnogs-client<br />
*<code><nowiki>git+https://gitlab.com/jdoe/satnogs-client.git@new-feature</nowiki></code> -- the 'new-feature' branch of jdoe's fork of satnogs-client<br />
|-<br />
|<code>SATNOGS_RADIO_FLOWGRAPHS_VERSION</code><br />
|This options allows you to change the version of satnogs-flowgraphs package to be installed. For example:<br />
<code>0.1-1</code><br />
|-<br />
|<code>SATNOGS_ROT_MODEL</code><br />
|Hamlib rotator model. If you don't have a rotator (like the [[No rotator|No rotator setup]]), leave it empty.<br />
|-<br />
|<code>SATNOGS_ROT_BAUD</code><br />
|Baud rate for Hamlib rotator serial port.<br />
|-<br />
|<code>SATNOGS_ROT_PORT</code><br />
|Serial port for Hamlib rotator.<br />
|-<br />
|<code>SATNOGS_RF_GAIN</code><br />
|RF Gain value for your SDR hardware. Run <code>SoapySDRUtil --probe</code> to see all possible gain values for your hardware.<br />
|-<br />
|<code>SATNOGS_RX_BANDWIDTH</code><br />
|TODO<br />
|-<br />
|<code>SATNOGS_ANTENNA</code><br />
|TODO<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_ENABLED</code><br />
|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.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_OPTS</code><br />
|Options for rotcld:<br />
For a yaesu rotator, use <code>-m 601 -r /dev/ttyACM0 -s 9600 -T 0.0.0.0</code><br />
<br />
For a SatNOGS rotator <code>-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200</code> or <code>-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200</code><br />
|}<br />
==Updating SatNOGS Client Software==<br />
To update SatNOGS software, including the configuration tool itself:<br />
<br />
#SSH into the system and (re-)run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Select <code>Update</code> to update the configuration tool and all distribution packages to the latest<br />
#If you are prompt for a reboot during the upgrade, once the upgrade is finished, select <code>Reboot</code>, SSH back into the system and re-run <code>satnogs-config</code> to continue to the next step<br />
#Select <code>Apply</code> and the Raspberry Pi will update itself; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
'''WARNING: An update can potentially interrupt a running observation!'''<br />
===Upgrading from Debian 'stretch' to 'buster'===<br />
Debian <code>stretch</code> is no longer supported. If you have already installed an older version of Debian or Raspbian SatNOGS image based on <code>stretch</code> (releases <= [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/tags/2018080300 2018080300]), you must upgrade to <code>buster</code> otherwise it will be impossible to receive updates or upgrades in the future.<br />
====Method 1: Reflashing and reinstalling (recommended)====<br />
The recommended method to upgrade to <code>buster</code> is reflashing the latest Raspbian SatNOGS image (or reinstalling latest Debian). Follow [[Raspberry Pi|Raspberry Pi]] installation instructions and reinstall from scratch.<br />
====Method 2: Release upgrade using the configuration tool (advanced)====<br />
{{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:<br />
<br />
#SSH into the system<br />
#Make sure you have enough free space on your SD card (>2GiB) by running <code>df -h /</code> on the console<br />
#Run <code>sudo satnogs-setup</code> to bring up the configuration menu<br />
#Select <code>Update</code> 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<br />
#Keep an eye on the upgrade progress; <code>dpkg</code> may prompt for changes<br />
#Once the upgrade is completed select <code>Reboot</code><br />
#After the reboot, SSH back into the system and make sure you are on the correct release by running <code>lsb_release -a</code><br />
#Re-run <code>sudo satnogs-setup</code> and select <code>Update</code> and then <code>Apply</code>; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
==Verification of correct installation==<br />
To see if satnogs-client has started successfully, check the logs with journalctl:<pre><br />
$ journalctl -u satnogs-client.service<br />
</pre>You should see entries running approximately once per minute that look like this:<pre><br />
Oct 01 23:02:13 raspberrypi satnogs-client[6695]: * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)<br />
Oct 01 23:02:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:02:14,466 - satnogsclient - INFO - [LD] Downlink thread waiting for first downlink packet<br />
Oct 01 23:03:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:14,450 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:03:14 UTC)" (scheduled at 2017-10-01 23:03:14.423393+00:00)<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,324 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,325 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,327 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,453 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.423393+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,484 - apscheduler.executors.default - INFO - Running job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.436367+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,489 - apscheduler.executors.default - INFO - Job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,627 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,628 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,629 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:05:14 UTC)" executed successfully<br />
</pre>If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.<br />
<br />
==See also==<br />
<br />
*[[SatNOGS Client Ansible]]<br />
<br />
[[Category:Build]]<br />
[[Category:Software]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=SatNOGS_Client_Setup&diff=3453SatNOGS Client Setup2020-02-28T08:17:22Z<p>Acinonyx: Remove deprecated option</p>
<hr />
<div>==Introduction==<br />
<code>satnogs-setup</code> provides a set of scripts for configuring a '''SatNOGS Client''' system. <code>satnogs-setup</code> main function is to bring up a menu-driven console configuration utility and provision the system using [[SatNOGS Client Ansible|Ansible]].<br />
<br />
==Initial Setup==<br />
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.<br />
<br />
To configure a '''SatNOGS Client''' system:<br />
<br />
#SSH into the system and run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Set '''all''' options in '''Basic Configuration''' (see below)<br />
#Select <code>Apply</code> and the Raspberry Pi will configure itself; this may take some time<br />
#Select <code>Back</code> to exit<br />
{{Message|You can always reconfigure the software by running <code>sudo satnogs-setup</code> again.}}<br />
===Basic Configuration===<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_API_TOKEN</code><br />
|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.<br />
|-<br />
|<code>SATNOGS_SOAPY_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>driver=rtlsdr</code>. 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. <code>driver=uhd,serial=3164495</code>.<br />
|-<br />
|<code>SATNOGS_RX_SAMP_RATE</code><br />
|Specify the receiver sampling rate. Example value for RTL-SDR: <code>2.048e6</code> (for 2Msps).<br />
|-<br />
|<code>SATNOGS_STATION_ELEV</code><br />
|The height of your ground station above sea level in metres.<br />
|-<br />
|<code>SATNOGS_STATION_ID</code><br />
|The '''numeric ID''' assigned to your station in the SatNOGS Network site when the groundstation was created.<br />
|-<br />
|<code>SATNOGS_STATION_LAT</code><br />
|The latitude of your station. North is positive, south is negative.<br />
|-<br />
|<code>SATNOGS_STATION_LON</code><br />
|The longitude of your station. East is positive, west is negative.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_ENABLED</code><br />
|Whether or not to enable the Hamlibs rotator daemon. Rotctld is a software daemon that provides a network server to control a rotator on a serial port. If you don't have a rotator (like the [[No rotator|No rotator setup]]), enter <code>NO</code>.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_OPTS</code><br />
|Options for rotcld:<br />
For a yaesu rotator, use <code>-m 601 -r /dev/ttyACM0 -s 9600 -T 0.0.0.0</code><br />
<br />
For a SatNOGS rotator <code>-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200</code> or <code>-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200</code><br />
|}<br />
<br />
==Advanced Setup==<br />
{{Warning|Changing these settings is ''not'' recommended unless you're developing SatNOGS.}}A more detailed description on setting up a development environment using the SatNOGS reference setup is given in [[SatNOGS_Client_Development]].<br />
<br />
NOTE: To get your station online, you need to set SATNOGS_NETWORK_API_URL to https://network.satnogs.org/api/<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>EXPERIMENTAL</code><br />
|Install latest (experimental) versions of all software<br />
|-<br />
|<code>APT_REPOSITORY</code><br />
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:<br />
<code>deb <nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs-unstable/Raspbian_10</nowiki> ./</code><br />
|-<br />
|<code>APT_KEY_URL</code><br />
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:<br />
<code><nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs-unstable/Raspbian_10/Release.key</nowiki></code><br />
|-<br />
|<code>APT_KEY_ID</code><br />
|This options allows you to specify an alternative SatNOGS packages repository key ID.<br />
|-<br />
|<code>SATNOGS_CLIENT_URL</code><br />
|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:<br />
<br />
*<code>git+<nowiki>https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@master</nowiki></code> -- the 'master' branch (the current development version) of satnogs-client<br />
*<code><nowiki>git+https://gitlab.com/jdoe/satnogs-client.git@new-feature</nowiki></code> -- the 'new-feature' branch of jdoe's fork of satnogs-client<br />
|-<br />
|<code>SATNOGS_RADIO_FLOWGRAPHS_VERSION</code><br />
|This options allows you to change the version of satnogs-flowgraphs package to be installed. For example:<br />
<code>0.1-1</code><br />
|-<br />
|<code>SATNOGS_ROT_MODEL</code><br />
|Hamlib rotator model. If you don't have a rotator (like the [[No rotator|No rotator setup]]), leave it empty.<br />
|-<br />
|<code>SATNOGS_ROT_BAUD</code><br />
|Baud rate for Hamlib rotator serial port.<br />
|-<br />
|<code>SATNOGS_ROT_PORT</code><br />
|Serial port for Hamlib rotator.<br />
|-<br />
|<code>SATNOGS_RF_GAIN</code><br />
|RF Gain value for your SDR hardware. Run <code>SoapySDRUtil --probe</code> to see all possible gain values for your hardware.<br />
|-<br />
|<code>SATNOGS_RX_BANDWIDTH</code><br />
|TODO<br />
|-<br />
|<code>SATNOGS_ANTENNA</code><br />
|TODO<br />
|}<br />
==Updating SatNOGS Client Software==<br />
To update SatNOGS software, including the configuration tool itself:<br />
<br />
#SSH into the system and (re-)run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Select <code>Update</code> to update the configuration tool and all distribution packages to the latest<br />
#If you are prompt for a reboot during the upgrade, once the upgrade is finished, select <code>Reboot</code>, SSH back into the system and re-run <code>satnogs-config</code> to continue to the next step<br />
#Select <code>Apply</code> and the Raspberry Pi will update itself; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
'''WARNING: An update can potentially interrupt a running observation!'''<br />
===Upgrading from Debian 'stretch' to 'buster'===<br />
Debian <code>stretch</code> is no longer supported. If you have already installed an older version of Debian or Raspbian SatNOGS image based on <code>stretch</code> (releases <= [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/tags/2018080300 2018080300]), you must upgrade to <code>buster</code> otherwise it will be impossible to receive updates or upgrades in the future.<br />
====Method 1: Reflashing and reinstalling (recommended)====<br />
The recommended method to upgrade to <code>buster</code> is reflashing the latest Raspbian SatNOGS image (or reinstalling latest Debian). Follow [[Raspberry Pi|Raspberry Pi]] installation instructions and reinstall from scratch.<br />
====Method 2: Release upgrade using the configuration tool (advanced)====<br />
{{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:<br />
<br />
#SSH into the system<br />
#Make sure you have enough free space on your SD card (>2GiB) by running <code>df -h /</code> on the console<br />
#Run <code>sudo satnogs-setup</code> to bring up the configuration menu<br />
#Select <code>Update</code> 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<br />
#Keep an eye on the upgrade progress; <code>dpkg</code> may prompt for changes<br />
#Once the upgrade is completed select <code>Reboot</code><br />
#After the reboot, SSH back into the system and make sure you are on the correct release by running <code>lsb_release -a</code><br />
#Re-run <code>sudo satnogs-setup</code> and select <code>Update</code> and then <code>Apply</code>; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
==Verification of correct installation==<br />
To see if satnogs-client has started successfully, check the logs with journalctl:<pre><br />
$ journalctl -u satnogs-client.service<br />
</pre>You should see entries running approximately once per minute that look like this:<pre><br />
Oct 01 23:02:13 raspberrypi satnogs-client[6695]: * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)<br />
Oct 01 23:02:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:02:14,466 - satnogsclient - INFO - [LD] Downlink thread waiting for first downlink packet<br />
Oct 01 23:03:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:14,450 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:03:14 UTC)" (scheduled at 2017-10-01 23:03:14.423393+00:00)<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,324 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,325 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,327 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,453 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.423393+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,484 - apscheduler.executors.default - INFO - Running job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.436367+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,489 - apscheduler.executors.default - INFO - Job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,627 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,628 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,629 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:05:14 UTC)" executed successfully<br />
</pre>If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.<br />
<br />
==See also==<br />
<br />
*[[SatNOGS Client Ansible]]<br />
<br />
[[Category:Build]]<br />
[[Category:Software]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=SatNOGS_Client_Setup&diff=3452SatNOGS Client Setup2020-02-27T23:43:00Z<p>Acinonyx: </p>
<hr />
<div>==Introduction==<br />
<code>satnogs-setup</code> provides a set of scripts for configuring a '''SatNOGS Client''' system. <code>satnogs-setup</code> main function is to bring up a menu-driven console configuration utility and provision the system using [[SatNOGS Client Ansible|Ansible]].<br />
<br />
==Initial Setup==<br />
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.<br />
<br />
To configure a '''SatNOGS Client''' system:<br />
<br />
#SSH into the system and run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Set '''all''' options in '''Basic Configuration''' (see below)<br />
#Select <code>Apply</code> and the Raspberry Pi will configure itself; this may take some time<br />
#Select <code>Back</code> to exit<br />
{{Message|You can always reconfigure the software by running <code>sudo satnogs-setup</code> again.}}<br />
===Basic Configuration===<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_API_TOKEN</code><br />
|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.<br />
|-<br />
|<code>SATNOGS_SOAPY_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>driver=rtlsdr</code>. 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. <code>driver=uhd,serial=3164495</code>.<br />
|-<br />
|<code>SATNOGS_RX_SAMP_RATE</code><br />
|Specify the receiver sampling rate. Example value for RTL-SDR: <code>2.048e6</code> (for 2Msps).<br />
|-<br />
|<code>SATNOGS_STATION_ELEV</code><br />
|The height of your ground station above sea level in metres.<br />
|-<br />
|<code>SATNOGS_STATION_ID</code><br />
|The '''numeric ID''' assigned to your station in the SatNOGS Network site when the groundstation was created.<br />
|-<br />
|<code>SATNOGS_STATION_LAT</code><br />
|The latitude of your station. North is positive, south is negative.<br />
|-<br />
|<code>SATNOGS_STATION_LON</code><br />
|The longitude of your station. East is positive, west is negative.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_ENABLED</code><br />
|Whether or not to enable the Hamlibs rotator daemon. Rotctld is a software daemon that provides a network server to control a rotator on a serial port. If you don't have a rotator (like the [[No rotator|No rotator setup]]), enter <code>NO</code>.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_OPTS</code><br />
|Options for rotcld:<br />
For a yaesu rotator, use <code>-m 601 -r /dev/ttyACM0 -s 9600 -T 0.0.0.0</code><br />
<br />
For a SatNOGS rotator <code>-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200</code> or <code>-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200</code><br />
|}<br />
<br />
==Advanced Setup==<br />
{{Warning|Changing these settings is ''not'' recommended unless you're developing SatNOGS.}}A more detailed description on setting up a development environment using the SatNOGS reference setup is given in [[SatNOGS_Client_Development]].<br />
<br />
NOTE: To get your station online, you need to set SATNOGS_NETWORK_API_URL to https://network.satnogs.org/api/<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>EXPERIMENTAL</code><br />
|Install latest (experimental) versions of all software<br />
|-<br />
|<code>APT_REPOSITORY</code><br />
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:<br />
<code>deb <nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs-unstable/Raspbian_10</nowiki> ./</code><br />
|-<br />
|<code>APT_KEY_URL</code><br />
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:<br />
<code><nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs-unstable/Raspbian_10/Release.key</nowiki></code><br />
|-<br />
|<code>APT_KEY_ID</code><br />
|This options allows you to specify an alternative SatNOGS packages repository key ID.<br />
|-<br />
|<code>SATNOGS_CLIENT_URL</code><br />
|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:<br />
<br />
*<code>git+<nowiki>https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@master</nowiki></code> -- the 'master' branch (the current development version) of satnogs-client<br />
*<code><nowiki>git+https://gitlab.com/jdoe/satnogs-client.git@new-feature</nowiki></code> -- the 'new-feature' branch of jdoe's fork of satnogs-client<br />
|-<br />
|<code>SATNOGS_RADIO_FLOWGRAPHS_VERSION</code><br />
|This options allows you to change the version of satnogs-flowgraphs package to be installed. For example:<br />
<code>0.1-1</code><br />
|-<br />
|<code>RF_GAIN</code><br />
|RF Gain value for your SDR hardware. Defaults can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/-/blob/v1.5.1/python/hw_settings.py here].<br />
<br />
*For rtl-sdr possible values are the following: <code>0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6</code><br />
|-<br />
|<code>SATNOGS_ROT_MODEL</code><br />
|Hamlib rotator model. If you don't have a rotator (like the [[No rotator|No rotator setup]]), leave it empty.<br />
|-<br />
|<code>SATNOGS_ROT_BAUD</code><br />
|Baud rate for Hamlib rotator serial port.<br />
|-<br />
|<code>SATNOGS_ROT_PORT</code><br />
|Serial port for Hamlib rotator.<br />
|-<br />
|<code>SATNOGS_RF_GAIN</code><br />
|RF Gain value for your SDR hardware. Run <code>SoapySDRUtil --probe</code> to see all possible gain values for your hardware.<br />
|-<br />
|<code>SATNOGS_RX_BANDWIDTH</code><br />
|TODO<br />
|-<br />
|<code>SATNOGS_ANTENNA</code><br />
|TODO<br />
|}<br />
==Updating SatNOGS Client Software==<br />
To update SatNOGS software, including the configuration tool itself:<br />
<br />
#SSH into the system and (re-)run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Select <code>Update</code> to update the configuration tool and all distribution packages to the latest<br />
#If you are prompt for a reboot during the upgrade, once the upgrade is finished, select <code>Reboot</code>, SSH back into the system and re-run <code>satnogs-config</code> to continue to the next step<br />
#Select <code>Apply</code> and the Raspberry Pi will update itself; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
'''WARNING: An update can potentially interrupt a running observation!'''<br />
===Upgrading from Debian 'stretch' to 'buster'===<br />
Debian <code>stretch</code> is no longer supported. If you have already installed an older version of Debian or Raspbian SatNOGS image based on <code>stretch</code> (releases <= [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/tags/2018080300 2018080300]), you must upgrade to <code>buster</code> otherwise it will be impossible to receive updates or upgrades in the future.<br />
====Method 1: Reflashing and reinstalling (recommended)====<br />
The recommended method to upgrade to <code>buster</code> is reflashing the latest Raspbian SatNOGS image (or reinstalling latest Debian). Follow [[Raspberry Pi|Raspberry Pi]] installation instructions and reinstall from scratch.<br />
====Method 2: Release upgrade using the configuration tool (advanced)====<br />
{{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:<br />
<br />
#SSH into the system<br />
#Make sure you have enough free space on your SD card (>2GiB) by running <code>df -h /</code> on the console<br />
#Run <code>sudo satnogs-setup</code> to bring up the configuration menu<br />
#Select <code>Update</code> 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<br />
#Keep an eye on the upgrade progress; <code>dpkg</code> may prompt for changes<br />
#Once the upgrade is completed select <code>Reboot</code><br />
#After the reboot, SSH back into the system and make sure you are on the correct release by running <code>lsb_release -a</code><br />
#Re-run <code>sudo satnogs-setup</code> and select <code>Update</code> and then <code>Apply</code>; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
==Verification of correct installation==<br />
To see if satnogs-client has started successfully, check the logs with journalctl:<pre><br />
$ journalctl -u satnogs-client.service<br />
</pre>You should see entries running approximately once per minute that look like this:<pre><br />
Oct 01 23:02:13 raspberrypi satnogs-client[6695]: * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)<br />
Oct 01 23:02:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:02:14,466 - satnogsclient - INFO - [LD] Downlink thread waiting for first downlink packet<br />
Oct 01 23:03:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:14,450 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:03:14 UTC)" (scheduled at 2017-10-01 23:03:14.423393+00:00)<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,324 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,325 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,327 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,453 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.423393+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,484 - apscheduler.executors.default - INFO - Running job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.436367+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,489 - apscheduler.executors.default - INFO - Job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,627 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,628 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,629 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:05:14 UTC)" executed successfully<br />
</pre>If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.<br />
<br />
==See also==<br />
<br />
*[[SatNOGS Client Ansible]]<br />
<br />
[[Category:Build]]<br />
[[Category:Software]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=SatNOGS_Client_Setup&diff=3414SatNOGS Client Setup2020-02-12T08:51:39Z<p>Acinonyx: Update update and release upgrade procedure</p>
<hr />
<div>==Introduction==<br />
<code>satnogs-setup</code> provides a set of scripts for configuring a '''SatNOGS Client''' system. <code>satnogs-setup</code> main function is to bring up a menu-driven console configuration utility and provision the system using [[SatNOGS Client Ansible|Ansible]].<br />
<br />
==Initial Setup==<br />
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.<br />
<br />
To configure a '''SatNOGS Client''' system:<br />
<br />
#SSH into the system and run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Set '''all''' options in '''Basic Configuration''' (see below)<br />
#Select <code>Apply</code> and the Raspberry Pi will configure itself; this may take some time<br />
#Select <code>Back</code> to exit<br />
{{Message|You can always reconfigure the software by running <code>sudo satnogs-setup</code> again.}}<br />
===Basic Configuration===<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_API_TOKEN</code><br />
|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.<br />
|-<br />
|<code>SATNOGS_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>rtlsdr</code>. Other devices supported by gr-satnogs include <code>usrpb200</code>, <code>usrp2</code>, <code>airspy/airspymini</code> or <code>hackrf</code>; a complete list can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/apps/flowgraphs/satellites/README.md here].<br />
|-<br />
|<code>SATNOGS_STATION_ELEV</code><br />
|The height of your ground station above sea level in metres.<br />
|-<br />
|<code>SATNOGS_STATION_ID</code><br />
|The '''numeric ID''' assigned to your station in the SatNOGS Network site when the groundstation was created.<br />
|-<br />
|<code>SATNOGS_STATION_LAT</code><br />
|The latitude of your station. North is positive, south is negative.<br />
|-<br />
|<code>SATNOGS_STATION_LON</code><br />
|The longitude of your station. East is positive, west is negative.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_ENABLED</code><br />
|Whether or not to enable the Hamlibs rotator daemon. Rotctld is a software daemon that provides a network server to control a rotator on a serial port. If you don't have a rotator (like the [[No rotator|No rotator setup]]), enter <code>NO</code>.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_OPTS</code><br />
|Options for rotcld:<br />
For a yaesu rotator, use <code>-m 601 -r /dev/ttyACM0 -s 9600 -T 0.0.0.0</code><br />
<br />
For a SatNOGS rotator <code>-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200</code> or <code>-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200</code><br />
|}<br />
==Advanced Setup==<br />
{{Warning|Changing these settings is ''not'' recommended unless you're developing SatNOGS.}}A more detailed description on setting up a development environment using the SatNOGS reference setup is given in [[SatNOGS_Client_Development]].<br />
<br />
NOTE: To get your station online, you need to set SATNOGS_NETWORK_API_URL to https://network.satnogs.org/api/<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>APT_REPOSITORY</code><br />
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:<br />
<code>deb <nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10</nowiki> ./</code><br />
|-<br />
|<code>APT_KEY_URL</code><br />
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:<br />
<code><nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10/Release.key</nowiki></code><br />
|-<br />
|<code>APT_KEY_ID</code><br />
|This options allows you to specify an alternative SatNOGS packages repository key ID.<br />
|-<br />
|<code>SATNOGS_CLIENT_URL</code><br />
|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:<br />
<br />
*<code>git+https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@master</code> -- the 'master' branch (the current development version) of satnogs-client<br />
*<code><nowiki>git+https://gitlab.com/jdoe/satnogs-client.git@new-feature</nowiki></code> -- the 'new-feature' branch of jdoe's fork of satnogs-client<br />
|-<br />
|<code>SATNOGS_RADIO_GR_SATNOGS_VERSION</code><br />
|This options allows you to change the version of gr-satnogs package to be installed. For example:<br />
<code>1.5.1-1</code><br />
|-<br />
|<code>RF_GAIN</code><br />
|RF Gain value for your SDR hardware. Defaults can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/python/hw_settings.py here].<br />
<br />
*For rtl-sdr possible values are the following: <code>0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6</code><br />
|}<br />
==Updating SatNOGS Client Software==<br />
To update SatNOGS software, including the configuration tool itself:<br />
<br />
#SSH into the system and (re-)run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Select <code>Update</code> to update the configuration tool and all distribution packages to the latest<br />
#If you are prompt for a reboot during the upgrade, once the upgrade is finished, select <code>Reboot</code>, SSH back into the system and re-run <code>satnogs-config</code> to continue to the next step<br />
#Select <code>Apply</code> and the Raspberry Pi will update itself; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
'''WARNING: An update can potentially interrupt a running observation!'''<br />
===Upgrading from Debian 'stretch' to 'buster'===<br />
Debian <code>stretch</code> is no longer supported. If you have already installed an older version of Debian or Raspbian SatNOGS image based on <code>stretch</code> (releases <= [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/tags/2018080300 2018080300]), you must upgrade to <code>buster</code> otherwise it will be impossible to receive updates or upgrades in the future.<br />
====Method 1: Reflashing and reinstalling (recommended)====<br />
The recommended method to upgrade to <code>buster</code> is reflashing the latest Raspbian SatNOGS image (or reinstalling latest Debian). Follow [[Raspberry Pi|Raspberry Pi]] installation instructions and reinstall from scratch.<br />
====Method 2: Release upgrade using the configuration tool (advanced)====<br />
{{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:<br />
<br />
#SSH into the system<br />
#Make sure you have enough free space on your SD card (>2GiB) by running <code>df -h /</code> on the console<br />
#Run <code>sudo satnogs-setup</code> to bring up the configuration menu<br />
#Select <code>Update</code> 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<br />
#Keep an eye on the upgrade progress; <code>dpkg</code> may prompt for changes<br />
#Once the upgrade is completed select <code>Reboot</code><br />
#After the reboot, SSH back into the system and make sure you are on the correct release by running <code>lsb_release -a</code><br />
#Re-run <code>sudo satnogs-setup</code> and select <code>Update</code> and then <code>Apply</code>; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
==Verification of correct installation==<br />
To see if satnogs-client has started successfully, check the logs with journalctl:<pre><br />
$ journalctl -u satnogs-client.service<br />
</pre>You should see entries running approximately once per minute that look like this:<pre><br />
Oct 01 23:02:13 raspberrypi satnogs-client[6695]: * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)<br />
Oct 01 23:02:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:02:14,466 - satnogsclient - INFO - [LD] Downlink thread waiting for first downlink packet<br />
Oct 01 23:03:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:14,450 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:03:14 UTC)" (scheduled at 2017-10-01 23:03:14.423393+00:00)<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,324 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,325 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,327 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,453 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.423393+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,484 - apscheduler.executors.default - INFO - Running job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.436367+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,489 - apscheduler.executors.default - INFO - Job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,627 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,628 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,629 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:05:14 UTC)" executed successfully<br />
</pre>If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.<br />
<br />
==See also==<br />
<br />
*[[SatNOGS Client Ansible]]<br />
<br />
[[Category:Build]]<br />
[[Category:Software]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=Raspberry_Pi&diff=3411Raspberry Pi2020-02-07T11:24:51Z<p>Acinonyx: </p>
<hr />
<div>[[File:B3342fcc865731d69e0c9d7a8b1abb887185bc13 1 531x500.jpg|alt=Libre Space Foundation Raspberry Pi Case|thumb|Libre Space Foundation Raspberry Pi Case, [https://www.thingiverse.com/thing:3233687 on thingiverse]]]<br />
<br />
==Introduction==<br />
<br />
The Raspberry Pi (version 3 and 4) is the reference platform for SatNOGS (see our [[SatNOGS Client Ansible|Ansible guide]] to install SatNOGS on other Linux machines). You can try using various distributions for this (eg. Debian/Armbian, Arch, Fedora), but the one we suggest is our custom image based on latest Raspbian.<br />
<br />
{{Message|This page assumes you have an account and a ground station registered on either network.satnogs.org or network-dev.satnogs.org. Make note of your station ID and API Key.}}<br />
==[https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/jobs/artifacts/2019091100/download?job=release <span class="glyphicon glyphicon-save"></span>Download]==<br />
<br />
You can download the latest Raspbian SatNOGS image following the links from the [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/tags latest tag on GitLab]. This image has the SatNOGS setup script installed, the SSH server enabled and all required packages preinstalled. Click on the cloud icon and then click "Download release". You will get an Artifacts.zip file:<br />
<br />
==Artifacts list==<br />
<br />
The current artifacts list consists of:<br />
<br />
*A Zipped image file<br />
*An Image info file<br />
*A SHA256 checksums file<br />
<br />
===Data integrity verification===<br />
<br />
You should verify the data integrity of the artifacts by checking the SHA256 checksums. On Linux, run <code>sha256sum -c sha256sums</code> in the directory where the artifacts are downloaded and unzipped.<br />
<br />
Example:<br />
<pre><br />
$ sha256sum -c sha256sums <br />
2017-09-29-Raspbian-SatNOGS-master-lite.info: OK<br />
image_2017-09-29-Raspbian-SatNOGS-master-lite.zip: OK<br />
</pre><br />
<br />
==Flashing==<br />
[https://www.raspberrypi.org/documentation/installation/installing-images/README.md Follow the usual Raspbian flashing instructions], and boot your Raspberry Pi.<br />
<br />
==Getting console access==<br />
You can log in the Raspberry Pi by connecting it to a keyboard and monitor or through network via an SSH connection.<br />
<br />
===Keyboard and monitor===<br />
Once your Raspberry Pi is booted, log in with username "'''pi'''" password "'''raspberry'''".<br />
<br />
===Ethernet===<br />
If you are using wired Ethernet you should get connectivity right away. You just need to find the IP address of Raspberry Pi (e.g. in your router management interface). Log in with SSH using username "'''pi'''" password "'''raspberry'''", for example:<br />
$ ssh pi@192.168.1.2<br />
If your network supports [[wikipedia:Zero-configuration_networking|<code>zeroconf</code>]], then you can use the hostname of your Pi:<br />
$ ssh pi@raspberrypi.local<br />
<br />
===Pre-boot wireless configuration===<br />
If neither keyboard/monitor, nor a wired Ethernet are available, you can set up a WiFi connection before boot by mounting the boot partition of the flashed SD card and editing files directly. Note your OS may mount boot partition in a different location. [https://raspberrypi.stackexchange.com/questions/10251/prepare-sd-card-for-wifi-on-headless-pi#comment98121_57023 Windows users have line ending problems]. Suggested actions:<br />
<br />
$ $EDITOR /media/Raspbian_SatNOGS-boot/wpa_supplicant.conf<br />
<br />
contents: (note key_mgmt options include NONE, WPA-PSK, WPA-EAP)<br />
<br />
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br />
update_config=1<br />
country=US<br />
<br />
network={<br />
ssid="NETWORK_NAME"<br />
psk="password"<br />
key_mgmt=WPA-PSK<br />
}<br />
<br />
==Configuration==<br />
<br />
===Raspberry Pi Setup===<br />
Once your Raspberry Pi is booted, log in with username "'''pi'''" password "'''raspberry'''" and run: <br />
<pre><br />
$ sudo raspi-config<br />
</pre><br />
<br />
You will want to be sure to do the following:<br />
<br />
*Set a strong, unique password<br />
*Change localization settings:<br />
**by default the rpi locale is configured for EN-GB, change as appropriate (ie: to EN_US.UTF-8)<br />
**set timezone (we recommend UTC so your logs match the times in Network)<br />
**set keyboard layout, again this is defaulting to a UK layout<br />
**set wifi country<br />
**expand filesystem<br />
*Configure network or WiFi (see [https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md this doc for network configuration instructions])<br />
*Finish and reboot<br />
<br />
===SatNOGS Setup===<br />
SSH to the Raspberry Pi with user "'''pi'''" and your new password.<br />
<br />
Follow [[SatNOGS Client Setup]] instructions to configure the system.<br />
<br />
[[Category:Build]]<br />
[[Category:Software]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=SatNOGS_Client_Setup&diff=3357SatNOGS Client Setup2020-01-20T16:40:45Z<p>Acinonyx: Add categories</p>
<hr />
<div>==Introduction==<br />
<code>satnogs-setup</code> provides a set of scripts for configuring a '''SatNOGS Client''' system. <code>satnogs-setup</code> main function is to bring up a menu-driven console configuration utility and provision the system using [[SatNOGS Client Ansible|Ansible]].<br />
<br />
==Initial Setup==<br />
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.<br />
<br />
To configure a '''SatNOGS Client''' system:<br />
<br />
#SSH into the system and run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Set '''all''' options in '''Basic Configuration''' (see below)<br />
#Select <code>Apply</code> and the Raspberry Pi will configure itself; this may take some time<br />
#Select <code>Back</code> to exit<br />
{{Message|You can always reconfigure the software by running <code>sudo satnogs-setup</code> again.}}<br />
===Basic Configuration===<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_API_TOKEN</code><br />
|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.<br />
|-<br />
|<code>SATNOGS_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>rtlsdr</code>. Other devices supported by gr-satnogs include <code>usrpb200</code>, <code>usrp2</code>, <code>airspy/airspymini</code> or <code>hackrf</code>; a complete list can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/apps/flowgraphs/satellites/README.md here].<br />
|-<br />
|<code>SATNOGS_STATION_ELEV</code><br />
|The height of your ground station above sea level in metres.<br />
|-<br />
|<code>SATNOGS_STATION_ID</code><br />
|The '''numeric ID''' assigned to your station in the SatNOGS Network site when the groundstation was created.<br />
|-<br />
|<code>SATNOGS_STATION_LAT</code><br />
|The latitude of your station. North is positive, south is negative.<br />
|-<br />
|<code>SATNOGS_STATION_LON</code><br />
|The longitude of your station. East is positive, west is negative.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_ENABLED</code><br />
|Whether or not to enable the Hamlibs rotator daemon. Rotctld is a software daemon that provides a network server to control a rotator on a serial port. If you don't have a rotator (like the [[No rotator|No rotator setup]]), enter <code>NO</code>.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_OPTS</code><br />
|Options for rotcld:<br />
For a yaesu rotator, use <code>-m 601 -r /dev/ttyACM0 -s 9600 -T 0.0.0.0</code><br />
<br />
For a SatNOGS rotator <code>-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200</code> or <code>-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200</code><br />
|}<br />
==Advanced Setup==<br />
{{Warning|Changing these settings is ''not'' recommended unless you're developing SatNOGS.}}A more detailed description on setting up a development environment using the SatNOGS reference setup is given in [[SatNOGS_Client_Development]].<br />
<br />
NOTE: To get your station online, you need to set SATNOGS_NETWORK_API_URL to https://network.satnogs.org/api/<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>APT_REPOSITORY</code><br />
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:<br />
<code>deb <nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10</nowiki> ./</code><br />
|-<br />
|<code>APT_KEY_URL</code><br />
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:<br />
<code><nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10/Release.key</nowiki></code><br />
|-<br />
|<code>APT_KEY_ID</code><br />
|This options allows you to specify an alternative SatNOGS packages repository key ID.<br />
|-<br />
|<code>SATNOGS_CLIENT_URL</code><br />
|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:<br />
<br />
*<code>git+https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@master</code> -- the 'master' branch (the current development version) of satnogs-client<br />
*<code><nowiki>git+https://gitlab.com/jdoe/satnogs-client.git@new-feature</nowiki></code> -- the 'new-feature' branch of jdoe's fork of satnogs-client<br />
|-<br />
|<code>SATNOGS_RADIO_GR_SATNOGS_VERSION</code><br />
|This options allows you to change the version of gr-satnogs package to be installed. For example:<br />
<code>1.5.1-1</code><br />
|-<br />
|<code>RF_GAIN</code><br />
|RF Gain value for your SDR hardware. Defaults can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/python/hw_settings.py here].<br />
<br />
*For rtl-sdr possible values are the following: <code>0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6</code><br />
|}<br />
==Updating SatNOGS Client Software==<br />
To update SatNOGS software, including the configuration tool itself:<br />
<br />
#SSH into the system and (re-)run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Select <code>Upgrade</code> to upgrade all distribution packages to the latest; this may require a reboot. If this option is not available, running an <code>Update</code> will make it show up<br />
#Select <code>Update</code> to update the configuration tool<br />
#Select <code>Apply</code> and the Raspberry Pi will update itself; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
'''WARNING: An update can potentially interrupt a running observation!'''<br />
===Upgrading from Debian 'stretch' to 'buster'===<br />
If you have already installed an older version of Debian or Raspbian SatNOGS image based on <code>stretch</code> (releases <= [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/tags/2018080300 2018080300]), it is recommended to upgrade to <code>buster</code>. Support for <code>stretch</code> will be dropped with the next release of <code>gr-satnogs</code>.<br />
====Method 1: Reflashing and reinstalling (recommended)====<br />
The recommended method to upgrade to <code>buster</code> is reflashing the latest Raspbian SatNOGS image (or reinstalling latest Debian). Follow [[Raspberry Pi|Raspberry Pi]] installation instructions and reinstall from scratch.<br />
====Method 2: Release upgrade using the configuration tool (advanced)====<br />
{{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:<br />
<br />
#SSH into the system<br />
#Make sure you have enough free space on your SD card (>2GiB) by running <code>df -h /</code> on the console<br />
#Run <code>sudo satnogs-setup</code> to bring up the configuration menu<br />
#On the Advanced menu, enable <code>SATNOGS_SETUP_RELEASE_UPGRADE_ENABLED</code> option, in case there isn't an option like that available run first <code>Update</code> and then try again to enable it.<br />
#On the Main menu, select <code>Apply</code> and let Ansible apply the configuration<br />
#On the Main menu, select <code>Upgrade</code>. The script will check if there is a new release upgrade and ask you to proceed<br />
#Keep an eye on the upgrade progress; <code>dpkg</code> may prompt for changes<br />
#Once the upgrade is completed, <code>satnogs-setup</code> will ask for a reboot<br />
#After the reboot, make sure you are on the correct release by running <code>lsb_release -a</code><br />
#Re-run <code>sudo satnogs-setup</code> and select <code>Update</code> and then <code>Apply</code><br />
<br />
==Verification of correct installation==<br />
To see if satnogs-client has started successfully, check the logs with journalctl:<pre><br />
$ journalctl -u satnogs-client.service<br />
</pre>You should see entries running approximately once per minute that look like this:<pre><br />
Oct 01 23:02:13 raspberrypi satnogs-client[6695]: * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)<br />
Oct 01 23:02:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:02:14,466 - satnogsclient - INFO - [LD] Downlink thread waiting for first downlink packet<br />
Oct 01 23:03:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:14,450 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:03:14 UTC)" (scheduled at 2017-10-01 23:03:14.423393+00:00)<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,324 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,325 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,327 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,453 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.423393+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,484 - apscheduler.executors.default - INFO - Running job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.436367+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,489 - apscheduler.executors.default - INFO - Job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,627 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,628 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,629 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:05:14 UTC)" executed successfully<br />
</pre>If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.<br />
[[Category:Build]]<br />
[[Category:Software]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=SatNOGS_Client_Development&diff=3356SatNOGS Client Development2020-01-20T16:33:37Z<p>Acinonyx: Fix links</p>
<hr />
<div>__NOTOC__<br />
==Intro==<br />
This page describes the setup of a development environment for the<br />
SatNOGS ground station reference setup based on [https://gitlab.com/librespacefoundation/satnogs/satnogs-client-ansible satnogs-client-ansible].<br />
It is assumed you have already setup your ground station as explained in [[SatNOGS_Client_Setup]].<br />
<br />
==gr-satnogs and gr-satnogs-package==<br />
<br />
The gnuradio Out-Of-Tree module [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs gr-satnogs] is packaged by [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs-package gr-satnogs-package]. The gitlab-CI automatically builds the package in docker containers as nightlies and on each release (git-tag, e.g. [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs-package/-/jobs/artifacts/1.3-1/raw/build/debian/output/armhf/gr-satnogs_1.3-1_armhf.deb?job=release-armhf gr-satnogs_1.3-1_armhf.deb]), configured by the [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/.gitlab-ci.yml .gitlab-ci.yml].<br />
<br />
To use a modified gr-satnogs module on a SatNOGS ground station, it’s recommended to build it using the gr-satnogs-package scripts. Otherwise you can build gr-satnogs manually and adjust the installation paths to match the paths specified by gr-satnogs-package.<br />
<br />
Building gr-satnogs with gr-satnogs-package can be automated via gitlab-CI, so that binary releases of your modified gr-satnogs module are available to download and install by the satnogs-client-ansible scripts (<code>satnogs-setup</code>).<br />
<br />
===Steps.===<br />
<br />
*Fork gr-satnogs<br />
*Fork gr-satnogs-package<br />
*Adjust the repository url of gr-satnogs in [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs-package/blob/master/debian/debian/rules#L22 gr-satnogs-package/debian/debian/rules#L22]<br />
*Adjust the repository url in the version detection in [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs-package/blob/master/.gitlab-ci.yml#L13 gr-satnogs-package/.gitlab-ci.yml#L13] ,[https://gitlab.com/librespacefoundation/satnogs/gr-satnogs-package/blob/master/.gitlab-ci.yml#L30 #L30] ,[https://gitlab.com/librespacefoundation/satnogs/gr-satnogs-package/blob/master/.gitlab-ci.yml#L47 #L47]<br />
*Wait for the gitlab-CI to build your first version of gr-satnogs-package (~45 min)<br />
*Install your freshly built gr-satnogs-package by pointing the <code>SATNOGS_RADIO_GR_SATNOGS_PACKAGE</code> in satnogs-setup to the built artifact/debian package of your architecture (e.g. <code>armhf</code>, <code>amd64</code>). The build artifacts are available in your gr-satnogs-package fork by clicking CI/CD, selecting there the latest pipeline, the latest build-job and then in the right column <code>Browse</code>, path <code>build/debian/output/$your_arch/gr-satnogs_$your_arch.deb</code><br />
<br />
==satnogs-client==<br />
The [https://gitlab.com/librespacefoundation/satnogs/satnogs-client satnogs-client] is a python package, and gets installed by satnogs-setup in a python virtual environment using [https://pip.pypa.io/ pip]. The development branch currently is <code>master</code> and if there is a need commits should be ported on branch <code>0</code>.<br />
<br />
Branch <code>0</code> It's the original client implementation and features a local web interface. A new implementation which aimed at a more modular architecture and doesn't include the local web interface anymore is developed in the <code>master</code> branch.<br />
<br />
Please note that satnogs-client and gr-satnogs must be installed in compatible versions, due to (frequent) changes in the arguments available in the demodulation scripts, see [[Compatibility]].<br />
===Steps.===<br />
TODO.<br />
<br />
# Fork [https://gitlab.com/librespacefoundation/satnogs/satnogs-client satnogs-client] <br />
# Clone the repository on your development desktop<br />
# Create a new branch (e.g. <code>pr/myfancypatch</code>) with your changes & push it<br />
# Run satnogs-setup and change the value of SATNOGS_CLIENT_URL to point to your repository as described in [[SatNOGS_Client_Setup#Advanced_Setup]]<br />
# Hit "Apply" in satnogs-setup to finally install your satnogs-client version<br />
# Profit.<br />
<br />
<br /><br />
[[Category:Develop]]<br />
[[Category:Software]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=SatNOGS_Client_Setup&diff=3355SatNOGS Client Setup2020-01-20T16:29:34Z<p>Acinonyx: Replace redirection page</p>
<hr />
<div>==Introduction==<br />
<code>satnogs-setup</code> provides a set of scripts for configuring a '''SatNOGS Client''' system. <code>satnogs-setup</code> main function is to bring up a menu-driven console configuration utility and provision the system using [[SatNOGS Client Ansible|Ansible]].<br />
<br />
==Initial Setup==<br />
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.<br />
<br />
To configure a '''SatNOGS Client''' system:<br />
<br />
#SSH into the system and run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Set '''all''' options in '''Basic Configuration''' (see below)<br />
#Select <code>Apply</code> and the Raspberry Pi will configure itself; this may take some time<br />
#Select <code>Back</code> to exit<br />
{{Message|You can always reconfigure the software by running <code>sudo satnogs-setup</code> again.}}<br />
===Basic Configuration===<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_API_TOKEN</code><br />
|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.<br />
|-<br />
|<code>SATNOGS_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>rtlsdr</code>. Other devices supported by gr-satnogs include <code>usrpb200</code>, <code>usrp2</code>, <code>airspy/airspymini</code> or <code>hackrf</code>; a complete list can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/apps/flowgraphs/satellites/README.md here].<br />
|-<br />
|<code>SATNOGS_STATION_ELEV</code><br />
|The height of your ground station above sea level in metres.<br />
|-<br />
|<code>SATNOGS_STATION_ID</code><br />
|The '''numeric ID''' assigned to your station in the SatNOGS Network site when the groundstation was created.<br />
|-<br />
|<code>SATNOGS_STATION_LAT</code><br />
|The latitude of your station. North is positive, south is negative.<br />
|-<br />
|<code>SATNOGS_STATION_LON</code><br />
|The longitude of your station. East is positive, west is negative.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_ENABLED</code><br />
|Whether or not to enable the Hamlibs rotator daemon. Rotctld is a software daemon that provides a network server to control a rotator on a serial port. If you don't have a rotator (like the [[No rotator|No rotator setup]]), enter <code>NO</code>.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_OPTS</code><br />
|Options for rotcld:<br />
For a yaesu rotator, use <code>-m 601 -r /dev/ttyACM0 -s 9600 -T 0.0.0.0</code><br />
<br />
For a SatNOGS rotator <code>-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200</code> or <code>-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200</code><br />
|}<br />
==Advanced Setup==<br />
{{Warning|Changing these settings is ''not'' recommended unless you're developing SatNOGS.}}A more detailed description on setting up a development environment using the SatNOGS reference setup is given in [[SatNOGS_Client_Development]].<br />
<br />
NOTE: To get your station online, you need to set SATNOGS_NETWORK_API_URL to https://network.satnogs.org/api/<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>APT_REPOSITORY</code><br />
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:<br />
<code>deb <nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10</nowiki> ./</code><br />
|-<br />
|<code>APT_KEY_URL</code><br />
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:<br />
<code><nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10/Release.key</nowiki></code><br />
|-<br />
|<code>APT_KEY_ID</code><br />
|This options allows you to specify an alternative SatNOGS packages repository key ID.<br />
|-<br />
|<code>SATNOGS_CLIENT_URL</code><br />
|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:<br />
<br />
*<code>git+https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@master</code> -- the 'master' branch (the current development version) of satnogs-client<br />
*<code><nowiki>git+https://gitlab.com/jdoe/satnogs-client.git@new-feature</nowiki></code> -- the 'new-feature' branch of jdoe's fork of satnogs-client<br />
|-<br />
|<code>SATNOGS_RADIO_GR_SATNOGS_VERSION</code><br />
|This options allows you to change the version of gr-satnogs package to be installed. For example:<br />
<code>1.5.1-1</code><br />
|-<br />
|<code>RF_GAIN</code><br />
|RF Gain value for your SDR hardware. Defaults can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/python/hw_settings.py here].<br />
<br />
*For rtl-sdr possible values are the following: <code>0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6</code><br />
|}<br />
==Updating SatNOGS Client Software==<br />
To update SatNOGS software, including the configuration tool itself:<br />
<br />
#SSH into the system and (re-)run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Select <code>Upgrade</code> to upgrade all distribution packages to the latest; this may require a reboot. If this option is not available, running an <code>Update</code> will make it show up<br />
#Select <code>Update</code> to update the configuration tool<br />
#Select <code>Apply</code> and the Raspberry Pi will update itself; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
'''WARNING: An update can potentially interrupt a running observation!'''<br />
===Upgrading from Debian 'stretch' to 'buster'===<br />
If you have already installed an older version of Debian or Raspbian SatNOGS image based on <code>stretch</code> (releases <= [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/tags/2018080300 2018080300]), it is recommended to upgrade to <code>buster</code>. Support for <code>stretch</code> will be dropped with the next release of <code>gr-satnogs</code>.<br />
====Method 1: Reflashing and reinstalling (recommended)====<br />
The recommended method to upgrade to <code>buster</code> is reflashing the latest Raspbian SatNOGS image (or reinstalling latest Debian). Follow [[Raspberry Pi|Raspberry Pi]] installation instructions and reinstall from scratch.<br />
====Method 2: Release upgrade using the configuration tool (advanced)====<br />
{{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:<br />
<br />
#SSH into the system<br />
#Make sure you have enough free space on your SD card (>2GiB) by running <code>df -h /</code> on the console<br />
#Run <code>sudo satnogs-setup</code> to bring up the configuration menu<br />
#On the Advanced menu, enable <code>SATNOGS_SETUP_RELEASE_UPGRADE_ENABLED</code> option, in case there isn't an option like that available run first <code>Update</code> and then try again to enable it.<br />
#On the Main menu, select <code>Apply</code> and let Ansible apply the configuration<br />
#On the Main menu, select <code>Upgrade</code>. The script will check if there is a new release upgrade and ask you to proceed<br />
#Keep an eye on the upgrade progress; <code>dpkg</code> may prompt for changes<br />
#Once the upgrade is completed, <code>satnogs-setup</code> will ask for a reboot<br />
#After the reboot, make sure you are on the correct release by running <code>lsb_release -a</code><br />
#Re-run <code>sudo satnogs-setup</code> and select <code>Update</code> and then <code>Apply</code><br />
<br />
==Verification of correct installation==<br />
To see if satnogs-client has started successfully, check the logs with journalctl:<pre><br />
$ journalctl -u satnogs-client.service<br />
</pre>You should see entries running approximately once per minute that look like this:<pre><br />
Oct 01 23:02:13 raspberrypi satnogs-client[6695]: * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)<br />
Oct 01 23:02:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:02:14,466 - satnogsclient - INFO - [LD] Downlink thread waiting for first downlink packet<br />
Oct 01 23:03:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:14,450 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:03:14 UTC)" (scheduled at 2017-10-01 23:03:14.423393+00:00)<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,324 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,325 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,327 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,453 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.423393+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,484 - apscheduler.executors.default - INFO - Running job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.436367+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,489 - apscheduler.executors.default - INFO - Job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,627 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,628 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,629 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:05:14 UTC)" executed successfully<br />
</pre>If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=SatNOGS_Network&diff=3354SatNOGS Network2020-01-20T16:29:15Z<p>Acinonyx: Replace redirection page</p>
<hr />
<div>== Introduction ==<br />
<br />
SatNOGS Network website is where the scheduling, reviewing and operations happen for the SatNOGS project. The instance can be found in [https://network.satnogs.org network.satnogs.org]<br />
<br />
[[File:Satnogs-network-cap.png|800px|SatNOGS Network Screen capture]]<br />
<br />
==Getting started==<br />
<br />
* Head to https://network.satnogs.org/accounts/signup/ to create a new account<br />
* Verify your email<br />
<br />
Now you're ready to create a ground station!<br />
<br />
===Creating a ground station===<br />
<br />
* On your user page, click on "Add Ground Station"<br />
* Fill out all the information. You'll need to provide some essential information about your ground station:<br />
<br />
<ul><br />
<li>Where is the station? We'll need the height above ground level and [https://en.wikipedia.org/wiki/Maidenhead_Locator_System maidenhead locator]</li><br />
<li>Is the antenna static, or does it have a rotator?</li><br />
<li>What type of antennas does the station have?</li><br />
</ul><br />
<br />
All this information is then saved by the network, and used to determine which satellites can be received by your station. This will help other users to schedule passes on your ground station, but it can also help you improve your station. For example, perhaps you would like to receive the latest [https://en.wikipedia.org/wiki/Automatic_picture_transmission NOAA APT weather images] which are VHF transmissions. You could schedule an observation with your ground station and multiple other ground stations in order to determine if your set up has comparable performance. Without the station detail, this would not be possible. <br />
<br />
* Finally, head to your client and [[Raspberry_Pi#Setup|complete its setup]], using the information you supplied on the Network, plus the API key and the ID you were assigned.<br />
<br />
The image below shows the web page for a typical ground station:<br />
<p>[[File:Dev_ground_station.PNG|center|800px]]</p><br />
<br />
===Observing a pass===<br />
<br />
The central point of the system is the ability to schedule a pass. You'll find all the information about scheduling and how to assess the quality of the observation as part of [[Operation|scheduling your first observation]].<br />
<br />
Your station should now appear on the [https://network.satnogs.org/stations/ Ground Stations list] marked as yellow "Testing".<br />
<br />
==Moving out of testing==<br />
<br />
The Network needs reliable ground stations that perform within the constraints that would be expected. A ground station should perform in a way that is comparable to its peers and in line with the constraints of the geography, antenna type, location and the other aspects which will make a ground station different to another.<br />
<br />
Once you feel that your station has been performing well for a period of time under the "Testing" flag then remove the flag. Select the ground station press edit and remove the testing flag under settings. Then announce the availability of a new station in our community channels!<br />
<br />
The ground station should also be reliable. This does not mean that it should be available 24 hours a day, 7 days a week. Downtime is expected, it should however, not be unduly off line or unreliable.<br />
<br />
==What's next?==<br />
<br />
* Keep your station busy! Schedule observations or reach out to the community for scheduling help.<br />
* Keep reviewing your ground station performance.<br />
* Reach out to others in community for help on any issue.<br />
<br />
==Development==<br />
<br />
The SatNOGS Network application is a project by itself with constant development. We test the Network application in our [[Development Environment|development environment]], and [[Software contribution|always welcome python/javascript developers to help us]]!<br />
<br />
[[Category:Infrastructure]]<br />
[[Category:Hardware]]<br />
[[Category:Software]]<br />
[[Category:Build]]<br />
[[Category:Operate]]<br />
[[Category:Develop]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=Fedora_Installation&diff=3353Fedora Installation2020-01-20T16:28:59Z<p>Acinonyx: Replace redirection page</p>
<hr />
<div>= Installing SatNOGS on Fedora runnning on a Raspberry Pi 3 =<br />
<br />
{{Warning|'''This is not a supported method of running gr-satnogs and the SatNOGS client.'''<br />
This guide is known to be broken.<br />
<br />
Follow the [[Raspberry_Pi|Raspberry_Pi_3/Rasbian Guide]] instead.<br />
}}<br />
<br />
This tutorial assumes the following:<br />
<br />
1. You have a Raspberry Pi 3 with external power (5V, 2A).<br />
<br />
2. USB keyboard, HDMI screen, HDMI cable, network cable (Wi-Fi isn't working on Fedora for now) and a Class 10 SDHC card at least 8GB.<br />
<br />
3. One of the following sdr devices: RTL-SDR or USRP B200.<br />
<br />
4. You have an account and a ground station registered on either [https://network.satnogs.org network.satnogs.org] or [https://network-dev.satnogs.org network-dev.satnogs.org]_. This is needed for getting your ground station ID number and your SatNOGS Network API key.<br />
<br />
== Prepare Raspberry Pi ==<br />
<br />
* Download fedora minimal or server RPi image (current 26) from [https://arm.fedoraproject.org/ Fedora ARM Project] (server edition provides a nice web interface, admin console, with several stats and SSH access).<br />
<br />
* Connect SD card to your computer/laptop and prepare it as described at [https://fedoraproject.org/wiki/Raspberry_Pi#Preparing_the_SD_card Fedora wiki] (don't forget to [https://fedoraproject.org/wiki/Raspberry_Pi#Resizing_the_root_partition resize the root partition]).<br />
<br />
* Attach sdcard to your RPi, plug in the HDMI cable, keyboard and ethernet and turn on the HDMI screen. Plug RPi to the power source.<br />
<br />
* Fedora installation starts, follow the steps that show up in the screen. You'll have to setup:<br />
** root password<br />
** network connection<br />
** timezone and ntp server, add at least one, `pool.ntp.org` is suggested<br />
** a new user, e.g. `satnogs`. Don't forget to set administrator flag and add user to `dialout` group (needed for having access to sdr device).<br />
<br />
* From now on you are able to access you RPi directly or through SSH. You can also use admin console if you have selected the fedora server version.<br />
<br />
* Update fedora package to the latest version by running:<br />
<br />
<pre><br />
sudo dnf -y update<br />
</pre><br />
<br />
* Install dependencies for gr-satnogs and satnogs-client:<br />
<br />
<pre><br />
sudo dnf install -y util-linux-user git gcc redhat-rpm-config python-devel redis vorbis-tools hamlib gnuradio gnuradio-devel cmake swig fftw3-devel gcc-c++ cppunit cppunit-devel doxygen gr-osmosdr libnova libnova-devel gnuplot libvorbis-devel libffi-devel openssl-devel libpng-devel<br />
</pre><br />
<br />
* In order to expand the lifetime of the SD Card, edit /etc/fstab file with your favourite editor:<br />
** Comment out the line of the swap partition<br />
** Only if you used the "minimal" Fedora installation (not the "server" build), change options of root partition line (/ ext4) from `defaults,noatime` to `defaults,noatime,commit=1800`. This change means that changes on root partition will be written on SD Card every 30min<br />
** Move /var/log and /var/tmp directories to memory by adding the following two lines:<br />
<br />
<pre><br />
tmpfs /var/tmp tmpfs defaults,noatime,nosuid,size=120m 0 0<br />
tmpfs /var/log tmpfs defaults,noatime,nosuid,mode=0755,size=80m 0 0<br />
</pre><br />
<br />
* Automate creating of redis directory in /var/log path after boot by running:<br />
<br />
<pre><br />
sudo sh -c 'echo "#Type Path Mode UID GID Age Argument" > /etc/tmpfiles.d/logdirs.conf'<br />
sudo sh -c 'echo "d /var/log/redis 0750 redis redis 1d -" >> /etc/tmpfiles.d/logdirs.conf'<br />
</pre><br />
<br />
* Enable and start Redis service in order to run automatically on startup:<br />
<br />
<pre><br />
sudo systemctl enable redis.service<br />
sudo systemctl start redis.service<br />
</pre><br />
<br />
* Configure automatic cleanup of old data (while this is an optional step, if old files are not cleaned out regularly you run the risk of filling your disk over time)<br />
** As-is this will clean out files older than 1 week. Adjust mtime to your liking<br />
** Create /etc/cron.daily/satnogs with your favorite editor and add the following:<br />
<br />
<pre><br />
#!/bin/sh<br />
find /tmp/.satnogs/data -type f -mtime +7 -delete<br />
</pre><br />
<br />
** Then run:<br />
<br />
<pre><br />
sudo chmod +x /etc/cron.daily/satnogs<br />
</pre><br />
<br />
* If you used Fedora Server, configure firewall for SatNOGS web user interface<br />
** Create /usr/lib/firewalld/services/satnogs.xml and add the following:<br />
<br />
<pre><br />
<?xml version="1.0" encoding="utf-8"?><br />
<service><br />
<short>SatNOGS (HTTP)</short><br />
<description>HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.</description><br />
<port protocol="tcp" port="5000"/><br />
</service><br />
</pre><br />
<br />
** If you used the server image run:<br />
<br />
<pre><br />
sudo firewall-cmd --zone=FedoraServer --add-service=satnogs --permanent<br />
sudo firewall-cmd --zone=FedoraServer --add-service=satnogs<br />
</pre><br />
<br />
** Or for the minimal image:<br />
<br />
<pre><br />
sudo firewall-cmd --zone=public --add-service=satnogs --permanent<br />
sudo firewall-cmd --zone=public --add-service=satnogs<br />
</pre><br />
<br />
== Install gr-satnogs ==<br />
<br />
SatNOGS Client uses GNU Radio scripts in order to get observation data from satelites, gr-satnogs provide this functionality.<br />
<br />
* Run the following command to install the packaged version of SatNOGS Client:<br />
<br />
<pre><br />
git clone https://github.com/satnogs/gr-satnogs.git<br />
cd gr-satnogs<br />
mkdir build<br />
cd build<br />
cmake -DLIB_SUFFIX=64 -DCMAKE_INSTALL_PREFIX=/usr ..<br />
make -j4<br />
sudo make install<br />
sudo sh -c 'echo /usr/lib64 > /etc/ld.so.conf.d/lib64.conf'<br />
sudo ldconfig<br />
</pre><br />
<br />
== Install satnogs-client ==<br />
<br />
Building from source is outside of the scope of this document, we will use the packaged install for now.<br />
<br />
Run the following command to install the packaged version of SatNOGS Client<br />
<br />
<pre><br />
sudo pip install satnogsclient<br />
</pre><br />
<br />
== Configure satnogs-client ==<br />
<br />
SatNOGS Client needs some configuration before running:<br />
<br />
* Create a .env file in your home directory (`~/.env`) and add station's details as they are defined at SatNOGS Network:<br />
<br />
<pre><br />
export SATNOGS_API_TOKEN="1234567890qwertyuiopasdfghjklzxcvbnm1234"<br />
export SATNOGS_STATION_ID="65"<br />
export SATNOGS_STATION_LAT="40.662"<br />
export SATNOGS_STATION_LON="23.337"<br />
export SATNOGS_STATION_ELEV="150"<br />
export SATNOGS_NETWORK_API_URL="https://network-dev.satnogs.org/api/"<br />
</pre><br />
<br />
=== Optional settings ===<br />
<br />
* There are more option you can export in the created .env file. You will probably need to change the default values of the settings bellow:<br />
<br />
* SATNOGS_RX_DEVICE<br />
** Defines the sdr device. It could be 'usrpb200' or 'rtlsdr'.<br />
** Default Type: string<br />
** Default Value: 'rtlsdr'<br />
<br />
*SATNOGS_PPM_ERROR<br />
** Defines PPM error of sdr, check :doc:`finding-ppm` for more details on PPM.<br />
** Default Type: integer<br />
** Default Value: 0<br />
<br />
Other optional settings:<br />
<br />
* SATNOGS_APP_PATH<br />
** Defines the path where the sqlite database will be created.<br />
** Default Type: string<br />
** Default Value: '/tmp/.satnogs'<br />
<br />
* SATNOGS_OUTPUT_PATH<br />
** Defines the path where the observation data will be saved.<br />
** Default Type: string<br />
** Default Value: '/tmp/.satnogs/data'<br />
<br />
* SATNOGS_COMPLETE_OUTPUT_PATH<br />
** Defines the path where data will be moved after succesful upload on network.<br />
** Default Type: string<br />
** Default Value: ''<br />
<br />
* SATNOGS_INCOMPLETE_OUTPUT_PATH<br />
** Defines the path where data will be moved after unsuccesful upload on network.<br />
** Default Type: string<br />
** Default Value: '/tmp/.satnogs/data/incomplete'<br />
<br />
* SATNOGS_ROT_IP<br />
** Defines IP address where rotctld process listens.<br />
** Default Type: string<br />
** Default Value: '127.0.0.1'<br />
<br />
* SATNOGS_ROT_PORT<br />
** Defines port where rotctld process listens.<br />
** Default Type: integer<br />
** Default Value: 4533<br />
<br />
* SATNOGS_RIG_IP<br />
** Defines IP address where rigctld process listens.<br />
** Default Type: string<br />
** Default Value: '127.0.0.1'<br />
<br />
* SATNOGS_RIG_PORT<br />
** Defines port where rigctld process listens.<br />
** Default Type: integer<br />
** Default Value: 4532<br />
<br />
<br />
== Prepare SDR Device ==<br />
<br />
In order to have access and use SDR device you need to follow the next steps for your device:<br />
The next step is to access and use the SDR device you have. Which steps you follow depends on your device.<br />
<br />
=== USRP B200 ===<br />
<br />
* Install uhd package:<br />
<br />
<pre><br />
sudo dnf install -y uhd<br />
</pre><br />
<br />
* Download uhd images:<br />
<br />
<pre><br />
sudo /usr/bin/uhd_images_downloader<br />
</pre><br />
<br />
* As the access will be only by ssh and not by direct login we are not be able to access SDR device through [https://en.wikipedia.org/wiki/Access_control_list Access Control List (ACL)], so we need to setup the appropriate udev rules by following the next steps:<br />
<br />
* Copy udev rules from `/usr/lib/udev/rules.d/10-usrp-uhd.rules` to `/etc/udev/rules.d/10-usrp-uhd.rules`:<br />
<br />
<pre><br />
sudo cp /usr/lib/udev/rules.d/10-usrp-uhd.rules /etc/udev/rules.d/10-usrp-uhd.rules<br />
</pre><br />
<br />
* Replace ACL reference:<br />
<br />
<pre><br />
sudo sed -i 's/0", ENV{ID_SOFTWARE_RADIO}="1"/6"/g' /etc/udev/rules.d/10-usrp-uhd.rules<br />
</pre><br />
<br />
* Reload udev rules:<br />
<br />
<pre><br />
sudo udevadm control --reload-rules<br />
</pre><br />
<br />
* Confirm access on device by running (without sudo, just as single user):<br />
<br />
<pre><br />
uhd_find_devices<br />
</pre><br />
<br />
* In case you don't have access, make sure that the device is connected and that the created user is member of the `dialout` group by running:<br />
<br />
<pre><br />
groups<br />
</pre><br />
<br />
* If user isn't member of `dialout` group run (replace satnogs with the username of your user):<br />
<br />
<pre><br />
sudo usermod -aG dialout satnogs<br />
</pre><br />
<br />
=== RTL-SDR ===<br />
<br />
As the access will be only by ssh and not by direct login we are not be able to access SDR device through [https://en.wikipedia.org/wiki/Access_control_list Access Control List (ACL)], so we need to setup the appropriate udev rules by following the next steps:<br />
<br />
* Copy udev rules from `/usr/lib/udev/rules.d/10-rtl-sdr.rules` to `/etc/udev/rules.d/10-rtl-sdr.rules`:<br />
<br />
<pre><br />
sudo cp /usr/lib/udev/rules.d/10-rtl-sdr.rules /etc/udev/rules.d/10-rtl-sdr.rules<br />
</pre><br />
<br />
* Replace ACL reference and change group ownership:<br />
<br />
<pre><br />
sudo sed -i 's/0", ENV{ID_SOFTWARE_RADIO}="1"/6"/g' /etc/udev/rules.d/10-rtl-sdr.rules<br />
sudo sed -i 's/rtlsdr/dialout/g' /etc/udev/rules.d/10-rtl-sdr.rules<br />
</pre><br />
<br />
* Reload udev rules:<br />
<br />
<pre><br />
sudo udevadm control --reload-rules<br />
</pre><br />
<br />
* If your rtlsdr device was already plugged in, you will need to unplug it and plug it back in. Otherwise, it is safe to plug it in now.<br />
<br />
* In case you don't have access, make sure that the device is connected and that the created user is member of the `dialout` group by running:<br />
<br />
<pre><br />
groups<br />
</pre><br />
<br />
* If user isn't member of `dialout` group run (replace satnogs with the username of your user):<br />
<br />
<pre><br />
sudo usermod -aG dialout satnogs<br />
</pre><br />
<br />
* If you had to take that step, log out and log back in.<br />
<br />
<br />
== Run satnogs-client ==<br />
<br />
=== Manually ===<br />
<br />
In order to manually run satnogs-client you need to follow the next steps:<br />
<br />
* Export all the environment variables:<br />
<br />
<pre><br />
source .env<br />
</pre><br />
<br />
* Start rotctl daemon(note: given example parameters bellow, you may need to change, add or omit some of them. For a Yaesu G-5500 use -m 601 and -s 9600):<br />
<br />
<pre><br />
rotctld -m 202 -r /dev/ttyACM0 -s 19200 &<br />
</pre><br />
<br />
* Run the SatNOGS Client:<br />
<br />
<pre><br />
satnogs-client<br />
</pre><br />
<br />
**At this point your client should be fully functional! It will check in with the network URL at a 1 minute interval. You should check your ground station page on the website, the station ID will be in a red box until the station checks in, at which time it will turn green. There are many ways to automate the running and control of satnogs, we will give you 2 options below, supervisord and systemd.**<br />
<br />
<br />
=== Automaticaly with Supervisord ===<br />
<br />
[http://supervisord.org/introduction.html Supervisord] is one of the ways to automatically run SatNOGS Client. This is very useful especialy after a power failure or reboot of raspberry pi.<br />
<br />
In order to setup supervisord we need to follow the next steps:<br />
<br />
* Install supervisord:<br />
<br />
<pre><br />
sudo dnf install -y supervisor<br />
</pre><br />
<br />
* Automate creating of supervisor directory in /var/log path after boot by running:<br />
<br />
<pre><br />
sudo sh -c 'echo "d /var/log/supervisor 0750 root root 3d -" >> /etc/tmpfiles.d/logdirs.conf'<br />
</pre><br />
<br />
* Configure supervisord for rotctld<br />
<br />
Open with sudo and your favorite editor and add this into /etc/supervisord.d/rotctld.ini:<br />
<br />
<pre><br />
[program:rotctld]<br />
command=/usr/bin/rotctld <rotctld PARAMETERS><br />
autostart=true<br />
autorestart=true<br />
user=<USERNAME><br />
priority=1<br />
stdout_logfile=/var/log/supervisor/rotctld.log<br />
stderr_logfile=/var/log/supervisor/rotctld-error.log<br />
</pre><br />
<br />
Replace <USERNAME> with the username of the user you have created and <rotctld PARAMETERS> with the parameters needed to run rotctl in your case.<br />
<br />
* Configure supervisord for satnogs-client<br />
<br />
Add this into /etc/supervisord.d/satnogs.ini:<br />
<br />
<pre><br />
[program:satnogs]<br />
command=/usr/bin/satnogs-client<br />
autostart=true<br />
autorestart=true<br />
user=<USERNAME><br />
environment=SATNOGS_NETWORK_API_URL="<URL>",SATNOGS_API_TOKEN="<TOKEN>",SATNOGS_STATION_ID="<ID>",SATNOGS_STATION_LAT="<LATITUDE>",SATNOGS_STATION_LON="<LONGITUDE>",SATNOGS_STATION_ELEV="<ELEVATION>"<br />
stdout_logfile=/var/log/supervisor/satnogs.log<br />
stderr_logfile=/var/log/supervisor/satnogs-error.log<br />
</pre><br />
<br />
Replace <USERNAME> with the username of the user you have created.<br />
Replace <...> instances in environment with the values you used in .env file,<br />
you can also add in this list any other of the :ref:`optional settings <optional_settings>`.<br />
<br />
* Reloading supervisord to get the new configuration:<br />
<br />
<pre><br />
sudo systemctl enable supervisord.service<br />
sudo systemctl start supervisord.service<br />
</pre><br />
<br />
With that rotctld and satnogs-client should have started, you can follow the logs in /var/log/supervisor/.<br />
<br />
*NOTE:* In case that you want to change something in .ini files like satnogs environment variables (url from the dev one to production one), then you will need to run:<br />
<br />
sudo supervisorctl reload<br />
<br />
<br />
=== Automaticaly with Systemd ===<br />
<br />
<br />
[https://www.freedesktop.org/wiki/Software/systemd/ Systemd] is one of the ways to automatically run SatNOGS Client. This is very useful especialy after a power failure or reboot of raspberry pi.<br />
<br />
In order to setup systemd we need to follow the next steps:<br />
<br />
* Create the script which will initialize and run rotctld and satnogs-client in your home directory (`~/start-satnogs-client.sh`) with the following content:<br />
<br />
<pre><br />
rotctld <rotctld PARAMETERS> &<br />
date >> satnogs-auto.log<br />
source .env<br />
satnogs-client<br />
</pre><br />
<br />
Replace <rotctld PARAMETERS> with the parameters needed to run rotctl in your case.<br />
<br />
* Create as root the file /lib/systemd/system/satnogs-client.service and add the following content:<br />
<br />
<pre><br />
[Unit]<br />
Description=Satnogs Client<br />
Requires=redis.service<br />
After=redis.service<br />
<br />
[Service]<br />
User=<USERNAME><br />
WorkingDirectory=/home/<USERNAME>/<br />
ExecStart=/bin/bash start-satnogs-client.sh<br />
KillMode=control-group<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
Replace <USERNAME> with the username of the user you have created.<br />
<br />
* Enable and start satnogs-client.service:<br />
<br />
<pre><br />
sudo systemctl enable satnogs-client.service<br />
sudo systemctl start satnogs-client.service<br />
</pre><br />
<br />
With that rotctld and satnogs-client should have started, you can follow the logs with journactl:<br />
<br />
<pre><br />
journalctl -u satnogs-client.service<br />
</pre><br />
<br />
Use `-f` flag if you want to see the latest updates on logs:<br />
<br />
<pre><br />
journalctl -f -u satnogs-client.service<br />
</pre><br />
<br />
*NOTE:* In case that you want to change something in start-satnogs-client.sh, make the change and then run:<br />
<br />
<pre><br />
sudo systemctl stop satnogs-client.service<br />
sudo systemctl start satnogs-client.service<br />
</pre><br />
<br />
*NOTE:* In case that you want to change something in satnogs-client.service, make the change and then run:<br />
<br />
<pre><br />
sudo systemctl daemon-reload<br />
</pre><br />
<br />
[[Category:Build]]<br />
[[Category:Software]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=No_rotator&diff=3352No rotator2020-01-20T16:28:18Z<p>Acinonyx: Replace redirection page</p>
<hr />
<div>{{Template:Development<br />
|Name= No-Rotator<br />
|image= No rotator.jpg<br />
|type= No-Rotator ground station for SatNOGS network.<br />
|cost= <br />
|status= Working<br />
|latest-release=<br />
|latest-release-name=<br />
|source-repo=<br />
|documentation=<br />
}}<br />
<br />
== Introduction ==<br />
No-Rotator ground station uses a static antenna usually in VHF.<br />
A Turnstile antenna that tunes at ~137MHz is used for NOAA satellites.<br />
Some Turnstile antenna design, are wide enough to receive VHF band at 144 - 146 MHz.<br />
For more vertical satellite passes, UHF Helical antennas receive satellites at 432 - 438 MHz, <br />
e.g. [https://network.satnogs.org/stations/8/] <br />
<br />
{{Message| Same setup could be used for a ground station with rotator.}}<br />
<br />
== Bill of Materials ==<br />
<br />
The materials are categorized into 4 groups:<br />
<br />
*<span style="color:red">RF components</span><br />
*<span style="color:green">Client components</span><br />
*<span style="color:blue">Hardware components</span><br />
*<span style="color:#F0F000">Tools</span><br />
<br />
{| class="wikitable" {{table}}<br />
| style="background:#f0f0f0;" align="center" |'''Part'''<br />
| style="background:#f0f0f0;" align="center" |'''Qty'''<br />
| style="background:#f0f0f0;" align="center" |'''Source'''<br />
| style="background:#f0f0f0;" align="center" |'''Price per Unit ($)'''<br />
|-<br />
|<span style="color:red">RTL-SDR</span>||1||[https://www.nooelec.com/store/sdr/sdr-receivers/nesdr-smart-sdr.html]||21<br />
|-<br />
|<span style="color:red">SMA Male to SMA Male Connector Pigtail Cable</span>||1||[http://www.ebay.com/itm/6-5-Length-SMA-Male-to-SMA-Male-Connector-Pigtail-Cable-/182286107527?epid=1749479193&hash=item2a71194387:g:X~gAAOSwOyJX3z4o]||1<br />
|-<br />
|<span style="color:red">LNA with FM-Notch</span>||1||[]||35<br />
|-<br />
|<span style="color:red">RG-58 cable, 2.2m</span>||1||[]||-<br />
|-<br />
|<span style="color:red">SMA Male cable connector</span>||1||[]||-<br />
|-<br />
|<span style="color:red">Type-N Female chassis connector</span>||1||[]||-<br />
|-<br />
|<span style="color:red">Type-N Male cable connector</span>||2||[]||-<br />
|-<br />
|<span style="color:red">Turnstile antenna with Type-N Female connector</span>||1||[]||-<br />
|-<br />
|<span style="color:green">Raspberry Pi 3 - Model B</span>||1||[https://grobotronics.com/raspberry-pi-3-model-b.html]||40<br />
|-<br />
|<span style="color:green">Raspberry Pi 3 Case</span>||1||[https://grobotronics.com/raspberry-pi-2-square-case-transparent.html]||5<br />
|-<br />
|<span style="color:green">SD Card, Class 10, 32GB, Kingston, Sandisk</span>||1||[https://www.ebay.de/itm/Kingston-Micro-32Gb-Karte-Speicherkarte-Class-10-Sdhc-Microsd-Sdxc-Sd-Adapter/312674375371?epid=5030514522&hash=item48ccd856cb:g:7hsAAOSwvrddFMHS]||10<br />
|-<br />
|<span style="color:green">Micro USB Active POE Splitter Power for Raspberry pi 3 Board (48V to 5V 2.4A)</span>||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<br />
|-<br />
|<span style="color:green">POE-48-24W-BULK POE Adapter 48V, 0.5A, 24W</span>||1||[https://www.xpatit.gr/index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=1766&Itemid=0]||13<br />
|-<br />
|<span style="color:green">Ethernet LAN RJ45 Outdoor Waterproof Connector</span>||1||[http://www.ebay.com/itm/Ethernet-LAN-RJ45-Outdoor-Waterproof-Connector-M20-Stable-Signal-Black-/271524476589?epid=700279670&hash=item3f381eb6ad:g:9z8AAOSwopRYb3v-]||3.6<br />
|-<br />
|<span style="color:green">Cable, Male USB-Micro to Male USB-A, L=25cm</span>||1||[]||1<br />
|-<br />
|<span style="color:green">Cable, Female USB-A to Male USB-A, L=25cm</span>||1||[]||1<br />
|-<br />
|<span style="color:green">Ring Core Ferrite Bead for USB cables</span>||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<br />
|-<br />
|<span style="color:green">Ethernet cable, outdoor, CAT5 or higher, L=?m</span>||1||[]||<br />
|-<br />
|<span style="color:blue"></span><span style="color:blue"></span>||1||[]||<br />
|-<br />
|}<br />
<br />
== Assembly Instructions ==<br />
See pictures.<br />
<br />
[[File:Liverpool_no_rotator_1.jpeg|400px|thumb|right|Inside the box 1]]<br />
[[File:IMG 20170621 100727.jpg|400px|thumb|right|RF Detail]]<br />
<br />
== Operation ==<br />
<br />
Follow the instructions for setting up the [[Raspberry_Pi|Raspberry Pi 3]] to setup your station.<br />
Then consult the [[Operation]] page for getting started on our Network.<br />
<br />
[[Category:Build]]<br />
[[Category:Hardware]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=Troubleshooting&diff=3351Troubleshooting2020-01-20T16:27:55Z<p>Acinonyx: Replace redirection page</p>
<hr />
<div><br />
==Client troubleshooting==<br />
<br />
===Client not showing up on the network?===<br />
<br />
*Check that you have ticked the "Is it operational?" checkbox on the groundstation page.<br />
*Check your settings and ensure that the API token and station ID are correct. You can get these from your profile page on the SatNOGS network site. If you have accounts in both dev and prod, make sure you're using the token and station ID from the right environment.<br />
*Check your SATNOGS_NETWORK_API_URL. It should point to https://network.satnogs.org/api/ (prod) or https://network-dev.satnogs.org/api/ (dev).<br />
*Check your network connectivity. Can you ping network.satnogs.org or network-dev.satnogs.org? Try running <code>curl https://network.satnogs.org</code> or <code>curl https://network-dev.satnogs.org</code>.<br />
*Check the logs for an error (<code>journalctl -f -u satnogs-client.service</code> or <code>less /var/log/supervisor/satnogs-error.log</code>) and post to our forums at https://community.libre.space<br />
<br />
==="satnogsclient - ERROR - Cannot connect to socket 127.0.0.1:4533"===<br />
<br />
The client is trying to connect to rotctld but is unable to.<br />
<br />
*If you have a no-rotator setup, ensure that satnogs-client is configured as such; see the [[Raspberry Pi]] page for info on how to do this.<br />
<br />
*If you do have a rotator, ensure that rotctld is running.<br />
<br />
<br /><br />
<br />
===Some uploads missing & Doppler-correction not working properly===<br />
The station/client might have a clock offset. This causes a Doppler shift on the waterfall and some observations don't start because of a conflict between the time on the PC of the station and the time of the SatNOGS Network.<br />
<br />
=== Uploads (waterfall or audio) are missing for a past observation ===<br />
When using <code>satnogs-setup</code> for editing/updating the configuration of the station, the satnogs-client gets restarted. When this happens during an observation the observation will be aborted and no waterfall/audio/data files will be uploaded. Such observations should be voted as ''failed''.<br />
<br />
The partial data from such observations is stored in <code>/tmp/.satnogs/data/</code>, look for files like <code>receiving_{satnogs|waterfall}_123456_2019-01-01T12-23-42.{out|dat}</code>. They can be manually removed.<br />
<br />
==Signal troubleshooting==<br />
<br />
===Blank or solid purple waterfall?===<br />
At the first sign of trouble, put your station into testing mode. This way bad waterfalls do not get uploaded to the database.<br />
<br />
*Make sure the RTLSDR gain is set correctly. If set too high, a blank waterfall can result. If set to low, same. Test a value between 7 and 15. <br />Check your gain value is valid. Wrong values can result in blank waterfalls. For for example '7.7.' will result in errors (and a blank waterfall - there is an extra '.' at the end). <br /><code>journalctl -u satnogs-client.service</code> It might be a big file, but work through it and look for errors. <br /><code>df -h</code> Ensure there is sufficient hard drive space. If temp files can not be created, the waterfall might be blank. <br />Run <code>rtl_test</code> for about 30 seconds and make sure you can connect with the dongle and that there are no errors.<br />
<br />
===Not receiving anything?===<br />
<br />
*Make sure the satellite you are testing observations against is active and recently received by others on [https://network.satnogs.org our production network site]. If you click on a satellite name, a popup will appear and give you the option to click on "Past Observations". If everything in the past shows red, then the problem is likely with that satellite.<br />
<br />
*SO-50 is a good satellite to use for testing as it is a strong FM voice signal assuming you have UHF capabilities. Schedule using "PE0SAT - Mode V/U FM Voice - 436.794 MHz". Here is an example to compare against: https://network.satnogs.org/observations/3334/<br />
<br />
*ISS is a good test for VHF as the APRS digipeater is alive again (as of this writing; check [https://www.issfanclub.com/ issfanclub.com] for up-to-date information). When you schedule it, be sure to select the APRS downlink.<br />
<br />
*If you're using an rtlsdr, check that it can be seen and is operating correctly by running rtl_test. Let it run for 30 seconds or so, then hit Ctrl-c to kill it:<br />
<br />
<pre><br />
pi@raspberrypi:~ $ rtl_test <br />
Found 1 device(s):<br />
0: Realtek, RTL2838UHIDIR, SN: 00000001<br />
<br />
Using device 0: Generic RTL2832U OEM<br />
Found Rafael Micro R820T tuner<br />
Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6 <br />
[R82XX] PLL not locked!<br />
Sampling at 2048000 S/s.<br />
<br />
Info: This tool will continuously read from the device, and report if<br />
samples get lost. If you observe no further output, everything is fine.<br />
<br />
Reading samples in async mode...<br />
^CSignal caught, exiting!<br />
<br />
User cancel, exiting...<br />
Samples per million lost (minimum): 0<br />
</pre><br />
<br />
*You can also try a manual run of satnogs_fm_demod.py to make sure that works:<br />
<br />
<pre><br />
$ cd /tmp<br />
$ satnogs_fm_demod.py --rx-sdr-device=rtlsdr --rx-freq=444000000 --file-path=./audio-out.ogg --waterfall-file-path=./waterfall.dat<br />
</pre><br />
<br />
Let it run for a minute or so. If everything is working, this should create an .ogg file and a .dat file of non-zero size (probably a few MB each). <br />
<br />
[[File:Waterfall_3519_2017-04-24T04-48-48_resized.png|frame|Check your location!]]<br />
===Observations seem off-frequency?===<br />
<br />
*'''PPM drift''' While newer SDR devices are very good and stable, there still may be some PPM drift to compensate for if you notice that signals are consistently off center. The SATNOGS_PPM_ERROR setting in /etc/supervisord.d/satnogs.ini can be used to correct for this.<br />
*'''Clock sync''' Make sure your clock is synced. Ensure ntp is configured and running (especially with the Raspberry Pi which lacks a real time clock)<br />
*'''Wrong location''' If your signal seems to be on but drifts at the apex like in this image, check to make sure your Latitude, Longitude, and Elevation coordinates are set properly and in the right format.<br />
<br />
[[File:Rf noise.png|alt=RF Noise|left|thumb|400x400px|Too much RF Noise]]<br />
<br />
===RF Noise===<br />
If you notice a noise in the waterfall every time motors are spinning, you will need to:<br />
<br />
*Twist each pair or the motor wire<br />
*Add proper grounding<br />
*Add capacitor to the DC input of drivers<br />
*wrap the motors wire with adhesite aluminum and then connect it to GND on driver side<br />
*add ferites to motors wires<br />
<br />
[[Category:Operate]]<br />
[[Category:Hardware]]<br />
[[Category:Software]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=Operation&diff=3350Operation2020-01-20T16:27:34Z<p>Acinonyx: Replace redirection page</p>
<hr />
<div>__TOC__<br />
<br />
==Scheduling your first test observation==<br />
<br />
=== Prerequisites ===<br />
<br />
*You've set up your [[Raspberry Pi|SatNOGS client successfully]]<br />
*You've created an account on the [[Network]], created a ground station, and it's showing up as "online"<br />
<br />
If you've run into any problems with those steps, check out the [[Troubleshooting]] page or ask for help in [https://community.libre.space/c/satnogs the community forum], [https://riot.im/app/#/room/#satnogs:matrix.org the Matrix room], or on IRC at #satnogs on Freenode.<br />
<br />
=== SatNOGS Network ===<br />
[[File:Satnogs-network-cap.png|800px|SatNOGS Network Screen capture]]<br />
<br />
*Navigate your ground station page in the [https://network.satnogs.org Network Environment] (user name -> "My Profile" -> click on the name of your ground station).<br />
*Select the "Upcoming passes" tab.<br />
*Look for a pass with a "schedule" button that isn't greyed out, and click it. Ensure it is a good (high) pass of an operational satellite (check the color bar on the satellite)<br />
*In the "New Observation" page that comes up, click the "Calculate" button, then click "Schedule".<br />
*You should now see a page for that observation; in the "Waterfall" tab, you should see "Waiting for waterfall".<br />
*You can also schedule multiple observations at once for a single satellite via the [https://network.satnogs.org/observations/new/ "Observation new page"].<br />
<br />
=== Ground Station ===<br />
<br />
Now SSH to your ground station computer and run these steps:<br />
<br />
*Follow the satnogs-client logs. Depending on your setup, this might be done with <code>journalctl -f -u satnogs-client.service</code>, or <code>tail -F /var/log/supervisor/satnogs.log</code><br />
*Before the observation is scheduled to start, you should see your client wake up once per minute to check for new jobs:<br />
<br />
<pre><br />
Oct 02 00:16:02 raspberrypi satnogs-client[10124]: 2017-10-02 00:16:02,477 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 02 00:16:02 raspberrypi satnogs-client[10124]: 2017-10-02 00:16:02,479 - satnogsclient - DEBUG - Sending message: [{"origin": "network", "transmitter": "uXJ8NQNcH8b9osRc<br />
Oct 02 00:16:02 raspberrypi satnogs-client[10124]: 2017-10-02 00:16:02,488 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2<br />
Oct 02 00:16:59 raspberrypi satnogs-client[10124]: 2017-10-02 00:16:59,615 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next r<br />
Oct 02 00:16:59 raspberrypi satnogs-client[10124]: 2017-10-02 00:16:59,661 - apscheduler.executors.default - INFO - Running job "post_data (trigger: interval[0:02:00], next <br />
Oct 02 00:16:59 raspberrypi satnogs-client[10124]: 2017-10-02 00:16:59,668 - apscheduler.executors.default - INFO - Job "post_data (trigger: interval[0:02:00], next run at: <br />
Oct 02 00:17:00 raspberrypi satnogs-client[10124]: 2017-10-02 00:17:00,906 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 02 00:17:00 raspberrypi satnogs-client[10124]: 2017-10-02 00:17:00,908 - satnogsclient - DEBUG - Sending message: [{"origin": "network", "transmitter": "uXJ8NQNcH8b9osRc<br />
Oct 02 00:17:00 raspberrypi satnogs-client[10124]: 2017-10-02 00:17:00,912 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2<br />
</pre><br />
<br />
*At the scheduled time for the observation, you should see the client kick off the observation:<br />
<br />
<pre><br />
Oct 02 00:18:00 raspberrypi satnogs-client[10124]: 2017-10-02 00:18:00,774 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 02 00:18:00 raspberrypi satnogs-client[10124]: 2017-10-02 00:18:00,776 - satnogsclient - DEBUG - Sending message: [{"origin": "network", "transmitter": "uXJ8NQNcH8b9osRc<br />
Oct 02 00:18:00 raspberrypi satnogs-client[10124]: 2017-10-02 00:18:00,781 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2<br />
Oct 02 00:18:22 raspberrypi satnogs-client[10124]: 2017-10-02 00:18:22,022 - apscheduler.executors.default - INFO - Running job "spawn_observer (trigger: date[2017-10-02 00:<br />
Oct 02 00:18:22 raspberrypi satnogs-client[10124]: 2017-10-02 00:18:22,082 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:4533<br />
Oct 02 00:18:22 raspberrypi satnogs-client[10124]: 2017-10-02 00:18:22,109 - satnogsclient - DEBUG - Sending message: p<br />
Oct 02 00:18:22 raspberrypi satnogs-client[10124]: 2017-10-02 00:18:22,110 - satnogsclient - DEBUG - Received message: 0.000000<br />
Oct 02 00:18:22 raspberrypi satnogs-client[10124]: 0.000000<br />
Oct 02 00:18:22 raspberrypi satnogs-client[10124]: 2017-10-02 00:18:22,111 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:4532<br />
Oct 02 00:18:22 raspberrypi satnogs-client[10124]: 2017-10-02 00:18:22,115 - satnogsclient - DEBUG - Sending message: P 188.276951189 -0.0155264223734<br />
Oct 02 00:18:22 raspberrypi satnogs-client[10124]: 2017-10-02 00:18:22,119 - satnogsclient - DEBUG - Received message: RPRT -1<br />
Oct 02 00:18:22 raspberrypi satnogs-client[10124]: 2017-10-02 00:18:22,143 - satnogsclient - DEBUG - Sending message: F 436038107<br />
Oct 02 00:18:22 raspberrypi satnogs-client[10124]: 2017-10-02 00:18:22,144 - satnogsclient - DEBUG - Received message: RPRT 0<br />
</pre><br />
<br />
*After the observation is over, you should see the client submit the data to the SatNOGS network<br />
<br />
In the SatNOGS Stage Environment, refresh the Observation page. You should now see a waterfall plot for your data.<br />
<br />
If that all worked -- congratulations! You've just successfully completed your first SatNOGS observation.<br />
<br />
If it didn't work, don't feel bad -- it can take a few attempts before you get it right. Have a look at the [[Troubleshooting]] page for tips, and don't forget to contact the community if you need help.<br />
<br />
== Rating observations ==<br />
<br />
Once your observation results are posted back in the Network by your satnogs-client, you should go to Network to rate your observations. Any orange marked observations need vetting by users.<br />
{{Message|The main purpose of validating observations is to know if the satellite/transmitter is alive, if it transmits in the listed frequency/ies, and if the TLEs we have are accurate.}}<br />
{{Message|The functionality may change in the future, but for now even a faint sign on the waterfall is enough to make it valid.}}<br />
<br />
[[File:Screenshot from 2017-10-15 11-59-59.png|frame|Orange need your rating!]]<br />
<br />
Categories of observations:<br />
<br />
*'''Good'''<br />
**You should mark observations as "Good" when it is clear from the waterfall and/or audio recording that a satellite is present. Keyboard Shortcut 'g'<br />
*'''Bad'''<br />
**You should mark observations as "Bad" when by examining the waterfall and/or audio it is obvious that there was no satellite detected in this observation. Keyboard Shortcut 'b'<br />
*'''Failed'''<br />
**You should mark observations as "Failed" when the station failed entirely: the waterfall and/or audio is empty or not present, or there's too much noise. Keyboard Shortcut 'f'<br />
<br />
Below is a collection of waterfalls with possible results of observations:<br />
<gallery heights="400px" widths="200px"><br />
File:Waterfall_20657_2017-10-15T10-07-51.png|'''Good''': Satellite is visible (bars-bursts of data in the middle). ''Note that the tangent-shaped lines are local noise''<br />
File:Waterfall_20534_2017-10-15T07-21-24.png|'''Bad''': Typical empty waterfall with no visible signals.<br />
File:Waterfall 20499 2017-10-15T07-17-32.png|'''Good''': Although drifting, satellite is clearly visible around the center.<br />
File:Waterfall 20506 2017-10-15T06-47-36.png|'''Good''': Faint CW signal around center-left. ''Note you might have to expand image to notice it''<br />
File:Waterfall_20571_2017-10-15T05-25-56.png|'''Good''': Clearly visible FM transmission. ''Note that the swinging lines are terrestrial noise''<br />
File:Waterfall 20483 2017-10-15T05-12-49.png|'''Good''': Straight line in the center bottom is a satellite. ''Note transmission on left bottom is the same satellite on a different frequency''<br />
File:Waterfall_145037_2018-05-26T15-18-18.png|'''Good''': Packets clearly seen in the middle of the observation. ''Note transmission starting middle bottom then moving to left and back to right *is* a space object (satellite). It is not the one we are tracking though (different TLE, thus this type if curve).''<br />
</gallery><br />
<br />
You can see more [[Rating_Observations|examples of observations and ratings]] and a [[Taxonomy_of_Observations]].<br />
<br />
[[File:Observation_with_discuss_button_highlighted.png|thumb|frame|Click the "Discuss" button to post in our web forum. (Note: this will only appear in the SatNOGS network.)]]<br />
<br />
===Discuss===<br />
If you're still unsure about an observation, click the "Discuss" button, near the top right of the observation's page; that will post a link to it on [https://community.libre.space/c/observations the Observations forum], where you can ask for feedback.<br />
<br />
== Scheduling Observations in Standalone Mode ==<br />
<br />
=== Scheduling a NOAA Observation in Standalone Mode ===<br />
<br />
Instructions for scheduling a NOAA observation, including decoding of the APT images, can be found [http://ixion.csd.uoc.gr/vardakis/index.php/satnogs-noaa-apt-decoder-walkthrough/ here].<br />
<br />
<br />
== Network Permissions Matrix ==<br />
<br />
{| class="wikitable" style="text-align:center"<br />
|-<br />
! scope="col" |User<br />
! scope="col" |View and discuss observation<br />
! scope="col" |Vet observation<br />
! scope="col" |Delete future observation<br />
! scope="col" |Schedule observation<br />
|-<br />
|Non Authenticated<br />
|All<br />
|None<br />
|None<br />
|None<br />
|-<br />
|Authenticated<br />
|All<br />
|None<br />
|None<br />
|None<br />
|-<br />
|Station Owner (Future)<br />
|All<br />
|None<br />
|None<br />
|None<br />
|-<br />
|Station Owner (Offline)<br />
|All<br />
|Own(stations or observations)<br />
|Own(stations or observations)<br />
|None<br />
|-<br />
|Station Owner (Testing)<br />
|All<br />
|Own(stations or observations)<br />
|Own(stations or observations)<br />
|Own(stations)<br />
|-<br />
|Station Owner (Online)<br />
|All<br />
|All<br />
|Own(stations or observations)<br />
|All(online stations)<br />
|-<br />
|Moderator<br />
|All<br />
|All<br />
|All<br />
|All<br />
|-<br />
|Admin<br />
|All<br />
|All<br />
|All<br />
|All<br />
|}<br />
Examples:<br />
<br />
*Authenticated user can view and discuss on all the observation. User can not vet or delete an observation. User can not schedule observation in any station.<br />
<br />
*Station Owner with at least one online station can view and discuss on all observations. Online station owner can vet or delete observations on stations that owns. Online station owner can vet or delete observation that has scheduled. Online station owner can schedule observations on all online stations.<br />
<br />
[[Category:Operate]]<br />
[[Category:Hardware]]<br />
[[Category:Software]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=Build&diff=3349Build2020-01-20T16:26:48Z<p>Acinonyx: Replace redirection page</p>
<hr />
<div>__NOTOC__<br />
==Introduction==<br />
<br />
Building a ground station need not be complicated. There are a few things to consider when working out what it is you are going to do. Choices such as the desire to have a fixed or steerable ground station will play a big part in the amount of equipment needed and the time taken as well as the complexity of any build. If you are new to this and a little unsure then a fixed (no rotator) option is a good choice. If you fancy a challenge and want to pick out the weakest signals then the steerable ground station might be what you are after. There is more detail in the [[Ground Stations]] page<br />
<br />
The illustration below sets out the various major components to give an idea as to what is commonly used.<br />
<br />
==Options for Ground Stations==<br />
<br />
A satellite ground station is made up from different parts. The following diagram can help you select your setup based on your needs and/or your existing setup.<br />
<br />
[[File:Satnogs_imagemap.png|center]]<br />
<br />
Here are some links explaining the different options:<br />
<br />
{| class="wikitable" style="margin: 0 auto;"<br />
!Platform<br />
!Controller<br />
!Rotator<br />
!Radio<br />
!Antenna<br />
|-<br />
|[[Raspberry_Pi|Raspberry Pi]]<br />
|[[SatNOGS Rotator Controller|SatNOGS Controller]]<br />
|[[SatNOGS_Rotator_v3|SatNOGS Rotator]]<br />
|[[Radio#SDR|SDR]]<br />
|[[Antennas|Yagi]]<br />
|-<br />
|[[SatNOGS_Client_Ansible|Debian system]]<br />
|[http://spid.net.pl/en/rot2prog-2/ Rot2Prog]<br />
|[[SPID Big RAS]]<br />
|<br />
|[[Antennas|Helical]]<br />
|-<br />
|[[Linux Desktop]]<br />
|[[G-5500|lsf-g5500]]<br />
|[[G-5500|Yaesu G5500]]<br />
|<br />
|[[Antennas|Vertical]]<br />
|-<br />
|<br />
|[https://wiki.satnogs.org/SatNOGS_Arduino_Uno/CNC_Shield_Based_Rotator_Controller Arduino UNO CNC Shield based controller]<br />
|[[No rotator]]<br />
|<br />
|[[Antennas|Cross-Yagi]]<br />
|-<br />
|<br />
|[https://community.libre.space/t/ramps-1-4-board-for-satnogs-rotator/3386 RAMPS 1.4 Board for SatNOGS Rotator]<br />
|<br />
|<br />
|-<br />
|}<br />
<br />
{{Message|Use the above table to select your setup. E.g. RPi3 > Yaesu G550 > SDR > UHF helical & VHF Cross Yagi}}<br />
<br />
==How do I pick?==<br />
<br />
'''Client''': The Raspberry Pi is the reference platform for SatNOGS, and is currently the option that has the best support from the community. Certain SDRs may benefit from a more powerful CPU, like what you'd find in a desktop machine; however, currently you'll need to set that up on your own.<br />
<br />
'''Rotator''': A rotator, like the [[SatNOGS_Rotator_v3|SatNOGS Rotator v3]], will allow your antenna to follow satellites as they move across the sky, and thus pick up fainter signals. But if you want to get started quickly, or don't have the hardware skills to build your own, you can still pick up stronger signals (the ISS, NOAA and Meteor weather satellites) with a [[No_rotator|no-rotator]] setup. If you already have [https://github.com/Hamlib/Hamlib/wiki/Supported-Rotators a rotator supported by rotctl], you can use that.<br />
<br />
'''Signal Reception''': The reference radio for SatNOGS is the [https://www.rtl-sdr.com RTL-SDR v3], but other latest-generation SDRs like the [http://www.nooelec.com/store/nesdr-smart-sdr.html NooElec NESDR SMart] should work as well. Higher-end SDRs should work as well, but can get a bit expensive. Alternately, [https://sourceforge.net/p/hamlib/wiki/Supported%20Radios/ any radio supported by rigctl] should work.<br />
<br />
Amplification is generally done by a low noise amplifier, or LNA. There are multiple options:<br />
<br />
*A wide-band LNA next to your SDR (see [http://lna4all.blogspot.com/ LNA4ALL], [https://iz7boj.wordpress.com/2019/04/11/spf5189z-lna-measurements-on-vna/ SPF5189] and similar)<br />
*A band specific (or two) pre-amplifiers next to your antennas ([http://www.wimo.com/mast-preamplifier_e.html example])<br />
*No amplification at all...just pump the gain of your SDR. (This is not recommended for the rtl-sdr.)<br />
<br />
'''Antenna''': Stationary antennas (eg: [https://en.wikipedia.org/wiki/Turnstile_antenna Turnstile], [https://community.libre.space/t/parasitic-lindenblad-on-uhf/1128/2 Lindenblad]) will be easy to build and mount, as they won't require rotator hardware. They will let you receive stronger broadcasts, like NOAA weather satellites and ISS broadcasts, but may not work for receiving fainter cubesat broadcasts. Directional antennas (eg: Yagis, Helicals) can be more complicated to build, but will also require a rotator to track satellites across the sky. The advantage is that they will let you pick up fainter broadcasts from cubesats or ham radio satellites.<br />
<br />
==Next steps==<br />
<br />
Once you have a ground station ready, you should go ahead and operate it! More info can be found on the [[Operation]] wiki page.<br />
<br />
[[Category:Build]]<br />
[[Category:Hardware]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=Raspberry_Pi&diff=3348Raspberry Pi2020-01-20T16:13:10Z<p>Acinonyx: Point to SatNOGS Client Setup page for setup instructions</p>
<hr />
<div>[[File:B3342fcc865731d69e0c9d7a8b1abb887185bc13 1 531x500.jpg|alt=Libre Space Foundation Raspberry Pi Case|thumb|Libre Space Foundation Raspberry Pi Case, [https://www.thingiverse.com/thing:3233687 on thingiverse]]]<br />
<br />
==Introduction==<br />
<br />
The Raspberry Pi (version 3 and 4) is the reference platform for SatNOGS (see our [[SatNOGS Client Ansible|Ansible guide]] to install SatNOGS on other Linux machines). You can try using various distributions for this (eg. Debian/Armbian, Arch, Fedora), but the one we suggest is our custom image based on latest Raspbian.<br />
<br />
{{Message|This page assumes you have an account and a ground station registered on either network.satnogs.org or network-dev.satnogs.org. Make note of your station ID and API Key.}}<br />
==[https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/jobs/artifacts/2019091100/download?job=release <span class="glyphicon glyphicon-save"></span>Download]==<br />
<br />
You can download the latest Raspbian SatNOGS image following the links from the [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/tags latest tag on GitLab]. This image has the SatNOGS setup script installed, the SSH server enabled and all required packages preinstalled. Click on the cloud icon and then click "Download release". You will get an Artifacts.zip file:<br />
<br />
==Artifacts list==<br />
<br />
The current artifacts list consists of:<br />
<br />
*A Zipped image file<br />
*An Image info file<br />
*A SHA256 checksums file<br />
<br />
===Data integrity verification===<br />
<br />
You should verify the data integrity of the artifacts by checking the SHA256 checksums. On Linux, run <code>sha256sum -c sha256sums</code> in the directory where the artifacts are downloaded and unzipped.<br />
<br />
Example:<br />
<pre><br />
$ sha256sum -c sha256sums <br />
2017-09-29-Raspbian-SatNOGS-master-lite.info: OK<br />
image_2017-09-29-Raspbian-SatNOGS-master-lite.zip: OK<br />
</pre><br />
<br />
==Flashing==<br />
[https://www.raspberrypi.org/documentation/installation/installing-images/README.md Follow the usual Raspbian flashing instructions], and boot your Raspberry Pi.<br />
<br />
==Getting console access==<br />
You can log in the Raspberry Pi by connecting it to a keyboard and monitor or through network via an SSH connection.<br />
<br />
===Keyboard and monitor===<br />
Once your Raspberry Pi is booted, log in with username "'''pi'''" password "'''raspberry'''".<br />
<br />
===Ethernet===<br />
If you are using wired Ethernet you should get connectivity right away. You just need to find the IP address of Raspberry Pi (e.g. in your router management interface). Log in with SSH using username "'''pi'''" password "'''raspberry'''":<br />
$ ssh pi@192.168.1.2<br />
If your network supports [[wikipedia:Zero-configuration_networking|<code>zeroconf</code>]], then you can use the hostname of your Pi:<br />
$ ssh pi@raspberrypi.local<br />
<br />
===Pre-boot wireless configuration===<br />
If neither keyboard/monitor, nor a wired Ethernet are available, you can set up a WiFi connection before boot by mounting the boot partition of the flashed SD card and editing files directly. Note your OS may mount boot partition in a different location. [https://raspberrypi.stackexchange.com/questions/10251/prepare-sd-card-for-wifi-on-headless-pi#comment98121_57023 Windows users have line ending problems]. Suggested actions:<br />
<br />
$ $EDITOR /media/Raspbian_SatNOGS-boot/wpa_supplicant.conf<br />
<br />
contents: (note key_mgmt options include NONE, WPA-PSK, WPA-EAP)<br />
<br />
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br />
update_config=1<br />
country=US<br />
<br />
network={<br />
ssid="NETWORK_NAME"<br />
psk="password"<br />
key_mgmt=WPA-PSK<br />
}<br />
<br />
==Configuration==<br />
<br />
===Raspberry Pi Setup===<br />
Once your Raspberry Pi is booted, log in with username "'''pi'''" password "'''raspberry'''" and run: <br />
<pre><br />
$ sudo raspi-config<br />
</pre><br />
<br />
You will want to be sure to do the following:<br />
<br />
*Set a strong, unique password<br />
*Change localization settings:<br />
**by default the rpi locale is configured for EN-GB, change as appropriate (ie: to EN_US.UTF-8)<br />
**set timezone (we recommend UTC so your logs match the times in Network)<br />
**set keyboard layout, again this is defaulting to a UK layout<br />
**set wifi country<br />
**expand filesystem<br />
*Configure network or WiFi (see [https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md this doc for network configuration instructions])<br />
*Finish and reboot<br />
<br />
===SatNOGS Setup===<br />
SSH to the Raspberry Pi with user "'''pi'''" and your new password.<br />
<br />
Follow [[SatNOGS Client Setup]] instructions to configure the system.<br />
<br />
[[Category:Build]]<br />
[[Category:Software]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=SatNOGS_Client_Ansible&diff=3347SatNOGS Client Ansible2020-01-20T16:09:42Z<p>Acinonyx: Move setup instruction to separate page</p>
<hr />
<div>==Introduction==<br />
<br />
'''SatNOGS Client Ansible''' makes the actual provisioning of the '''SatNOGS Client''' system. It is called, under the hood, when applying the configuration using [[SatNOGS Client Setup|SatNOGS Client Setup utility]]. It currently supports Raspbian and Debian (stretch and buster). <br />
<br />
==Raspbian==<br />
<br />
For Raspberry Pi, which is the reference platform for SatNOGS, a [[Raspberry Pi|Raspbian image]] with '''SatNOGS Client Ansible''' pre-installed is available.<br />
<br />
==Debian==<br />
<br />
{{Warning|Follow these instructions only if you are provisioning SatNOGS to Debian from another host or are installing on the same host. If you are using [[Raspberry_Pi|SatNOGS Raspbian]] image, follow [[SatNOGS_Client_Setup|SatNOGS Client Setup]] to set up your system. }}These sections contain generic instructions for installing SatNOGS Client on a Debian system.<br />
<br />
===Prerequisites===<br />
<br />
*A target Debian system. To install Debian please follow the [https://www.debian.org/releases/stretch/installmanual Debian Installation Guide] and chose the net installer if you want to run a headless server. The target system can be the host itself.<br />
*A user (referenced later as ''youruser'') which is member of 'sudo' group exists on the target system.<br />
*An SSH server running on the target system.<br />
*A host system with Git and latest version of Ansible installed. To install Ansible on Debian, follow the [https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#latest-releases-via-apt-debian Ansible Installation Guide].<br />
<br />
===Installation===<br />
<br />
On the host system run the following commands:<br />
$ git clone <nowiki>https://gitlab.com/librespacefoundation/satnogs/satnogs-client-ansible.git</nowiki> # Clone SatNOGS Client Ansible repository<br />
$ cd satnogs-client-ansible # Change to cloned repository directory<br />
$ cp -r production.dist production # Copy dist configuration<br />
$ vi production/inventory/hosts # Update file with your own target host e.g. 127.0.0.1, user and SSH password<br />
$ ssh youruser@yourtargetsystem true # Test SSH connection to target system<br />
$ ansible-playbook -i production/inventory -K site.yml # Run Ansible playbook<br />
$ ssh -t youruser@yourtargetsystem sudo satnogs-setup # Setup SatNOGS client (see below)<br />
<br />
<br /><br />
<br />
[[Category:Build]]<br />
[[Category:Software]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=MediaWiki:Sidebar&diff=3346MediaWiki:Sidebar2020-01-20T16:08:37Z<p>Acinonyx: Replace SatNOGS Client Ansible with SatNOGS Client Setup page</p>
<hr />
<div>* Build<br />
** Raspberry_Pi|Install a Raspberry Pi<br />
** Build|Build a Ground Station<br />
** SatNOGS_Client_Setup|Configure your Station<br />
** Rotators|Rotators<br />
** Antennas|Antennas<br />
** Omnidirectional_Station_How_To| Omnidirectional Station<br />
** Radio|SDR Support<br />
** Troubleshooting|Client Troubleshooting<br />
** SatNOGS_Client_Setup#Updating_SatNOGS_Client_software|Updating your SatNOGS Client<br />
* Operate<br />
** Operation|Managing Observations<br />
** Decode_Telemetry_and_Packets|Decode Telemetry and Packets<br />
** Telemetry_Dashboards|Telemetry Dashboards<br />
** :Category:RF Modes|RF Modes<br />
* Contribute<br />
** Get_Started|Get Started<br />
** Satnogs_DB|Crowd-Sourced Satellite Info<br />
** Software_contribution|Software Contribution<br />
** Development_Environment|Development Environment<br />
** Hacking_the_GNURadio_Module_'gr-satnogs'|SatNOGS GNURadio Module<br />
** SatNOGS_Client_Development|SatNOGS Client Development<br />
** Academic_Papers|Academic Papers citing SatNOGS<br />
** Provide_documentation|Provide Documentation<br />
* Contact<br />
** Get_In_Touch|Get In Touch<br />
** https://community.libre.space|Forums<br />
* Links<br />
** https://db.satnogs.org|SatNOGS DB<br />
** https://network.satnogs.org|SatNOGS Network<br />
** https://dashboard.satnogs.org|SatNOGS Dashboard<br />
** https://community.libre.space|SatNOGS Forums<br />
** https://libre.space|Libre Space Foundation<br />
** https://status.libre.space|System Status<br />
* SEARCH</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=SatNOGS_Client_Setup&diff=3345SatNOGS Client Setup2020-01-20T16:07:44Z<p>Acinonyx: Fix typo in anchor link</p>
<hr />
<div>==Introduction==<br />
<code>satnogs-setup</code> provides a set of scripts for configuring a '''SatNOGS Client''' system. <code>satnogs-setup</code> main function is to bring up a menu-driven console configuration utility and provision the system using [[SatNOGS Client Ansible|Ansible]].<br />
<br />
==Initial Setup==<br />
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.<br />
<br />
To configure a '''SatNOGS Client''' system:<br />
<br />
#SSH into the system and run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Set '''all''' options in '''Basic Configuration''' (see below)<br />
#Select <code>Apply</code> and the Raspberry Pi will configure itself; this may take some time<br />
#Select <code>Back</code> to exit<br />
{{Message|You can always reconfigure the software by running <code>sudo satnogs-setup</code> again.}}<br />
===Basic Configuration===<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_API_TOKEN</code><br />
|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.<br />
|-<br />
|<code>SATNOGS_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>rtlsdr</code>. Other devices supported by gr-satnogs include <code>usrpb200</code>, <code>usrp2</code>, <code>airspy/airspymini</code> or <code>hackrf</code>; a complete list can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/apps/flowgraphs/satellites/README.md here].<br />
|-<br />
|<code>SATNOGS_STATION_ELEV</code><br />
|The height of your ground station above sea level in metres.<br />
|-<br />
|<code>SATNOGS_STATION_ID</code><br />
|The '''numeric ID''' assigned to your station in the SatNOGS Network site when the groundstation was created.<br />
|-<br />
|<code>SATNOGS_STATION_LAT</code><br />
|The latitude of your station. North is positive, south is negative.<br />
|-<br />
|<code>SATNOGS_STATION_LON</code><br />
|The longitude of your station. East is positive, west is negative.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_ENABLED</code><br />
|Whether or not to enable the Hamlibs rotator daemon. Rotctld is a software daemon that provides a network server to control a rotator on a serial port. If you don't have a rotator (like the [[No rotator|No rotator setup]]), enter <code>NO</code>.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_OPTS</code><br />
|Options for rotcld:<br />
For a yaesu rotator, use <code>-m 601 -r /dev/ttyACM0 -s 9600 -T 0.0.0.0</code><br />
<br />
For a SatNOGS rotator <code>-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200</code> or <code>-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200</code><br />
|}<br />
==Advanced Setup==<br />
{{Warning|Changing these settings is ''not'' recommended unless you're developing SatNOGS.}}A more detailed description on setting up a development environment using the SatNOGS reference setup is given in [[SatNOGS_Client_Development]].<br />
<br />
NOTE: To get your station online, you need to set SATNOGS_NETWORK_API_URL to https://network.satnogs.org/api/<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>APT_REPOSITORY</code><br />
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:<br />
<code>deb <nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10</nowiki> ./</code><br />
|-<br />
|<code>APT_KEY_URL</code><br />
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:<br />
<code><nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10/Release.key</nowiki></code><br />
|-<br />
|<code>APT_KEY_ID</code><br />
|This options allows you to specify an alternative SatNOGS packages repository key ID.<br />
|-<br />
|<code>SATNOGS_CLIENT_URL</code><br />
|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:<br />
<br />
*<code>git+https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@master</code> -- the 'master' branch (the current development version) of satnogs-client<br />
*<code><nowiki>git+https://gitlab.com/jdoe/satnogs-client.git@new-feature</nowiki></code> -- the 'new-feature' branch of jdoe's fork of satnogs-client<br />
|-<br />
|<code>SATNOGS_RADIO_GR_SATNOGS_VERSION</code><br />
|This options allows you to change the version of gr-satnogs package to be installed. For example:<br />
<code>1.5.1-1</code><br />
|-<br />
|<code>RF_GAIN</code><br />
|RF Gain value for your SDR hardware. Defaults can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/python/hw_settings.py here].<br />
<br />
*For rtl-sdr possible values are the following: <code>0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6</code><br />
|}<br />
==Updating SatNOGS Client Software==<br />
To update SatNOGS software, including the configuration tool itself:<br />
<br />
#SSH into the system and (re-)run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Select <code>Upgrade</code> to upgrade all distribution packages to the latest; this may require a reboot. If this option is not available, running an <code>Update</code> will make it show up<br />
#Select <code>Update</code> to update the configuration tool<br />
#Select <code>Apply</code> and the Raspberry Pi will update itself; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
'''WARNING: An update can potentially interrupt a running observation!'''<br />
===Upgrading from Debian 'stretch' to 'buster'===<br />
If you have already installed an older version of Debian or Raspbian SatNOGS image based on <code>stretch</code> (releases <= [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/tags/2018080300 2018080300]), it is recommended to upgrade to <code>buster</code>. Support for <code>stretch</code> will be dropped with the next release of <code>gr-satnogs</code>.<br />
====Method 1: Reflashing and reinstalling (recommended)====<br />
The recommended method to upgrade to <code>buster</code> is reflashing the latest Raspbian SatNOGS image (or reinstalling latest Debian). Follow [[Raspberry Pi 3|Raspberry Pi]] installation instructions and reinstall from scratch.<br />
====Method 2: Release upgrade using the configuration tool (advanced)====<br />
{{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:<br />
<br />
#SSH into the system<br />
#Make sure you have enough free space on your SD card (>2GiB) by running <code>df -h /</code> on the console<br />
#Run <code>sudo satnogs-setup</code> to bring up the configuration menu<br />
#On the Advanced menu, enable <code>SATNOGS_SETUP_RELEASE_UPGRADE_ENABLED</code> option, in case there isn't an option like that available run first <code>Update</code> and then try again to enable it.<br />
#On the Main menu, select <code>Apply</code> and let Ansible apply the configuration<br />
#On the Main menu, select <code>Upgrade</code>. The script will check if there is a new release upgrade and ask you to proceed<br />
#Keep an eye on the upgrade progress; <code>dpkg</code> may prompt for changes<br />
#Once the upgrade is completed, <code>satnogs-setup</code> will ask for a reboot<br />
#After the reboot, make sure you are on the correct release by running <code>lsb_release -a</code><br />
#Re-run <code>sudo satnogs-setup</code> and select <code>Update</code> and then <code>Apply</code><br />
<br />
==Verification of correct installation==<br />
To see if satnogs-client has started successfully, check the logs with journalctl:<pre><br />
$ journalctl -u satnogs-client.service<br />
</pre>You should see entries running approximately once per minute that look like this:<pre><br />
Oct 01 23:02:13 raspberrypi satnogs-client[6695]: * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)<br />
Oct 01 23:02:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:02:14,466 - satnogsclient - INFO - [LD] Downlink thread waiting for first downlink packet<br />
Oct 01 23:03:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:14,450 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:03:14 UTC)" (scheduled at 2017-10-01 23:03:14.423393+00:00)<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,324 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,325 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,327 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,453 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.423393+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,484 - apscheduler.executors.default - INFO - Running job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.436367+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,489 - apscheduler.executors.default - INFO - Job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,627 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,628 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,629 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:05:14 UTC)" executed successfully<br />
</pre>If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=SatNOGS_Client_Setup&diff=3344SatNOGS Client Setup2020-01-20T16:06:58Z<p>Acinonyx: Add link to SatNOGS Client Ansible page</p>
<hr />
<div>==Introduction==<br />
<code>satnogs-setup</code> provides a set of scripts for configuring a '''SatNOGS Client''' system. <code>satnogs-setup</code> main function is to bring up a menu-driven console configuration utility and provision the system using [[SatNOGS Client Ansible|Ansible]].<br />
<br />
==Initial Setup==<br />
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.<br />
<br />
To configure a '''SatNOGS Client''' system:<br />
<br />
#SSH into the system and run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Set '''all''' options in '''Basic Configuration''' (see below)<br />
#Select <code>Apply</code> and the Raspberry Pi will configure itself; this may take some time<br />
#Select <code>Back</code> to exit<br />
{{Message|You can always reconfigure the software by running <code>sudo satnogs-setup</code> again.}}<br />
===Basic Configuration===<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_API_TOKEN</code><br />
|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.<br />
|-<br />
|<code>SATNOGS_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>rtlsdr</code>. Other devices supported by gr-satnogs include <code>usrpb200</code>, <code>usrp2</code>, <code>airspy/airspymini</code> or <code>hackrf</code>; a complete list can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/apps/flowgraphs/satellites/README.md here].<br />
|-<br />
|<code>SATNOGS_STATION_ELEV</code><br />
|The height of your ground station above sea level in metres.<br />
|-<br />
|<code>SATNOGS_STATION_ID</code><br />
|The '''numeric ID''' assigned to your station in the SatNOGS Network site when the groundstation was created.<br />
|-<br />
|<code>SATNOGS_STATION_LAT</code><br />
|The latitude of your station. North is positive, south is negative.<br />
|-<br />
|<code>SATNOGS_STATION_LON</code><br />
|The longitude of your station. East is positive, west is negative.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_ENABLED</code><br />
|Whether or not to enable the Hamlibs rotator daemon. Rotctld is a software daemon that provides a network server to control a rotator on a serial port. If you don't have a rotator (like the [[No rotator|No rotator setup]]), enter <code>NO</code>.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_OPTS</code><br />
|Options for rotcld:<br />
For a yaesu rotator, use <code>-m 601 -r /dev/ttyACM0 -s 9600 -T 0.0.0.0</code><br />
<br />
For a SatNOGS rotator <code>-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200</code> or <code>-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200</code><br />
|}<br />
==Advanced Setup==<br />
{{Warning|Changing these settings is ''not'' recommended unless you're developing SatNOGS.}}A more detailed description on setting up a development environment using the SatNOGS reference setup is given in [[SatNOGS_Client_Development]].<br />
<br />
NOTE: To get your station online, you need to set SATNOGS_NETWORK_API_URL to https://network.satnogs.org/api/<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>APT_REPOSITORY</code><br />
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:<br />
<code>deb <nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10</nowiki> ./</code><br />
|-<br />
|<code>APT_KEY_URL</code><br />
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:<br />
<code><nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10/Release.key</nowiki></code><br />
|-<br />
|<code>APT_KEY_ID</code><br />
|This options allows you to specify an alternative SatNOGS packages repository key ID.<br />
|-<br />
|<code>SATNOGS_CLIENT_URL</code><br />
|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:<br />
<br />
*<code>git+https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@master</code> -- the 'master' branch (the current development version) of satnogs-client<br />
*<code><nowiki>git+https://gitlab.com/jdoe/satnogs-client.git@new-feature</nowiki></code> -- the 'new-feature' branch of jdoe's fork of satnogs-client<br />
|-<br />
|<code>SATNOGS_RADIO_GR_SATNOGS_VERSION</code><br />
|This options allows you to change the version of gr-satnogs package to be installed. For example:<br />
<code>1.5.1-1</code><br />
|-<br />
|<code>RF_GAIN</code><br />
|RF Gain value for your SDR hardware. Defaults can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/python/hw_settings.py here].<br />
<br />
*For rtl-sdr possible values are the following: <code>0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6</code><br />
|}<br />
==Updating SatNOGS Client Software==<br />
To update SatNOGS software, including the configuration tool itself:<br />
<br />
#SSH into the system and (re-)run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Select <code>Upgrade</code> to upgrade all distribution packages to the latest; this may require a reboot. If this option is not available, running an <code>Update</code> will make it show up<br />
#Select <code>Update</code> to update the configuration tool<br />
#Select <code>Apply</code> and the Raspberry Pi will update itself; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
'''WARNING: An update can potentially interrupt a running observation!'''<br />
===Upgrading from Debian 'stretch' to 'buster'===<br />
If you have already installed an older version of Debian or Raspbian SatNOGS image based on <code>stretch</code> (releases <= [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/tags/2018080300 2018080300]), it is recommended to upgrade to <code>buster</code>. Support for <code>stretch</code> will be dropped with the next release of <code>gr-satnogs</code>.<br />
====Method 1: Reflashing and reinstalling (recommended)====<br />
The recommended method to upgrade to <code>buster</code> is reflashing the latest Raspbian SatNOGS image (or reinstalling latest Debian). Follow [[Raspberry Pi 3|Raspberry Pi]] installation instructions and reinstall from scratch.<br />
====Method 2: Release upgrade using the configuration tool (advanced)====<br />
{{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:<br />
<br />
#SSH into the system<br />
#Make sure you have enough free space on your SD card (>2GiB) by running <code>df -h /</code> on the console<br />
#Run <code>sudo satnogs-setup</code> to bring up the configuration menu<br />
#On the Advanced menu, enable <code>SATNOGS_SETUP_RELEASE_UPGRADE_ENABLED</code> option, in case there isn't an option like that available run first <code>Update</code> and then try again to enable it.<br />
#On the Main menu, select <code>Apply</code> and let Ansible apply the configuration<br />
#On the Main menu, select <code>Upgrade</code>. The script will check if there is a new release upgrade and ask you to proceed<br />
#Keep an eye on the upgrade progress; <code>dpkg</code> may prompt for changes<br />
#Once the upgrade is completed, <code>satnogs-setup</code> will ask for a reboot<br />
#After the reboot, make sure you are on the correct release by running <code>lsb_release -a</code><br />
#Re-run <code>sudo satnogs-setup</code> and select <code>Update</code> and then <code>Apply</code><br />
<br />
==Verification of correct installation==<br />
To see if satnogs-client has started successfully, check the logs with journalctl:<pre><br />
$ journalctl -u satnogs-client.service<br />
</pre>You should see entries running approximately once per minute that look like this:<pre><br />
Oct 01 23:02:13 raspberrypi satnogs-client[6695]: * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)<br />
Oct 01 23:02:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:02:14,466 - satnogsclient - INFO - [LD] Downlink thread waiting for first downlink packet<br />
Oct 01 23:03:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:14,450 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:03:14 UTC)" (scheduled at 2017-10-01 23:03:14.423393+00:00)<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,324 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,325 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,327 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,453 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.423393+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,484 - apscheduler.executors.default - INFO - Running job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.436367+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,489 - apscheduler.executors.default - INFO - Job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,627 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,628 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,629 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:05:14 UTC)" executed successfully<br />
</pre>If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=SatNOGS_Client_Setup&diff=3343SatNOGS Client Setup2020-01-20T16:06:03Z<p>Acinonyx: Fix heading</p>
<hr />
<div>==Introduction==<br />
<code>satnogs-setup</code> provides a set of scripts for configuring a '''SatNOGS Client''' system. <code>satnogs-setup</code> main function is to bring up a menu-driven console configuration utility and provision the system using Ansible.<br />
<br />
==Initial Setup==<br />
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.<br />
<br />
To configure a '''SatNOGS Client''' system:<br />
<br />
#SSH into the system and run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Set '''all''' options in '''Basic Configuration''' (see below)<br />
#Select <code>Apply</code> and the Raspberry Pi will configure itself; this may take some time<br />
#Select <code>Back</code> to exit<br />
{{Message|You can always reconfigure the software by running <code>sudo satnogs-setup</code> again.}}<br />
===Basic Configuration===<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_API_TOKEN</code><br />
|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.<br />
|-<br />
|<code>SATNOGS_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>rtlsdr</code>. Other devices supported by gr-satnogs include <code>usrpb200</code>, <code>usrp2</code>, <code>airspy/airspymini</code> or <code>hackrf</code>; a complete list can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/apps/flowgraphs/satellites/README.md here].<br />
|-<br />
|<code>SATNOGS_STATION_ELEV</code><br />
|The height of your ground station above sea level in metres.<br />
|-<br />
|<code>SATNOGS_STATION_ID</code><br />
|The '''numeric ID''' assigned to your station in the SatNOGS Network site when the groundstation was created.<br />
|-<br />
|<code>SATNOGS_STATION_LAT</code><br />
|The latitude of your station. North is positive, south is negative.<br />
|-<br />
|<code>SATNOGS_STATION_LON</code><br />
|The longitude of your station. East is positive, west is negative.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_ENABLED</code><br />
|Whether or not to enable the Hamlibs rotator daemon. Rotctld is a software daemon that provides a network server to control a rotator on a serial port. If you don't have a rotator (like the [[No rotator|No rotator setup]]), enter <code>NO</code>.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_OPTS</code><br />
|Options for rotcld:<br />
For a yaesu rotator, use <code>-m 601 -r /dev/ttyACM0 -s 9600 -T 0.0.0.0</code><br />
<br />
For a SatNOGS rotator <code>-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200</code> or <code>-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200</code><br />
|}<br />
==Advanced Setup==<br />
{{Warning|Changing these settings is ''not'' recommended unless you're developing SatNOGS.}}A more detailed description on setting up a development environment using the SatNOGS reference setup is given in [[SatNOGS_Client_Development]].<br />
<br />
NOTE: To get your station online, you need to set SATNOGS_NETWORK_API_URL to https://network.satnogs.org/api/<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>APT_REPOSITORY</code><br />
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:<br />
<code>deb <nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10</nowiki> ./</code><br />
|-<br />
|<code>APT_KEY_URL</code><br />
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:<br />
<code><nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10/Release.key</nowiki></code><br />
|-<br />
|<code>APT_KEY_ID</code><br />
|This options allows you to specify an alternative SatNOGS packages repository key ID.<br />
|-<br />
|<code>SATNOGS_CLIENT_URL</code><br />
|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:<br />
<br />
*<code>git+https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@master</code> -- the 'master' branch (the current development version) of satnogs-client<br />
*<code><nowiki>git+https://gitlab.com/jdoe/satnogs-client.git@new-feature</nowiki></code> -- the 'new-feature' branch of jdoe's fork of satnogs-client<br />
|-<br />
|<code>SATNOGS_RADIO_GR_SATNOGS_VERSION</code><br />
|This options allows you to change the version of gr-satnogs package to be installed. For example:<br />
<code>1.5.1-1</code><br />
|-<br />
|<code>RF_GAIN</code><br />
|RF Gain value for your SDR hardware. Defaults can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/python/hw_settings.py here].<br />
<br />
*For rtl-sdr possible values are the following: <code>0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6</code><br />
|}<br />
==Updating SatNOGS Client Software==<br />
To update SatNOGS software, including the configuration tool itself:<br />
<br />
#SSH into the system and (re-)run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Select <code>Upgrade</code> to upgrade all distribution packages to the latest; this may require a reboot. If this option is not available, running an <code>Update</code> will make it show up<br />
#Select <code>Update</code> to update the configuration tool<br />
#Select <code>Apply</code> and the Raspberry Pi will update itself; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
'''WARNING: An update can potentially interrupt a running observation!'''<br />
===Upgrading from Debian 'stretch' to 'buster'===<br />
If you have already installed an older version of Debian or Raspbian SatNOGS image based on <code>stretch</code> (releases <= [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/tags/2018080300 2018080300]), it is recommended to upgrade to <code>buster</code>. Support for <code>stretch</code> will be dropped with the next release of <code>gr-satnogs</code>.<br />
====Method 1: Reflashing and reinstalling (recommended)====<br />
The recommended method to upgrade to <code>buster</code> is reflashing the latest Raspbian SatNOGS image (or reinstalling latest Debian). Follow [[Raspberry Pi 3|Raspberry Pi]] installation instructions and reinstall from scratch.<br />
====Method 2: Release upgrade using the configuration tool (advanced)====<br />
{{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:<br />
<br />
#SSH into the system<br />
#Make sure you have enough free space on your SD card (>2GiB) by running <code>df -h /</code> on the console<br />
#Run <code>sudo satnogs-setup</code> to bring up the configuration menu<br />
#On the Advanced menu, enable <code>SATNOGS_SETUP_RELEASE_UPGRADE_ENABLED</code> option, in case there isn't an option like that available run first <code>Update</code> and then try again to enable it.<br />
#On the Main menu, select <code>Apply</code> and let Ansible apply the configuration<br />
#On the Main menu, select <code>Upgrade</code>. The script will check if there is a new release upgrade and ask you to proceed<br />
#Keep an eye on the upgrade progress; <code>dpkg</code> may prompt for changes<br />
#Once the upgrade is completed, <code>satnogs-setup</code> will ask for a reboot<br />
#After the reboot, make sure you are on the correct release by running <code>lsb_release -a</code><br />
#Re-run <code>sudo satnogs-setup</code> and select <code>Update</code> and then <code>Apply</code><br />
<br />
==Verification of correct installation==<br />
To see if satnogs-client has started successfully, check the logs with journalctl:<pre><br />
$ journalctl -u satnogs-client.service<br />
</pre>You should see entries running approximately once per minute that look like this:<pre><br />
Oct 01 23:02:13 raspberrypi satnogs-client[6695]: * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)<br />
Oct 01 23:02:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:02:14,466 - satnogsclient - INFO - [LD] Downlink thread waiting for first downlink packet<br />
Oct 01 23:03:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:14,450 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:03:14 UTC)" (scheduled at 2017-10-01 23:03:14.423393+00:00)<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,324 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,325 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,327 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,453 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.423393+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,484 - apscheduler.executors.default - INFO - Running job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.436367+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,489 - apscheduler.executors.default - INFO - Job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,627 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,628 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,629 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:05:14 UTC)" executed successfully<br />
</pre>If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=SatNOGS_Client_Setup&diff=3342SatNOGS Client Setup2020-01-20T16:04:46Z<p>Acinonyx: Add SatNOGS Client Setup paeg</p>
<hr />
<div>==Introduction==<br />
<code>satnogs-setup</code> provides a set of scripts for configuring a '''SatNOGS Client''' system. <code>satnogs-setup</code> main function is to bring up a menu-driven console configuration utility and provision the system using Ansible.<br />
<br />
===Initial Setup===<br />
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.<br />
<br />
To configure a '''SatNOGS Client''' system:<br />
<br />
#SSH into the system and run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Set '''all''' options in '''Basic Configuration''' (see below)<br />
#Select <code>Apply</code> and the Raspberry Pi will configure itself; this may take some time<br />
#Select <code>Back</code> to exit<br />
{{Message|You can always reconfigure the software by running <code>sudo satnogs-setup</code> again.}}<br />
===Basic Configuration===<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_API_TOKEN</code><br />
|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.<br />
|-<br />
|<code>SATNOGS_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>rtlsdr</code>. Other devices supported by gr-satnogs include <code>usrpb200</code>, <code>usrp2</code>, <code>airspy/airspymini</code> or <code>hackrf</code>; a complete list can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/apps/flowgraphs/satellites/README.md here].<br />
|-<br />
|<code>SATNOGS_STATION_ELEV</code><br />
|The height of your ground station above sea level in metres.<br />
|-<br />
|<code>SATNOGS_STATION_ID</code><br />
|The '''numeric ID''' assigned to your station in the SatNOGS Network site when the groundstation was created.<br />
|-<br />
|<code>SATNOGS_STATION_LAT</code><br />
|The latitude of your station. North is positive, south is negative.<br />
|-<br />
|<code>SATNOGS_STATION_LON</code><br />
|The longitude of your station. East is positive, west is negative.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_ENABLED</code><br />
|Whether or not to enable the Hamlibs rotator daemon. Rotctld is a software daemon that provides a network server to control a rotator on a serial port. If you don't have a rotator (like the [[No rotator|No rotator setup]]), enter <code>NO</code>.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_OPTS</code><br />
|Options for rotcld:<br />
For a yaesu rotator, use <code>-m 601 -r /dev/ttyACM0 -s 9600 -T 0.0.0.0</code><br />
<br />
For a SatNOGS rotator <code>-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200</code> or <code>-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200</code><br />
|}<br />
===Advanced Setup===<br />
{{Warning|Changing these settings is ''not'' recommended unless you're developing SatNOGS.}}A more detailed description on setting up a development environment using the SatNOGS reference setup is given in [[SatNOGS_Client_Development]].<br />
<br />
NOTE: To get your station online, you need to set SATNOGS_NETWORK_API_URL to https://network.satnogs.org/api/<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>APT_REPOSITORY</code><br />
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:<br />
<code>deb <nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10</nowiki> ./</code><br />
|-<br />
|<code>APT_KEY_URL</code><br />
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:<br />
<code><nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10/Release.key</nowiki></code><br />
|-<br />
|<code>APT_KEY_ID</code><br />
|This options allows you to specify an alternative SatNOGS packages repository key ID.<br />
|-<br />
|<code>SATNOGS_CLIENT_URL</code><br />
|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:<br />
<br />
*<code>git+https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@master</code> -- the 'master' branch (the current development version) of satnogs-client<br />
*<code><nowiki>git+https://gitlab.com/jdoe/satnogs-client.git@new-feature</nowiki></code> -- the 'new-feature' branch of jdoe's fork of satnogs-client<br />
|-<br />
|<code>SATNOGS_RADIO_GR_SATNOGS_VERSION</code><br />
|This options allows you to change the version of gr-satnogs package to be installed. For example:<br />
<code>1.5.1-1</code><br />
|-<br />
|<code>RF_GAIN</code><br />
|RF Gain value for your SDR hardware. Defaults can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/python/hw_settings.py here].<br />
<br />
*For rtl-sdr possible values are the following: <code>0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6</code><br />
|}<br />
==Updating SatNOGS Client Software==<br />
To update SatNOGS software, including the configuration tool itself:<br />
<br />
#SSH into the system and (re-)run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Select <code>Upgrade</code> to upgrade all distribution packages to the latest; this may require a reboot. If this option is not available, running an <code>Update</code> will make it show up<br />
#Select <code>Update</code> to update the configuration tool<br />
#Select <code>Apply</code> and the Raspberry Pi will update itself; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
'''WARNING: An update can potentially interrupt a running observation!'''<br />
===Upgrading from Debian 'stretch' to 'buster'===<br />
If you have already installed an older version of Debian or Raspbian SatNOGS image based on <code>stretch</code> (releases <= [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/tags/2018080300 2018080300]), it is recommended to upgrade to <code>buster</code>. Support for <code>stretch</code> will be dropped with the next release of <code>gr-satnogs</code>.<br />
====Method 1: Reflashing and reinstalling (recommended)====<br />
The recommended method to upgrade to <code>buster</code> is reflashing the latest Raspbian SatNOGS image (or reinstalling latest Debian). Follow [[Raspberry Pi 3|Raspberry Pi]] installation instructions and reinstall from scratch.<br />
====Method 2: Release upgrade using the configuration tool (advanced)====<br />
{{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:<br />
<br />
#SSH into the system<br />
#Make sure you have enough free space on your SD card (>2GiB) by running <code>df -h /</code> on the console<br />
#Run <code>sudo satnogs-setup</code> to bring up the configuration menu<br />
#On the Advanced menu, enable <code>SATNOGS_SETUP_RELEASE_UPGRADE_ENABLED</code> option, in case there isn't an option like that available run first <code>Update</code> and then try again to enable it.<br />
#On the Main menu, select <code>Apply</code> and let Ansible apply the configuration<br />
#On the Main menu, select <code>Upgrade</code>. The script will check if there is a new release upgrade and ask you to proceed<br />
#Keep an eye on the upgrade progress; <code>dpkg</code> may prompt for changes<br />
#Once the upgrade is completed, <code>satnogs-setup</code> will ask for a reboot<br />
#After the reboot, make sure you are on the correct release by running <code>lsb_release -a</code><br />
#Re-run <code>sudo satnogs-setup</code> and select <code>Update</code> and then <code>Apply</code><br />
<br />
==Verification of correct installation==<br />
To see if satnogs-client has started successfully, check the logs with journalctl:<pre><br />
$ journalctl -u satnogs-client.service<br />
</pre>You should see entries running approximately once per minute that look like this:<pre><br />
Oct 01 23:02:13 raspberrypi satnogs-client[6695]: * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)<br />
Oct 01 23:02:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:02:14,466 - satnogsclient - INFO - [LD] Downlink thread waiting for first downlink packet<br />
Oct 01 23:03:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:14,450 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:03:14 UTC)" (scheduled at 2017-10-01 23:03:14.423393+00:00)<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,324 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,325 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,327 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,453 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.423393+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,484 - apscheduler.executors.default - INFO - Running job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.436367+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,489 - apscheduler.executors.default - INFO - Job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,627 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,628 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,629 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:05:14 UTC)" executed successfully<br />
</pre>If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=MediaWiki:Sidebar&diff=3341MediaWiki:Sidebar2020-01-20T16:02:01Z<p>Acinonyx: </p>
<hr />
<div>* Build<br />
** Raspberry_Pi|Install a Raspberry Pi<br />
** Build|Build a Ground Station<br />
** SatNOGS_Client_Ansible#SatNOGS_Client_Setup|Configure your Station<br />
** Rotators|Rotators<br />
** Antennas|Antennas<br />
** Omnidirectional_Station_How_To| Omnidirectional Station<br />
** Radio|SDR Support<br />
** Troubleshooting|Client Troubleshooting<br />
** SatNOGS_Client_Ansible#Updating_SatNOGS_Client_software|Updating your SatNOGS Client<br />
* Operate<br />
** Operation|Managing Observations<br />
** Decode_Telemetry_and_Packets|Decode Telemetry and Packets<br />
** Telemetry_Dashboards|Telemetry Dashboards<br />
** :Category:RF Modes|RF Modes<br />
* Contribute<br />
** Get_Started|Get Started<br />
** Satnogs_DB|Crowd-Sourced Satellite Info<br />
** Software_contribution|Software Contribution<br />
** Development_Environment|Development Environment<br />
** Hacking_the_GNURadio_Module_'gr-satnogs'|SatNOGS GNURadio Module<br />
** SatNOGS_Client_Development|SatNOGS Client Development<br />
** Academic_Papers|Academic Papers citing SatNOGS<br />
** Provide_documentation|Provide Documentation<br />
* Contact<br />
** Get_In_Touch|Get In Touch<br />
** https://community.libre.space|Forums<br />
* Links<br />
** https://db.satnogs.org|SatNOGS DB<br />
** https://network.satnogs.org|SatNOGS Network<br />
** https://dashboard.satnogs.org|SatNOGS Dashboard<br />
** https://community.libre.space|SatNOGS Forums<br />
** https://libre.space|Libre Space Foundation<br />
** https://status.libre.space|System Status<br />
* SEARCH</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=Main_Page&diff=3339Main Page2020-01-20T15:41:42Z<p>Acinonyx: Fix link to Raspberry Pi page</p>
<hr />
<div><p>__NOTOC__</p><br />
[[File:SatNOGS_explanation.png|right|300x300px]]<br />
<p><big>[https://satnogs.org SatNOGS]</big> is an integral part of the [https://libre.space <big>Libre Space Foundation</big>]. The project aims to build a global network of satellite ground stations. It is designed as an open source participatory project based on the users operating a ground station that is accessed via a web page for all of the network users. A basic ground station can be made up of commercial off the shelf components that are commonly available with a static [[Omnidirectional Station How To|omnidirectional antenna]], to more complex stations with multiple movable antennas.</p><br />
[[File:AZ EL Ground Station.png|alt=AZ/EL Ground Station with VHF and UHF Antennas|left|thumb|Yaesu G-5500 Az/El Rotator w/ M2 VHF/UHF Antennas. [https://network.satnogs.org/stations/2 SatNOGS Station #2]]]<br />
<p>If you would like to build your own ground station and have limited knowledge then it is recommended that you follow a [[Omnidirectional Station How To|non-rotator build]] with a simple RTL-SDR dongle and a [[Raspberry Pi]]. This will get you on to the network quickly and allow you to start scheduling observations. There are a few choices to be made but he community are available to help if you need it. More complex, movable, antenna systems can be steered with either the SatNOGS designed rotator or a commercial unit such as the Yaesu G-5500, Spid XY or similar. It is recommended that these types of builds are for more experienced operators but there is no reason why these can not be put into operation, they just require more work.</p><br />
<p>The reference design uses a Raspberry Pi + RTL-SDR dongle + either a VHF or UHF antenna. A [[Raspberry Pi]] image is available to make software installation simpler. Much of the decision making is down to personal choice but sometimes additional hardware is needed to help filter out local noise, such as strong broadcast stations. Both the community and Matrix / IRC offer support and assistance.</p><br />
<br />
[[Category:Community]]<br />
[[Category:Build]]<br />
[[Category:Hardware]]<br />
[[Category:Software]]<br />
[[Category:Operate]]<br />
[[Category:Main]]<br />
[[Category:Develop]]<br />
[[Category:Infrastructure]]<br />
[[Category:Satellite]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=Raspberry_Pi&diff=3337Raspberry Pi2020-01-20T14:57:04Z<p>Acinonyx: Acinonyx moved page Raspberry Pi 3 to Raspberry Pi</p>
<hr />
<div>[[File:B3342fcc865731d69e0c9d7a8b1abb887185bc13 1 531x500.jpg|alt=Libre Space Foundation Raspberry Pi Case|thumb|Libre Space Foundation Raspberry Pi Case, [https://www.thingiverse.com/thing:3233687 on thingiverse]]]<br />
<br />
== Introduction ==<br />
<br />
The Raspberry Pi (version 3 and 4) is the reference platform for SatNOGS (see our [[SatNOGS Client Ansible|Ansible guide]] to install SatNOGS on other Linux machines). You can try using various distributions for this (eg. Debian/Armbian, Arch, Fedora), but the one we suggest is our custom image based on latest Raspbian.<br />
<br />
{{Message|This page assumes you have an account and a ground station registered on either network.satnogs.org or network-dev.satnogs.org. Make note of your station ID and API Key.}}<br />
==[https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/jobs/artifacts/2019091100/download?job=release <span class="glyphicon glyphicon-save"></span>Download]==<br />
<br />
You can download the latest Raspbian SatNOGS image following the links from the [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/tags latest tag on GitLab]. This image has the SatNOGS setup script installed, the SSH server enabled and all required packages preinstalled. Click on the cloud icon and then click "Download release". You will get an Artifacts.zip file:<br />
<br />
==Artifacts list==<br />
<br />
The current artifacts list consists of:<br />
<br />
*A Zipped image file<br />
*An Image info file<br />
*A SHA256 checksums file<br />
<br />
===Data integrity verification===<br />
<br />
You should verify the data integrity of the artifacts by checking the SHA256 checksums. On Linux, run <code>sha256sum -c sha256sums</code> in the directory where the artifacts are downloaded and unzipped.<br />
<br />
Example:<br />
<pre><br />
$ sha256sum -c sha256sums <br />
2017-09-29-Raspbian-SatNOGS-master-lite.info: OK<br />
image_2017-09-29-Raspbian-SatNOGS-master-lite.zip: OK<br />
</pre><br />
<br />
==Flashing==<br />
[https://www.raspberrypi.org/documentation/installation/installing-images/README.md Follow the usual Raspbian flashing instructions], and boot your Raspberry Pi.<br />
<br />
==Getting console access==<br />
You can log in the Raspberry Pi by connecting it to a keyboard and monitor or through network via an SSH connection.<br />
<br />
===Keyboard and monitor===<br />
Once your Raspberry Pi is booted, log in with username "'''pi'''" password "'''raspberry'''".<br />
<br />
===Ethernet===<br />
If you are using wired Ethernet you should get connectivity right away. You just need to find the IP address of Raspberry Pi (e.g. in your router management interface). Log in with SSH using username "'''pi'''" password "'''raspberry'''":<br />
$ ssh pi@192.168.1.2<br />
If your network supports [[wikipedia:Zero-configuration_networking|<code>zeroconf</code>]], then you can use the hostname of your Pi:<br />
$ ssh pi@raspberrypi.local<br />
<br />
===Pre-boot wireless configuration===<br />
If neither keyboard/monitor, nor a wired Ethernet are available, you can set up a WiFi connection before boot by mounting the boot partition of the flashed SD card and editing files directly. Note your OS may mount boot partition in a different location, and [https://raspberrypi.stackexchange.com/questions/10251/prepare-sd-card-for-wifi-on-headless-pi#comment98121_57023 Windows users have line ending problems]. Suggested actions:<br />
<br />
$ $EDITOR /media/Raspbian_SatNOGS-boot/wpa_supplicant.conf<br />
<br />
contents: (note key_mgmt options include NONE, WPA-PSK, WPA-EAP)<br />
<br />
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br />
update_config=1<br />
country=US<br />
<br />
network={<br />
ssid="NETWORK_NAME"<br />
psk="password"<br />
key_mgmt=WPA-PSK<br />
}<br />
<br />
==Configuration==<br />
<br />
===Raspberry Pi Setup===<br />
Once your Raspberry Pi is booted, log in with username "'''pi'''" password "'''raspberry'''" and run: <br />
<pre><br />
$ sudo raspi-config<br />
</pre><br />
<br />
You will want to be sure to do the following:<br />
<br />
*Set a strong, unique password<br />
*Change localization settings:<br />
**by default the rpi locale is configured for EN-GB, change as appropriate (ie: to EN_US.UTF-8)<br />
**set timezone (we recommend UTC so your logs match the times in Network)<br />
**set keyboard layout, again this is defaulting to a UK layout<br />
**set wifi country<br />
**expand filesystem<br />
*Configure network or WiFi (see [https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md this doc for network configuration instructions])<br />
*Finish and reboot<br />
<br />
===SatNOGS Setup===<br />
SSH to the Raspberry Pi with user "'''pi'''" and your new password.<br />
<br />
Follow [[SatNOGS_Client_Ansible#SatNOGS_Client_Setup|SatNOGS Client Setup]] instructions to configure the system.<br />
<br />
[[Category:Build]]<br />
[[Category:Software]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=Raspberry_Pi_3&diff=3338Raspberry Pi 32020-01-20T14:57:04Z<p>Acinonyx: Acinonyx moved page Raspberry Pi 3 to Raspberry Pi</p>
<hr />
<div>#REDIRECT [[Raspberry Pi]]</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=SatNOGS_Client_Ansible&diff=2796SatNOGS Client Ansible2019-12-13T16:17:54Z<p>Acinonyx: </p>
<hr />
<div>=Intro=<br />
<br />
'''SatNOGS Client Ansible''' is the suggested method to install '''SatNOGS Client''' (and friends) to a system. It currently supports Raspbian and Debian (stretch and buster).<br />
<br />
=Raspbian=<br />
<br />
For Raspberry Pi, which is the reference platform for SatNOGS, a [[Raspberry_Pi_3|Raspbian image]] with '''SatNOGS Client Ansible''' pre-installed is available.<br />
<br />
=Debian=<br />
<br />
{{Warning|Skip this section if you are using [[Raspberry_Pi_3|SatNOGS Raspbian]] image and [[#SatNOGS Client Setup|SatNOGS Client Setup]]. Follow these instructions if you are provisioning SatNOGS to Debian from another host or are installing on the same host.}}These sections contain generic instructions for installing SatNOGS Client on a Debian system.<br />
<br />
==Prerequisites==<br />
<br />
*A target Debian system. To install Debian please follow the [https://www.debian.org/releases/stretch/installmanual Debian Installation Guide] and chose the net installer if you want to run a headless server. The target system can be the host itself.<br />
*A user (referenced later as ''youruser'') which is member of 'sudo' group exists on the target system.<br />
*An SSH server running on the target system.<br />
*A host system with Git and latest version of Ansible installed. To install Ansible on Debian, follow the [https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#latest-releases-via-apt-debian Ansible Installation Guide].<br />
<br />
==Installation==<br />
<br />
On the host system run the following commands:<br />
$ git clone <nowiki>https://gitlab.com/librespacefoundation/satnogs/satnogs-client-ansible.git</nowiki> # Clone SatNOGS Client Ansible repository<br />
$ cd satnogs-client-ansible # Change to cloned repository directory<br />
$ cp -r production.dist production # Copy dist configuration<br />
$ vi production/inventory/hosts # Update file with your own target host e.g. 127.0.0.1, user and SSH password<br />
$ ssh youruser@yourtargetsystem true # Test SSH connection to target system<br />
$ ansible-playbook -i production/inventory -K site.yml # Run Ansible playbook<br />
$ ssh -t youruser@yourtargetsystem sudo satnogs-setup # Setup SatNOGS client (see below)<br />
<br />
=SatNOGS Client Setup=<br />
<br />
<code>satnogs-setup</code> is a script for configuring a system installed with '''SatNOGS Client Ansible'''.<br />
<br />
==Initial Setup==<br />
<br />
Right after the first boot of the system, packages and the configuration tool itself '''must be updated'''. Follow the [[#Updating SatNOGS Client software|Updating]] instruction found below.<br />
<br />
To configure a '''SatNOGS Client Ansible''' system:<br />
<br />
#SSH into the system and run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Set '''Basic Configuration''' (see below)<br />
#Select <code>Apply</code> and the Raspberry Pi will configure itself; this may take some time<br />
#Select <code>Back</code> to exit<br />
<br />
{{Message|You can always reconfigure the software by running <code>sudo satnogs-setup</code> again.}}<br />
<br />
===Basic Configuration===<br />
<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_API_TOKEN</code><br />
|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.<br />
|-<br />
|<code>SATNOGS_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>rtlsdr</code>. Other devices supported by gr-satnogs include <code>usrpb200</code>, <code>usrp2</code>, <code>airspy</code> or <code>hackrf</code>; a complete list can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/apps/flowgraphs/satellites/README.md here].<br />
|-<br />
|<code>SATNOGS_STATION_ELEV</code><br />
|The height of your ground station above sea level in metres.<br />
|-<br />
|<code>SATNOGS_STATION_ID</code><br />
|The '''numeric ID''' assigned to your station in the SatNOGS Network site when the groundstation was created.<br />
|-<br />
|<code>SATNOGS_STATION_LAT</code><br />
|The latitude of your station. North is positive, south is negative.<br />
|-<br />
|<code>SATNOGS_STATION_LON</code><br />
|The longitude of your station. East is positive, west is negative.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_ENABLED</code><br />
|Whether or not to enable the Hamlibs rotator daemon. Rotctld is a software daemon that provides a network server to control a rotator on a serial port. If you don't have a rotator (like the [https://wiki.satnogs.org/No_rotator No rotator setup]), enter <code>NO</code>.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_OPTS</code><br />
|Options for rotcld:<br />
For a yaesu rotator, use <code>-m 601 -r /dev/ttyACM0 -s 9600 -T 0.0.0.0</code><br />
<br />
For a SatNOGS rotator <code>-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200</code> or <code>-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200</code><br />
|}<br />
<br />
===Advanced Setup===<br />
<br />
{{Warning|Changing these settings is ''not'' recommended unless you're developing SatNOGS.}}<br />
A more detailed description on setting up a development environment using the SatNOGS reference setup is given in [[SatNOGS_Client_Development]].<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>APT_REPOSITORY</code><br />
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:<br />
<code>deb <nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10</nowiki> ./</code><br />
|-<br />
|<code>APT_KEY_URL</code><br />
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:<br />
<code><nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10/Release.key</nowiki></code><br />
|-<br />
|<code>APT_KEY_ID</code><br />
|This options allows you to specify an alternative SatNOGS packages repository key ID.<br />
|-<br />
|<code>SATNOGS_CLIENT_URL</code><br />
|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:<br />
<br />
*<code>git+https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@master</code> -- the 'master' branch (the current development version) of satnogs-client<br />
*<code><nowiki>git+https://gitlab.com/jdoe/satnogs-client.git@new-feature</nowiki></code> -- the 'new-feature' branch of jdoe's fork of satnogs-client<br />
|-<br />
|<code>SATNOGS_RADIO_GR_SATNOGS_VERSION</code><br />
|This options allows you to change the version of gr-satnogs package to be installed. For example:<br />
<code>1.5.1-1</code><br />
|-<br />
|<code>RF_GAIN</code><br />
|RF Gain value for your SDR hardware. Defaults can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/python/hw_settings.py here].<br />
<br />
*For rtl-sdr possible values are the following: <code>0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6</code><br />
|}<br />
<br />
==Updating SatNOGS Client software==<br />
<br />
To update SatNOGS software, including the configuration tool itself:<br />
<br />
#SSH into the system and (re-)run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Select <code>Upgrade</code> to upgrade all distribution packages to the latest; this may require a reboot. If this option is not available, running an <code>Update</code> will make it show up<br />
#Select <code>Update</code> to update the configuration tool<br />
#Select <code>Apply</code> and the Raspberry Pi will update itself; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
'''WARNING: An update can potentially interrupt a running observation!'''<br />
<br />
==Upgrading from 'stretch' to 'buster'==<br />
If you have already installed an older version of Debian or Raspbian SatNOGS image based on <code>stretch</code> (releases <= [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/tags/2018080300 2018080300]), it is recommended to upgrade to <code>buster</code>. Support for <code>stretch</code> will be dropped with the next release of <code>gr-satnogs</code>.<br />
<br />
===Method 1: Reflashing and reinstalling (recommended)===<br />
The recommended method to upgrade to <code>buster</code> is reflashing the latest Raspbian SatNOGS image (or reinstalling latest Debian). Follow [[Raspberry Pi 3|Raspberry Pi]] installation instructions and reinstall from scratch.<br />
<br />
===Method 2: Release upgrade using the configuration tool (advanced)===<br />
{{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:<br />
<br />
#SSH into the system<br />
#Make sure you have enough free space on your SD card (>2GiB) by running <code>df -h /</code> on the console<br />
#Run <code>sudo satnogs-setup</code> to bring up the configuration menu<br />
#On the Advanced menu, enable <code>SATNOGS_SETUP_RELEASE_UPGRADE_ENABLED</code> option<br />
#On the Main menu, select <code>Apply</code> and let Ansible apply the configuration<br />
#On the Main menu, select <code>Upgrade</code>. The script will check if there is a new release upgrade and ask you to proceed<br />
#Keep an eye on the upgrade progress; <code>dpkg</code> may prompt for changes<br />
#Once the upgrade is completed, <code>satnogs-setup</code> will ask for a reboot<br />
#After the reboot, make sure you are on the correct release by running <code>lsb_release -a</code><br />
#Re-run <code>sudo satnogs-setup</code> and select <code>Update</code> and then <code>Apply</code><br />
<br />
==Verification of correct installation==<br />
<br />
To see if satnogs-client has started successfully, check the logs with journalctl:<br />
<br />
<pre><br />
$ journalctl -u satnogs-client.service<br />
</pre><br />
<br />
You should see entries running approximately once per minute that look like this:<br />
<br />
<pre><br />
Oct 01 23:02:13 raspberrypi satnogs-client[6695]: * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)<br />
Oct 01 23:02:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:02:14,466 - satnogsclient - INFO - [LD] Downlink thread waiting for first downlink packet<br />
Oct 01 23:03:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:14,450 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:03:14 UTC)" (scheduled at 2017-10-01 23:03:14.423393+00:00)<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,324 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,325 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,327 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,453 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.423393+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,484 - apscheduler.executors.default - INFO - Running job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.436367+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,489 - apscheduler.executors.default - INFO - Job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,627 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,628 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,629 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:05:14 UTC)" executed successfully<br />
</pre><br />
<br />
If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=SatNOGS_Client_Ansible&diff=2795SatNOGS Client Ansible2019-12-13T16:17:11Z<p>Acinonyx: </p>
<hr />
<div>=Intro=<br />
<br />
'''SatNOGS Client Ansible''' is the suggested method to install '''SatNOGS Client''' (and friends) to a system. It currently supports Raspbian and Debian (stretch and buster).<br />
<br />
=Raspbian=<br />
<br />
For Raspberry Pi, which is the reference platform for SatNOGS, a [[Raspberry_Pi_3|Raspbian image]] with '''SatNOGS Client Ansible''' pre-installed is available.<br />
<br />
=Debian=<br />
<br />
{{Warning|Skip this section if you are using [[Raspberry_Pi_3|SatNOGS Raspbian]] image and [[#SatNOGS Client Setup|SatNOGS Client Setup]]. Follow these instructions if you are provisioning SatNOGS to Debian from another host or are installing on the same host.}}These sections contain generic instructions for installing SatNOGS Client on a Debian system.<br />
<br />
==Prerequisites==<br />
<br />
*A target Debian system. To install Debian please follow the [https://www.debian.org/releases/stretch/installmanual Debian Installation Guide] and chose the net installer if you want to run a headless server. The target system can be the host itself.<br />
*A user (referenced later as ''youruser'') which is member of 'sudo' group exists on the target system.<br />
*An SSH server running on the target system.<br />
*A host system with Git and latest version of Ansible installed. To install Ansible on Debian, follow the [https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#latest-releases-via-apt-debian Ansible Installation Guide].<br />
<br />
==Installation==<br />
<br />
On the host system run the following commands:<br />
$ git clone <nowiki>https://gitlab.com/librespacefoundation/satnogs/satnogs-client-ansible.git</nowiki> # Clone SatNOGS Client Ansible repository<br />
$ cd satnogs-client-ansible # Change to cloned repository directory<br />
$ cp -r production.dist production # Copy dist configuration<br />
$ vi production/inventory/hosts # Update file with your own target host e.g. 127.0.0.1, user and SSH password<br />
$ ssh youruser@yourtargetsystem true # Test SSH connection to target system<br />
$ ansible-playbook -i production/inventory -K site.yml # Run Ansible playbook<br />
$ ssh -t youruser@yourtargetsystem sudo satnogs-setup # Setup SatNOGS client (see below)<br />
<br />
=SatNOGS Client Setup=<br />
<br />
<code>satnogs-setup</code> is a script for configuring a system installed with '''SatNOGS Client Ansible'''.<br />
<br />
==Initial Setup==<br />
<br />
Right after the first boot of the system, packages and the configuration tool itself '''must be updated'''. Follow the [[#Updating SatNOGS Client software|Updating]] instruction found below.<br />
<br />
To configure a '''SatNOGS Client Ansible''' system:<br />
<br />
#SSH into the system and run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Set '''Basic Configuration''' (see below)<br />
#Select <code>Apply</code> and the Raspberry Pi will configure itself; this may take some time<br />
#Select <code>Back</code> to exit<br />
<br />
{{Message|You can always reconfigure the software by running <code>sudo satnogs-setup</code> again.}}<br />
<br />
===Basic Configuration===<br />
<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_API_TOKEN</code><br />
|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.<br />
|-<br />
|<code>SATNOGS_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>rtlsdr</code>. Other devices supported by gr-satnogs include <code>usrpb200</code>, <code>usrp2</code>, <code>airspy</code> or <code>hackrf</code>; a complete list can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/apps/flowgraphs/satellites/README.md here].<br />
|-<br />
|<code>SATNOGS_STATION_ELEV</code><br />
|The height of your ground station above sea level in metres.<br />
|-<br />
|<code>SATNOGS_STATION_ID</code><br />
|The '''numeric ID''' assigned to your station in the SatNOGS Network site when the groundstation was created.<br />
|-<br />
|<code>SATNOGS_STATION_LAT</code><br />
|The latitude of your station. North is positive, south is negative.<br />
|-<br />
|<code>SATNOGS_STATION_LON</code><br />
|The longitude of your station. East is positive, west is negative.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_ENABLED</code><br />
|Whether or not to enable the Hamlibs rotator daemon. Rotctld is a software daemon that provides a network server to control a rotator on a serial port. If you don't have a rotator (like the [https://wiki.satnogs.org/No_rotator No rotator setup]), enter <code>NO</code>.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_OPTS</code><br />
|Options for rotcld:<br />
For a yaesu rotator, use <code>-m 601 -r /dev/ttyACM0 -s 9600 -T 0.0.0.0</code><br />
<br />
For a SatNOGS rotator <code>-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200</code> or <code>-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200</code><br />
|}<br />
<br />
===Advanced Setup===<br />
<br />
{{Warning|Changing these settings is ''not'' recommended unless you're developing SatNOGS.}}<br />
A more detailed description on setting up a development environment using the SatNOGS reference setup is given in [[SatNOGS_Client_Development]].<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>APT_REPOSITORY</code><br />
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:<br />
<code>deb <nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10</nowiki> ./</code><br />
|-<br />
|<code>APT_KEY_URL</code><br />
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:<br />
<code><nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10/Release.key</nowiki></code><br />
|-<br />
|<code>APT_KEY_ID</code><br />
|This options allows you to specify an alternative SatNOGS packages repository key ID.<br />
|-<br />
|<code>SATNOGS_CLIENT_URL</code><br />
|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:<br />
<br />
*<code>git+https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@master</code> -- the 'master' branch (the current development version) of satnogs-client<br />
*<code><nowiki>git+https://gitlab.com/jdoe/satnogs-client.git@new-feature</nowiki></code> -- the 'new-feature' branch of jdoe's fork of satnogs-client<br />
|-<br />
|<code>SATNOGS_RADIO_GR_SATNOGS_VERSION</code><br />
|This options allows you to change the version of gr-satnogs package to be installed. For example:<br />
<code>1.5.1-1</code><br />
|-<br />
|<code>RF_GAIN</code><br />
|RF Gain value for your SDR hardware. Defaults can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/python/hw_settings.py here].<br />
<br />
*For rtl-sdr possible values are the following: <code>0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6</code><br />
|}<br />
<br />
==Updating SatNOGS Client software==<br />
<br />
To update SatNOGS software, including the configuration tool itself:<br />
<br />
#SSH into the system and (re-)run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Select <code>Upgrade</code> to upgrade all distribution packages to the latest; this may require a reboot. If this option is not available, selecting <code>Update</code> will make it show up<br />
#Select <code>Update</code> to update the configuration tool<br />
#Select <code>Apply</code> and the Raspberry Pi will update itself; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
'''WARNING: An update can potentially interrupt a running observation!'''<br />
<br />
==Upgrading from 'stretch' to 'buster'==<br />
If you have already installed an older version of Debian or Raspbian SatNOGS image based on <code>stretch</code> (releases <= [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/tags/2018080300 2018080300]), it is recommended to upgrade to <code>buster</code>. Support for <code>stretch</code> will be dropped with the next release of <code>gr-satnogs</code>.<br />
<br />
===Method 1: Reflashing and reinstalling (recommended)===<br />
The recommended method to upgrade to <code>buster</code> is reflashing the latest Raspbian SatNOGS image (or reinstalling latest Debian). Follow [[Raspberry Pi 3|Raspberry Pi]] installation instructions and reinstall from scratch.<br />
<br />
===Method 2: Release upgrade using the configuration tool (advanced)===<br />
{{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:<br />
<br />
#SSH into the system<br />
#Make sure you have enough free space on your SD card (>2GiB) by running <code>df -h /</code> on the console<br />
#Run <code>sudo satnogs-setup</code> to bring up the configuration menu<br />
#On the Advanced menu, enable <code>SATNOGS_SETUP_RELEASE_UPGRADE_ENABLED</code> option<br />
#On the Main menu, select <code>Apply</code> and let Ansible apply the configuration<br />
#On the Main menu, select <code>Upgrade</code>. The script will check if there is a new release upgrade and ask you to proceed<br />
#Keep an eye on the upgrade progress; <code>dpkg</code> may prompt for changes<br />
#Once the upgrade is completed, <code>satnogs-setup</code> will ask for a reboot<br />
#After the reboot, make sure you are on the correct release by running <code>lsb_release -a</code><br />
#Re-run <code>sudo satnogs-setup</code> and select <code>Update</code> and then <code>Apply</code><br />
<br />
==Verification of correct installation==<br />
<br />
To see if satnogs-client has started successfully, check the logs with journalctl:<br />
<br />
<pre><br />
$ journalctl -u satnogs-client.service<br />
</pre><br />
<br />
You should see entries running approximately once per minute that look like this:<br />
<br />
<pre><br />
Oct 01 23:02:13 raspberrypi satnogs-client[6695]: * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)<br />
Oct 01 23:02:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:02:14,466 - satnogsclient - INFO - [LD] Downlink thread waiting for first downlink packet<br />
Oct 01 23:03:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:14,450 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:03:14 UTC)" (scheduled at 2017-10-01 23:03:14.423393+00:00)<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,324 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,325 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,327 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,453 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.423393+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,484 - apscheduler.executors.default - INFO - Running job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.436367+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,489 - apscheduler.executors.default - INFO - Job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,627 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,628 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,629 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:05:14 UTC)" executed successfully<br />
</pre><br />
<br />
If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=SatNOGS_Client_Ansible&diff=2794SatNOGS Client Ansible2019-12-13T13:44:57Z<p>Acinonyx: Instruction on how to release upgrade</p>
<hr />
<div>=Intro=<br />
<br />
'''SatNOGS Client Ansible''' is the suggested method to install '''SatNOGS Client''' (and friends) to a system. It currently supports Raspbian and Debian (stretch and buster).<br />
<br />
=Raspbian=<br />
<br />
For Raspberry Pi, which is the reference platform for SatNOGS, a [[Raspberry_Pi_3|Raspbian image]] with '''SatNOGS Client Ansible''' pre-installed is available.<br />
<br />
=Debian=<br />
<br />
{{Warning|Skip this section if you are using [[Raspberry_Pi_3|SatNOGS Raspbian]] image and [[#SatNOGS Client Setup|SatNOGS Client Setup]]. Follow these instructions if you are provisioning SatNOGS to Debian from another host or are installing on the same host.}}These sections contain generic instructions for installing SatNOGS Client on a Debian system.<br />
<br />
==Prerequisites==<br />
<br />
*A target Debian system. To install Debian please follow the [https://www.debian.org/releases/stretch/installmanual Debian Installation Guide] and chose the net installer if you want to run a headless server. The target system can be the host itself.<br />
*A user (referenced later as ''youruser'') which is member of 'sudo' group exists on the target system.<br />
*An SSH server running on the target system.<br />
*A host system with Git and latest version of Ansible installed. To install Ansible on Debian, follow the [https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#latest-releases-via-apt-debian Ansible Installation Guide].<br />
<br />
==Installation==<br />
<br />
On the host system run the following commands:<br />
$ git clone <nowiki>https://gitlab.com/librespacefoundation/satnogs/satnogs-client-ansible.git</nowiki> # Clone SatNOGS Client Ansible repository<br />
$ cd satnogs-client-ansible # Change to cloned repository directory<br />
$ cp -r production.dist production # Copy dist configuration<br />
$ vi production/inventory/hosts # Update file with your own target host e.g. 127.0.0.1, user and SSH password<br />
$ ssh youruser@yourtargetsystem true # Test SSH connection to target system<br />
$ ansible-playbook -i production/inventory -K site.yml # Run Ansible playbook<br />
$ ssh -t youruser@yourtargetsystem sudo satnogs-setup # Setup SatNOGS client (see below)<br />
<br />
=SatNOGS Client Setup=<br />
<br />
<code>satnogs-setup</code> is a script for configuring a system installed with '''SatNOGS Client Ansible'''.<br />
<br />
==Initial Setup==<br />
<br />
Right after the first boot of the system, packages and the configuration tool itself '''must be updated'''. Follow the [[#Updating SatNOGS Client software|Updating]] instruction found below.<br />
<br />
To configure a '''SatNOGS Client Ansible''' system:<br />
<br />
#SSH into the system and run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Set '''Basic Configuration''' (see below)<br />
#Select <code>Apply</code> and the Raspberry Pi will configure itself; this may take some time<br />
#Select <code>Back</code> to exit<br />
<br />
{{Message|You can always reconfigure the software by running <code>sudo satnogs-setup</code> again.}}<br />
<br />
===Basic Configuration===<br />
<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_API_TOKEN</code><br />
|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.<br />
|-<br />
|<code>SATNOGS_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>rtlsdr</code>. Other devices supported by gr-satnogs include <code>usrpb200</code>, <code>usrp2</code>, <code>airspy</code> or <code>hackrf</code>; a complete list can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/apps/flowgraphs/satellites/README.md here].<br />
|-<br />
|<code>SATNOGS_STATION_ELEV</code><br />
|The height of your ground station above sea level in metres.<br />
|-<br />
|<code>SATNOGS_STATION_ID</code><br />
|The '''numeric ID''' assigned to your station in the SatNOGS Network site when the groundstation was created.<br />
|-<br />
|<code>SATNOGS_STATION_LAT</code><br />
|The latitude of your station. North is positive, south is negative.<br />
|-<br />
|<code>SATNOGS_STATION_LON</code><br />
|The longitude of your station. East is positive, west is negative.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_ENABLED</code><br />
|Whether or not to enable the Hamlibs rotator daemon. Rotctld is a software daemon that provides a network server to control a rotator on a serial port. If you don't have a rotator (like the [https://wiki.satnogs.org/No_rotator No rotator setup]), enter <code>NO</code>.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_OPTS</code><br />
|Options for rotcld:<br />
For a yaesu rotator, use <code>-m 601 -r /dev/ttyACM0 -s 9600 -T 0.0.0.0</code><br />
<br />
For a SatNOGS rotator <code>-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200</code> or <code>-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200</code><br />
|}<br />
<br />
===Advanced Setup===<br />
<br />
{{Warning|Changing these settings is ''not'' recommended unless you're developing SatNOGS.}}<br />
A more detailed description on setting up a development environment using the SatNOGS reference setup is given in [[SatNOGS_Client_Development]].<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>APT_REPOSITORY</code><br />
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:<br />
<code>deb <nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10</nowiki> ./</code><br />
|-<br />
|<code>APT_KEY_URL</code><br />
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:<br />
<code><nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10/Release.key</nowiki></code><br />
|-<br />
|<code>APT_KEY_ID</code><br />
|This options allows you to specify an alternative SatNOGS packages repository key ID.<br />
|-<br />
|<code>SATNOGS_CLIENT_URL</code><br />
|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:<br />
<br />
*<code>git+https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@master</code> -- the 'master' branch (the current development version) of satnogs-client<br />
*<code><nowiki>git+https://gitlab.com/jdoe/satnogs-client.git@new-feature</nowiki></code> -- the 'new-feature' branch of jdoe's fork of satnogs-client<br />
|-<br />
|<code>SATNOGS_RADIO_GR_SATNOGS_VERSION</code><br />
|This options allows you to change the version of gr-satnogs package to be installed. For example:<br />
<code>1.5.1-1</code><br />
|-<br />
|<code>RF_GAIN</code><br />
|RF Gain value for your SDR hardware. Defaults can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/python/hw_settings.py here].<br />
<br />
*For rtl-sdr possible values are the following: <code>0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6</code><br />
|}<br />
<br />
==Updating SatNOGS Client software==<br />
<br />
To update SatNOGS software, including the configuration tool itself:<br />
<br />
#SSH into the system and (re-)run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Select <code>Upgrade</code> to upgrade all distribution packages to the latest; this may require a reboot<br />
#Select <code>Update</code> to update the configuration tool<br />
#Select <code>Apply</code> and the Raspberry Pi will update itself; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
'''WARNING: An update can potentially interrupt a running observation!'''<br />
<br />
== Upgrading from 'stretch' to 'buster' ==<br />
If you have already installed an older version of Debian or Raspbian SatNOGS image based on <code>stretch</code> (releases <= [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/tags/2018080300 2018080300]), it is recommended to upgrade to <code>buster</code>. Support for <code>stretch</code> will be dropped with the next release of <code>gr-satnogs</code>.<br />
<br />
=== Method 1: Reflashing and reinstalling (recommended) ===<br />
The recommended method to upgrade to <code>buster</code> is reflashing the latest Raspbian SatNOGS image (or reinstalling latest Debian). Follow [[Raspberry Pi 3|Raspberry Pi]] installation instructions and reinstall from scratch.<br />
<br />
=== Method 2: Release upgrade using the configuration tool (advanced) ===<br />
{{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:<br />
<br />
# SSH into the system<br />
# Make sure you have enough free space on your SD card (>2GiB) by running <code>df -h /</code> on the console<br />
# Run <code>sudo satnogs-setup</code> to bring up the configuration menu<br />
# On the Advanced menu, enable <code>SATNOGS_SETUP_RELEASE_UPGRADE_ENABLED</code> option<br />
# On the Main menu, select <code>Apply</code> and let Ansible apply the configuration<br />
# On the Main menu, select <code>Upgrade</code>. The script will check if there is a new release upgrade and ask you to proceed<br />
# Keep an eye on the upgrade progress; <code>dpkg</code> may prompt for changes<br />
# Once the upgrade is completed, <code>satnogs-setup</code> will ask for a reboot<br />
# After the reboot, make sure you are on the correct release by running <code>lsb_release -a</code><br />
# Re-run <code>sudo satnogs-setup</code> and select <code>Update</code> and then <code>Apply</code><br />
<br />
==Verification of correct installation==<br />
<br />
To see if satnogs-client has started successfully, check the logs with journalctl:<br />
<br />
<pre><br />
$ journalctl -u satnogs-client.service<br />
</pre><br />
<br />
You should see entries running approximately once per minute that look like this:<br />
<br />
<pre><br />
Oct 01 23:02:13 raspberrypi satnogs-client[6695]: * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)<br />
Oct 01 23:02:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:02:14,466 - satnogsclient - INFO - [LD] Downlink thread waiting for first downlink packet<br />
Oct 01 23:03:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:14,450 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:03:14 UTC)" (scheduled at 2017-10-01 23:03:14.423393+00:00)<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,324 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,325 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,327 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,453 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.423393+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,484 - apscheduler.executors.default - INFO - Running job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.436367+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,489 - apscheduler.executors.default - INFO - Job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,627 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,628 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,629 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:05:14 UTC)" executed successfully<br />
</pre><br />
<br />
If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=SatNOGS_Client_Ansible&diff=2793SatNOGS Client Ansible2019-12-13T13:00:11Z<p>Acinonyx: /* Updating SatNOGS Client software */</p>
<hr />
<div>=Intro=<br />
<br />
'''SatNOGS Client Ansible''' is the suggested method to install '''SatNOGS Client''' (and friends) to a system. It currently supports Raspbian and Debian (stretch and buster).<br />
<br />
=Raspbian=<br />
<br />
For Raspberry Pi, which is the reference platform for SatNOGS, a [[Raspberry_Pi_3|Raspbian image]] with '''SatNOGS Client Ansible''' pre-installed is available.<br />
<br />
=Debian=<br />
<br />
{{Warning|Skip this section if you are using [[Raspberry_Pi_3|SatNOGS Raspbian]] image and [[#SatNOGS Client Setup|SatNOGS Client Setup]]. Follow these instructions if you are provisioning SatNOGS to Debian from another host or are installing on the same host.}}These sections contain generic instructions for installing SatNOGS Client on a Debian system.<br />
<br />
==Prerequisites==<br />
<br />
*A target Debian system. To install Debian please follow the [https://www.debian.org/releases/stretch/installmanual Debian Installation Guide] and chose the net installer if you want to run a headless server. The target system can be the host itself.<br />
*A user (referenced later as ''youruser'') which is member of 'sudo' group exists on the target system.<br />
*An SSH server running on the target system.<br />
*A host system with Git and latest version of Ansible installed. To install Ansible on Debian, follow the [https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#latest-releases-via-apt-debian Ansible Installation Guide].<br />
<br />
==Installation==<br />
<br />
On the host system run the following commands:<br />
$ git clone <nowiki>https://gitlab.com/librespacefoundation/satnogs/satnogs-client-ansible.git</nowiki> # Clone SatNOGS Client Ansible repository<br />
$ cd satnogs-client-ansible # Change to cloned repository directory<br />
$ cp -r production.dist production # Copy dist configuration<br />
$ vi production/inventory/hosts # Update file with your own target host e.g. 127.0.0.1, user and SSH password<br />
$ ssh youruser@yourtargetsystem true # Test SSH connection to target system<br />
$ ansible-playbook -i production/inventory -K site.yml # Run Ansible playbook<br />
$ ssh -t youruser@yourtargetsystem sudo satnogs-setup # Setup SatNOGS client (see below)<br />
<br />
=SatNOGS Client Setup=<br />
<br />
<code>satnogs-setup</code> is a script for configuring a system installed with '''SatNOGS Client Ansible'''.<br />
<br />
==Initial Setup==<br />
<br />
Right after the first boot of the system, packages and the configuration tool itself '''must be updated'''. Follow the [[#Updating SatNOGS Client software|Updating]] instruction found below.<br />
<br />
To configure a '''SatNOGS Client Ansible''' system:<br />
<br />
#SSH into the system and run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Set '''Basic Configuration''' (see below)<br />
#Select <code>Apply</code> and the Raspberry Pi will configure itself; this may take some time<br />
#Select <code>Back</code> to exit<br />
<br />
{{Message|You can always reconfigure the software by running <code>sudo satnogs-setup</code> again.}}<br />
<br />
===Basic Configuration===<br />
<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_API_TOKEN</code><br />
|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.<br />
|-<br />
|<code>SATNOGS_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>rtlsdr</code>. Other devices supported by gr-satnogs include <code>usrpb200</code>, <code>usrp2</code>, <code>airspy</code> or <code>hackrf</code>; a complete list can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/apps/flowgraphs/satellites/README.md here].<br />
|-<br />
|<code>SATNOGS_STATION_ELEV</code><br />
|The height of your ground station above sea level in metres.<br />
|-<br />
|<code>SATNOGS_STATION_ID</code><br />
|The '''numeric ID''' assigned to your station in the SatNOGS Network site when the groundstation was created.<br />
|-<br />
|<code>SATNOGS_STATION_LAT</code><br />
|The latitude of your station. North is positive, south is negative.<br />
|-<br />
|<code>SATNOGS_STATION_LON</code><br />
|The longitude of your station. East is positive, west is negative.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_ENABLED</code><br />
|Whether or not to enable the Hamlibs rotator daemon. Rotctld is a software daemon that provides a network server to control a rotator on a serial port. If you don't have a rotator (like the [https://wiki.satnogs.org/No_rotator No rotator setup]), enter <code>NO</code>.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_OPTS</code><br />
|Options for rotcld:<br />
For a yaesu rotator, use <code>-m 601 -r /dev/ttyACM0 -s 9600 -T 0.0.0.0</code><br />
<br />
For a SatNOGS rotator <code>-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200</code> or <code>-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200</code><br />
|}<br />
<br />
===Advanced Setup===<br />
<br />
{{Warning|Changing these settings is ''not'' recommended unless you're developing SatNOGS.}}<br />
A more detailed description on setting up a development environment using the SatNOGS reference setup is given in [[SatNOGS_Client_Development]].<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>APT_REPOSITORY</code><br />
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:<br />
<code>deb <nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10</nowiki> ./</code><br />
|-<br />
|<code>APT_KEY_URL</code><br />
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:<br />
<code><nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10/Release.key</nowiki></code><br />
|-<br />
|<code>APT_KEY_ID</code><br />
|This options allows you to specify an alternative SatNOGS packages repository key ID.<br />
|-<br />
|<code>SATNOGS_CLIENT_URL</code><br />
|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:<br />
<br />
*<code>git+https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@master</code> -- the 'master' branch (the current development version) of satnogs-client<br />
*<code><nowiki>git+https://gitlab.com/jdoe/satnogs-client.git@new-feature</nowiki></code> -- the 'new-feature' branch of jdoe's fork of satnogs-client<br />
|-<br />
|<code>SATNOGS_RADIO_GR_SATNOGS_VERSION</code><br />
|This options allows you to change the version of gr-satnogs package to be installed. For example:<br />
<code>1.5.1-1</code><br />
|-<br />
|<code>RF_GAIN</code><br />
|RF Gain value for your SDR hardware. Defaults can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/python/hw_settings.py here].<br />
<br />
*For rtl-sdr possible values are the following: <code>0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6</code><br />
|}<br />
<br />
==Updating SatNOGS Client software==<br />
<br />
To update SatNOGS software, including the configuration tool itself:<br />
<br />
#SSH into the system and (re-)run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Select <code>Upgrade</code> to upgrade all distribution packages to the latest; this may require a reboot<br />
#Select <code>Update</code> to update the configuration tool<br />
#Select <code>Apply</code> and the Raspberry Pi will update itself; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
'''WARNING: An update can potentially interrupt a running observation!'''<br />
<br />
==Verification of correct installation==<br />
<br />
To see if satnogs-client has started successfully, check the logs with journalctl:<br />
<br />
<pre><br />
$ journalctl -u satnogs-client.service<br />
</pre><br />
<br />
You should see entries running approximately once per minute that look like this:<br />
<br />
<pre><br />
Oct 01 23:02:13 raspberrypi satnogs-client[6695]: * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)<br />
Oct 01 23:02:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:02:14,466 - satnogsclient - INFO - [LD] Downlink thread waiting for first downlink packet<br />
Oct 01 23:03:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:14,450 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:03:14 UTC)" (scheduled at 2017-10-01 23:03:14.423393+00:00)<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,324 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,325 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,327 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,453 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.423393+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,484 - apscheduler.executors.default - INFO - Running job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.436367+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,489 - apscheduler.executors.default - INFO - Job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,627 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,628 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,629 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:05:14 UTC)" executed successfully<br />
</pre><br />
<br />
If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=SatNOGS_Client_Ansible&diff=2752SatNOGS Client Ansible2019-09-19T15:01:24Z<p>Acinonyx: Fix reference to SatNOGS Client development branch</p>
<hr />
<div>=Intro=<br />
<br />
'''SatNOGS Client Ansible''' is the suggested method to install '''SatNOGS Client''' (and friends) to a system. It currently supports Raspbian and Debian (stretch and buster).<br />
<br />
=Raspbian=<br />
<br />
For Raspberry Pi, which is the reference platform for SatNOGS, a [[Raspberry_Pi_3|Raspbian image]] with '''SatNOGS Client Ansible''' pre-installed is available.<br />
<br />
=Debian=<br />
<br />
{{Warning|Skip this section if you are using [[Raspberry_Pi_3|SatNOGS Raspbian]] image and [[#SatNOGS Client Setup|SatNOGS Client Setup]]. Follow these instructions if you are provisioning SatNOGS to Debian from another host or are installing on the same host.}}These sections contain generic instructions for installing SatNOGS Client on a Debian system.<br />
<br />
==Prerequisites==<br />
<br />
*A target Debian system. To install Debian please follow the [https://www.debian.org/releases/stretch/installmanual Debian Installation Guide] and chose the net installer if you want to run a headless server. The target system can be the host itself.<br />
*A user (referenced later as ''youruser'') which is member of 'sudo' group exists on the target system.<br />
*An SSH server running on the target system.<br />
*A host system with Git and latest version of Ansible installed. To install Ansible on Debian, follow the [https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#latest-releases-via-apt-debian Ansible Installation Guide].<br />
<br />
==Installation==<br />
<br />
On the host system run the following commands:<br />
$ git clone <nowiki>https://gitlab.com/librespacefoundation/satnogs/satnogs-client-ansible.git</nowiki> # Clone SatNOGS Client Ansible repository<br />
$ cd satnogs-client-ansible # Change to cloned repository directory<br />
$ cp -r production.dist production # Copy dist configuration<br />
$ vi production/inventory/hosts # Update file with your own target host e.g. 127.0.0.1, user and SSH password<br />
$ ssh youruser@yourtargetsystem true # Test SSH connection to target system<br />
$ ansible-playbook -i production/inventory -K site.yml # Run Ansible playbook<br />
$ ssh -t youruser@yourtargetsystem sudo satnogs-setup # Setup SatNOGS client (see below)<br />
<br />
=SatNOGS Client Setup=<br />
<br />
<code>satnogs-setup</code> is a script for configuring a system installed with '''SatNOGS Client Ansible'''.<br />
<br />
==Initial Setup==<br />
<br />
Right after the first boot of the system, packages and the configuration tool itself '''must be updated'''. Follow the [[#Updating SatNOGS Client software|Updating]] instruction found below.<br />
<br />
To configure a '''SatNOGS Client Ansible''' system:<br />
<br />
#SSH into the system and run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Set '''Basic Configuration''' (see below)<br />
#Select <code>Apply</code> and the Raspberry Pi will configure itself; this may take some time<br />
#Select <code>Back</code> to exit<br />
<br />
{{Message|You can always reconfigure the software by running <code>sudo satnogs-setup</code> again.}}<br />
<br />
===Basic Configuration===<br />
<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_API_TOKEN</code><br />
|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.<br />
|-<br />
|<code>SATNOGS_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>rtlsdr</code>. Other devices supported by gr-satnogs include <code>usrpb200</code>, <code>usrp2</code>, <code>airspy</code> or <code>hackrf</code>; a complete list can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/apps/flowgraphs/satellites/README.md here].<br />
|-<br />
|<code>SATNOGS_STATION_ELEV</code><br />
|The height of your ground station above sea level in metres.<br />
|-<br />
|<code>SATNOGS_STATION_ID</code><br />
|The numeric ID assigned to your station in the SatNOGS Network site when the groundstation was created.<br />
|-<br />
|<code>SATNOGS_STATION_LAT</code><br />
|The latitude of your station. North is positive, south is negative.<br />
|-<br />
|<code>SATNOGS_STATION_LON</code><br />
|The longitude of your station. East is positive, west is negative.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_ENABLED</code><br />
|Whether or not to enable the Hamlibs rotator daemon. Rotctld is a software daemon that provides a network server to control a rotator on a serial port. If you don't have a rotator (like the [https://wiki.satnogs.org/No_rotator No rotator setup]), enter <code>NO</code>.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_OPTS</code><br />
|Options for rotcld:<br />
For a yaesu rotator, use <code>-m 601 -r /dev/ttyACM0 -s 9600 -T 0.0.0.0</code><br />
<br />
For a SatNOGS rotator <code>-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200</code> or <code>-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200</code><br />
|}<br />
<br />
===Advanced Setup===<br />
<br />
{{Warning|Changing these settings is ''not'' recommended unless you're developing SatNOGS.}}<br />
A more detailed description on setting up a development environment using the SatNOGS reference setup is given in [[SatNOGS_Client_Development]].<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>APT_REPOSITORY</code><br />
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:<br />
<code>deb <nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10</nowiki> ./</code><br />
|-<br />
|<code>APT_KEY_URL</code><br />
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:<br />
<code><nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10/Release.key</nowiki></code><br />
|-<br />
|<code>APT_KEY_ID</code><br />
|This options allows you to specify an alternative SatNOGS packages repository key ID.<br />
|-<br />
|<code>SATNOGS_CLIENT_URL</code><br />
|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:<br />
<br />
*<code>git+https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@master</code> -- the 'master' branch (the current development version) of satnogs-client<br />
*<code><nowiki>git+https://gitlab.com/jdoe/satnogs-client.git@new-feature</nowiki></code> -- the 'new-feature' branch of jdoe's fork of satnogs-client<br />
|-<br />
|<code>SATNOGS_RADIO_GR_SATNOGS_VERSION</code><br />
|This options allows you to change the version of gr-satnogs package to be installed. For example:<br />
<code>1.5.1-1</code><br />
|-<br />
|<code>RF_GAIN</code><br />
|RF Gain value for your SDR hardware. Defaults can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/python/hw_settings.py here].<br />
<br />
*For rtl-sdr possible values are the following: <code>0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6</code><br />
|}<br />
<br />
==Updating SatNOGS Client software==<br />
<br />
To update all Debian packages to the latest you can use the normal APT updating methods. SSH into the system and run the following commands:<br />
<br />
$ sudo apt-get update<br />
$ sudo apt-get -y dist-upgrade<br />
$ sudo reboot<br />
<br />
To update SatNOGS software, including the configuration tool itself:<br />
<br />
#SSH into the system and (re-)run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Select <code>Update</code> to update the configuration tool<br />
#Select <code>Apply</code> and the Raspberry Pi will update itself; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
'''WARNING: An update can potentially interrupt a running observation!'''<br />
<br />
==Verification of correct installation==<br />
<br />
To see if satnogs-client has started successfully, check the logs with journalctl:<br />
<br />
<pre><br />
$ journalctl -u satnogs-client.service<br />
</pre><br />
<br />
You should see entries running approximately once per minute that look like this:<br />
<br />
<pre><br />
Oct 01 23:02:13 raspberrypi satnogs-client[6695]: * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)<br />
Oct 01 23:02:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:02:14,466 - satnogsclient - INFO - [LD] Downlink thread waiting for first downlink packet<br />
Oct 01 23:03:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:14,450 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:03:14 UTC)" (scheduled at 2017-10-01 23:03:14.423393+00:00)<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,324 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,325 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,327 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,453 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.423393+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,484 - apscheduler.executors.default - INFO - Running job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.436367+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,489 - apscheduler.executors.default - INFO - Job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,627 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,628 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,629 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:05:14 UTC)" executed successfully<br />
</pre><br />
<br />
If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=SatNOGS_Client_Ansible&diff=2750SatNOGS Client Ansible2019-09-16T08:55:26Z<p>Acinonyx: /* Prerequisites */</p>
<hr />
<div>=Intro=<br />
<br />
'''SatNOGS Client Ansible''' is the suggested method to install '''SatNOGS Client''' (and friends) to a system. It currently supports Raspbian and Debian (stretch and buster).<br />
<br />
=Raspbian=<br />
<br />
For Raspberry Pi, which is the reference platform for SatNOGS, a [[Raspberry_Pi_3|Raspbian image]] with '''SatNOGS Client Ansible''' pre-installed is available.<br />
<br />
=Debian=<br />
<br />
{{Warning|Skip this section if you are using [[Raspberry_Pi_3|SatNOGS Raspbian]] image and [[#SatNOGS Client Setup|SatNOGS Client Setup]]. Follow these instructions if you are provisioning SatNOGS to Debian from another host or are installing on the same host.}}These sections contain generic instructions for installing SatNOGS Client on a Debian system.<br />
<br />
==Prerequisites==<br />
<br />
*A target Debian system. To install Debian please follow the [https://www.debian.org/releases/stretch/installmanual Debian Installation Guide] and chose the net installer if you want to run a headless server. The target system can be the host itself.<br />
*A user (referenced later as ''youruser'') which is member of 'sudo' group exists on the target system.<br />
*An SSH server running on the target system.<br />
*A host system with Git and latest version of Ansible installed. To install Ansible on Debian, follow the [https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#latest-releases-via-apt-debian Ansible Installation Guide].<br />
<br />
==Installation==<br />
<br />
On the host system run the following commands:<br />
$ git clone <nowiki>https://gitlab.com/librespacefoundation/satnogs/satnogs-client-ansible.git</nowiki> # Clone SatNOGS Client Ansible repository<br />
$ cd satnogs-client-ansible # Change to cloned repository directory<br />
$ cp -r production.dist production # Copy dist configuration<br />
$ vi production/inventory/hosts # Update file with your own target host e.g. 127.0.0.1, user and SSH password<br />
$ ssh youruser@yourtargetsystem true # Test SSH connection to target system<br />
$ ansible-playbook -i production/inventory -K site.yml # Run Ansible playbook<br />
$ ssh -t youruser@yourtargetsystem sudo satnogs-setup # Setup SatNOGS client (see below)<br />
<br />
=SatNOGS Client Setup=<br />
<br />
<code>satnogs-setup</code> is a script for configuring a system installed with '''SatNOGS Client Ansible'''.<br />
<br />
==Initial Setup==<br />
<br />
Right after the first boot of the system, packages and the configuration tool itself '''must be updated'''. Follow the [[#Updating SatNOGS Client software|Updating]] instruction found below.<br />
<br />
To configure a '''SatNOGS Client Ansible''' system:<br />
<br />
#SSH into the system and run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Set '''Basic Configuration''' (see below)<br />
#Select <code>Apply</code> and the Raspberry Pi will configure itself; this may take some time<br />
#Select <code>Back</code> to exit<br />
<br />
{{Message|You can always reconfigure the software by running <code>sudo satnogs-setup</code> again.}}<br />
<br />
===Basic Configuration===<br />
<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_API_TOKEN</code><br />
|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.<br />
|-<br />
|<code>SATNOGS_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>rtlsdr</code>. Other devices supported by gr-satnogs include <code>usrpb200</code>, <code>usrp2</code>, <code>airspy</code> or <code>hackrf</code>; a complete list can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/apps/flowgraphs/satellites/README.md here].<br />
|-<br />
|<code>SATNOGS_STATION_ELEV</code><br />
|The height of your ground station above sea level in metres.<br />
|-<br />
|<code>SATNOGS_STATION_ID</code><br />
|The numeric ID assigned to your station in the SatNOGS Network site when the groundstation was created.<br />
|-<br />
|<code>SATNOGS_STATION_LAT</code><br />
|The latitude of your station. North is positive, south is negative.<br />
|-<br />
|<code>SATNOGS_STATION_LON</code><br />
|The longitude of your station. East is positive, west is negative.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_ENABLED</code><br />
|Whether or not to enable the Hamlibs rotator daemon. Rotctld is a software daemon that provides a network server to control a rotator on a serial port. If you don't have a rotator (like the [https://wiki.satnogs.org/No_rotator No rotator setup]), enter <code>NO</code>.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_OPTS</code><br />
|Options for rotcld:<br />
For a yaesu rotator, use <code>-m 601 -r /dev/ttyACM0 -s 9600 -T 0.0.0.0</code><br />
<br />
For a SatNOGS rotator <code>-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200</code> or <code>-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200</code><br />
|}<br />
<br />
===Advanced Setup===<br />
<br />
{{Warning|Changing these settings is ''not'' recommended unless you're developing SatNOGS.}}<br />
A more detailed description on setting up a development environment using the SatNOGS reference setup is given in [[SatNOGS_Client_Development]].<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>APT_REPOSITORY</code><br />
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:<br />
<code>deb <nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10</nowiki> ./</code><br />
|-<br />
|<code>APT_KEY_URL</code><br />
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:<br />
<code><nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10/Release.key</nowiki></code><br />
|-<br />
|<code>APT_KEY_ID</code><br />
|This options allows you to specify an alternative SatNOGS packages repository key ID.<br />
|-<br />
|<code>SATNOGS_CLIENT_URL</code><br />
|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:<br />
<br />
*<code><nowiki>git+https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@0</nowiki></code> -- the '0' branch (the current development version) of satnogs-client<br />
*<code><nowiki>git+https://gitlab.com/jdoe/satnogs-client.git@new-feature</nowiki></code> -- the 'new-feature' branch of jdoe's fork of satnogs-client<br />
|-<br />
|<code>SATNOGS_RADIO_GR_SATNOGS_VERSION</code><br />
|This options allows you to change the version of gr-satnogs package to be installed. For example:<br />
<code>1.5.1-1</code><br />
|-<br />
|<code>RF_GAIN</code><br />
|RF Gain value for your SDR hardware. Defaults can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/python/hw_settings.py here].<br />
<br />
*For rtl-sdr possible values are the following: <code>0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6</code><br />
|}<br />
<br />
==Updating SatNOGS Client software==<br />
<br />
To update all Debian packages to the latest you can use the normal APT updating methods. SSH into the system and run the following commands:<br />
<br />
$ sudo apt-get update<br />
$ sudo apt-get -y dist-upgrade<br />
$ sudo reboot<br />
<br />
To update SatNOGS software, including the configuration tool itself:<br />
<br />
#SSH into the system and (re-)run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Select <code>Update</code> to update the configuration tool<br />
#Select <code>Apply</code> and the Raspberry Pi will update itself; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
'''WARNING: An update can potentially interrupt a running observation!'''<br />
<br />
==Verification of correct installation==<br />
<br />
To see if satnogs-client has started successfully, check the logs with journalctl:<br />
<br />
<pre><br />
$ journalctl -u satnogs-client.service<br />
</pre><br />
<br />
You should see entries running approximately once per minute that look like this:<br />
<br />
<pre><br />
Oct 01 23:02:13 raspberrypi satnogs-client[6695]: * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)<br />
Oct 01 23:02:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:02:14,466 - satnogsclient - INFO - [LD] Downlink thread waiting for first downlink packet<br />
Oct 01 23:03:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:14,450 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:03:14 UTC)" (scheduled at 2017-10-01 23:03:14.423393+00:00)<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,324 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,325 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,327 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,453 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.423393+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,484 - apscheduler.executors.default - INFO - Running job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.436367+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,489 - apscheduler.executors.default - INFO - Job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,627 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,628 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,629 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:05:14 UTC)" executed successfully<br />
</pre><br />
<br />
If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=SatNOGS_Client_Ansible&diff=2749SatNOGS Client Ansible2019-09-16T08:52:43Z<p>Acinonyx: /* Updating SatNOGS Client software */</p>
<hr />
<div>=Intro=<br />
<br />
'''SatNOGS Client Ansible''' is the suggested method to install '''SatNOGS Client''' (and friends) to a system. It currently supports Raspbian and Debian (stretch and buster).<br />
<br />
=Raspbian=<br />
<br />
For Raspberry Pi, which is the reference platform for SatNOGS, a [[Raspberry_Pi_3|Raspbian image]] with '''SatNOGS Client Ansible''' pre-installed is available.<br />
<br />
=Debian=<br />
<br />
{{Warning|Skip this section if you are using [[Raspberry_Pi_3|SatNOGS Raspbian]] image and [[#SatNOGS Client Setup|SatNOGS Client Setup]]. Follow these instructions if you are provisioning SatNOGS to Debian from another host or are installing on the same host.}}These sections contain generic instructions for installing SatNOGS Client on a Debian system.<br />
<br />
==Prerequisites==<br />
<br />
*A target Debian system. To install Debian please follow the [https://www.debian.org/releases/stretch/installmanual Debian Installation Guide] and chose the net installer if you want to run a headless server. The target system can be the host itself.<br />
*An SSH server running on the target system.<br />
*A host system with Git and latest version of Ansible installed. To install Ansible on Debian, follow the [https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#latest-releases-via-apt-debian Ansible Installation Guide].<br />
<br />
==Installation==<br />
<br />
On the host system run the following commands:<br />
$ git clone <nowiki>https://gitlab.com/librespacefoundation/satnogs/satnogs-client-ansible.git</nowiki> # Clone SatNOGS Client Ansible repository<br />
$ cd satnogs-client-ansible # Change to cloned repository directory<br />
$ cp -r production.dist production # Copy dist configuration<br />
$ vi production/inventory/hosts # Update file with your own target host e.g. 127.0.0.1, user and SSH password<br />
$ ssh youruser@yourtargetsystem true # Test SSH connection to target system<br />
$ ansible-playbook -i production/inventory -K site.yml # Run Ansible playbook<br />
$ ssh -t youruser@yourtargetsystem sudo satnogs-setup # Setup SatNOGS client (see below)<br />
<br />
=SatNOGS Client Setup=<br />
<br />
<code>satnogs-setup</code> is a script for configuring a system installed with '''SatNOGS Client Ansible'''.<br />
<br />
==Initial Setup==<br />
<br />
Right after the first boot of the system, packages and the configuration tool itself '''must be updated'''. Follow the [[#Updating SatNOGS Client software|Updating]] instruction found below.<br />
<br />
To configure a '''SatNOGS Client Ansible''' system:<br />
<br />
#SSH into the system and run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Set '''Basic Configuration''' (see below)<br />
#Select <code>Apply</code> and the Raspberry Pi will configure itself; this may take some time<br />
#Select <code>Back</code> to exit<br />
<br />
{{Message|You can always reconfigure the software by running <code>sudo satnogs-setup</code> again.}}<br />
<br />
===Basic Configuration===<br />
<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_API_TOKEN</code><br />
|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.<br />
|-<br />
|<code>SATNOGS_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>rtlsdr</code>. Other devices supported by gr-satnogs include <code>usrpb200</code>, <code>usrp2</code>, <code>airspy</code> or <code>hackrf</code>; a complete list can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/apps/flowgraphs/satellites/README.md here].<br />
|-<br />
|<code>SATNOGS_STATION_ELEV</code><br />
|The height of your ground station above sea level in metres.<br />
|-<br />
|<code>SATNOGS_STATION_ID</code><br />
|The numeric ID assigned to your station in the SatNOGS Network site when the groundstation was created.<br />
|-<br />
|<code>SATNOGS_STATION_LAT</code><br />
|The latitude of your station. North is positive, south is negative.<br />
|-<br />
|<code>SATNOGS_STATION_LON</code><br />
|The longitude of your station. East is positive, west is negative.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_ENABLED</code><br />
|Whether or not to enable the Hamlibs rotator daemon. Rotctld is a software daemon that provides a network server to control a rotator on a serial port. If you don't have a rotator (like the [https://wiki.satnogs.org/No_rotator No rotator setup]), enter <code>NO</code>.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_OPTS</code><br />
|Options for rotcld:<br />
For a yaesu rotator, use <code>-m 601 -r /dev/ttyACM0 -s 9600 -T 0.0.0.0</code><br />
<br />
For a SatNOGS rotator <code>-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200</code> or <code>-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200</code><br />
|}<br />
<br />
===Advanced Setup===<br />
<br />
{{Warning|Changing these settings is ''not'' recommended unless you're developing SatNOGS.}}<br />
A more detailed description on setting up a development environment using the SatNOGS reference setup is given in [[SatNOGS_Client_Development]].<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>APT_REPOSITORY</code><br />
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:<br />
<code>deb <nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10</nowiki> ./</code><br />
|-<br />
|<code>APT_KEY_URL</code><br />
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:<br />
<code><nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10/Release.key</nowiki></code><br />
|-<br />
|<code>APT_KEY_ID</code><br />
|This options allows you to specify an alternative SatNOGS packages repository key ID.<br />
|-<br />
|<code>SATNOGS_CLIENT_URL</code><br />
|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:<br />
<br />
*<code><nowiki>git+https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@0</nowiki></code> -- the '0' branch (the current development version) of satnogs-client<br />
*<code><nowiki>git+https://gitlab.com/jdoe/satnogs-client.git@new-feature</nowiki></code> -- the 'new-feature' branch of jdoe's fork of satnogs-client<br />
|-<br />
|<code>SATNOGS_RADIO_GR_SATNOGS_VERSION</code><br />
|This options allows you to change the version of gr-satnogs package to be installed. For example:<br />
<code>1.5.1-1</code><br />
|-<br />
|<code>RF_GAIN</code><br />
|RF Gain value for your SDR hardware. Defaults can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/python/hw_settings.py here].<br />
<br />
*For rtl-sdr possible values are the following: <code>0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6</code><br />
|}<br />
<br />
==Updating SatNOGS Client software==<br />
<br />
To update all Debian packages to the latest you can use the normal APT updating methods. SSH into the system and run the following commands:<br />
<br />
$ sudo apt-get update<br />
$ sudo apt-get -y dist-upgrade<br />
$ sudo reboot<br />
<br />
To update SatNOGS software, including the configuration tool itself:<br />
<br />
#SSH into the system and (re-)run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Select <code>Update</code> to update the configuration tool<br />
#Select <code>Apply</code> and the Raspberry Pi will update itself; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
'''WARNING: An update can potentially interrupt a running observation!'''<br />
<br />
==Verification of correct installation==<br />
<br />
To see if satnogs-client has started successfully, check the logs with journalctl:<br />
<br />
<pre><br />
journalctl -u satnogs-client.service<br />
</pre><br />
<br />
You should see entries running approximately once per minute that look like this:<br />
<br />
<pre><br />
Oct 01 23:02:13 raspberrypi satnogs-client[6695]: * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)<br />
Oct 01 23:02:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:02:14,466 - satnogsclient - INFO - [LD] Downlink thread waiting for first downlink packet<br />
Oct 01 23:03:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:14,450 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:03:14 UTC)" (scheduled at 2017-10-01 23:03:14.423393+00:00)<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,324 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,325 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,327 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,453 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.423393+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,484 - apscheduler.executors.default - INFO - Running job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.436367+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,489 - apscheduler.executors.default - INFO - Job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,627 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,628 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,629 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:05:14 UTC)" executed successfully<br />
</pre><br />
<br />
If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=SatNOGS_Client_Ansible&diff=2748SatNOGS Client Ansible2019-09-16T08:51:55Z<p>Acinonyx: </p>
<hr />
<div>=Intro=<br />
<br />
'''SatNOGS Client Ansible''' is the suggested method to install '''SatNOGS Client''' (and friends) to a system. It currently supports Raspbian and Debian (stretch and buster).<br />
<br />
=Raspbian=<br />
<br />
For Raspberry Pi, which is the reference platform for SatNOGS, a [[Raspberry_Pi_3|Raspbian image]] with '''SatNOGS Client Ansible''' pre-installed is available.<br />
<br />
=Debian=<br />
<br />
{{Warning|Skip this section if you are using [[Raspberry_Pi_3|SatNOGS Raspbian]] image and [[#SatNOGS Client Setup|SatNOGS Client Setup]]. Follow these instructions if you are provisioning SatNOGS to Debian from another host or are installing on the same host.}}These sections contain generic instructions for installing SatNOGS Client on a Debian system.<br />
<br />
==Prerequisites==<br />
<br />
*A target Debian system. To install Debian please follow the [https://www.debian.org/releases/stretch/installmanual Debian Installation Guide] and chose the net installer if you want to run a headless server. The target system can be the host itself.<br />
*An SSH server running on the target system.<br />
*A host system with Git and latest version of Ansible installed. To install Ansible on Debian, follow the [https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#latest-releases-via-apt-debian Ansible Installation Guide].<br />
<br />
==Installation==<br />
<br />
On the host system run the following commands:<br />
$ git clone <nowiki>https://gitlab.com/librespacefoundation/satnogs/satnogs-client-ansible.git</nowiki> # Clone SatNOGS Client Ansible repository<br />
$ cd satnogs-client-ansible # Change to cloned repository directory<br />
$ cp -r production.dist production # Copy dist configuration<br />
$ vi production/inventory/hosts # Update file with your own target host e.g. 127.0.0.1, user and SSH password<br />
$ ssh youruser@yourtargetsystem true # Test SSH connection to target system<br />
$ ansible-playbook -i production/inventory -K site.yml # Run Ansible playbook<br />
$ ssh -t youruser@yourtargetsystem sudo satnogs-setup # Setup SatNOGS client (see below)<br />
<br />
=SatNOGS Client Setup=<br />
<br />
<code>satnogs-setup</code> is a script for configuring a system installed with '''SatNOGS Client Ansible'''.<br />
<br />
==Initial Setup==<br />
<br />
Right after the first boot of the system, packages and the configuration tool itself '''must be updated'''. Follow the [[#Updating SatNOGS Client software|Updating]] instruction found below.<br />
<br />
To configure a '''SatNOGS Client Ansible''' system:<br />
<br />
#SSH into the system and run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Set '''Basic Configuration''' (see below)<br />
#Select <code>Apply</code> and the Raspberry Pi will configure itself; this may take some time<br />
#Select <code>Back</code> to exit<br />
<br />
{{Message|You can always reconfigure the software by running <code>sudo satnogs-setup</code> again.}}<br />
<br />
===Basic Configuration===<br />
<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_API_TOKEN</code><br />
|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.<br />
|-<br />
|<code>SATNOGS_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>rtlsdr</code>. Other devices supported by gr-satnogs include <code>usrpb200</code>, <code>usrp2</code>, <code>airspy</code> or <code>hackrf</code>; a complete list can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/apps/flowgraphs/satellites/README.md here].<br />
|-<br />
|<code>SATNOGS_STATION_ELEV</code><br />
|The height of your ground station above sea level in metres.<br />
|-<br />
|<code>SATNOGS_STATION_ID</code><br />
|The numeric ID assigned to your station in the SatNOGS Network site when the groundstation was created.<br />
|-<br />
|<code>SATNOGS_STATION_LAT</code><br />
|The latitude of your station. North is positive, south is negative.<br />
|-<br />
|<code>SATNOGS_STATION_LON</code><br />
|The longitude of your station. East is positive, west is negative.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_ENABLED</code><br />
|Whether or not to enable the Hamlibs rotator daemon. Rotctld is a software daemon that provides a network server to control a rotator on a serial port. If you don't have a rotator (like the [https://wiki.satnogs.org/No_rotator No rotator setup]), enter <code>NO</code>.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_OPTS</code><br />
|Options for rotcld:<br />
For a yaesu rotator, use <code>-m 601 -r /dev/ttyACM0 -s 9600 -T 0.0.0.0</code><br />
<br />
For a SatNOGS rotator <code>-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200</code> or <code>-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200</code><br />
|}<br />
<br />
===Advanced Setup===<br />
<br />
{{Warning|Changing these settings is ''not'' recommended unless you're developing SatNOGS.}}<br />
A more detailed description on setting up a development environment using the SatNOGS reference setup is given in [[SatNOGS_Client_Development]].<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>APT_REPOSITORY</code><br />
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:<br />
<code>deb <nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10</nowiki> ./</code><br />
|-<br />
|<code>APT_KEY_URL</code><br />
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:<br />
<code><nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10/Release.key</nowiki></code><br />
|-<br />
|<code>APT_KEY_ID</code><br />
|This options allows you to specify an alternative SatNOGS packages repository key ID.<br />
|-<br />
|<code>SATNOGS_CLIENT_URL</code><br />
|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:<br />
<br />
*<code><nowiki>git+https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@0</nowiki></code> -- the '0' branch (the current development version) of satnogs-client<br />
*<code><nowiki>git+https://gitlab.com/jdoe/satnogs-client.git@new-feature</nowiki></code> -- the 'new-feature' branch of jdoe's fork of satnogs-client<br />
|-<br />
|<code>SATNOGS_RADIO_GR_SATNOGS_VERSION</code><br />
|This options allows you to change the version of gr-satnogs package to be installed. For example:<br />
<code>1.5.1-1</code><br />
|-<br />
|<code>RF_GAIN</code><br />
|RF Gain value for your SDR hardware. Defaults can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/python/hw_settings.py here].<br />
<br />
*For rtl-sdr possible values are the following: <code>0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6</code><br />
|}<br />
<br />
==Updating SatNOGS Client software==<br />
<br />
To update all Debian packages to the latest you can use the normal APT updating methods. SSH into the system and run the following commands:<br />
<br />
<nowiki><br />
$ sudo apt-get update<br />
$ sudo apt-get -y upgrade<br />
$ sudo reboot</nowiki><br />
<br />
To update SatNOGS software, including the configuration tool itself:<br />
<br />
#SSH into the system and (re-)run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Select <code>Update</code> to update the configuration tool<br />
#Select <code>Apply</code> and the Raspberry Pi will update itself; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
'''WARNING: An update can potentially interrupt a running observation!'''<br />
<br />
==Verification of correct installation==<br />
<br />
To see if satnogs-client has started successfully, check the logs with journalctl:<br />
<br />
<pre><br />
journalctl -u satnogs-client.service<br />
</pre><br />
<br />
You should see entries running approximately once per minute that look like this:<br />
<br />
<pre><br />
Oct 01 23:02:13 raspberrypi satnogs-client[6695]: * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)<br />
Oct 01 23:02:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:02:14,466 - satnogsclient - INFO - [LD] Downlink thread waiting for first downlink packet<br />
Oct 01 23:03:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:14,450 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:03:14 UTC)" (scheduled at 2017-10-01 23:03:14.423393+00:00)<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,324 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,325 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,327 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,453 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.423393+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,484 - apscheduler.executors.default - INFO - Running job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.436367+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,489 - apscheduler.executors.default - INFO - Job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,627 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,628 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,629 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:05:14 UTC)" executed successfully<br />
</pre><br />
<br />
If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.</div>Acinonyxhttps://wiki.satnogs.org/index.php?title=SatNOGS_Client_Ansible&diff=2747SatNOGS Client Ansible2019-09-16T08:36:16Z<p>Acinonyx: </p>
<hr />
<div>=Intro=<br />
<br />
'''SatNOGS Client Ansible''' is the suggested method to install '''SatNOGS Client''' (and friends) to a system. It currently supports Raspbian and Debian Stretch.<br />
<br />
=Raspbian=<br />
<br />
For Raspberry Pi, which is the reference platform for SatNOGS, a [[Raspberry_Pi_3|Raspbian image]] with '''SatNOGS Client Ansible''' pre-installed is available.<br />
<br />
=Debian=<br />
<br />
{{Warning|Skip this section if you are using [[Raspberry_Pi_3|SatNOGS Raspbian]] image and [[#SatNOGS Client Setup|SatNOGS Client Setup]]. Follow these instructions if you are provisioning SatNOGS to Debian from another host or are installing on the same host.}}These sections contain generic instructions for installing SatNOGS Client on a Debian Stretch system.<br />
<br />
==Prerequisites==<br />
<br />
*Download and install Debian 9 from here; <br />''https://www.debian.org/releases/stretch/debian-installer/'' <br />Chose the net installer if you want to run a headless server. Only download AMD64 version. gr-satnogs does not support i386. <br />Install on your target machine and install the ssh server.<br />
*Add your user to the sudo group; Become root. <code>su</code> <code>usermod -aG sudo yourUserName</code><br />
*A host system with Git and latest version of Ansible installed <br />Edit this file to install the latest Ansible. <code>nano /etc/apt/sources.list</code> <br />Add the following two lines to the bottom of the file; <br />deb <nowiki>http://ftp.debian.org/debian</nowiki> stretch-backportsmain <br />deb-src <nowiki>http://ftp.debian.org/debian</nowiki> stretch-backports main<br />
*On the host system run the following commands.<br />
<br />
<code>apt-get update<br />
apt-get install -t stretch-backports ansible<br />
apt-get install sudo<br />
apt-get install git<br />
apt-get install sshpass</code><br />
<br />
==Installation==<br />
<br />
On the host system run the following commands:<br />
$ git clone <nowiki>https://gitlab.com/librespacefoundation/satnogs/satnogs-client-ansible.git</nowiki> # Clone SatNOGS Client Ansible repository<br />
$ cd satnogs-client-ansible # Change to cloned repository directory<br />
$ cp -r production.dist production # Copy dist configuration<br />
$ vi production/inventory/hosts # Update file with your own target host e.g. 127.0.0.1, user and SSH password<br />
$ ssh youruser@yourtargetsystem true # Test SSH connection to target system<br />
$ ansible-playbook -i production/inventory -K site.yml # Run Ansible playbook<br />
$ ssh -t youruser@yourtargetsystem sudo satnogs-setup # Setup SatNOGS client (see below)<br />
<br />
=SatNOGS Client Setup=<br />
<br />
<code>satnogs-setup</code> is a script for configuring a system installed with '''SatNOGS Client Ansible'''.<br />
<br />
==Initial Setup==<br />
<br />
Right after the first boot of the system, packages and the configuration tool itself '''must be updated'''. Follow the [[#Updating SatNOGS Client software|Updating]] instruction found below.<br />
<br />
To configure a '''SatNOGS Client Ansible''' system:<br />
<br />
#SSH into the system and run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Set '''Basic Configuration''' (see below)<br />
#Select <code>Apply</code> and the Raspberry Pi will configure itself; this may take some time<br />
#Select <code>Back</code> to exit<br />
<br />
{{Message|You can always reconfigure the software by running <code>sudo satnogs-setup</code> again.}}<br />
<br />
===Basic Configuration===<br />
<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>SATNOGS_API_TOKEN</code><br />
|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.<br />
|-<br />
|<code>SATNOGS_RX_DEVICE</code><br />
|If you are using an RTL-SDR, this is <code>rtlsdr</code>. Other devices supported by gr-satnogs include <code>usrpb200</code>, <code>usrp2</code>, <code>airspy</code> or <code>hackrf</code>; a complete list can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/apps/flowgraphs/satellites/README.md here].<br />
|-<br />
|<code>SATNOGS_STATION_ELEV</code><br />
|The height of your ground station above sea level in metres.<br />
|-<br />
|<code>SATNOGS_STATION_ID</code><br />
|The numeric ID assigned to your station in the SatNOGS Network site when the groundstation was created.<br />
|-<br />
|<code>SATNOGS_STATION_LAT</code><br />
|The latitude of your station. North is positive, south is negative.<br />
|-<br />
|<code>SATNOGS_STATION_LON</code><br />
|The longitude of your station. East is positive, west is negative.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_ENABLED</code><br />
|Whether or not to enable the Hamlibs rotator daemon. Rotctld is a software daemon that provides a network server to control a rotator on a serial port. If you don't have a rotator (like the [https://wiki.satnogs.org/No_rotator No rotator setup]), enter <code>NO</code>.<br />
|-<br />
|<code>HAMLIB_UTILS_ROT_OPTS</code><br />
|Options for rotcld:<br />
For a yaesu rotator, use <code>-m 601 -r /dev/ttyACM0 -s 9600 -T 0.0.0.0</code><br />
<br />
For a SatNOGS rotator <code>-m 204 -s 19200 -r /dev/ttyACM0 -C timeout=200</code> or <code>-m 204 -s 19200 -r /dev/ttyUSB0 -C timeout=200</code><br />
|}<br />
<br />
===Advanced Setup===<br />
<br />
{{Warning|Changing these settings is ''not'' recommended unless you're developing SatNOGS.}}<br />
A more detailed description on setting up a development environment using the SatNOGS reference setup is given in [[SatNOGS_Client_Development]].<br />
{| class="wikitable"<br />
!Setting<br />
!Description<br />
|-<br />
|<code>APT_REPOSITORY</code><br />
|This options allows you to change the SatNOGS packages repository. For example, to install unstable package builds use:<br />
<code>deb <nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10</nowiki> ./</code><br />
|-<br />
|<code>APT_KEY_URL</code><br />
|This options allows you to change the SatNOGS packages repository key URL. For example, to install unstable package builds use:<br />
<code><nowiki>http://download.opensuse.org/repositories/home:/librespace:/satnogs_unstable/Raspbian_10/Release.key</nowiki></code><br />
|-<br />
|<code>APT_KEY_ID</code><br />
|This options allows you to specify an alternative SatNOGS packages repository key ID.<br />
|-<br />
|<code>SATNOGS_CLIENT_URL</code><br />
|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:<br />
<br />
*<code><nowiki>git+https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@0</nowiki></code> -- the '0' branch (the current development version) of satnogs-client<br />
*<code><nowiki>git+https://gitlab.com/jdoe/satnogs-client.git@new-feature</nowiki></code> -- the 'new-feature' branch of jdoe's fork of satnogs-client<br />
|-<br />
|<code>SATNOGS_RADIO_GR_SATNOGS_VERSION</code><br />
|This options allows you to change the version of gr-satnogs package to be installed. For example:<br />
<code>1.5.1-1</code><br />
|-<br />
|<code>RF_GAIN</code><br />
|RF Gain value for your SDR hardware. Defaults can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/python/hw_settings.py here].<br />
<br />
*For rtl-sdr possible values are the following: <code>0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6</code><br />
|}<br />
<br />
==Updating SatNOGS Client software==<br />
<br />
To update all Debian packages to the latest you can use the normal APT updating methods. SSH into the system and run the following commands:<br />
<br />
<nowiki><br />
$ sudo apt-get update<br />
$ sudo apt-get -y upgrade<br />
$ sudo reboot</nowiki><br />
<br />
To update SatNOGS software, including the configuration tool itself:<br />
<br />
#SSH into the system and (re-)run <code>sudo satnogs-setup</code>; this will bring up the configuration menu<br />
#Select <code>Update</code> to update the configuration tool<br />
#Select <code>Apply</code> and the Raspberry Pi will update itself; this may take some time<br />
#Before exit, check at the top that you have the latest satnogs-client and gr-satnogs versions<br />
#Select <code>Back</code> to exit<br />
<br />
'''WARNING: An update can potentially interrupt a running observation!'''<br />
<br />
==Verification of correct installation==<br />
<br />
To see if satnogs-client has started successfully, check the logs with journalctl:<br />
<br />
<pre><br />
journalctl -u satnogs-client.service<br />
</pre><br />
<br />
You should see entries running approximately once per minute that look like this:<br />
<br />
<pre><br />
Oct 01 23:02:13 raspberrypi satnogs-client[6695]: * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)<br />
Oct 01 23:02:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:02:14,466 - satnogsclient - INFO - [LD] Downlink thread waiting for first downlink packet<br />
Oct 01 23:03:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:14,450 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:03:14 UTC)" (scheduled at 2017-10-01 23:03:14.423393+00:00)<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,324 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,325 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,327 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,453 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.423393+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,484 - apscheduler.executors.default - INFO - Running job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.436367+00:00)<br />
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,489 - apscheduler.executors.default - INFO - Job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,627 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,628 - satnogsclient - DEBUG - Sending message: []<br />
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,629 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:05:14 UTC)" executed successfully<br />
</pre><br />
<br />
If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.</div>Acinonyx