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
Материалы для курса VK Углубленный Python, весна 2022

VK Углубленный Python, весна 2022 Материалы для курса VK Углубленный Python, весна 2022 Лекции и материалы (слайды, домашки, код с занятий) Введение,

10 Nov 02, 2022
Automatically deletes Capital One Eno virtual cards for when you've made a couple too many.

eno-delete Automatically deletes Capital One Eno virtual cards for when you've made a couple too many. Warning: Program will delete ALL virtual cards

h3x 3 Sep 29, 2022
Module for remote in-memory Python package/module loading through HTTP/S

httpimport Python's missing feature! The feature has been suggested in Python Mailing List Remote, in-memory Python package/module importing through H

John Torakis 220 Dec 17, 2022
A pairs trade is a market neutral trading strategy enabling traders to profit from virtually any market conditions.

A pairs trade is a market neutral trading strategy enabling traders to profit from virtually any market conditions. This strategy is categorized as a statistical arbitrage and convergence trading str

Kanupriya Anand 13 Nov 27, 2022
Set up a sidechain for the XRPL quickly and easily

Sidechain Launch Kit Introduction This directory contains python scripts to tests and explore side chains. This document walks through the steps to se

Xpring Engineering 15 Dec 08, 2022
A package with multiple bias correction methods for climatic variables, including the QM, DQM, QDM, UQM, and SDM methods

A package with multiple bias correction methods for climatic variables, including the QM, DQM, QDM, UQM, and SDM methods

Sebastián A. Aedo Quililongo 9 Nov 18, 2022
Logging-monitoring-instrumentation - A brief repository on logging monitoring and instrumentation in Python

logging-monitoring-instrumentation A brief repository on logging monitoring and

Noah Gift 6 Feb 17, 2022
A simple chatbot that I made for school project

Chatbot: Python A simple chatbot that I made for school Project. Tho this chatbot is dumb sometimes, but it's not too bad lol. Check it Out! FAQ How t

Prashant 2 Nov 13, 2021
Rock-paper-scissors basic game in terminal with Python

piedra-papel-tijera Juego básico de piedra, papel o tijera en terminal con Python. El juego incluye: Nombre de jugador Número de veces a jugar Resulta

Isaías Flores 1 Dec 14, 2021
Aerial Ace is a helper bot for poketwo which provide various functionalities on top of being a pokedex.

Aerial Ace is a helper bot for poketwo which provide various functionalities on top of being a pokedex.

Devanshu Mishra 1 Dec 01, 2021
0xFalcon - 0xFalcon Tool For Python

0xFalcone Installation Install 0xFalcone Tool: apt install git git clone https:/

Alharb7 6 Sep 24, 2022
Calculadora-basica - Calculator with basic operators

Calculadora básica Calculadora com operadores básicos; O programa solicitará a d

Vitor Antoni 2 Apr 26, 2022
プレヤフHackUチーム「キャット・タン」が作成したアプリ「illustection」

cat_tongue_illustection プレヤフHackUチーム「キャット・タン」が作成した, プライバシー保護アプリ「illustection」です! デモ動画 https://youtu.be/z3I7LuB_i58 機能 アップロードされた画像をいい感じのイラストやの素材に置き換える(

4 Jul 03, 2021
a pull switch (or BYO button) that gets you out of video calls, quick

zoomout a pull switch (or BYO button) that gets you out of video calls, quick. As seen on Twitter System compatibility Tested on macOS Catalina (10.15

Brian Moore 422 Dec 30, 2022
A simple method to create strong password.

A simple method to create strong password.

1 Jan 23, 2022
Python package for handling and analyzing PSRFITS files

PyPulse A pure-Python package for handling and analyzing PSRFITS files. Read the documentation here. This is an alternate code base from PSRCHIVE. Req

Michael Lam 15 Nov 30, 2022
用于导出墨墨背单词的词库,并生成适用于 List 背单词,不背单词,欧陆词典等的自定义词库

maimemo-export 用于导出墨墨背单词的词库,并生成适用于 List 背单词,欧陆词典,不背单词等的自定义词库。 仓库内已经导出墨墨背单词所有自带词库(暂不包括云词库),多达 900 种词库,可以在仓库中选择需要的词库下载(下载单个文件的方法),也可以去 蓝奏云(密码:666) 下载打包好

ourongxing 293 Dec 29, 2022
Automated GitHub profile content using the USGS API, Plotly and GitHub Actions.

Top 20 Largest Earthquakes in the Past 24 Hours Location Mag Date and Time (UTC) 92 km SW of Sechura, Peru 5.2 11-05-2021 23:19:50 113 km NNE of Lobuj

Mr. Phantom 28 Oct 31, 2022
Compress .dds file in ggpk to boost fps. This is a python rewrite of PoeTexureResizer.

PoeBooster Compress .dds file in ggpk to boost fps. This is a python rewrite of PoeTexureResizer. Setup Install ImageMagick-7.1.0. Download and unzip

3 Sep 30, 2022
Download and archive entire usenet newsgroups over NNTP.

Usenet Archiving Tool This code is for archiving Usenet discussions, not downloading files. Newsgroup posts are saved under the authors name and email

Corey White 2 Dec 23, 2021