Raspberry Shake: Software Index
- Station Software
- Useful Commands
- Passwords & SSH Keys
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.
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).
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 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.
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.