Difference between revisions of "Raspberry Pi"

From SatNOGS Wiki
(Explain SATNOGS_RADIO_GR_SATNOGS_PACKAGE option)
m (Intro: added link to ansible guide)
(16 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 
{{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.}}
 
{{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.}}
 +
[[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]]]
  
 
= Intro =
 
= Intro =
  
The Raspberry Pi 3 is the reference platform for SatNOGS. You can try using various distributions for this (eg. Arch, Fedora), but the one we suggest is our custom image based on latest Raspbian.
+
The Raspberry Pi 3 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. Arch, Fedora), but the one we suggest is our custom image based on latest Raspbian.  
  
= Raspbian =
+
== [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/jobs/artifacts/2018080300/download?job=release <span class="glyphicon glyphicon-save"></span> Download]==
  
== Download ==
+
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]. Click on the cloud icon and then click "Download release". You will get an Artifacts.zip file:
 
 
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].
 
  
 
=== Artifacts list ===
 
=== Artifacts list ===
Line 32: Line 31:
 
[https://www.raspberrypi.org/documentation/installation/installing-images/README.md Follow the usual Raspbian flashing instructions], and boot your Raspberry Pi.
 
[https://www.raspberrypi.org/documentation/installation/installing-images/README.md Follow the usual Raspbian flashing instructions], and boot your Raspberry Pi.
  
== Networking ==
+
== Configuration==
 +
The Raspberry Pi can be set up by connecting it to a keyboard and monitor, by connecting it to wired Ethernet, or by editing files in the /boot mount on the flashed USB stick.
 +
 
 +
=== Modifying the /boot mount ===
 +
This eliminates the need for a keyboard and monitor. Note your OS may mount /boot 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:
 +
 
 +
enable ssh server
 +
 
 +
    touch /boot/ssh
  
If you are using wired Ethernet you should get connectivity right away. If you are using wireless then see [https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md this doc for network configuration instructions].
+
set up wifi:
  
== Initial Setup ==
+
    edit /boot/wpa_supplicant.conf
 +
 
 +
contents: (note key_mgmt options include NONE, WPA-PSK, WPA-EAP)
 +
 
 +
    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
 +
    update_config=1
 +
    country=US
 +
   
 +
    network={
 +
        ssid="NETWORK_NAME"
 +
        psk="password"
 +
        key_mgmt=WPA-PSK
 +
    }
 +
 
 +
=== Ethernet ===
 +
If you are using wired Ethernet you should get connectivity right away.
 +
 
 +
=== Wireless setup ===
 +
If you are using wireless then see [https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md this doc for network configuration instructions] after booting.
 +
 
 +
== Keyboard and monitor setup ==
 
Once your Raspberry Pi is booted, log in with username "pi" password "raspberry" and run:  
 
Once your Raspberry Pi is booted, log in with username "pi" password "raspberry" and run:  
 
<pre>
 
<pre>
Line 50: Line 77:
 
** set keyboard layout, again this is defaulting to a UK layout
 
** set keyboard layout, again this is defaulting to a UK layout
 
** set wifi country
 
** set wifi country
** expand filesysten
+
** expand filesystem
 
* Finish and reboot
 
* Finish and reboot
 
Next, run
 
<pre>
 
sudo apt-get update && sudo apt-get -y upgrade
 
</pre>
 
  
  
== Setup ==
+
== SatNOGS Setup ==
  
 
SSH to the Raspberry Pi with user "pi" and password "raspberry" (no quotes).
 
SSH to the Raspberry Pi with user "pi" and password "raspberry" (no quotes).
  
# Run "sudo satnogs-setup"
+
Follow [[SatNOGS_Client_Ansible#SatNOGS_Client_Setup|SatNOGS Client Setup]] instructions to configure the system.
# Select "Update" to update the configuration tool
 
# Set basic configuration
 
# Select "Apply" and the Raspberry Pi will configure itself; this may take some time
 
# Select "Back" to exit
 
 
 
* Note: you can always reconfigure the software by running "sudo satnogs-setup" again.
 
 
 
=== Basic setup ===
 
 
 
* '''SATNOGS_API_TOKEN''':  The API token assigned to your ground station on the SatNOGS Network website.
 
 
 
* '''SATNOGS_NETWORK_API_URL''':  The API for the SatNOGS network site.  If you're working on the stage environment, this is <code><nowiki>https://network-dev.satnogs.org/api/</nowiki></code>; if you're working on the prod environment, this is <code><nowiki>https://network.satnogs.org/api/</nowiki></code>.
 
 
 
* '''SATNOGS_RX_DEVICE''':  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].
 
 
 
* '''SATNOGS_STATION_ELEV''':  The elevation of your ground station in metres.
 
 
 
* '''SATNOGS_STATION_ID''':  The ID assigned to your station in the SatNOGS network site (either stage or prod).
 
 
 
* '''SATNOGS_STATION_LAT''': The latitude of your station.  North is positive, south is negative.
 
 
 
* '''SATNOGS_STATION_LONG''': The longitude of your station.  East is positive, west is negative.
 
 
 
* '''HAMLIB_UTILS_ROT_ENABLED''':  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>False</code>.
 
 
 
* '''HAMLIB_UTILS_ROT_OPTS''':  Options for rotcld. For a yaesu rotator, use <code>-m 601 -r /dev/ttyACM0 -s 9600 -T 0.0.0.0</code>
 
 
 
=== Advanced Setup ===
 
 
 
* '''SATNOGS_CLIENT_URL''': 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:
 
** git+https://gitlab.com/librespacefoundation/satnogs/satnogs-client.git@0 -- the '0' branch (the current development version) of satnogs-client
 
** git+https://gitlab.com/jdoe/satnogs-client.git@new-feature -- the 'new-feature' branch of jdoe's fork of satnogs-client
 
* '''SATNOGS_RADIO_GR_SATNOGS_PACKAGE''': This options allows you to change the installed package of gr-satnogs. For example, to install nightly development builds use:
 
** https://gitlab.com/librespacefoundation/satnogs/gr-satnogs-package/-/jobs/artifacts/master/raw/build/debian/output/armhf/gr-satnogs_armhf.deb?job=nightly
 
 
 
{{Message|Changing these settings is ''not'' recommended unless you're developing SatNOGS.}}
 
 
 
== Updating ==
 
 
 
To update SatNOGS software, re-run <code>sudo satnogs-setup</code>. Select "Update" to pull the latest Ansible playbook and then "Apply" to apply any updates.
 
 
 
Raspbian packages can be updated using the normal APT updating methods (e.g. <code>apt-get upgrade</code> or <code>aptitude</code>).
 
 
 
WARNING: An update can potentially interrupt a running observation!
 
 
 
== Testing ==
 
 
 
To see if satnogs-client has started successfully, check the logs with journalctl:
 
 
 
<pre>
 
journalctl -u satnogs-client.service
 
</pre>
 
 
 
You should see entries running approximately once per minute that look like this:
 
 
 
<pre>
 
Oct 01 23:02:13 raspberrypi satnogs-client[6695]:  * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
 
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
 
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)
 
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
 
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,325 - satnogsclient - DEBUG - Sending message: []
 
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
 
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)
 
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)
 
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
 
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
 
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,628 - satnogsclient - DEBUG - Sending message: []
 
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
 
</pre>
 
 
 
You can also try visiting satnog-client's web interface. In your browser, go to '''<nowiki>http://(ip address of your raspberry pi):5000</nowiki>'''.  You should see something like this:
 
 
 
[[File:SatNOGS_client_screenshot.png|400px|thumb|center|SatNOGS client web page]]
 
 
 
 
 
If you see that, great -- you're ready to [[Operation|schedule your first observation]]! If not, check out the [[Troubleshooting]] page.
 
 
 
  
 
= Fedora =  
 
= Fedora =  
  
 
Instructions for installing on Fedora can be found [[Fedora_Installation|here]].
 
Instructions for installing on Fedora can be found [[Fedora_Installation|here]].

Revision as of 03:14, 14 February 2019

Idea.png
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.
Libre Space Foundation Raspberry Pi Case
Libre Space Foundation Raspberry Pi Case, on thingiverse

Intro

The Raspberry Pi 3 is the reference platform for SatNOGS (see our Ansible guide to install SatNOGS on other Linux machines). You can try using various distributions for this (eg. Arch, Fedora), but the one we suggest is our custom image based on latest Raspbian.

Download

You can download the latest Raspbian SatNOGS image following the links from the latest tag on GitLab. Click on the cloud icon and then click "Download release". You will get an Artifacts.zip file:

Artifacts list

The current artifacts list consists of:

  • A Zipped image file
  • An Image info file
  • A SHA256 checksums file

Data integrity verification

You should verify the data integrity of the artifacts by checking the SHA256 checksums. On Linux, run sha256sum -c sha256sums in the directory where the artifacts are downloaded

Example:

$ sha256sum -c sha256sums 
2017-09-29-Raspbian-SatNOGS-master-lite.info: OK
image_2017-09-29-Raspbian-SatNOGS-master-lite.zip: OK

Flashing

Follow the usual Raspbian flashing instructions, and boot your Raspberry Pi.

Configuration

The Raspberry Pi can be set up by connecting it to a keyboard and monitor, by connecting it to wired Ethernet, or by editing files in the /boot mount on the flashed USB stick.

Modifying the /boot mount

This eliminates the need for a keyboard and monitor. Note your OS may mount /boot in a different location, and Windows users have line ending problems. Suggested actions:

enable ssh server

   touch /boot/ssh

set up wifi:

   edit /boot/wpa_supplicant.conf

contents: (note key_mgmt options include NONE, WPA-PSK, WPA-EAP)

   ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
   update_config=1
   country=US
   
   network={
       ssid="NETWORK_NAME"
       psk="password"
       key_mgmt=WPA-PSK
   }

Ethernet

If you are using wired Ethernet you should get connectivity right away.

Wireless setup

If you are using wireless then see this doc for network configuration instructions after booting.

Keyboard and monitor setup

Once your Raspberry Pi is booted, log in with username "pi" password "raspberry" and run:

sudo raspi-config

You will want to be sure to do the following:

  • Set a strong, unique password
  • Change localization settings:
    • by default the rpi locale is configured for EN-GB, change as appropriate (ie: to EN_US.UTF-8)
    • set timezone (we recommend UTC so your logs match the times in Network)
    • set keyboard layout, again this is defaulting to a UK layout
    • set wifi country
    • expand filesystem
  • Finish and reboot


SatNOGS Setup

SSH to the Raspberry Pi with user "pi" and password "raspberry" (no quotes).

Follow SatNOGS Client Setup instructions to configure the system.

Fedora

Instructions for installing on Fedora can be found here.