30 open-source projects similar to tmk/tmk_keyboard, ranked by shared indexed features. Tags may describe platforms or build tools rather than the same primary purpose. Check each project’s use case, license, and deployment requirements before treating it as a replacement.
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
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
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
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
Miryoku is a universal mapping specification for ergonomic and orthogonal keyboards. It provides a standardized set of key assignments and layers designed to decouple logical input intent from specific physical hardware, ensuring consistent key placement across different firmware and devices. The system focuses on home-row navigation, placing cursor movement, mouse emulation, and system functions on the home row to minimize hand travel. It utilizes a layer-based input strategy with toggleable and modal layers to manage numerals, symbols, and media controls without relying on complex modifier
MAME is a vintage hardware emulation platform designed to recreate the circuitry of arcade games, computers, and consoles to run original software on modern devices. It functions as a retro gaming preservation framework for managing, verifying, and archiving ROM sets and disk images to ensure long-term software accessibility. The project features a system debugging tool for inspecting emulated memory, CPU registers, and execution flow via breakpoints and disassembly. It also includes a Lua-based automation layer that exposes core system state and hardware controls for custom behavior and anal
This project provides hardware specifications and configuration sets for building programmable split mechanical keyboards and macro pads. It focuses on column-staggered designs that utilize the QMK firmware framework to manage input behaviors and keymaps. The hardware design emphasizes modularity and customization, featuring hotswap sockets for switch replacement without soldering, rotary encoders for specialized control, and low-profile switch options. Visual feedback is integrated through per-key RGB lighting and I2C-based OLED status displays. The system covers a broad range of capabiliti
Unleashed Firmware is a custom firmware modification for portable multi-tool devices designed to expand the capabilities of radio frequency, infrared, and contactless authentication hardware. It functions as a comprehensive platform for wireless security auditing, signal analysis, and hardware interaction, enabling users to capture, decode, and emulate signals across various communication protocols. The firmware distinguishes itself through a modular plugin architecture that allows for the dynamic addition of signal analysis and attack capabilities without requiring a full system recompile. I
This project is a collection of research and tools for reverse engineering the hardware and communication protocols of Nintendo Switch consoles and controllers. It provides a comprehensive toolset for analyzing physical hardware interfaces, parsing controller communication protocols, extracting embedded firmware, and emulating input signals. The project focuses on decoding raw serial data and packets from controllers to extract input and sensor states. It includes capabilities for simulating hardware signals to send spoofed input data to the system console and extracting microcontroller softw
NUT is an uninterruptible power supply management system that monitors and controls power protection hardware. It functions as an automated shutdown coordinator and a network power monitor, implementing the RFC 9271 standard for communicating with power hardware. The project acts as a hardware driver translation layer, converting signals from USB, serial, and SNMP interfaces into a unified data format. It employs a client-server architecture to stream battery and voltage metrics from hardware drivers to remote monitoring clients across a network. Capabilities include real-time power monitori
This is the official documentation repository for Raspberry Pi hardware and software. It covers the complete range of Raspberry Pi single-board computers, the RP-series microcontrollers, and the Raspberry Pi operating system. The documentation provides reference material for setting up devices, configuring hardware, and using the system for tasks including AI inference, camera and video capture, embedded development, and remote access. The documentation covers the full boot chain from the GPU firmware and EEPROM bootloader through to kernel loading, with detailed guidance on boot configuratio
This project is a Nintendo Entertainment System emulator written in Go. It functions as a hardware simulation that executes game ROMs by mimicking the original console's circuitry, including the processor and picture processing unit. The emulator includes a game library browser that identifies local files and retrieves titles and thumbnails from online databases using file checksums. It also implements a system of memory management mappers to ensure compatibility across various game ROM formats and hardware configurations. The software covers high-level capabilities for game ROM execution an
PiKVM is an IP-KVM remote access solution for out-of-band server management. It enables remote control of a host computer's hardware and operating system through a web browser or VNC client, allowing access to the BIOS or boot sequence when the main operating system is unresponsive. The system provides remote hardware control by managing physical power switches and GPIO triggers. It emulates human interface devices, such as keyboards and mice, and supports the emulation of mass storage to mount virtual disk images for bare metal operating system installation and recovery. Additional capabili
SoundManager2 is a JavaScript audio API and cross-browser audio engine designed to provide consistent playback across different web browsers and devices. It functions as an HTML5 audio wrapper and playback manager that abstracts native APIs into a unified interface, ensuring compatibility through an automatic switching mechanism between available audio backends and codecs. The library distinguishes itself with an RTMP audio streamer for network communication with media servers and a built-in ID3 metadata parser for extracting track titles, artist information, and genre tags from audio files.
Hammerspoon is a programmable automation engine for macOS that enables deep system-level control through a Lua scripting environment. By bridging high-level scripts with native Objective-C APIs, it allows users to interact with the operating system's accessibility tree, intercept hardware input streams, and manage the lifecycle of running applications. The project distinguishes itself through an event-driven architecture that registers asynchronous hooks for system notifications and hardware events. This allows for real-time automation, such as remapping keyboard and mouse inputs, managing wi
This project is a design framework and hardware specification for building custom split ergonomic mechanical keyboards. It provides the technical guidelines and design files necessary to assemble column-staggered keyboards. The framework includes build guides for assembling two-piece keyboards and supports the manufacturing of custom plates and cases. It incorporates a system for generating circuit board layouts based on defined hardware constraints and supports various mechanical switch types and mounting methods. The project covers the full development cycle from ergonomic hardware prototy
Kanata is a cross-platform keymap engine and keyboard firmware emulator that intercepts physical keystrokes to output modified signals on Windows, Linux, and macOS. It serves as a keyboard remapper and layer manager, allowing users to define custom key-map sequences and modal editing behaviors through a declarative configuration file. The system implements keyboard firmware features in software, enabling advanced behaviors such as tap-hold logic, unicode output, and dynamic macros. It utilizes a state-based layer stack to manage multiple sets of key assignments that toggle dynamically and sup
This project is firmware for the ESP8266 microcontroller that enables the sending and receiving of infrared signals to control consumer electronics. It functions as an infrared signal decoder and encoder, providing a network gateway through an MQTT bridge as well as TCP and web servers for remote wireless device control. The system supports the capture of raw infrared transmissions into memory buffers for analysis and playback, allowing for the reverse engineering of unknown protocols. It includes specialized capabilities for managing air conditioners via complex infrared sequences and generi
This project provides educational resources and technical guides for microcontroller firmware development. It focuses on writing low-level C code that runs directly on hardware without an underlying operating system, covering the fundamentals of hardware registers, memory mapping, and system clocks. The guides detail the creation of hardware abstraction layers to wrap raw memory-mapped registers into structured interfaces and provide walkthroughs for integrating TCP/IP stacks and HTTP servers into bare-metal environments. It also outlines the implementation of embedded systems build pipelines
This project is an embedded C++ development kit and hardware abstraction layer that enables the Arduino programming environment to target ESP8266 WiFi microcontrollers. It provides a comprehensive framework for compiling and flashing code to microcontroller memory via serial or wireless interfaces. The system includes a specialized WiFi microcontroller framework for managing TCP/IP stacks and internet connectivity. It features a dedicated over-the-air firmware update system that allows software updates to be delivered to remote hardware without a physical cable connection. The kit covers emb
SharpKeys is a Windows registry keyboard remapper and input customizer. It functions as a tool for changing keyboard key assignments by modifying the Windows registry scancode map. The utility includes a keyboard key identifier to detect the internal scan code of a pressed key, which facilitates accurate remapping and identification of physical keys. The software covers keyboard input identification and custom keyboard layout setup, allowing users to swap or disable keyboard inputs by managing the Windows registry.
This project is an infrared communication library and hardware driver for Arduino microcontrollers. It provides the core systems necessary to send and receive infrared signals, acting as both a signal decoder that parses light pulses into structured addresses and commands, and a signal generator for transmitting codes. The library enables the capture of raw timing data to analyze unknown infrared protocols and recreate specific communication patterns. It supports the transmission of codes using predefined protocols, custom encoding schemes, or raw timing arrays. The system covers a broad ran
This project is a tutorial for developing a custom bare metal operating system specifically for the Raspberry Pi 4. It provides the guidance and resources necessary to write software that interacts directly with hardware without the use of a pre-existing kernel. The project centers on an ARM64 cross-compilation toolchain and a build pipeline that transforms source code into raw binary images. It utilizes linker scripts to define physical memory addresses and section placements, ensuring the resulting binary loads at the correct hardware entry point. The codebase covers direct hardware interf
LiteOS is a lightweight real-time operating system kernel designed for constrained devices with limited memory and processing power. It provides a foundation for embedded IoT development, focusing on stable and predictable system resource management. The system implements a preemptive task scheduler and interrupt-driven resource management to ensure real-time responsiveness. It incorporates a tickless idle mechanism and optimized sleep-wake cycles to reduce power consumption in battery-powered hardware. The kernel includes capabilities for task synchronization via semaphores and static memor
Xtreme-Firmware is a custom operating system for the Flipper Zero designed to expand hardware capabilities and remove software restrictions. It functions as a multi-protocol signal emulator for capturing and replaying RFID, NFC, Sub-GHz, and Infrared signals to test hardware security. The project features a specialized USB HID attack framework for sending keystroke payloads and spoofing device identifiers over USB and Bluetooth. It also includes a WiFi penetration testing suite for scanning, sniffing, and sending deauthentication frames using a wireless development board. Broad capabilities
This project is a reference library of firmware examples and a development framework for creating embedded C applications on the RP2040 microcontroller. It provides a collection of hardware peripheral drivers and foundational patterns for managing system resources in resource-constrained environments. The library features reference implementations for programmable I/O state machines, allowing for the creation of custom hardware-level protocols. It also provides a multicore embedded framework to distribute computational workloads across multiple processor cores using symmetric processing. The
Play- is a multi-system game emulator and virtual hardware emulator that simulates various console and arcade hardware to run original game files on modern devices. It functions as a retro game frontend, providing a graphical interface for organizing, launching, and managing libraries of legacy console and arcade titles. The project includes a hardware input mapper that translates modern controllers and mouse movements to simulate specialized legacy input devices, such as light guns and steering wheels. It also features a game state manager capable of capturing and restoring the exact memory
MonitorControl is a macOS display control utility and external monitor manager. It functions as a DDC/CI display controller that allows users to adjust the brightness and volume of third-party monitors using native Apple keyboard keys. The software mimics native macOS hardware feedback by implementing a system overlay tool that renders on-screen display indicators during adjustments. It further provides the ability to synchronize brightness levels across multiple screens or replicate ambient light sensor changes to external displays. The utility includes capabilities for mapping custom keybo
ESP32-BlueJammer is an embedded signal blocker and wireless interference tool designed for the ESP32 microcontroller. It functions as a radio frequency disruptor that emits noise and unnecessary packets across the 2.4GHz spectrum to interrupt wireless communications. The project targets the disruption of Bluetooth, WiFi, and remote control signals, including those used by drones and peripherals. It allows for spectrum testing by introducing signal noise across common radio frequency channels to evaluate device resilience. The firmware includes mechanisms for switching between interference mo
Blink is a mobile terminal platform for iOS that combines an SSH and Mosh client with a local shell emulator, snippet manager, and SSH key storage. It renders terminal output using Chromium's HTerm engine for fast display and maintains persistent remote sessions across network changes through the Mosh protocol. The platform supports SSH key-based authentication, WebAuthn hardware security keys, and SOCKS5 proxy tunneling for secure remote access. The terminal environment is built around gesture-based session navigation, allowing users to switch between multiple shells with swipe and pinch ges