{"id":16360047,"url":"https://github.com/chrisb2/type-watch-attiny","last_synced_at":"2026-05-19T09:07:10.316Z","repository":{"id":181537271,"uuid":"666923977","full_name":"chrisb2/type-watch-attiny","owner":"chrisb2","description":"Trains you not to type harshly to prevent OOS","archived":false,"fork":false,"pushed_at":"2024-02-17T04:13:28.000Z","size":6062,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-21T18:11:29.064Z","etag":null,"topics":["arduino","attiny85","keyboard","oos","piezoelectric-sensors"],"latest_commit_sha":null,"homepage":"","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/chrisb2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"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}},"created_at":"2023-07-16T03:45:39.000Z","updated_at":"2024-01-29T08:08:19.000Z","dependencies_parsed_at":"2024-11-07T21:42:10.172Z","dependency_job_id":"08752c76-f4c5-4d58-b6f9-12615033f2d0","html_url":"https://github.com/chrisb2/type-watch-attiny","commit_stats":null,"previous_names":["chrisb2/type-watch-attiny"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/chrisb2/type-watch-attiny","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisb2%2Ftype-watch-attiny","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisb2%2Ftype-watch-attiny/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisb2%2Ftype-watch-attiny/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisb2%2Ftype-watch-attiny/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chrisb2","download_url":"https://codeload.github.com/chrisb2/type-watch-attiny/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisb2%2Ftype-watch-attiny/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264502490,"owners_count":23618617,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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"}},"keywords":["arduino","attiny85","keyboard","oos","piezoelectric-sensors"],"created_at":"2024-10-11T02:10:22.539Z","updated_at":"2026-05-19T09:07:05.295Z","avatar_url":"https://github.com/chrisb2.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# type-watch\nThis project is based on an [ATtiny85](https://www.microchip.com/en-us/product/ATtiny85) MCU and uses two piezoelectric sensors under a keyboard to sense harsh typing and flashes a LED when a strong keystroke is detected. This feedback allows the user to train themselves to type gently, thus avoiding occupational overuse syndrome (OOS).\n\nThe program can use any MCU which supports the Arduino language.\n\nThe piezo sensors are [Sparkfun Piezo Elements](https://www.sparkfun.com/products/10293) and are connected at connector _J3_.\n\n![circuit diagram](images/type-watch-circuit.png)\n\nThe Gerbers and BOM for the PCB are in the _gerbers_ directory.\n![pcb](images/type-watch-pcb.svg)\n\nThe PCB is 55 * 8.3mm and is designed to fit inside a 9.5 * 9.5mm square PVC tube.\n\n![Complete Device](images/type-watch-complete.jpg)\n\nThe piezoelectric sensors are placed under each back foot of the keyboard. \n\nThe threshold can be adjusted between the limits in the program by pressing the button and is stored in EEPROM so that it persists over restarts.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrisb2%2Ftype-watch-attiny","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchrisb2%2Ftype-watch-attiny","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrisb2%2Ftype-watch-attiny/lists"}