{"id":20522825,"url":"https://github.com/anachrocomputer/hexclock","last_synced_at":"2026-04-19T00:35:18.006Z","repository":{"id":244556438,"uuid":"815300117","full_name":"anachrocomputer/HexClock","owner":"anachrocomputer","description":"Arduino sketch to display the time in hex","archived":false,"fork":false,"pushed_at":"2026-04-16T21:55:25.000Z","size":29,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-16T23:32:03.612Z","etag":null,"topics":["arduino","clock","hexadecimal","octal"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anachrocomputer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-06-14T19:58:24.000Z","updated_at":"2026-04-16T21:55:38.000Z","dependencies_parsed_at":"2025-06-22T23:18:03.465Z","dependency_job_id":"39924ccb-6740-4a75-88f4-f524dbe0a45b","html_url":"https://github.com/anachrocomputer/HexClock","commit_stats":null,"previous_names":["anachrocomputer/hexclock"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/anachrocomputer/HexClock","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anachrocomputer%2FHexClock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anachrocomputer%2FHexClock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anachrocomputer%2FHexClock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anachrocomputer%2FHexClock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anachrocomputer","download_url":"https://codeload.github.com/anachrocomputer/HexClock/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anachrocomputer%2FHexClock/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31989903,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"ssl_error","status_checked_at":"2026-04-18T20:23:29.375Z","response_time":103,"last_error":"SSL_read: 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"}},"keywords":["arduino","clock","hexadecimal","octal"],"created_at":"2024-11-15T22:37:02.034Z","updated_at":"2026-04-19T00:35:17.999Z","avatar_url":"https://github.com/anachrocomputer.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Static Badge](https://img.shields.io/badge/MCU-ATmega328-green \"MCU:ATmega328\")\n![Static Badge](https://img.shields.io/badge/BOARD-Arduino-green \"BOARD:Arduino\")\n![Static Badge](https://img.shields.io/badge/DISPLAY-HMDL2416-green \"DISPLAY:HMDL2416\")\n![Static Badge](https://img.shields.io/badge/DISPLAY-LedHex-green \"DISPLAY:LedHex\")\n\n# HexClock #\n\nThis Arduino sketch implements a clock with four different display formats:\n* Ordinary hours, minutes, and optionally seconds\n* Octal time, 00000 to 07777\n* Hexadecimal time, 0x0000 to 0xFFFF\n* Decimal or percentage time, 00.00 to 99.99\n\nThe actual display is optional at present,\nas four 7-segment digits on an LED display.\nSix digits would only be needed to show seconds in standard time format.\n\n## Optional Display ##\n\nThe sketch generates standard\nArduino serial output at 9600 baud.\nThis is useful for debugging.\n\nThe sketch will send the time in hex to either an HP HMDL2416 16-segment\nfour-digit display or to four PCBs of my own design (\"LedHex\").\nThe HMDL2416 data bus is connected to the ATmega PORT D and Arduino pins 11 and 12,\nand the control signals are connected to other Arduino digital I/O pins.\n\n## User Controls ##\n\nThe pushbutton on Arduino A0 is used to switch between display modes\nat run-time.\nPressing it will cycle through from the inital HEX to OCTAL,\nDECIMAL, and STANDARD (then back to HEX).\n\nNo user controls are provided to set the time.\n\n## Example Times ##\n\n| Ordinary | Hexadecimal | Octal | Percentage |\n|----------|-------------|-------|------------|\n| 00:00:00 | 0000        | 0000  | 00.00      |\n| 01:30:00 | 1000        | 0400  | 06.25      |\n| 03:00:00 | 2000        | 1000  | 12.50      |\n| 04:30:00 | 3000        | 1400  | 18.75      |\n| 06:00:00 | 4000        | 2000  | 25.00      |\n| 07:30:00 | 5000        | 2400  | 31.25      |\n| 09:00:00 | 6000        | 3000  | 37.50      |\n| 10:30:00 | 7000        | 3400  | 43.75      |\n| 12:00:00 | 8000        | 4000  | 50.00      |\n| 13:30:00 | 9000        | 4400  | 56.25      |\n| 15:00:00 | A000        | 5000  | 62.50      |\n| 16:30:00 | B000        | 5400  | 68.75      |\n| 18:00:00 | C000        | 6000  | 75.00      |\n| 19:30:00 | D000        | 6400  | 81.25      |\n| 21:00:00 | E000        | 7000  | 87.50      |\n| 22:30:00 | F000        | 7400  | 93.75      |\n| 23:59:59 | FFFF        | 7777  | 99.99      |\n\n### Pinout ###\n\n| Arduino | Signal  | HMDL2416 | HMDL2416 Pin | DS3231 Signal |\n|---------|---------|----------|--------------|---------------|\n| D10     | D10     | /CE1     | 1            |               |\n| GND     | GND     | /CE2     | 2            |               |\n| +5V     | Vcc     | /CLR     | 3            |               |\n| GND     | GND     | CUE      | 4            |               |\n| +5V     | Vcc     | /CU      | 5            |               |\n| D7      | D7      | /WR      | 6            |               |\n| D9      | D9      | A1       | 7            |               |\n| D8      | D8      | A0       | 8            |               |\n| +5V     | Vcc     | Vcc      | 9            | Vcc           |\n| GND     | GND     | GND      | 10           | GND           |\n| D0      | TxD     |          |              |               |\n| D1      | RxD     |          |              |               |\n| D2      | D2      | D2       | 13           |               |\n| D3      | D3      | D3       | 14           |               |\n| D4      | D4      | D4       | 15           |               |\n| D5      | D5      | D5       | 16           |               |\n| D6      | D6      | D6       | 17           |               |\n| D11     | D0      | D0       | 11           |               |\n| D12     | D1      | D1       | 12           |               |\n| +5V     | Vcc     | /BL      | 18           |               |\n| A0/D14  | MODESW  |          |              |               |\n| A4/D18  | I2C SDA |          |              | I2C SDA       |\n| A5/D19  | I2C SCL |          |              | I2C SCL       |\n\nMODESW is connected to a 10k pull-up resistor and a tact-switch to GND.\nIt's used as a digital input, not analog (Arduino digital pin 14).\n\n## Real-Time Clock ##\n\nA non-volatile real-time clock module using the DS3231 should be connected\nto the Arduino's I2C pins (A4 and A5) along with 10k pull-up resistors.\nThis will be used to read the time and date at start-up.\n\nA line of code to set the DS3231 is included in 'setup()',\ncommented-out.\n\n## TODO ##\n\nThe display will work with any type of 7-segment display,\ne.g. vacuum fluorescent, LED, LCD,\nPanaplex, Numitron,\nelectromechanical flip-type.\nIf we limit ourselves to octal times (0000-7777) then the display will be\ncompatible with Nixie tubes,\nedge-lit digits,\nprojection displays,\nand any other type of decimal (0-9) digit displays.\n\nSome Numitron displays have Russian Postcode digits,\nwith two additional diagonal segments within the usual 7-segment arrangement.\nWould be nice to support those if I had some.\n\nSynchronise internal Arduino time with the (more accurate) DS3231 I2C\nreal-time clock chip.\nProbably best to do this every 90 minutes/6.25%/0x1000/0400,\ni.e. 16 times per day.\n\nFind a better way to set the time without needing to recompile the code.\n\nImplement other types of serially-interfaced display: TM1622,\nMAX7219, I2C 14-segment.\n\nAdvanced goal: make this into a watch.\nRound OLED display?\nTiny 7-segment?\nLCD for low power?\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanachrocomputer%2Fhexclock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanachrocomputer%2Fhexclock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanachrocomputer%2Fhexclock/lists"}