{"id":41835102,"url":"https://github.com/androidcrypto/esp32_cyd_domino_clock","last_synced_at":"2026-01-25T09:04:19.633Z","repository":{"id":318464129,"uuid":"1069475797","full_name":"AndroidCrypto/ESP32_CYD_Domino_Clock","owner":"AndroidCrypto","description":"Design a nice digital clock in a Domino style on an ESP32 Cheap Yellow Display (CYD)","archived":false,"fork":false,"pushed_at":"2025-10-07T09:45:48.000Z","size":1028,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-07T11:41:38.061Z","etag":null,"topics":["cheap-yellow-display","clock","clockface","cyd","domino","dominoes","esp32","ili9341","st7789","tft-display"],"latest_commit_sha":null,"homepage":"https://medium.com/@androidcrypto/create-a-colorful-digital-clock-on-an-esp32-cheap-yellow-display-cyd-641db4642e47","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/AndroidCrypto.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-04T02:25:28.000Z","updated_at":"2025-10-07T09:45:52.000Z","dependencies_parsed_at":"2025-10-07T11:41:41.594Z","dependency_job_id":null,"html_url":"https://github.com/AndroidCrypto/ESP32_CYD_Domino_Clock","commit_stats":null,"previous_names":["androidcrypto/esp32_cyd_domino_clock"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/AndroidCrypto/ESP32_CYD_Domino_Clock","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndroidCrypto%2FESP32_CYD_Domino_Clock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndroidCrypto%2FESP32_CYD_Domino_Clock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndroidCrypto%2FESP32_CYD_Domino_Clock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndroidCrypto%2FESP32_CYD_Domino_Clock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AndroidCrypto","download_url":"https://codeload.github.com/AndroidCrypto/ESP32_CYD_Domino_Clock/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndroidCrypto%2FESP32_CYD_Domino_Clock/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28750663,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T09:00:19.176Z","status":"ssl_error","status_checked_at":"2026-01-25T09:00:04.131Z","response_time":113,"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":["cheap-yellow-display","clock","clockface","cyd","domino","dominoes","esp32","ili9341","st7789","tft-display"],"created_at":"2026-01-25T09:03:42.559Z","updated_at":"2026-01-25T09:04:19.626Z","avatar_url":"https://github.com/AndroidCrypto.png","language":"C","readme":"# ESP32 Cheap Yellow Display (CYD) Domino Clock\n\nThis is the accompanying repository for my article \"**Create a digital clock in a Domino style on an ESP32 Cheap Yellow Display (\"CYD\")**\" available here: https://medium.com/@androidcrypto/create-a-colorful-digital-clock-on-an-esp32-cheap-yellow-display-cyd-641db4642e47\n\nFor short - what is a \"Cheap Yellow Display\" ? This device was introduced some years ago and allowed for very fast development of projects where an ESP32, a TFT (optional Touch surface), an SD Card Reader and an RGB LED is included. The first version was equipped with a 2.8 inch large TFT display with **ILI9341** driver chip and **XPT2046** resistive Touch driver chip. Newer versions are sold with a **ST7789** display driver chip. Nowadays, the device is available with different display sizes (1.28 up to 7 inches) and driver chips, but I'm focusing on the 2.8 inch variants. The display has a size of **320 x 240** pixels in Landscape orientation. Most of the devices are driven by an ESP32 WROOM microcontroller, but I saw some others with an ESP32-S3 chip.\n\n![Image 1](./images/esp32_cyd_domino_clock_01_600w.png)\n\n## Source of the Domino images\n\nI'm using the Domino style images provided by **judge2005** in the GitHub repository **https://github.com/judge2005/EleksTubeIPS**. You will find the originals in the path \"more_faces | dom2\". The original images are BMP encoded images with a size of 135 x 240 pixels, but this is far to much for our display, as I want to display the current time and date with 6 digits each. The second issue would be: how do I load the images into the sketch (SD-Card, LittleFS). I decided to use the \"inline\" style by converting the files in C-style header files.\n\n![Image 2](./images/esp32_clock_face_domino.png)\n\nFor both the image size reducing and converting I used an internet service: https://mischianti.org/rgb-image-to-byte-array-converter-for-arduino-tft-displays/\n\nSimply open each of the ten digit BMP files, set the new image size (here 50 x 88 pixels), convert the file and download it as *h file.\n\nThe are the default settings I used:\n\n````plaintext\nSettings (default):\nCode format Hex 0x00\nPalette mod 16bit RRRRRGGGGGGBBBBB (2byte/pixel)\nResize: use both parameters to match exact size, e.g. 50 x 88\nMulti line yes\nEndianness Little Endian\nstatic yes\nconst yes\nData type uint16_t\nPROGMEM yes\n````\n\n## Required Library\n````plaintext\nTFT_eSPI Version: 2.4.3 *1) (https://github.com/Bodmer/TFT_eSPI)\n\n*1) In case you encounter any problems with the TFT_eSPI library you should consider to use my forked TFT_eSPI library that solved some problems, see link below\n````\nForked TFT_eSPI library by AndroidCrypto: https://github.com/AndroidCrypto/TFT_eSPI\n\n## Set up the TFT_eSPI library\n\nPlease don't forget to copy the files \"*Setup801_ESP32_CYD_ILI9341_240x320.h*\" and \"*Setup805_ESP32_CYD_ST7789_240x320.h*\" in the \"User_Setups\" folder of the TFT_eSPI library and edit the \"*User_Setup_Select.h*\" to include the set up, depending on your CYD board type (ILI9341 or ST7789).\n\nIf you own an older version (one Micro-USB port) your display is driven by an **ILI9341** driver chip, newer boards (one Micro-USB and one USB-C port) are using an **ST7789** driver chip. Both of them should use a resistive touch controller of type **XPT2046**.\n\n**ILI9341**: Setup801_ESP32_CYD_ILI9341_240x320.h\n\n**ST7789**: Setup805_ESP32_CYD_ST7789_240x320.h\n\n## Development Environment\n````plaintext\nArduino IDE Version 2.3.6 (Windows)\narduino-esp32 boards Version 3.2.0 (https://github.com/espressif/arduino-esp32)\n````\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandroidcrypto%2Fesp32_cyd_domino_clock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandroidcrypto%2Fesp32_cyd_domino_clock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandroidcrypto%2Fesp32_cyd_domino_clock/lists"}