An open API service indexing awesome lists of open source software.

https://github.com/phancak/keypad-board

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.
https://github.com/phancak/keypad-board

button-control expandable i2c-interface low-power-comsumption stm32l010

Last synced: about 1 month ago
JSON representation

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.

Awesome Lists containing this project

README

          

# STM32L010K4T6 Keypad Board

## Overview
This 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**.

This 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**.

## Features
✅ **STM32L010K4T6 MCU** – Ultra-low-power ARM Cortex-M0+ processor
✅ **12-Button Keypad** – Efficient, responsive user input
✅ **I2C & UART Communication** – Flexible interfacing with host MCUs
✅ **Debouncing & Key Scanning** – Handled in firmware for accurate input detection
✅ **Low Power Mode** – Automatic sleep mode when idle to conserve energy

## Applications
- **Embedded Systems** – User interface for microcontroller-based projects
- **IoT Devices** – Low-power control panel for smart devices
- **Industrial Automation** – Secure keypad entry for control units

## Getting Started
### Hardware Requirements
- STM32L010K4T6 Keypad Board
- Host MCU (STM32, ESP32, Raspberry Pi, etc.)
- Power Supply (3.3V)
- USB-to-Serial Debugging Tools

### Software Requirements
- **STM32CubeIDE** – Firmware development
- **I2C/UART Libraries** – Communication with the host MCU
- **ST-Link or J-Link** – Debugging and flashing tools

## Setup & Usage
1. **Power the Board** – Provide 3.3V supply to the MCU.
2. **Connect to Host MCU** – Use I2C or UART for communication.
3. **Flash Firmware** – Load key scanning and communication code.
4. **Receive Key Data** – Host MCU processes key events for input handling.

## Repository Structure
/Firmware - STM32 firmware source code
/Core - Main application files
/Drivers - HAL and LL peripheral drivers
/Keypad - Debouncing and key scanning logic
/Utils - Utility functions and helper libraries

/Hardware - PCB schematics and design files
/Schematic - Circuit diagrams (PDF, KiCad, Altium, etc.)
/PCB - Board layout files (Gerber, BOM, assembly files)

/Docs - Technical documentation and references
/Getting_Started - Setup guides, connection diagrams
/Datasheets - Component datasheets
/Application_Notes - Project use cases and performance analysis

/Examples - Sample projects demonstrating board usage
/I2C_Host - Example of interfacing via I2C
/UART_Host - Example of interfacing via UART

/Tools - Development tools and scripts
/Flashing_Scripts - Python scripts for automated flashing
/Debug_Scripts - Debugging utilities for logging

## Future Enhancements
- 🔹 **Configurable Key Mapping** – Customize key assignments via firmware
- 🔹 **Multi-Press Support** – Enable simultaneous key detection
- 🔹 **Low-Power Optimization** – Further reduce power consumption for battery-based applications

## License
This project is open-source under the **MIT License**.

---