awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
tmk avatar

tmk/tmk_keyboard

0
View on GitHub↗
4,125 stars·1,697 forks·C·2 views

Tmk Keyboard

tmk_keyboard is keyboard firmware for AVR and Cortex-M microcontrollers designed to handle key matrix scanning and HID communication. It functions as an embedded hardware control library for managing GPIO pins and EEPROM storage, as well as a driver that transmits keystroke and mouse data to a host computer via USB or PS/2 protocols.

The project features a layer-based keymap engine that allows physical keys to be mapped to multiple virtual layers. It also includes a legacy keyboard protocol translator to convert signals from vintage hardware standards to modern computer interfaces.

The firmware supports a range of input configurations, including key macros, mouse input emulation, and advanced key modifiers. It provides capabilities for system control, such as media playback and power management, and includes tools for managing LED backlighting and debugging firmware communication.

Features

  • Keyboard Firmware - Provides low-level firmware for managing key matrix scanning, debouncing, and keymap processing on microcontrollers.
  • Layered Keymaps - Implements a layer-based keymap engine allowing physical keys to serve multiple virtual functions.
  • Keyboard Key Mappings - Defines multiple keyboard layouts that can be toggled using dedicated trigger keys.
  • Advanced Mapping Engines - Implements a logic engine that coordinates complex input behaviors like macros and tap-hold functions.
  • Keyboard Matrix Scanning - Implements the polling of rows and columns in a physical switch matrix to detect key presses.
  • Layer-Based Keymap Resolution - Implements logic to resolve physical key inputs to keycodes using a stack of functional layers.
  • HID Device Implementations - Implements low-level USB and PS/2 HID communication to transmit keystroke data to the host.
  • HID Keyboard Drivers - Implements a driver to transmit keystroke and mouse data to a host via USB or PS/2.
  • Interrupt-Driven Signal Handlers - Uses hardware-timed interrupt routines to manage real-time HID communication for keystroke transmission.
  • Keyboard Layout Layers - Provides dynamic mapping layers that change key functions based on the active virtual layer.
  • Microcontroller Programming - Provides the means to write and deploy firmware to AVR and Cortex-M microcontrollers for keyboard control.
  • Register-Level Controllers - Implements direct register manipulation for microcontroller I/O pins to ensure low-latency keyboard input processing.
  • Embedded Device Hardware Control - Provides low-level management of embedded hardware peripherals including GPIO pins, EEPROM, and LED backlighting.
  • Custom Key Behavior Definitions - Allows the creation of specialized key behaviors and functions through custom firmware-level event interception.
  • Hardware Signal Emulation - Translates legacy keyboard signals into formats compatible with modern computer interfaces.
  • HID Mouse Emulation - Emulates HID mouse report protocols to send cursor movement and click commands via keyboard keys.
  • Input Sequence Macros - Records and plays back pre-defined sequences of keystrokes triggered by a single key.
  • Protocol Translation - Translates signals from vintage keyboard hardware standards to modern computer interfaces.
  • Legacy Protocol Translators - Converts signals from vintage hardware keyboard standards to modern computer interfaces.
  • One-Shot Modifiers - Implements advanced input behaviors such as one-shot modifiers and tapping-based activation.
  • N-Key Rollover Support - Reports many keys and modifiers simultaneously to prevent ghosting during rapid typing.
  • Non-Volatile Setting Persistence - Provides non-volatile storage in EEPROM to preserve user keymaps and hardware settings across power cycles.
  • Hardware Input Translation - Converts signals between different hardware standards to ensure compatibility between mismatched keyboard components.
  • Modifier State Tracking - Maintains a boolean registry of active modifier keys to determine final output characters.

Star history

Star history chart for tmk/tmk_keyboardStar history chart for tmk/tmk_keyboard

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Tmk Keyboard

