{"id":15657628,"url":"https://github.com/tobozo/esp32-dcf77_analyzer_clock","last_synced_at":"2025-05-05T15:52:28.061Z","repository":{"id":46187174,"uuid":"203475309","full_name":"tobozo/esp32-DCF77_Analyzer_Clock","owner":"tobozo","description":"⏰ An ESP32 TFT interpretation of the @deruiter's DCF77-Analyzer-Clock-V2.0","archived":false,"fork":false,"pushed_at":"2023-05-19T11:41:26.000Z","size":24741,"stargazers_count":25,"open_issues_count":7,"forks_count":8,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-02-25T13:41:43.992Z","etag":null,"topics":["arduino","atomic-clock","dcf77","esp32","esp32-chimera-core","weather"],"latest_commit_sha":null,"homepage":"","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/tobozo.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}},"created_at":"2019-08-21T00:29:46.000Z","updated_at":"2025-01-10T22:22:20.000Z","dependencies_parsed_at":"2024-10-23T05:45:00.730Z","dependency_job_id":"f5bbf922-fb97-49b2-9753-f47316c2c5c4","html_url":"https://github.com/tobozo/esp32-DCF77_Analyzer_Clock","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobozo%2Fesp32-DCF77_Analyzer_Clock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobozo%2Fesp32-DCF77_Analyzer_Clock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobozo%2Fesp32-DCF77_Analyzer_Clock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobozo%2Fesp32-DCF77_Analyzer_Clock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tobozo","download_url":"https://codeload.github.com/tobozo/esp32-DCF77_Analyzer_Clock/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242750417,"owners_count":20179247,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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","atomic-clock","dcf77","esp32","esp32-chimera-core","weather"],"created_at":"2024-10-03T13:08:52.892Z","updated_at":"2025-03-09T20:31:33.878Z","avatar_url":"https://github.com/tobozo.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# esp32-DCF77_Analyzer_Clock\nAn ESP32 TFT interpretation of the @deruiter's [DCF77-Analyzer-Clock-V2.0](https://github.com/deruiter/DCF77-Analyzer-Clock-V2.0)\n\n\n[![image](https://raw.githubusercontent.com/tobozo/esp32-DCF77_Analyzer_Clock/master/assets/img/dcf77-demo.gif)](https://www.youtube.com/watch?v=TQnQEQfLkGE)\n\n\n\nHardware Requirements:\n----------------------\n  - ESP32\n  - TFT (160*128 minimum recommended, working on elastic design to cover higher resolutions)\n  - DCF77 Atomic clock module ( such as this one https://www.universal-solder.ca/product/canaduino-60khz-atomic-clock-receiver-module-wwvb-msf-jjy60/ (WWVB/JJY60/MSF/DCF77) or https://www.pollin.de/p/dcf-77-empfangsmodul-dcf1-810054 (DCF77))\n  - RTC Module (preferably i2c, e.g. a 5V DS1307 or 3V3 DS3231)\n  - Buttons (optional)\n  - Speaker (optional)\n\nSoftware Requirements:\n----------------------\n  - M5Stack Core or ESP32-Chimera-Core for compatibility https://github.com/tobozo/ESP32-Chimera-Core (replaces M5Stack Core, adds support for Odroid-Go, TTGO-TS, Wrover-Kit LoLin D-32Pro)\n  - Bodmer's JPEGDecoder for rendering jpeg in sprites https://github.com/Bodmer/JPEGDecoder\n\nRunning on an ODROID-GO:\n------------------------\n\n  (Contributed by [dl9sec](https://github.com/dl9sec))\n\n  Thanks to the ESP32-Chimera-Core, the clock runs fine and flawless on an ODROID-GO (with sound output and buttons support for A/B/MENU).\n  \n  \u003cimg src=\"https://raw.githubusercontent.com/tobozo/esp32-DCF77_Analyzer_Clock/master/assets/img/OGO_esp32-DCF77_Analyzer_Clock.jpg\" alt=\"ODROID-GO esp32-DCF77 Analyzer Clock\" width=\"17%\" height=\"17%\"\u003e\n  \n  The hardware components has to be connected to the ODROID-GO's 10-pin connector:\n  \n  - The DCF modules positive pulse output has to be connected to `IO4` (5).\n  - The RTC should be a DS3231 for convenience (3V3 system). Connect the supply pins to the ODROID-GO `P3V3` (6) and `GND` (1), `SDA` to `IO15` (4) and SCL to `IO12` (3) (hopefully the RTC will never need to do a clock stretching, because `IO12` is a buffered output pin, not an open-collector/-drain).\n  \n  To build a suitable ODROID-GO firmware file the following steps have to be proceeded:\n\n  - Uncomment the `#define CONFIG_OGO` in the `Config.h` (comment out any other of the platforms).\n  - Activate the verbose compiler output at the Arduino IDE preferences.\n  - Select the `ORDOID ESP32` as target in the Arduiono IDE.\n  - Build the firmware (just clicking the checkmark).\n  - When successfully finished the build process, watch one of the last lines of the Arduino IDE console output and navigate to the temporary directory where the compiler puts the file `esp32-DCF77_Analyzer_Clock.ino.elf`.\n  - There you will find a file named **`esp32-DCF77_Analyzer_Clock.ino.bin`**. Copy this file to a directory (of your choice), where the executable `mkfw` (Linux) or `mkfw.exe` (Windows, get it here: [https://forum.odroid.com/viewtopic.php?t=31939](https://forum.odroid.com/download/file.php?id=9325\u0026sid=f3db9325d02e3d69aa28fcd5d3e3a064)) could be found.\n  - Copy the file `\\assets\\img\\OGO_DCF77_Analyzer_Clock_Logo.raw` to the same directory (icon file created as described [here](https://wiki.odroid.com/odroid_go/arduino_app#make_tile_image_with_ffmpeg)).\n  - Create the firmware with `mkfw \"DCF77 Anylyzer Clock\" OGO_DCF77_Analyzer_Clock_Logo.raw 0 16 1048576 app esp32-DCF77_Analyzer_Clock.ino.bin` (Windows) or `./mkfw \"DCF77 Anylyzer Clock\" OGO_DCF77_Analyzer_Clock_Logo.raw 0 16 1048576 app esp32-DCF77_Analyzer_Clock.ino.bin` (Linux).\n  - Rename the file with `ren firmware.fw esp32-DCF77_Analyzer_Clock.fw` (Windows) or `mv firmware.fw esp32-DCF77_Analyzer_Clock.fw` (Linux).\n  - Put the firmware file `esp32-DCF77_Analyzer_Clock.fw` to your ODROID-GO's SD card in the `odroid\\firmware` folder and install it from there to your ODROID-GO.\n  - After a software reboot you need to power the ODROID-GO off and on again to re-init the incomplete graphics.\n\nCREDITS:\n--------\n  I learned a lot from Erik de Ruiter who learned a lot from the work of Matthias Dalheimer and Thijs Elenbaas\n  who made their own DCF77 decoders.\n\n  Although the changes I made are far from optimistic, this code has wisdom DNA in its roots!\n\n  Without the incredible work of these geniuses I would not have known where to start and how to write those credits :)\n\n  Huge thanks to [@BrettOliver](https://github.com/brettoliver) for fueling the code with a 320x240 UI, implementing the leap second, and [much more](http://www.brettoliver.org.uk/DCF77_Signal_Generator_Analyzer/DCF77_Signal_Generator.htm#leapsecond)\n\nAuthor:\n-------\n  - https://github.com/tobozo/\n  - https://twitter.com/tobozotagada/\n  - https://www.youtube.com/c/tobozotagada\n\n\nInteresting websites:\n---------------------\n  - Inspirational video     : https://www.youtube.com/watch?v=ZadSU_DT-Ks\n  - UI code based on        : https://github.com/deruiter/DCF77-Analyzer-Clock-V2.0\n  - Crypto code based on    : https://github.com/FroggySoft/AlarmClock\n  - Weather code based on   : http://arduino-projects4u.com/home-weather-station/\n  - Erik de Ruiter          : https://www.hackster.io/edr1924\n  - Brett Oliver            : http://www.brettoliver.org.uk/\n  - Joop Tap                : http://www.jooptap.nl\n  - Thijs Ellenbaas         : http://thijs.elenbaas.net/2012/04/arduino-dcf77-radio-clock-receiver-hardware-2/\n  - Mathias Dalheimer       : https://github.com/roddi/DCF77-Arduino/blob/master/DCF77Servoclock/DCF77.h\n  - DCF77 wikipedia         : https://en.wikipedia.org/wiki/DCF77\n  - Much more DCF77 info    : http://www.picbasic.nl/indexes_uk.htm\n  - Erik de Ruiter's Flickr : https://www.flickr.com/photos/edr1924/albums\n  - Erik de Ruiter's Github : https://github.com/deruiter\n  - FroggySoft's Github     : https://github.com/FroggySoft\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftobozo%2Fesp32-dcf77_analyzer_clock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftobozo%2Fesp32-dcf77_analyzer_clock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftobozo%2Fesp32-dcf77_analyzer_clock/lists"}