{"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-04-07T19:00:22.358Z","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":"2025-06-20T17:10:08.000Z","size":134455,"stargazers_count":207,"open_issues_count":1,"forks_count":63,"subscribers_count":46,"default_branch":"main","last_synced_at":"2026-04-01T16:02:21.405Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://www.oceanographyforeveryone.com","language":"C++","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-03-27T15:54:43.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":31364574,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T15:19:21.178Z","status":"ssl_error","status_checked_at":"2026-04-03T15:19:20.670Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":361,"total_committers":6,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":60.166666666666664,"dds":0.08310249307479223,"past_year_total_commits":3,"past_year_total_committers":1,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":3.0,"past_year_dds":0.0,"last_synced_at":"2026-04-05T18:02:05.318Z","last_synced_commit":"3b3a05c1ea598811c355a09def8d27880402788d","created_at":"2024-06-11T00:11:10.762Z","updated_at":"2026-04-05T18:01:46.640Z","committers":[{"name":"Andrew Thaler","email":"andrew.david.thaler@gmail.com","login":"DrAndrewThaler","count":331},{"name":"goldsphininx","email":"goldsphinix@gmail.com","login":"goldsphininx","count":10},{"name":"Vhati","email":"tvtronix@yahoo.com","login":"Vhati","count":6},{"name":"Kyle W-M","email":"25kylworc@gmail.com","login":"KW-M","count":5},{"name":"Russell Neches","email":"russell@vort.org","login":null,"count":5},{"name":"CTDizzle","email":"blackia@oregonstate.edu","login":"IanTBlack","count":4}],"past_year_committers":[{"name":"Andrew Thaler","email":"andrew.david.thaler@gmail.com","login":"DrAndrewThaler","count":3}],"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-04-07T00:00:11.408Z","repositories_count":6211614,"commits_count":918017205,"contributors_count":35583097,"owners_count":1142749,"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-01-31T11:01:20.749Z","status":"error","issues_count":26,"pull_requests_count":14,"avg_time_to_close_issue":16093856.653846154,"avg_time_to_close_pull_request":6170672.230769231,"issues_closed_count":26,"pull_requests_closed_count":13,"pull_request_authors_count":5,"issue_authors_count":14,"avg_comments_per_issue":2.269230769230769,"avg_comments_per_pull_request":0.8571428571428571,"merged_pull_requests_count":8,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":244424.0,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":4.0,"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-01-31T11:01:20.749Z","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-03-30T00:00:07.548Z","repositories_count":14003326,"issues_count":34562094,"pull_requests_count":113004248,"authors_count":11212313,"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":3},"last_year":{"ForkEvent":3,"WatchEvent":7,"PushEvent":3}},"keywords":[],"dependencies":[],"score":7.129297548929372,"created_at":"2024-06-11T00:10:49.286Z","updated_at":"2026-04-07T19:00:22.362Z","avatar_url":"https://github.com/OceanographyforEveryone.png","language":"C++","category":"Hydrosphere","sub_category":"Coastal and Reefs","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"Build your own research-quality oceanographic instrument for a fraction of the cost of commercial alternatives. \n\nLet's explore the ocean, together. \n\n**Updated 6/20/2025**\n\nA new Build Guide is available! \n\n# OpenCTD: Oceanography for Everyone\n\nThe [OpenCTD Construction and\nOperation](https://github.com/OceanographyforEveryone/OpenCTD/tree/main/Documentation/Manual)\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. \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\n---\n\nThere is something radical about making and using your own scientific\ninstruments. The structure of scientific inquiry has coalesced around a model\nthat is, in general, both expensive and exclusive. This centralizes knowledge\nproduction within a small circle of individuals, organizations, and\ninstitutions who have access to substantial financial resources. This circle\nrarely reflects the breadth of identities, experiences, and ways of knowing\nthat are most directly connected to the places being explored.\n\nBy building your own instruments to study and understand the natural world, you\nare expanding the circle of knowledge production. A scientist who can make\ntheir own instruments is not beholden to the cycles of funding and access that\nconstrain formal, institutional inquiry. A researcher who can build and repair\ntheir own equipment is not dependent on the whims of academic sentiment to\ndecide what is and is not worthy of study. A community leader who has the tools\nto 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**You don’t need to ask for permission to understand your world.**\n\nNowhere is this inequality of access more pronounced than in the ocean\nsciences, where all but a few entities have the capital to mount major\noceanographic research campaigns. Even localized coastal research can be\nthwarted by lack of access to vessels, equipment, and instruments. As the need\nto understand the dramatic changes at the surface and beneath the waves\naccelerates, baring the participation of ocean stakeholders erodes our\npower to understand, anticipate, and mitigate those changes.\n\nThe ocean belongs to everyone. The tools to study the ocean should be\naccessible to anyone with the curiosity and motivation to pursue that inquiry.\nChief among these tools is the workhorse of oceanography, the CTD, an\ninstrument that measures salinity, temperature, and depth. By these\ncharacteristics, scientists can begin to unlock ocean patterns hidden beneath\nthe sea's surface.\n\nCTDs come in a variety of shapes, sizes, and applications. Most oceanographic\nresearch vessels have a CTD connected to a rosette platform, which houses other\ninstruments and collects water samples in parallel with real-time data. CTDs\nare also commonly attached to fixed moorings, autonomous underwater vehicles\n(AUVs), remote-operated vehicles (ROVs), and even to marine animals.\n\nUnfortunately, commercial CTDs are expensive. The most affordable models cost\nseveral thousand dollars. For near-shore oceanographic research on the\nrelatively shallow continental shelf, this cost can be prohibitive. This\neffectively excludes formal researchers from low and middle income countries,\nand small island states. Even in high-income countries, formal researchers at\nteaching institutions or at early career stages may also find themselves priced\nout of ocean research. Informal researchers such as citizen oceanographers,\neducators, conservation and management practitioners and students of all levels\nface severe challenges accessing expensive scientific instruments. \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 is designed to be 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### Core Resources\n\nThe [OpenCTD Construction and\nOperation](https://github.com/OceanographyforEveryone/OpenCTD/tree/main/Documentation/Manual)\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\n### Development Notes: \n\u003e Please be advised that Atlas Scientific has released a detailed guide to cutting and soldering the electrical conductivity probe to minimize shorts and interference in the system. Please read [How to properly cut your probe cable](https://files.atlas-scientific.com/how-to-properly-cut-probe-cables.pdf) before proceeding with the sensor package build instructions. Atlas also recommends that you test the probe before cutting any wire, as cutting the wire will void the warranty.\n\u003e \n\u003e Please be advised that the rubber o-rings in the yellow Cherne brand endcaps is much stiffer than the rubber used in other endcap brands and has been found to fail consistently in cold water. We do not recommend using Cherne endcaps in your CTD build.\n\u003e\n\u003e Some batteries ordered from Amazon have the positive and negative termninal reversed. Please check battery polarity before attempting to power your CTD.\n\u003e\n\u003e We are actively developing CircuitPython code to port the current M0 firmware to the new RP2040 Adaloggers. We anticipate that this will be done in early 2025. \n\n","funding_links":[],"readme_doi_urls":[],"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"}