Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/devcybiko/rpi-binary-clock
Vintage Binary Clock project resurrected using RPi Pico
https://github.com/devcybiko/rpi-binary-clock
binary-clock micro-python rpi-pico
Last synced: about 1 month ago
JSON representation
Vintage Binary Clock project resurrected using RPi Pico
- Host: GitHub
- URL: https://github.com/devcybiko/rpi-binary-clock
- Owner: devcybiko
- Created: 2023-07-09T01:58:34.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-12-12T06:46:59.000Z (11 months ago)
- Last Synced: 2024-10-01T05:10:57.202Z (about 1 month ago)
- Topics: binary-clock, micro-python, rpi-pico
- Language: Python
- Homepage: https://drfrancintosh.wordpress.com/pico-binary-clock/
- Size: 11.7 KB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# rpi-binary-clock
- Converting an old, broken Graymark Binary Clock to use RPi-Pico-W
- NOTE: I selected micropython over circuitpython because uPy supported the BLE chip
- I also use AdaFruit's BlueFruit app on iOS to communicate with the clock
- in UART mode
- hard-coded to "mpy-uart"
- hard-coded UUID = `6E400001-B5A3-F393-E0A9-E50E24DCCA9E`
- need to research how this number is created## GPIO
- GPIO 0-3: Ones of seconds (0-9, little endian)
- GPIO 4-6: Tens of seconds (0-5, little endian)
- GPIO 7-10: Ones of minutes (0-9, little endian)
- GPIO 11-13: Tens of minutes (0-5, little endian)
- GPIO 14-17: Hours (1-12, little endian)## FEATURES
- Bluetooth allows updating the time
- format: HHMMSS
- Uses RTC Module for setting/getting time## TODO
- wire circuit board
- "risers" for RPi Pico W
- ribbon cable to LEDs
- ribbon cable to pushbuttons
- update BLE to use command line
- perhaps `key=value` or `verb value`
- push buttons on the back
- Hold
- Slow
- Fast
- 5V power supply?
- battery powered currently
- rechargeable batteries?
- Add config file (writable via BLE commands)
- Add WiFi time setting (NTP)
- https://bhave.sh/micropython-ntp/
- Add WWVB Atomic clock time setting
- Add Date setting
- Add Timezone setting
- Add DST setting
- Add HTTP server?
- Add special "icon" displays
- box, house, etc...## FILES
- binary_clock.py: The main program
- NOTE: Store as "main.py" to run at boot time
- ble_advertising.py: From uPy github repo
- creates the bluetooth connection
- ble_simple_peripheral.py
- creates the serial port connection
- ble_blink.py
- exaple: toggle led with BLE
- localtime.py
- sample of how to do the binary math etc...## REFERENCES
- Hackster.io article on my project
- https://www.hackster.io/news/greg-smith-gives-a-beloved-1970s-binary-clock-a-micropython-upgrade-with-a-raspberry-pi-pico-w-c814e78032a6
- Hackster.io article describing bluetooth low energy
- https://www.hackster.io/Ramji_Patel/raspberry-pi-pico-w-and-bluetooth-low-energy-a829c7
- uPy Docs on BLE
- https://docs.micropython.org/en/latest/library/bluetooth.html
- uPy Github Repo for BLE
- https://github.com/micropython/micropython/tree/master/examples/bluetooth
- Graymark Binary Clock: https://www.worthpoint.com/worthopedia/vintage-binary-clock-graymark-model-19959448
- Bluefruit Connect App from AdaFruit
- https://learn.adafruit.com/bluefruit-le-connect/ios-setup