{"id":48924906,"url":"https://github.com/wurthless-elektroniks/clock","last_synced_at":"2026-04-17T06:36:11.991Z","repository":{"id":208083930,"uuid":"720784716","full_name":"wurthless-elektroniks/clock","owner":"wurthless-elektroniks","description":"The Most Useless Clock in the World: Seven-segment digital desktop clock for Python/Micropython","archived":false,"fork":false,"pushed_at":"2026-04-05T21:08:26.000Z","size":2395,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-05T23:17:56.942Z","etag":null,"topics":["clock","esp32","esp32-c3","gerber-files","micropython","raspberry-pi-pico-w","rp2040","seven-segments-display"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wurthless-elektroniks.png","metadata":{"files":{"readme":"docs/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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-11-19T15:41:35.000Z","updated_at":"2026-04-05T21:08:30.000Z","dependencies_parsed_at":"2026-01-09T03:00:26.807Z","dependency_job_id":null,"html_url":"https://github.com/wurthless-elektroniks/clock","commit_stats":null,"previous_names":["wurthless-elektroniks/clock"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/wurthless-elektroniks/clock","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wurthless-elektroniks%2Fclock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wurthless-elektroniks%2Fclock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wurthless-elektroniks%2Fclock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wurthless-elektroniks%2Fclock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wurthless-elektroniks","download_url":"https://codeload.github.com/wurthless-elektroniks/clock/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wurthless-elektroniks%2Fclock/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31918828,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"online","status_checked_at":"2026-04-17T02:00:06.879Z","response_time":62,"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"}},"keywords":["clock","esp32","esp32-c3","gerber-files","micropython","raspberry-pi-pico-w","rp2040","seven-segments-display"],"created_at":"2026-04-17T06:36:09.887Z","updated_at":"2026-04-17T06:36:11.969Z","avatar_url":"https://github.com/wurthless-elektroniks.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# The Most Useless Clock in the World: The User Manual\n\nCongratulations! You were dumb or unlucky enough to buy, acquire, or otherwise use The Most Useless Clock in the World. You now have a janky, overpriced and unreliable clock that doesn't do much other than tell the time. But it does look stylish when viewed across a room.\n\n**If you're an end-user, this documentation is for you.** If you're just someone who wants to use this code as part of their own project (*who would?*), then it will still be useful in a way. However, most of the technical docs, if any, will live in the sourcecode.\n\n**If you're a developer**, [read this](development.md).\n\n## Revision history\n\n[Read this](history.md) for details on each hardware revision and known issues with them.\n\n## Initial Setup\n\n### Setting the time over Wi-Fi\n\n**IF YOUR CLOCK HAS WI-FI SUPPORT**, and you are powering the clock on for the first time, the first thing that should be displayed is the letters \"CFG\". This means that the clock is starting up in configuration mode. On TMUCITW v8, the display will eventually go blank, and the yellow status LED will blink. For all others, \"CFG\" will remain on the screen.\n\nIn configuration mode, the device will start listening for connections on a Wi-Fi network that by default is called \"TMUCITW\". Using a Wi-Fi compatible device, connect to the network. If prompted for a network password, enter \"wurthless\" (no quotes!).\n\nOnce connected to the network, open your web browser to: http://192.168.4.1\n\nIf successful, you'll see a page like this:\n\n![](img/configpage.png)\n\nHere's what to enter:\n\n* \"wifi accesspoint\": The name of your Wi-Fi network. As the page notes, this needs to be a 2.4 GHz Wi-Fi network, as 5 GHz networks are not supported. When in doubt, check your router settings.\n* \"wifi password\": The password for the given network. **This is required**. If your Wi-Fi network is not password protected, you're a bozo.\n* \"timezone\": Your timezone as a UTC offset. **In regions that obey Daylight Savings Time, this is the UTC offset when DST is not in effect.**\n* \"use 12hr time?\": Whether to display the time in 24-hour time (default) or 12-hour time.\n* \"dst adjust\": Whether to adjust for DST. If set to \"off\", DST will be turned off. If set to \"on\", DST will be turned on. **In regions that do not observe Daylight Savings Time, you should set this to \"disable dst\".**\n\nPress \"save settings\" to generate the bug report you will be submitting to me when it inevitably crashes. But, if all goes well,\nyour clock will save its settings and reboot, then it'll grab the current time and operate normally.\n\n**If you need to re-enter this panel for any reason, such as to re-configure your Wi-Fi settings,\nhold SET when powering up the clock (or pressing RESET), and release SET once \"CFG\" is displayed.**\n\n### Setting the time manually\n\nThe Most Useless Clock in the World provides a manual time setting feature for when you can't sync time to an external timesource.\n\nIf your clock boots to a message that says \"Err\", it was not able to synchronize to a time source, either because the Wi-Fi network is down, or the connection to the time server failed. Unfortunately, this is just what happens because the NTP servers rate-limit their clients. Wait a few seconds and reboot the clock. If it still won't connect to the network, hold SET until the display clears, then release SET. You'll be in manual configuration mode.\n\nIf your clock doesn't have any time sources to read from, and the clock is not already set (or loses its configuration because the battery dies), it will boot straight to manual time setting mode.\n\nIn manual time setting mode, the clock typically prompts for inputs in the following order: **year, month, day, hour, minute**. Press UP or DOWN to change settings, and press SET to confirm and move on to the next one. If you mess something up, don't fret, you can always enter configuration mode again once the clock is set.\n\n**If the Daylight Savings Time feature is not disabled,** the last setting in manual time setting mode will be DST. The clock will display \"DST ON\" or \"DST OFF\". Press UP/DOWN to toggle the setting. This setting should reflect whether Daylight Savings Time is effect in your region or not. Press SET to confirm the setting. Your clock should now be keeping time.\n\n### On-device configuration mode\n\n**Hold SET when powering up the clock, and keep holding it once \"CFG\" is displayed.** After three seconds of holding the button,\nthe display will go blank. Release it, and you should be in the on-device configuration mode.\n\nThis is a menu that allows you to set the following options:\n\n| Seven-segment display | Numeric display | What it does\n|-----------------------|-----------------|-------------------------------------------------------------------------\n| SYNC                  | 5 01            | Enable/disable time synchronization; if disabled, clock always runs in manual setting mode\n| NET                   | 5 02            | Enable/disable network interface\n| 12HR                  | 5 03            | Enable 12-hour time display\n| FACt                  | 5 00            | Restore factory default settings and reboot\n\nSelect the option using UP or DOWN, then confirm by holding SET. To confirm the setting, keep holding SET. \"SURE\" (or 5 88) will be displayed and\nfade out during confirmation; release SET to cancel the setting. The clock will display \"DONE\" (or 5 99) to confirm the setting has been applied.\nRelease the button to return to the menu.\n\n## Normal operation state\n\nThe clock displays the current time. Duh!\n\nHowever, the pushbuttons on the front will still be active. Here's what they do.\n\n* Pressing **UP** will change the brightness setting. It will decrease with each push until it reaches its minimum setting, after which it resets to the highest brightness.\n* Pressing **DOWN** will toggle between the current time, year, month, and day. After a while, the clock resets to displaying the current time.\n* Holding **SET** will reconfigure the current time. If the clock is configured to synchronize time (e.g., over Wi-Fi), it will do so. In all other situations, this will send the clock back to manual configuration mode.\n* Holding **DST**, **if the Daylight Savings Time feature is not disabled,** will toggle DST. \n* Pressing **REBOOT** (**RESET** on older revisions) at any time will force the clock to reboot. If your clock does not have a reboot button,\n  holding **UP**, **DOWN** and **SET** simultaneously will reboot it.\n\n## Daylight Savings Time\n\n**To toggle DST, when the clock is running, hold the DST button until the time changes.** On some clocks, the DST setting is controlled with a\nphysical toggle switch; toggling it on or off will change the setting for you.\n\nThe Most Useless Clock in the World does *NOT* automatically adjust for Daylight Savings Time. It never has, it never will. DST is annoying to implement thanks to the many rules that vary between countries and are subject to change.\n\nTo implement DST, the following changes would need to be made:\n\n* Implement all DST rules listed [here](https://en.wikipedia.org/wiki/Daylight_saving_time_by_country)\n* Automatic software updates to account for future rule changes\n* Implement DST rule selection\n\nThis is as opposed to the other solution:\n\n* Add pushbutton to toggle DST\n* Force user to toggle DST manually\n\nWhen in doubt, keep it simple.\n\n## Quality Assurance Policy\n\nAt würthless elektroniks, we can assure you that the quality of our products is terrible. However, we try to keep our customers happy because otherwise we can't make money. If your clock dies a premature death, please get in contact with us. Once we take ten minutes to laugh at your misfortune, we'll be glad to offer a replacement or any assistance. If there's a serial number on your clock, please have it handy!\n\nRemember: **with würthless elektroniks, dissatisfaction is guaranteed or your money back!** (*NOTE: We do not offer refunds.*)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwurthless-elektroniks%2Fclock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwurthless-elektroniks%2Fclock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwurthless-elektroniks%2Fclock/lists"}