Similar open-source projects, ranked by how many features they share with Tmk Keyboard.
  • zmkfirmware/zmkzmkfirmware avatar

    zmkfirmware/zmk

    4,124View on GitHub↗

    ZMK is a modular firmware framework built on the Zephyr RTOS for wireless keyboards. It functions as a programmable system for defining custom keymaps, layers, and input behaviors, acting as an HID device emulator for keyboard and mouse input on computers and mobile devices. It specifically provides a controller solution for synchronizing two separate keyboard halves over wireless or wired links. The project is distinguished by its focus on Bluetooth Low Energy connectivity, featuring multi-device pairing and the ability to switch between several saved host profiles. It includes advanced powe

    Cbluetoothhacktoberfestkeyboard
    View on GitHub↗4,124
  • qmk/qmk_firmwareqmk avatar

    qmk/qmk_firmware

    20,478View on GitHub↗

    This project is a keyboard firmware framework and programmable keyboard ecosystem designed for Atmel AVR and ARM microcontrollers. It provides the embedded software necessary to implement the USB Human Interface Device standard, allowing hardware to communicate keystrokes and mouse movements to a host computer. The framework distinguishes itself by offering a comprehensive toolchain for custom hardware development, including a command line interface for project scaffolding, firmware flashing, and configuration linting. It supports a variety of flexible configuration methods, allowing users to

    Catmel-avrcc-plus-plus
    View on GitHub↗20,478
  • kmonad/kmonadkmonad avatar

    kmonad/kmonad

    5,018View on GitHub↗

    Kmonad is a cross-platform keyboard remapper and advanced key mapping engine that intercepts physical keyboard inputs and transforms them into customized virtual output events. It functions as a programmable input wrapper and multi-layer keyboard manager, allowing users to redefine physical keys and route hardware inputs to virtual devices across different operating systems. The system distinguishes itself through a multi-layer management architecture that enables the definition of dynamic keyboard layers and overlays to change keyboard functions based on the current context. It implements co

    Haskellcross-platformhaskellkeyboard
    View on GitHub↗5,018
  • peng-zhihui/helloword-keyboardpeng-zhihui avatar

    peng-zhihui/HelloWord-Keyboard

    6,621View on GitHub↗

    HelloWord-Keyboard is a modular keyboard hardware framework and a system for integrating interchangeable interaction modules, expansion docks, and coordinated firmware for screens and sensors. It functions as a USB HID device driver that reports keystrokes and receives control packets between a keyboard and a host computer. The project includes a brushless motor haptic controller using field-oriented control to simulate tactile feedback on rotary encoders. It also features a per-key RGB lighting controller that employs high-refresh-rate timing to create dynamic visual effects. The system cov

    C
    View on GitHub↗6,621
See all 30 alternatives to Tmk Keyboard→

Frequently asked questions

What does tmk/tmk_keyboard do?

tmk_keyboard is keyboard firmware for AVR and Cortex-M microcontrollers designed to handle key matrix scanning and HID communication. It functions as an embedded hardware control library for managing GPIO pins and EEPROM storage, as well as a driver that transmits keystroke and mouse data to a host computer via USB or PS/2 protocols.

What are the main features of tmk/tmk_keyboard?

The main features of tmk/tmk_keyboard are: Keyboard Firmware, Layered Keymaps, Keyboard Key Mappings, Advanced Mapping Engines, Keyboard Matrix Scanning, Layer-Based Keymap Resolution, HID Device Implementations, HID Keyboard Drivers.

What are some open-source alternatives to tmk/tmk_keyboard?

Open-source alternatives to tmk/tmk_keyboard include: zmkfirmware/zmk — ZMK is a modular firmware framework built on the Zephyr RTOS for wireless keyboards. It functions as a programmable… qmk/qmk_firmware — This project is a keyboard firmware framework and programmable keyboard ecosystem designed for Atmel AVR and ARM… kmonad/kmonad — Kmonad is a cross-platform keyboard remapper and advanced key mapping engine that intercepts physical keyboard inputs… peng-zhihui/helloword-keyboard — HelloWord-Keyboard is a modular keyboard hardware framework and a system for integrating interchangeable interaction… manna-harbour/miryoku — Miryoku is a universal mapping specification for ergonomic and orthogonal keyboards. It provides a standardized set of… mamedev/mame — MAME is a vintage hardware emulation platform designed to recreate the circuitry of arcade games, computers, and…