Code repository for the Pytheas submersible observation platform

Related tags

MiscellaneousPytheas
Overview

Pytheas

Main repository for the Pytheas submersible probe system.

List of Acronyms/Terms

  • USP - Underwater Sensor Platform - The primary platform in the Pytheas system; a water-proofed and pressure-rated sensor pod designed to be deployed in deep water.
  • SCU - Surface Control Unit - Surface-based platform for communicating and controlling the USP.
  • PCS - Pytheas Control System - Primary operating software for the USP, provides live manual interface as well as autonomous operation.
  • ACAP - Autonomous Capture - Shorthand for csv capture files generated in autonomous mode.
  • Passive - As in, passive captures. Shorthand for the standard csv capture file generated for each session recording any instance the sensors are manually polled.

Installation Instructions

Work in Progress - I plan to write a script(s?) to automate the installation process soon. In the meantime, consider these bare-bones instructions for the USP:

  1. Start with a Raspberry Pi imaged with PiOS and wired according to the block diagram in this repository.
  2. In raspi-config make sure that the I2C and camera module interfaces are enabled. I also STRONGLY recommend resetting GPU memory allocation to 256MB.
  3. Configure eth0 for a static IP address (recommend 192.168.2.2/24)
  4. Ensure all of the dependencies (listed below) are installed.
  5. Clone this repository to a convenient location (recommended: ~/pytheas)
  6. Review the "quick values" in pcs.py and make sure they are configured to your liking. It's strongly recommended that auxPath be set to wherever you're mounting the SCU's NFS share, because otherwise it kinda defeats the purpose.
  7. Add the SCU to your /etc/hosts file under a convenient name (recommended: pytheas-scu or just scu)

Likewise, consider this the bare-bones instructions for the SCU:

  1. Start with a machine imaged with a desktop Linux distribution (tested on Linux Mint 20.1 but will probably work on most major distributions)
  2. Configure an ethernet network interface with a static IP address (recommend 192.168.2.1/24)
  3. Ensure all of the dependencies (listed below) are installed.
  4. Configure /etc/exports to host a directory the USP can use to copy backups to (recommended: /usp-backups)
  5. Clone this repository to a convenient location (recommended: ~/pytheas)
  6. Review the contents of .scu-commands and correct any/all path references to suit your personal set up.
  7. Either copy/paste the contents of .scu-commands in to your .bashrc file or just have your .bashrc directly reference .scu-commands
  8. Add the USP to your /etc/hosts file under a convenient name (recommended: pytheas-usp or just usp)

Dependencies for USP

  • Python 3
  • PrettyTable python library
  • python-smbus library (needed for ms5837-python)
  • Screen
  • OpenSSH Server

Dependencies for SCU

  • VLC
  • nfs-kernel-server

SCU COMMANDS

These commands can be issued from the SCU terminal window

  • start-pcs - Initializes the PCS software on the USP
  • start-stream - Brings up the live video stream in a VLC window
  • dl-usp - Bulk-downloads ALL USP data (including session data and pcs.log) in to the SCU
  • purge-usp - Bulk-deletes ALL USP data (including session data and pcs.log) from the SCU

CSV Fields

  • T - Time Index - Number of ticks since the capture session began. Can be used as a key value if importing in to DBs. Note that the T field is only present on autonomous data captures.
  • LTime - Local Time - The time of day that the record was captured. Based off of whatever time zone is configured in the USP.
  • Pressure - The water pressure at the time of capture. Measured in millibars.
  • Depth - The depth of the USP at time of capture, computed from the pressure reading. Measured in meters.
  • ETemp - External Temperature - The water temperature at time of capture, measured in Celcius.
  • ITemp - Internal Temperature - Internal USP temperature as reported by the CPU. Measured in Calcius.
  • Notes - Free-form notes written by the operator. The notes field is only present on passive data captures.
Owner
UltraChip
UltraChip
Introduction to Databases Coursework 2 (SQL) - dataset generator

Introduction to Databases Coursework 2 (SQL) - dataset generator This is python script generates a text file with insert queries for the schema.sql fi

Javier Bosch 1 Nov 08, 2021
Your missing PO formatter and linter

pofmt Your missing PO formatter and linter Features Wrap msgid and msgstr with a constant max width. Can act as a pre-commit hook. Display lint errors

