{"id":27429298,"url":"https://github.com/desifish/gps-clock-v2","last_synced_at":"2025-06-19T12:36:52.746Z","repository":{"id":263077141,"uuid":"889280452","full_name":"desiFish/GPS-CLOCK-V2","owner":"desiFish","description":"GPS Clock V1 redeveloped with buttons and in compact form.","archived":false,"fork":false,"pushed_at":"2025-03-04T16:24:04.000Z","size":17809,"stargazers_count":3,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-14T14:13:59.269Z","etag":null,"topics":["128x64glcd","arduino","bh1750","bme280-sensor","doit-esp32-devkit-v1","esp32","gps","gps-clock","gps-neo-6m","menu-navigation","potentiometer","push-button","reset-button","st7920","tinygpsplusplus","wifi-manager"],"latest_commit_sha":null,"homepage":"https://iotthings.pythonanywhere.com/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/desiFish.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},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":["https://www.paypal.com/paypalme/aniketpatra"]}},"created_at":"2024-11-16T01:11:31.000Z","updated_at":"2025-03-04T16:24:07.000Z","dependencies_parsed_at":"2024-11-16T02:21:30.779Z","dependency_job_id":"3226cf0f-a683-41d7-b5cb-e750b88b7eee","html_url":"https://github.com/desiFish/GPS-CLOCK-V2","commit_stats":null,"previous_names":["kamadotanjiro-beep/esp32-gps-clock-v2","desifish/esp32-gps-clock-v2","desifish/gps-clock-v2"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/desiFish/GPS-CLOCK-V2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/desiFish%2FGPS-CLOCK-V2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/desiFish%2FGPS-CLOCK-V2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/desiFish%2FGPS-CLOCK-V2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/desiFish%2FGPS-CLOCK-V2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/desiFish","download_url":"https://codeload.github.com/desiFish/GPS-CLOCK-V2/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/desiFish%2FGPS-CLOCK-V2/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260752719,"owners_count":23057420,"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":["128x64glcd","arduino","bh1750","bme280-sensor","doit-esp32-devkit-v1","esp32","gps","gps-clock","gps-neo-6m","menu-navigation","potentiometer","push-button","reset-button","st7920","tinygpsplusplus","wifi-manager"],"created_at":"2025-04-14T14:12:31.846Z","updated_at":"2025-06-19T12:36:47.731Z","avatar_url":"https://github.com/desiFish.png","language":"C++","readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003e🌟 GPS-Clock-V2 ⏰\u003c/h1\u003e\n  \u003cp\u003e\u003ci\u003eA smart GPS Clock with temperature, humidity, and light sensing capabilities\u003c/i\u003e\u003c/p\u003e\n  \n  [![GitHub license](https://img.shields.io/github/license/desiFish/ESP32-GPS-Clock-V2)](https://github.com/desiFish/ESP32-GPS-Clock-V2/blob/main/LICENSE)\n  [![GitHub release (latest by date)](https://img.shields.io/github/v/release/desiFish/ESP32-GPS-Clock-V2)](https://github.com/desiFish/ESP32-GPS-Clock-V2/releases)\n  [![GitHub issues](https://img.shields.io/github/issues/desiFish/ESP32-GPS-Clock-V2)](https://github.com/desiFish/ESP32-GPS-Clock-V2/issues)\n  [![GitHub stars](https://img.shields.io/github/stars/desiFish/ESP32-GPS-Clock-V2)](https://github.com/desiFish/ESP32-GPS-Clock-V2/stargazers)\n  [![GitHub forks](https://img.shields.io/github/forks/desiFish/ESP32-GPS-Clock-V2)](https://github.com/desiFish/ESP32-GPS-Clock-V2/network)\n  [![GitHub last commit](https://img.shields.io/github/last-commit/desiFish/ESP32-GPS-Clock-V2)](https://github.com/desiFish/ESP32-GPS-Clock-V2/commits/main)\n  [![GitHub repo size](https://img.shields.io/github/repo-size/desiFish/ESP32-GPS-Clock-V2)](https://github.com/desiFish/ESP32-GPS-Clock-V2)\n\u003c/div\u003e\n\n## 📌 Introduction\n\nThis project is an enhanced version of [GPS-CLOCK-V1](https://github.com/desiFish/GPS-CLOCK-V1) with significant improvements:\n\n- **Added Buttons**: Physical buttons for easy interaction with the device.\n- **Menu System**: A comprehensive menu system for configuration and control.\n- **Enhanced User Interface**: Improved display layouts and information presentation.\n- **Additional Features**: New functionalities building upon the original project.\n\n\u003e Read ⚠️ Important Notice below gallery section for critical information about components and modifications.\n\n## 🛠️ Hardware Components\n\n### 📡 Core Components\n1. **ESP32 Development Board** ![ESP32](https://img.shields.io/badge/ESP32-000000?style=flat\u0026logo=espressif\u0026logoColor=white)\n   - Dual-core processor up to 240MHz\n   - Integrated Wi-Fi and Bluetooth\n   - Operating voltage: 3.3V\n   - Tested on: ESP32-Devkit-V1\n\n2. **BH1750 Light Sensor** 🌞\n   - 16-bit digital output\n   - Range: 1-65535 lux\n   - Power: 2.4-3.6V\n   - I²C interface\n\n3. **GPS Module (NEO-6M)** 🛰️\n   - Update rate: 1-5 Hz\n   - Position accuracy: 2.5m\n   - Cold start: 27s typical\n   - Hot start: 1s typical\n   - Operating voltage: 3.0-3.6V\n\n4. **ST7920 LCD Display** 📺\n   - Resolution: 128x64 pixels\n   - 5V logic level\n   - Parallel/Serial interface\n\n5. **Buzzer Module** 🔊\n   - Active buzzer\n   - Operating voltage: 3.3-5V\n   - Frequency: ~2300Hz\n   - Sound output: \u003e85dB\n\n6. **Push Buttons** x3 ⚡\n   - Tactile momentary switches\n   - Life cycle: 100,000 clicks\n   - With caps for better feel\n   - Two for Menu navigation, one for reset\n\n7. **10K Potentiometer**\n   - For contrast adjustment\n\n### 🔋 Optional Components (Battery Backup)\n\n#### Power Management\n1. **LiFePO4 Battery** \n   - Capacity: 80mAh (AAA size)\n   - Nominal voltage: 3.2V\n   - Cycle life: \u003e1500 cycles\n   - Temperature range: -20°C to 60°C\n   - Perfect for GPS backup\n\n2. **TP5000 Charging Circuit** ⚡\n   - Input voltage: 4.5-28V\n   - Charging current: 0.5-2A\n   - Efficiency: \u003e90%\n   - Built-in protection features\n   - For GPS Battery\n\n3. **Battery Protection** 🛡️\n   - BMS for single cell\n   - Using for Over-discharge protection\n\n4. **Additional Components** 🔧\n   - IN4007 diode (1A, 1000V)\n   - JST connectors\n   - Prototyping board\n   - Silicone wires (better) or PVC Wires\n   - Heat shrink tubing\n\n### 💡 Compatibility Notes\n- All I²C devices operate at 3.3V logic\n- Power supply should provide at least 500mA @5V\n- External antenna optional for GPS (Not Implemented)\n\n### 🏗️ Construction Guide\n\n#### 📦 Enclosure Preparation\n* Used a standard PVC electrical junction box (IP55 rated for weather resistance)\n  - Size: Approximately 150mm x 100mm x 70mm\n  - Cost-effective alternative to 3D printing\n  - Naturally resistant to moisture and dust\n  - Available at most hardware stores\n\n#### 🛠️ Tools Required\n* Drill machine with metal cutting bits (for holes)\n* Drill machine with metal cutting attachment that looks like CD (for rectangular cuts)\n* Hot glue gun\n* Wire strippers\n* Soldering iron\n* Basic hand tools (screwdrivers, pliers)\n* Safety equipment (goggles, gloves)\n\n#### 🔨 Assembly Steps\n1. **Display Window Creation** 🪟\n   * Mark display dimensions on box\n   * Drill corner pilot holes\n   * Use metal cutting bits for rough cut\n   * File edges smooth for perfect fit\n   * Pro tip: Use masking tape to prevent scratches\n\n2. **Light Sensor Window** 💡\n   * Create small 10mm opening for BH1750\n   * Use clear epoxy or hot glue to seal\n   * Ensure sensor faces directly outward\n   * Keep sealed but transparent for accuracy\n\n3. **Component Mounting** 🔌\n   * Mount display using hot glue at corners\n   * Create standoffs for ESP32 board\n   * Position GPS antenna near top for best reception\n\n#### 💡 Pro Tips\n* Ensure proper ventilation while cutting/drilling PVC\n* Double-check measurements before cutting\n* Test all components before final assembly\n* Label all wires for future maintenance\n* Add small ventilation holes for the sensor\n* Consider magnetic mount options\n* Keep spare wire lengths for modifications\n* Document your build with photos\n\n## 🚀 Upcoming Features\nCheck [Issues](https://github.com/desiFish/ESP32-GPS-Clock-V2/issues)\n\n## 📷 Pictures, Schematics and other stuff \n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/desiFish/ESP32-GPS-Clock-V2/blob/main/schematics/Schematic_ESP32-GPS-CLOCK-V2_2024-11-20.png\" alt=\"Schematics\"\u003e\u003cbr\u003e\u003cp align=\"center\"\u003eSchematics\u003c/p\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/desiFish/ESP32-GPS-Clock-V2/blob/main/resources/x10.jpg\" alt=\"front-view\"\u003e\u003cbr\u003e\u003cp align=\"center\"\u003eFront View\u003c/p\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/desiFish/ESP32-GPS-Clock-V2/blob/main/resources/x1.jpg\" alt=\"front-view\"\u003e\u003cbr\u003e\u003cp align=\"center\"\u003eFront View\u003c/p\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/desiFish/ESP32-GPS-Clock-V2/blob/main/resources/x11.jpg\" alt=\"inside\"\u003e\u003cbr\u003e\u003cp align=\"center\"\u003eInside View\u003c/p\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/desiFish/ESP32-GPS-Clock-V2/blob/main/resources/x2.jpg\" alt=\"display-connections\"\u003e\u003cbr\u003e\u003cp align=\"center\"\u003eDisplay Connections\u003c/p\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/desiFish/ESP32-GPS-Clock-V2/blob/main/resources/x3.jpg\" alt=\"bme280\"\u003e\u003cbr\u003e\u003cp align=\"center\"\u003eBME280 Sensor\u003c/p\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/desiFish/ESP32-GPS-Clock-V2/blob/main/resources/x4.jpg\" alt=\"testing-phase\"\u003e\u003cbr\u003e\u003cp align=\"center\"\u003eTesting Phase\u003c/p\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/desiFish/ESP32-GPS-Clock-V2/blob/main/resources/x5.jpg\" alt=\"esp32_with_connections\"\u003e\u003cbr\u003e\u003cp align=\"center\"\u003eESP32 with Connections\u003c/p\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/desiFish/ESP32-GPS-Clock-V2/blob/main/resources/x6.jpg\" alt=\"circuit-connections\"\u003e\u003cbr\u003e\u003cp align=\"center\"\u003eCircuit Connections\u003c/p\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/desiFish/ESP32-GPS-Clock-V2/blob/main/resources/x7.jpg\" alt=\"cutting-display-window\"\u003e\u003cbr\u003e\u003cp align=\"center\"\u003eCutting Display Window\u003c/p\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/desiFish/ESP32-GPS-Clock-V2/blob/main/resources/x8.jpg\" alt=\"display-in-plastic-frame\"\u003e\u003cbr\u003e\u003cp align=\"center\"\u003eDisplay in Plastic Frame\u003c/p\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/desiFish/ESP32-GPS-Clock-V2/blob/main/resources/x9.jpg\" alt=\"fullview\"\u003e\u003cbr\u003e\u003cp align=\"center\"\u003eFull View\u003c/p\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003ch2\u003e⚠️ Important Notice\u003c/h2\u003e\n\u003cdiv style=\"background-color: #fff3cd; padding: 10px; border-radius: 5px; border-left: 5px solid #ffeeba;\"\u003e\n  \u003cstrong\u003e❌ DO NOT USE AHT25 SENSOR!\u003c/strong\u003e\u003cbr\u003e\n  Due to significant accuracy issues, we recommend using BME280/BMP280/TMP117 instead.\n\u003c/div\u003e \u003cbr\u003e\n\u003cstrong\u003e🔋 GPS Battery Modification\u003c/strong\u003e\n\u003cdiv style=\"background-color: #f8f9fa; padding: 15px; border-radius: 5px; margin-top: 10px;\"\u003e\n  \u003ch4\u003e⚠️ Known Issue with GPS Module's Internal Battery\u003c/h4\u003e\n  \u003cp\u003e\n    The NEO-6M GPS modules often come with problematic internal rechargeable batteries that:\n    \u003cul\u003e\n      \u003cli\u003eAre frequently dead on arrival\u003c/li\u003e\n      \u003cli\u003eFail to hold charge properly\u003c/li\u003e\n      \u003cli\u003eOnly last 15-20 minutes when disconnected\u003c/li\u003e\n      \u003cli\u003eCannot be reliably recharged\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/p\u003e\n\n  \u003ch4\u003e🛠️ Solution Implemented\u003c/h4\u003e\n  \u003cp\u003e\n    To resolve this, I've made the following modifications:\n    \u003cul\u003e\n      \u003cli\u003eRemoved the internal battery and charging diode\u003c/li\u003e\n      \u003cli\u003eInstalled a LiFePO4 battery (AAA size)\u003c/li\u003e\n      \u003cli\u003eAdded TP5000 charging circuit for reliable charging\u003c/li\u003e\n      \u003cli\u003eImplemented BMS for deep discharge protection (Cut Off @2.5V, 2.9V Ideal)\u003c/li\u003e\n      \u003cli\u003eAdded diode to drop voltage to 3V for GPS backup pin\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/p\u003e\n\n  \u003ch4\u003e💡 User Options\u003c/h4\u003e\n  \u003cdiv style=\"background-color: #e2e3e5; padding: 10px; border-radius: 5px;\"\u003e\n    \u003cstrong\u003eYou have two choices:\u003c/strong\u003e\n    \u003col\u003e\n      \u003cli\u003e\u003cstrong\u003eKeep Original Battery:\u003c/strong\u003e \n        \u003cul\u003e\n          \u003cli\u003eSuitable if clock remains powered most of the time\u003c/li\u003e\n          \u003cli\u003eNo modifications needed\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/li\u003e\n      \u003cli\u003e\u003cstrong\u003eModify Battery (Recommended):\u003c/strong\u003e\n        \u003cul\u003e\n          \u003cli\u003eBetter for frequent power cycles\u003c/li\u003e\n          \u003cli\u003eEliminates 5-10 minute GPS lock delay on cold starts\u003c/li\u003e\n          \u003cli\u003eMore reliable long-term solution\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/li\u003e\n    \u003c/ol\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\n## 📜 License\n\n\u003cdetails\u003e\n\u003csummary\u003eGNU General Public License v3.0\u003c/summary\u003e\n\nThis project is protected under the GNU General Public License v3.0. This means:\n\n- ✅ Commercial use is permitted\n- ✅ Modification is permitted\n- ✅ Distribution is permitted\n- ✅ Private use is permitted\n- ❗ License and copyright notice must be included\n- ❗ Source code must be made available when distributing\n- ❗ Changes must be documented\n- ❗ Same license must be used\n\n[View full license](https://www.gnu.org/licenses/gpl-3.0.en.html)\n\u003c/details\u003e\n\n---\n\u003cdiv align=\"center\"\u003e\n  \u003cp\u003eMade with ❤️ for the IoT Community\u003c/p\u003e\n  \u003cimg src=\"https://img.shields.io/badge/ESP32-Ready-blue?logo=espressif\u0026logoColor=white\" alt=\"ESP32 Ready\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/GPS-Enabled-green?logo=googlemaps\u0026logoColor=white\" alt=\"GPS Enabled\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Open-Source-orange?logo=opensourceinitiative\u0026logoColor=white\" alt=\"Open Source\"\u003e\n  \u003cbr\u003e\n  \u003cimg src=\"https://img.shields.io/github/watchers/desiFish/ESP32-GPS-Clock-V2?style=social\" alt=\"Watchers\"\u003e\n  \u003ca href=\"https://github.com/desiFish/ESP32-GPS-Clock-V2/network/members\"\u003e\u003cimg src=\"https://img.shields.io/github/forks/desiFish/ESP32-GPS-Clock-V2?style=social\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/desiFish/ESP32-GPS-Clock-V2/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/desiFish/ESP32-GPS-Clock-V2?style=social\"\u003e\u003c/a\u003e\n\u003c/div\u003e\n","funding_links":["https://www.paypal.com/paypalme/aniketpatra"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdesifish%2Fgps-clock-v2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdesifish%2Fgps-clock-v2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdesifish%2Fgps-clock-v2/lists"}