Skip to content

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.

License

Notifications You must be signed in to change notification settings

phancak/Keypad-Board

Repository files navigation

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.


About

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.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published