{"id":28225758,"url":"https://github.com/phancak/keypad-board","last_synced_at":"2026-01-26T21:53:02.568Z","repository":{"id":282184016,"uuid":"946243547","full_name":"phancak/Keypad-Board","owner":"phancak","description":"A compact, low-power keypad module based on the STM32L010K4T6 MCU. Featuring a 12-button interface, this board communicates with a host MCU via I2C or UART and serves as a mini keyboard for embedded systems. Ideal for IoT and embedded applications where user input is required with minimal power consumption.","archived":false,"fork":false,"pushed_at":"2025-07-29T23:19:07.000Z","size":1930,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-30T01:41:04.313Z","etag":null,"topics":["button-control","expandable","i2c-interface","low-power-comsumption","stm32l010"],"latest_commit_sha":null,"homepage":"","language":null,"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/phancak.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}},"created_at":"2025-03-10T20:50:25.000Z","updated_at":"2025-03-28T01:39:38.000Z","dependencies_parsed_at":"2025-03-29T06:25:36.144Z","dependency_job_id":"194d4ff8-14fd-4b63-a08a-b57e21e19443","html_url":"https://github.com/phancak/Keypad-Board","commit_stats":null,"previous_names":["phancak/keypad-board"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/phancak/Keypad-Board","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phancak%2FKeypad-Board","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phancak%2FKeypad-Board/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phancak%2FKeypad-Board/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phancak%2FKeypad-Board/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phancak","download_url":"https://codeload.github.com/phancak/Keypad-Board/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phancak%2FKeypad-Board/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28789252,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T21:49:50.245Z","status":"ssl_error","status_checked_at":"2026-01-26T21:48:29.455Z","response_time":59,"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":["button-control","expandable","i2c-interface","low-power-comsumption","stm32l010"],"created_at":"2025-05-18T11:09:36.667Z","updated_at":"2026-01-26T21:53:02.560Z","avatar_url":"https://github.com/phancak.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# STM32L010K4T6 Keypad Board  \n\n## Overview  \nThis project features a **low-power, compact keypad module** based on the **STM32L010K4T6 MCU**, designed to function as a **mini keyboard** for embedded systems. The board includes **twelve tactile buttons**, with the STM32 MCU handling **debouncing and key scanning**, then transmitting keypress data to a host MCU via **I2C or UART**.  \n\nThis design optimizes processing efficiency on the host system by **offloading keypad management to the STM32L010K4T6**, making it ideal for applications requiring reliable **user input with minimal power consumption**.  \n\n## Features  \n✅ **STM32L010K4T6 MCU** – Ultra-low-power ARM Cortex-M0+ processor  \n✅ **12-Button Keypad** – Efficient, responsive user input  \n✅ **I2C \u0026 UART Communication** – Flexible interfacing with host MCUs  \n✅ **Debouncing \u0026 Key Scanning** – Handled in firmware for accurate input detection  \n✅ **Low Power Mode** – Automatic sleep mode when idle to conserve energy  \n\n## Applications  \n- **Embedded Systems** – User interface for microcontroller-based projects  \n- **IoT Devices** – Low-power control panel for smart devices  \n- **Industrial Automation** – Secure keypad entry for control units  \n\n## Getting Started  \n### Hardware Requirements  \n- STM32L010K4T6 Keypad Board  \n- Host MCU (STM32, ESP32, Raspberry Pi, etc.)  \n- Power Supply (3.3V)  \n- USB-to-Serial Debugging Tools  \n\n### Software Requirements  \n- **STM32CubeIDE** – Firmware development  \n- **I2C/UART Libraries** – Communication with the host MCU  \n- **ST-Link or J-Link** – Debugging and flashing tools  \n\n## Setup \u0026 Usage  \n1. **Power the Board** – Provide 3.3V supply to the MCU.  \n2. **Connect to Host MCU** – Use I2C or UART for communication.  \n3. **Flash Firmware** – Load key scanning and communication code.  \n4. **Receive Key Data** – Host MCU processes key events for input handling.  \n\n## Repository Structure  \n/Firmware - STM32 firmware source code\n/Core - Main application files\n/Drivers - HAL and LL peripheral drivers\n/Keypad - Debouncing and key scanning logic\n/Utils - Utility functions and helper libraries\n\n/Hardware - PCB schematics and design files\n/Schematic - Circuit diagrams (PDF, KiCad, Altium, etc.)\n/PCB - Board layout files (Gerber, BOM, assembly files)\n\n/Docs - Technical documentation and references\n/Getting_Started - Setup guides, connection diagrams\n/Datasheets - Component datasheets\n/Application_Notes - Project use cases and performance analysis\n\n/Examples - Sample projects demonstrating board usage\n/I2C_Host - Example of interfacing via I2C\n/UART_Host - Example of interfacing via UART\n\n/Tools - Development tools and scripts\n/Flashing_Scripts - Python scripts for automated flashing\n/Debug_Scripts - Debugging utilities for logging\n\n\n## Future Enhancements  \n- 🔹 **Configurable Key Mapping** – Customize key assignments via firmware  \n- 🔹 **Multi-Press Support** – Enable simultaneous key detection  \n- 🔹 **Low-Power Optimization** – Further reduce power consumption for battery-based applications  \n\n## License  \nThis project is open-source under the **MIT License**.  \n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphancak%2Fkeypad-board","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphancak%2Fkeypad-board","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphancak%2Fkeypad-board/lists"}