Any views expressed within media held on this service are those of the contributors, should not be taken as approved or endorsed by the University, and do not necessarily reflect the views of the University in respect of any particular issue.

Mark Naylor’s Blog

Mark Naylor’s Blog

I want to know how the Earth works…

Raspberry Shake: Software Index

 

Server Software

  • Station Software
  • Useful Commands
  • Passwords & SSH Keys

Station Software

Scripts

Software Overview

Intro

The project uses a google cloud server registered at soundingouttheriver.com. Software enables the flow of data from individual stations to the server. The geophone/MEMs sensor data is stored in miniSEED format and transferred in close to real time via the Seedlink protocol. The server then makes it available via SMB and HTTP for further processing on local machines.

MiniSEED Data

The miniSEED data is stored on the station’s Raspberry Pi computer and needs to be ‘pulled’ by the server. The server’s Seedlink_manager.py script regularly checks which stations are connected (via the active_stations.py script). It then pulls the seedlink data being produced by the stations and stores it in daily files (using the Obspy python package).

Aux Telemetry

The stations run the stream_thingsboard.py script to collect auxiliary data such as battery status, temperature, disk use. These metrics are telemetered via the MQTT protocol (a common Internet of Things standard). The server uses a Thingsboard dashboard to display the MQTT data, while archiving it in a PostgreSQL database.

SSH Tunnels

SSH tunnels to the server are initiated by the stations, this means the server can talk to to the stations and pull data without network restrictions. Without this, the NAT/Firewall on the 4G network would prevent incoming connections reaching the stations.

Two tunnels are created, one for the seedlink protocol and the other for a ssh login shell. The login shell allows the stations to be administered remotely.

Note that the active_stations.py script works by looking for any ssh tunnels connected to the server and reporting the port numbers they use.

Web Server / Docs

The server also runs an apache2 web server to host these html documentation pages. The pages are generated from ReStructured text (.rst) files using the Sphinx documentation tool.

NTP/GPS Timing

The stations run a modified version of the software provided by Raspberry Shake. It’s primary function is to convert the raw data stream from the sensors into miniSEED format and make it available via the seedlink protocol.

It is essential that the station has accurate timing information for this, so GPS is used to synchronise the station’s Network time protocol (NTP) clock with ~microsecond accuracy.

Share

css.php

Report this page

To report inappropriate content on this page, please use the form below. Upon receiving your report, we will be in touch as per the Take Down Policy of the service.

Please note that personal data collected through this form is used and stored for the purposes of processing this report and communication with you.

If you are unable to report a concern about content via this form please contact the Service Owner.

Please enter an email address you wish to be contacted on. Please describe the unacceptable content in sufficient detail to allow us to locate it, and why you consider it to be unacceptable.
By submitting this report, you accept that it is accurate and that fraudulent or nuisance complaints may result in action by the University.

  Cancel