Frost Ming 5 Mar 22, 2022
Herramienta para pentesting web.

iTell 🕴 ¡Tool con herramientas para pentesting web! Metodos ❣ DDoS Attacks Recon Active Recon (Vulns) Extras (Bypass CF, FTP && SSH Bruter) Respons

1 Jul 28, 2022
Backend/API for the Mumble.dev, an open source social media application.

Welcome to the Mumble Api Repository Getting Started If you are trying to use this project for the first time, you can get up and running by following

Dennis Ivy 189 Dec 27, 2022
Python programming language Test

Exercise You are tasked with creating a data-processing app that pre-processes and enriches the data coming from crawlers, with the following requirem

Monirul Islam Khan 1 Dec 13, 2021
System Design Assignments as part of Arpit's System Design Masterclass

System Design Assignments The repository contains a set of problem statements around Software Architecture and System Design as conducted by Arpit's S

Relog 1.1k Jan 09, 2023
Earth centric orbit propagation tool. Built from scratch in python.

Orbit-Propogator Earth centric orbit propagation tool. Built from scratch in python. Functionality includes: tracking sattelite location over time plo

Adam Klein 1 Mar 13, 2022
Simple tools for the Horse Reality webgame

Realtools (Web Tools for Horse Reality) These tools were made on request from a close friend of mine who plays this game. A live instance can be found

shay 0 Sep 06, 2022
Gmvault: Backup and restore your gmail account

Gmvault: Backup and restore your gmail account Gmvault is a tool for backing up your gmail account and never lose email correspondence. Gmvault is ope

Guillaume Aubert 3.5k Jan 01, 2023
Ghost source since the developer of the project quit due to reasons

👻 Ghost Selfbot The official code for Ghost which was recently discontinued and released to the public. Feel free to use any of the code found in thi

xannyy 2 Mar 24, 2022
A toolkit for developing and deploying serverless Python code in AWS Lambda.

Python-lambda is a toolset for developing and deploying serverless Python code in AWS Lambda. A call for contributors With python-lambda and pytube bo

Nick Ficano 1.4k Jan 03, 2023
Wordle-solve - Attempting to solve wordle

Wordle Solver Run with python wordle_beater.py. This hardmode wordle solver take

Tom Lockwood 42 Oct 11, 2022
Exam assignment for Laboratory of Bioinformatics 2

Exam assignment for Laboratory of Bioinformatics 2 (Alma Mater University of Bologna, Master in Bioinformatics)

2 Oct 22, 2022
Simulation simplifiée du fonctionnement du protocole RIP

ProjetRIPlay v2 Simulation simplifiée du fonctionnement du protocole RIP par Eric Buonocore le 18/01/2022 Sur la base de l'exercice 5 du sujet zéro du

Eric Buonocore 2 Feb 15, 2022
Utility functions for working with data from Nix in Python

Pynixutil - Utility functions for working with data from Nix in Python Examples Base32 encoding/decoding import pynixutil input = "v5sv61sszx301i0x6x

Tweag 11 Dec 16, 2022
About Python's multithreading and GIL

About Python's multithreading and GIL

Souvik Ghosh 3 Mar 01, 2022
Zues Auto Claimer Leaked By bazooka#0001

Zues Auto Claimer Leaked By bazooka#0001 put proxies in prox.txt put ssid in sid.txt put all users you want to target in user.txt for the login just t

1 Jan 15, 2022
Class and mathematical functions for quaternion numbers.

Quaternions Class and mathematical functions for quaternion numbers. Installation Python This is a Python 3 module. If you don't have Python installed

3 Nov 08, 2022
Tie together `drf-spectacular` and `djangorestframework-dataclasses` for easy-to-use apis and openapi schemas.

Speccify Tie together drf-spectacular and djangorestframework-dataclasses for easy-to-use apis and openapi schemas. Usage @dataclass class MyQ

Lyst 4 Sep 26, 2022
Get the stats of a (or more) Hypixel player(s)

Hypixel_Stats Get the statistics of a (or more) Hypixel player(s) Who needs this? Everyone who plays a lot of Minecraft and often plays on mc.hypixel.

Finnomator 1 Feb 12, 2022