{"id":28962440,"url":"https://github.com/electron0zero/focus-timer","last_synced_at":"2026-04-28T00:31:29.976Z","repository":{"id":300870800,"uuid":"1004526473","full_name":"electron0zero/focus-timer","owner":"electron0zero","description":"My version of ESP8266 Based focused timer (fork of https://github.com/UrbanCircles/igor)","archived":false,"fork":false,"pushed_at":"2025-07-21T12:08:04.000Z","size":1110,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-21T13:26:31.612Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/electron0zero.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}},"created_at":"2025-06-18T19:06:05.000Z","updated_at":"2025-07-21T12:08:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"c65e37c3-3a2b-4478-8c38-0686263eefae","html_url":"https://github.com/electron0zero/focus-timer","commit_stats":null,"previous_names":["electron0zero/focus-timer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/electron0zero/focus-timer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/electron0zero%2Ffocus-timer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/electron0zero%2Ffocus-timer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/electron0zero%2Ffocus-timer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/electron0zero%2Ffocus-timer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/electron0zero","download_url":"https://codeload.github.com/electron0zero/focus-timer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/electron0zero%2Ffocus-timer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32361477,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-27T20:07:02.737Z","status":"ssl_error","status_checked_at":"2026-04-27T20:07:00.910Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["esp8266","pomodoro","pomodoro-timer","time-management"],"created_at":"2025-06-24T03:06:27.571Z","updated_at":"2026-04-28T00:31:29.958Z","avatar_url":"https://github.com/electron0zero.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Focus Timer\n\n![Flow Counter showing focus minutes](./focus.jpeg) ![Flow Counter showing up counting](./count_up.jpeg)\n\nA customized version of [Project IGOR](https://github.com/UrbanCircles/igor), modified to suit my personal preferences and needs and the components I can easily find in major Indian hobby and electronics websites.\n\nThis is mostly the same as the original IGOR project, but with some tweaks to code and the PIN mapping for my specific hardware setup.\n\nIf you want to build your own version, you can use this as a starting point.\n\nThis would cut down the trial and error time for you, if your hardware is different from the original project and more close to mine.\n\n## Features\n\nMostly same as the original IGOR project, with some minor tweaks, [see original](https://github.com/UrbanCircles/igor#its-simple-features-v1)\n\nSee this [video from the original project](https://www.youtube.com/watch?v=Wko0zgRGtPI) for a demo of the features.\n\n## Hardware\n- D1 Mini (ESP8266) - Sourced from robu.in\n- 0.96\" OLED Display (SSD1306)\n- Rotary Encoder (HW-040)\n\n## BOM\n\n| Component | Quantity | Price (INR) | Robu.in Item and Link |\n|-----------|----------|-------------|--------------|\n| D1 Mini (ESP8266) | 1 | ₹ 182.00  | D1 Mini V2 NodeMcu 4M Bytes Lua WIFI Internet Of Things Development Board Based ESP8266 - [link](https://robu.in/product/d1-mini-v2-nodemcu-4m-bytes-lua-wifi-internet-of-things-development-board-based-esp8266/)     |\n| 0.96\" OLED Display (SSD1306) | 1 | ₹ 240.00 | 0.96″ OLED Display Module – SPI/I2C – 128×64 – 7 Pin (Blue) - [link](https://robu.in/product/0-96-oled-display-module/) |\n| Rotary Encoder (HW-040) | 1 | ₹ 49.00 | M274 360 Degree Rotary Encoder Brick Sensor Module - [link](https://robu.in/product/m274-360-degree-rotary-encoder-module-brick-sensor/)  |\n| Jumper Wires (Dupont) | 1 | ₹ 145.53 | 20 CM 40 Pin Dupont Cable Male/Male, Male/Female, Female/Female Cable Combo - [link](https://robu.in/product/20-cm-40-pin-dupont-male-male-male-female-female-female-cable-combo/)   |\n\nTotal BOM Cost: ₹ 616.53 INR\n\n\u003e NOTE: to encoder I bought doesn't have a screw on the stem and it required a standoff to make it work, so if you don't want the hassle, buy an encoder that has a screw on stem so you can screw it to the box. it makes it easy to assemble and way better then the standoff workaround.\n\n**Miscellaneous Items**\n\nBreadboard, Jumper Wires(Dupont), 10k OHM resister, Soldering Station, etc.\n\n## Pin Mapping and Wiring\n\nThe pin mapping is as follows:\n\n#### OLED Pin Mapping\n\n| OLED Pin | D1 Mini Pin | Comments                                                                 |\n|----------|-------------|--------------------------------------------------------------------------|\n| GND      | G (GND)     | Ground                                                                   |\n| VDD      | 3V3         | Power supply (use 3.3V only)                                             |\n| SCK      | D5          | SPI Clock — hardware SPI line, do not reuse                              |\n| SDA      | D7          | SPI Data — hardware SPI line, do not reuse                               |\n| RES      | D6          | OLD reset PIN                                                            |\n| DC       | D3          | Has pull-up; LOW at boot can cause boot issues — OK with INPUT_PULLUP    |\n| CS       | D8          | Must be LOW at boot — OLED CS is typically LOW anyway                    |\n\n\n#### Rotary Encoder Pin Mapping\n\n| Encoder Pin | D1 Mini Pin | Comments                                              |\n|-------------|-------------|-------------------------------------------------------|\n| CLK         | D1          | INT-capable — safe                                    |\n| DT          | D2          | INT-capable — safe                                    |\n| SW          | D0          | No internal pull-up — needs external 10KΩ pull-up     |\n\n\n**NOTE**\n- Don't use D4, it's connected to the onboard blue LED so leave D4 Pin unused to not interfere with the built in LED.\n- Don’t use D7, D5 for anything other than SPI for OLED when using hardware SPI. this OLED breakout board uses hardware SPI, so you must use the same pins as shown above.\n\n\n#### wiring diagram\n\n![wiring image](./circuit_image.png)\n\nSee [Focus Timer Wiring](https://app.cirkitdesigner.com/project/0dea471c-eeaa-448d-815e-7a7b2d2015ea) cirkitdesigner project for interactive wiring diagram.\n\n\n## Microcontroller firmware\n\nLoad the firmware from the focus_timer.ino file into your D1 Mini (ESP8266) using the Arduino IDE.\n\nWatch this video to see how to setup Arduino IDE for ESP8266: [Get Started With A D1 Mini (ESP8266) In Under 5 Minutes!](https://www.youtube.com/watch?v=WnRk8w7SyTo)\n\n\nIf the firmware does not work as expected, or some components are not working, you can try to [debug_code](./debug_code/) firmware and try to debug with logs in the serial monitor in the Arduino IDE.\n\n## 3D Printed Parts - Case\n\nI used a [3D files](https://github.com/UrbanCircles/igor/tree/main/3D%20Parts) from the original project, and printed it on my printer.\n\nSame file can be found on [Printables](https://www.printables.com/model/1019283-project-igor-open-source-offline-loyal-cheerful-fo)\n\nMy encoder HW-040 didn't come with a screw stem to attach the encoder knob to the case, so I modelled a custom standoff to keep the encoder pcb in place and allow the encoder knob to be attached to the case.\n\nif you want to print the standoff, you can find stl file in the repo, along with the [openSCAD](https://openscad.org/index.html) file to modify it if needed: [hw-040-standoff.scad](./hw-040-standoff.scad) and [hw-040-standoff.stl](./hw-040-standoff.stl)\n\nIf you don't own a 3D printer, ask your friends who have one or use 3D printing services from robu.in or other similar websites.\n\n## Assembly \u0026 User Guide\n\nSee Original [Assembly](https://github.com/UrbanCircles/igor#assembly) and [guide](https://github.com/UrbanCircles/igor#user-guide)\n\n## Credits\n\nMost of the code is from [Project IGOR by UrbanCircles](https://github.com/UrbanCircles/igor) with some modifications by me.\n\nThe original project is licensed under the MIT License, my debugging code and modifications are also licensed under the MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felectron0zero%2Ffocus-timer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felectron0zero%2Ffocus-timer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felectron0zero%2Ffocus-timer/lists"}