![bitclock](https://private-user-images.githubusercontent.com/220799/338765391-5121ca8b-19c7-4db0-9a81-38fae36ac5df.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAwOTM2MzMsIm5iZiI6MTcyMDA5MzMzMywicGF0aCI6Ii8yMjA3OTkvMzM4NzY1MzkxLTUxMjFjYThiLTE5YzctNGRiMC05YTgxLTM4ZmFlMzZhYzVkZi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzA0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcwNFQxMTQyMTNaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lYzFhYmZlZGRiYWU3MDFkY2QxNDM4MmIyYWM5MWIyNzA0MDI1ZDBhNzcyODM3MzJmYTQ1YjFkOWU1NjdiNGI4JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.mhhVQTL9XymdffnryedHMiQtVyAf9-zAyhMDSpIJcSk)
Open source e-ink desk companion, clock, and air quality monitor.
![Device photo](https://private-user-images.githubusercontent.com/220799/338766450-4416cb05-0625-438e-961c-3917e9b5334f.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAwOTM2MzMsIm5iZiI6MTcyMDA5MzMzMywicGF0aCI6Ii8yMjA3OTkvMzM4NzY2NDUwLTQ0MTZjYjA1LTA2MjUtNDM4ZS05NjFjLTM5MTdlOWI1MzM0Zi5qcGc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzA0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcwNFQxMTQyMTNaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04NGRlYTBhMTRiODExZmRhZDA5ZDg5ODNhNWUwM2E5NTA1ZDMwODU0NDMzNzBjZmZlYmIxMTAwZTBhZTA1YzgxJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.GJoYaXFmPGVKkdk5VJE9yHOw0WIeMDdYAovmVyD-Mnk)
Visit https://bitclock.io/connect to configure your existing device
Source code for ESP32 using the ESP-IDF development framework.
See bitclock-fw/
Next.js web app for homepage and device configurator.
See bitclock-web/
![Web configurator screenshot](https://private-user-images.githubusercontent.com/220799/338769489-9b72ab4b-d259-4e13-9049-c8f1ba85664d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAwOTM2MzMsIm5iZiI6MTcyMDA5MzMzMywicGF0aCI6Ii8yMjA3OTkvMzM4NzY5NDg5LTliNzJhYjRiLWQyNTktNGUxMy05MDQ5LWM4ZjFiYTg1NjY0ZC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzA0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcwNFQxMTQyMTNaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT01NjMxZDA3M2ZkOGIwMzBiZWJkYmE3ZjQ2MzlmNjM4ZDkxMTEwODMwYTg2YTE0MzBhODUyNWE0MzM4OGVkYzE4JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.dt_AFNCzsG7Ud2wb2sYpw5mmK-DAKMwpyqzJ91G3_9c)
OnShape design, STEP files, and instructions for 3D printing.
![Device CAD screenshot](https://private-user-images.githubusercontent.com/220799/338769826-b83af06f-92e7-4f3a-9e44-477fad33d226.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAwOTM2MzMsIm5iZiI6MTcyMDA5MzMzMywicGF0aCI6Ii8yMjA3OTkvMzM4NzY5ODI2LWI4M2FmMDZmLTkyZTctNGYzYS05ZTQ0LTQ3N2ZhZDMzZDIyNi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzA0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcwNFQxMTQyMTNaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hYjVhMjBlM2M3ZWFkMjVhODViOTBlY2JlZDBkZDY5ZTFjZmQ3YzVlNzE3Yjg0NzU5NThhYjE5ZDA1ZGU4ZWU1JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.K8U4BOMyczm7gTZlWodhiuhvzneVrv1sJfPMZVKr3Gs)
KiCad schematic, board, and JLCPCB ordering files.
See bitclock-pcb/
![KiCAD device PCB screenshot](https://private-user-images.githubusercontent.com/220799/338770042-4e667f21-f8f4-497b-bb93-be5a299950ad.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAwOTM2MzMsIm5iZiI6MTcyMDA5MzMzMywicGF0aCI6Ii8yMjA3OTkvMzM4NzcwMDQyLTRlNjY3ZjIxLWY4ZjQtNDk3Yi1iYjkzLWJlNWEyOTk5NTBhZC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzA0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcwNFQxMTQyMTNaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04ZTc5ZmIzZjU3YmNhZDc0OTJhNTZjNjAxYTRmZTY2MGY1ZGZmNjkyYjk5MjM1OTA3ZDQyZjM2NjViNWQyZmQ3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.WWUSS7zio-1W30SQjYFzm0amRwDg47fCTs__p-AEjlg)
A single pre-commit config is created for this monorepo. Set up the hooks to get linting on every commit.
brew install pre-commit
pre-commit install