{"id":194221,"name":"OpenCTD","description":"A low-cost, open-source CTD designed for budget-restricted scientists, educators, and researchers working in nearshore coastal ecosystems.","url":"https://github.com/oceanographyforeveryone/openctd","last_synced_at":"2026-08-13T18:00:44.935Z","repository":{"id":15805763,"uuid":"18545274","full_name":"OceanographyforEveryone/OpenCTD","owner":"OceanographyforEveryone","description":"The OpenCTD is a low-cost, open-source CTD for researchers and citizen scientists. ","archived":false,"fork":false,"pushed_at":"2026-06-21T03:45:23.000Z","size":142068,"stargazers_count":214,"open_issues_count":0,"forks_count":62,"subscribers_count":46,"default_branch":"main","last_synced_at":"2026-08-05T18:17:49.843Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://www.oceanographyforeveryone.com","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OceanographyforEveryone.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2014-04-08T04:28:19.000Z","updated_at":"2026-07-21T14:42:34.000Z","dependencies_parsed_at":"2025-04-26T13:39:33.441Z","dependency_job_id":"c0ddc953-8fc5-43dd-af5c-fbd571c457a1","html_url":"https://github.com/OceanographyforEveryone/OpenCTD","commit_stats":{"total_commits":358,"total_committers":6,"mean_commits":"59.666666666666664","dds":0.08379888268156421,"last_synced_commit":"cee0c45002e62d2aa599b7d20c10d24152db69b5"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/OceanographyforEveryone/OpenCTD","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OceanographyforEveryone%2FOpenCTD","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OceanographyforEveryone%2FOpenCTD/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OceanographyforEveryone%2FOpenCTD/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OceanographyforEveryone%2FOpenCTD/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OceanographyforEveryone","download_url":"https://codeload.github.com/OceanographyforEveryone/OpenCTD/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OceanographyforEveryone%2FOpenCTD/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36493282,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-10T02:00:05.122Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"OceanographyforEveryone","name":"Oceanography for Everyone","uuid":"14789732","kind":"organization","description":"","email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/14789732?v=4","repositories_count":4,"last_synced_at":"2023-08-25T09:29:27.076Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/OceanographyforEveryone","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-07T22:00:15.771Z","updated_at":"2023-08-25T09:29:27.121Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OceanographyforEveryone","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OceanographyforEveryone/repositories"},"packages":[],"commits":{"id":1556410,"full_name":"oceanographyforeveryone/openctd","default_branch":"main","total_commits":393,"total_committers":6,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":65.5,"dds":0.07888040712468192,"past_year_total_commits":32,"past_year_total_committers":2,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":16.0,"past_year_dds":0.03125,"last_synced_at":"2026-08-12T17:30:57.378Z","last_synced_commit":"b74b3ace812c79dfcef431a16dfdb27ffe956602","created_at":"2024-06-11T00:11:10.762Z","updated_at":"2026-08-12T17:30:56.723Z","committers":[{"name":"Andrew Thaler","email":"andrew.david.thaler@gmail.com","login":"DrAndrewThaler","count":362},{"name":"goldsphininx","email":"goldsphinix@gmail.com","login":"goldsphininx","count":10},{"name":"Vhati","email":"tvtronix@yahoo.com","login":"Vhati","count":6},{"name":"CTDizzle","email":"blackia@oregonstate.edu","login":"IanTBlack","count":5},{"name":"Kyle W-M","email":"25kylworc@gmail.com","login":"KW-M","count":5},{"name":"Russell Neches","email":"russell@vort.org","login":null,"count":5}],"past_year_committers":[{"name":"Andrew Thaler","email":"andrew.david.thaler@gmail.com","login":"DrAndrewThaler","count":31},{"name":"Ian Black","email":"blackia@oregonstate.edu","login":"IanTBlack","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/oceanographyforeveryone%2Fopenctd/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-08-13T00:00:06.963Z","repositories_count":6651626,"commits_count":934815108,"contributors_count":39780483,"owners_count":1336437,"committers_count":3302236,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"oceanographyforeveryone/openctd","html_url":"https://github.com/oceanographyforeveryone/openctd","last_synced_at":"2026-07-12T17:00:28.894Z","status":"error","issues_count":26,"pull_requests_count":15,"avg_time_to_close_issue":16093856.653846154,"avg_time_to_close_pull_request":11275230.07142857,"issues_closed_count":26,"pull_requests_closed_count":14,"pull_request_authors_count":5,"issue_authors_count":14,"avg_comments_per_issue":2.269230769230769,"avg_comments_per_pull_request":0.8,"merged_pull_requests_count":9,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"created_at":"2024-06-11T00:11:29.928Z","updated_at":"2026-07-12T17:00:28.894Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/oceanographyforeveryone%2Fopenctd","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/oceanographyforeveryone%2Fopenctd/issues","issue_labels_count":{"enhancement":4,"documentation":1,"admin":1},"pull_request_labels_count":{},"issue_author_associations_count":{"NONE":17,"COLLABORATOR":8,"CONTRIBUTOR":1},"pull_request_author_associations_count":{"CONTRIBUTOR":12,"COLLABORATOR":2,"NONE":1},"issue_authors":{"DrAndrewThaler":5,"pwnel":3,"ryneches":3,"hpollek":2,"MattChace":2,"Jake-DeCicco":2,"Squidman32":2,"Geoboy2020":1,"EllisWebb":1,"camrinbraun":1,"Vhati":1,"gshubham96":1,"gheleguen":1,"camullen86":1},"pull_request_authors":{"IanTBlack":7,"Vhati":3,"DrAndrewThaler":2,"KW-M":2,"barnabywalters":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-08-07T00:00:23.484Z","repositories_count":14813765,"issues_count":29933400,"pull_requests_count":98741190,"authors_count":11411559,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{},"past_year_issue_authors":{},"past_year_pull_request_authors":{},"maintainers":[{"login":"DrAndrewThaler","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/DrAndrewThaler"},{"login":"ryneches","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ryneches"}],"active_maintainers":[]},"events":{"total":{"ForkEvent":6,"IssuesEvent":2,"WatchEvent":16,"IssueCommentEvent":4,"PushEvent":11},"last_year":{"WatchEvent":1,"PushEvent":8}},"keywords":[],"dependencies":[],"score":7.157735484249907,"created_at":"2024-06-11T00:10:49.286Z","updated_at":"2026-08-13T18:00:44.946Z","avatar_url":"https://github.com/OceanographyforEveryone.png","language":"Jupyter Notebook","category":"Hydrosphere","sub_category":"Coastal and Reefs","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# OpenCTD Rev8 is here!\n\n**The ocean belongs to everyone.** The tools to study the ocean should be accessible to anyone with the curiosity and motivation to pursue that inquiry. Build your own [research-quality oceanographic instrument](https://tos.org/oceanography/article/the-openctd-a-low-cost-open-source-ctd-for-collecting-baseline-oceanographic-data-in-coastal-waters) and let's explore the ocean, together. \n\n# OpenCTD: Oceanography for Everyone\n\nThe CTD is an oveanographic instrument that measures salinity, temperature, and depth. By measuring these\ncharacteristics, scientists can begin to unlock ocean patterns hidden beneath the sea's surface.\n\nCTDs come in a variety of shapes, sizes, and applications. Most oceanographic research vessels have a CTD connected to a rosette platform, which houses other instruments and collects water samples in parallel with real-time data. CTDs are also commonly attached to fixed moorings, autonomous underwater vehicles (AUVs), remote-operated vehicles (ROVs), and even to marine animals.\n\nUnfortunately, commercial CTDs are expensive. The most affordable models cost several thousand dollars. For near-shore oceanographic research on the relatively shallow continental shelf, this cost can be prohibitive. This\neffectively excludes formal researchers from low and middle income countries, and small island states. Even in high-income countries, formal researchers at teaching institutions or at early career stages may also find themselves priced out of ocean research. Informal researchers such as citizen oceanographers, educators, conservation and management practitioners and students of all levels face severe challenges accessing expensive scientific instruments. \n\n**You don’t need to ask for permission to understand your world.**\n\nBy building your own instruments to study and understand the natural world, you are expanding the circle of knowledge production. A scientist who can make their own instruments is not beholden to the cycles of funding and access that constrain formal, institutional inquiry. A researcher who can build and repair their own equipment is not dependent on the whims of academic sentiment to decide what is and is not worthy of study. A community leader who has the tools to create their own data does not have to wait for institutions to take notice\nof an emerging crisis before taking action. \n\n![The OpenCTD](Documentation/Images/IMG_20190727_150858%20(2).jpg)\n\n### Build Your Own CTD\n\nThe OpenCTD is a low-cost, open-source CTD designed for budget-restricted\nscientists, educators, and researchers working in nearshore coastal ecosystems.\nIn these waterways, entire research projects can be conducted for less than the\ncost of a commercial CTD. OpenCTD was developed by a core team of marine\necologists in collaboration with a community of scientists, engineers, makers,\nand conservation practitioners from around the world. It is assembled from\ncomponents commonly available at large hardware stores or through major online\nretailers. An Arduino-based microcontroller controls an array of sensors sealed\nwithin a PVC pipe. Power is provided by a standard 3.7V lithium polymer battery\nand data are stored in a tab-delimited text file accessed via SD card.  All\nOpenCTD software is released open source with no restrictions on use. \n\nThe OpenCTD built by the end-user, providing both access to\nthe tools of oceanography as well as the skills to maintain, repair, and\nreplace OpenCTDs. For scientists working in remote settings, the repairability\nof the OpenCTD is intended to prevent equipment failures from spiraling into\nproject failures. For educators seeking novel, in-depth, hands-on STEM\nexperience for advanced students, the process of building an OpenCTD offers an\nintroduction to coding, 3D-printing, hardware prototyping, and electronics.\nConstruction of an OpenCTD can provide a practical foundation for courses in\noceanography and marine or environmental science. \n\n# Visit [Oceanography for Everyone](http://oceanographyforeveryone.com/) to learn more, inquire about workshops, or purchase OpenCTD kits!\n\n### Publications\n\nThaler, A., S.K. Sturdivant, R.Y. Neches, and J.J. Levenson. 2024. [The OpenCTD: A low-cost, open-source CTD for collecting baseline oceanographic data in coastal waters](https://tos.org/oceanography/article/the-openctd-a-low-cost-open-source-ctd-for-collecting-baseline-oceanographic-data-in-coastal-waters#citation). Oceanography 37(2):167–173, https://doi.org/10.5670/oceanog.2024.602.\n\n### Core Resources\n\nThe [OpenCTD Construction and\nOperation](https://github.com/OceanographyforEveryone/OpenCTD/tree/main/Documentation)\nmanual provides a comprehensive, step-by-step guide to building your own\nOpenCTD, with a standard construction pathway as well as numerous alternatives\ndepending on parts availability and technical skills. A shorter manual covering just the calibration process is also available. \n\nThe OpenCTD [core software](https://github.com/OceanographyforEveryone/OpenCTD/tree/main/Software) is designed\nto be used with an M0-style Arduino microcontroller, for which we recommend the\n[Adafruit Adalogger Feather M0](https://www.adafruit.com/product/2796). \n\nYou can find all the Arduino libraries as described in the manual, as well as\nsoftware for calibrating the conductivity sensors in\n[Support](https://github.com/OceanographyforEveryone/OpenCTD/tree/main/Software/Support).\n\nHardware file for both 3D printable components and the control unit PBC can be found in [Hardware](https://github.com/OceanographyforEveryone/OpenCTD/tree/main/Hardware)\n","funding_links":[],"readme_doi_urls":["https://doi.org/10.5670/oceanog.2024.602"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/194221","html_url":"https://ost.ecosyste.ms/projects/194221"}