AlkalinityTitrator

Apparatus to determine total alkalinity in sea water using an open-cell titration

https://github.com/Open-Acidification/AlkalinityTitrator

Science Score: 10.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    2 of 9 committers (22.2%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.9%) to scientific vocabulary

Keywords

alkalinity-titrator ocean-acidification raspberry-pi

Keywords from Contributors

degoogle
Last synced: 5 months ago · JSON representation

Repository

Apparatus to determine total alkalinity in sea water using an open-cell titration

Basic Info
Statistics
  • Stars: 7
  • Watchers: 3
  • Forks: 10
  • Open Issues: 20
  • Releases: 5
Topics
alkalinity-titrator ocean-acidification raspberry-pi
Created about 6 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Code of conduct

README.md

Alkalinity Titrator Project

All Contributors <!-- ALL-CONTRIBUTORS-BADGE:END -->

Project motivations

As CO2 levels increase, the ocean absorbs more CO2 and becomes more acidic. There currently exists a large deficit of data on how this affects wildlife. Alkalinity Titrators are needed for ocean acidification research​. Currently, available models are expensive ($10,000-$25,000)​. Models on the lower end of the price range are not automated and are therefore time intensive.

This project aims to make ocean acidification research more widely available by lowering the cost of alkalinity titrators.

The problems that the alkalinity-titrator seek to fix are as follows:

  • Lower the cost of ocean science equipment by using inexpensive, widely-available parts
  • To automate the titration process, saving time and effort when determining total alkalinity

The titration process used in this project is based on SOP 3b from

Christian, James Robert, Andrew G. Dickson, and Christopher L. Sabine. Guide to Best Practices for Ocean CO2 Measurements. Sidney, B.C.: North Pacific Marine Science Organization, 2007.

Current Development Note

The most recent development in this project is the implementation of a UI State Machine framework (see the titration/utils/UIState folder for UI states implemented). While the UI State Machine framework has been fully implemented, the actual titration processes and routines have not been integrated with the UI State Machine (see GitHub Issues for further specifications).

Setup and Installation

Setting up the Raspberry Pi

Refer to https://desertbot.io/blog/headless-raspberry-pi-3-bplus-ssh-wifi-setup for instructions on setting up the raspberry pi (note: headless setup is not required if a keyboard and monitor are available). Raspbian lite has everything needed, but the desktop version can be downloaded if working with a GUI is preferable.

Installing software

Run standard updates on the pi:

sh sudo apt-get update sudo apt-get upgrade

This project utilizes SPI and I2C protocols, both of which often come disabled on the pi. To enable them, run:

sh sudo raspi-config

and navigate to "Interfacing Options"; enable both SPI and I2C.

Install git:

sh sudo apt-get install git

Clone alkalinity titrator repository to the pi

sh git clone https://github.com/Open-Acidification/alkalinity-titrator.git

Run installation script

sh sudo ./install.sh

User Instructions

Run on Device

To run (with the UI State Machine integrated)

sh ./run.sh

Run in Local Environment

To run in a local environment with mocked devices (with the UI State Machine integrated)

sh ./run_mocked.sh

Testing

To perform Pytest tests for the devices and UI states.

sh ./test.sh

Pins

Temperature probe (MAX31865 breakout board)

  • PIN 1 (3.3v) to sensor VIN
  • PIN 9 to sensor GND
  • PIN 19/BCM 10 to sensor SDI
  • PIN 21/BCM 21 to sensor SDO
  • PIN 23/BCM 23 to sensor CLK
  • PIN 29/BCM 5 to sensor CS (or use any other free GPIO pin)

pH probe (ADS1115 analog converter)

  • PIN 17 (3.3v) to ADS1115 VDD - Remember the maximum input voltage to any ADC channel cannot exceed this VDD 3V value!
  • PIN 6 to ADS1115 GND
  • PIN 5/BCM 3 SCL to ADS1115 SCL
  • PIN 3/BCM 2 to ADS1115 SDA

Libraries

  1. Circuit Python - https://github.com/adafruit/Adafruit_CircuitPython_MAX31865
    Used for communicating with the PT1000

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Kaden Sukachevin
Kaden Sukachevin

💻 📖 🐛
Preston Carman
Preston Carman

💻 🐛
Konrad McClure
Konrad McClure

💻
Noah-Griffith
Noah-Griffith

💻
Barun Debnath
Barun Debnath

💻
Kieran Sukachevin
Kieran Sukachevin

⚠️ 💻
Josh Soref
Josh Soref

💻
TaylorSmith28
TaylorSmith28

⚠️ 💻

This project follows the all-contributors specification. Contributions of any kind welcome!

Owner

  • Name: Open Acidification Project
  • Login: Open-Acidification
  • Kind: organization

GitHub Events

Total
  • Watch event: 1
  • Pull request event: 3
  • Fork event: 2
Last Year
  • Watch event: 1
  • Pull request event: 3
  • Fork event: 2

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 162
  • Total Committers: 9
  • Avg Commits per committer: 18.0
  • Development Distribution Score (DDS): 0.395
Past Year
  • Commits: 21
  • Committers: 2
  • Avg Commits per committer: 10.5
  • Development Distribution Score (DDS): 0.048
Top Committers
Name Email Commits
kadensu k****n@g****m 98
Taylor Smith 8****8 30
Preston Carman p****n@w****u 13
allcontributors[bot] 4****] 8
Konrad McClure 6****e 7
Kaden Sukachevin k****n@w****u 2
Josh Soref 2****f 2
Barun Debnath 5****c 1
Kieran Sukachevin 5****n 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 40
  • Total pull requests: 62
  • Average time to close issues: 11 months
  • Average time to close pull requests: 16 days
  • Total issue authors: 5
  • Total pull request authors: 9
  • Average comments per issue: 1.03
  • Average comments per pull request: 0.69
  • Merged pull requests: 46
  • Bot issues: 0
  • Bot pull requests: 6
Past Year
  • Issues: 0
  • Pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: 14 minutes
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • TaylorSmith28 (18)
  • KonradMcClure (15)
  • kieransukachevin (5)
  • kadensu (1)
  • prestoncarman (1)
Pull Request Authors
  • TaylorSmith28 (43)
  • KonradMcClure (4)
  • allcontributors[bot] (4)
  • prestoncarman (3)
  • dependabot[bot] (2)
  • kadensu (2)
  • jsoref (2)
  • kieransukachevin (1)
  • d-cryptic (1)
Top Labels
Issue Labels
enhancement (11) good first issue (6) documentation (2) question (2) invalid (2) bug (2)
Pull Request Labels
enhancement (11) bug (3) dependencies (2) question (1)

Dependencies

.github/workflows/check-spelling.yml actions
  • actions/checkout v3 composite
  • codespell-project/actions-codespell master composite
.github/workflows/linter.yml actions
  • actions/checkout v2 composite
  • docker://ghcr.io/github/super-linter slim-v4 composite
.github/workflows/pytest.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v1 composite
Pipfile pypi
  • flake8 * develop
  • isort * develop
  • pycodestyle * develop
  • pylint * develop
  • pytest * develop
  • pytest-cov * develop
  • pytest-mock * develop
  • adafruit-blinka *
  • adafruit-circuitpython-ads1x15 *
  • adafruit-circuitpython-lis3dh *
  • adafruit-circuitpython-max31865 *
  • click *
  • gpiozero *
  • keyboard *
  • pad4pi *
  • pandas *
  • pep8 *
  • pynput *
  • pyserial *
  • rpi.gpio *
  • smbus2 *
Pipfile.lock pypi
  • 187 dependencies