https://github.com/pumafpv/pmk
Highly featured HID ecosystem
First I wanted to build a keyboard, then make it wireless, then split full wireless.
With USB dongle for optimal compatibility (All OS, computer, phone… BIOS, etc). So if the dongle can work as a keyboard, why not a mouse as well? Oh you want a gamepad too? ok, fine! App volume control with Deej? Here take it…
As of today, the dual split keyboard works with the dongle with minimal latency (software limited to ~100Hz).
The dongle is an ESP32S2 and has most of the complexity of the firmware, every other device firmware is as simple as possible, ie: only sends and receive raw data - As little process as possible is done on the devices. This way anyone should be able to write custom device code and bind it to the dongle.
Devices can be: keypad, mouse, gamepad, or other… (See full list in protocol description)
The dongle appears as a USB key and hosts the config file for each device. If you need to change a keybind, this is where it is happening.
Currently all the hardware is based on the ESP32S2 chip that consums a LOT of power (yes bad idea for a wireless keyboard, but it was easier this way…). Later it will be based on nRF52840, which is a real low power MCU.
Adding a custom device is really easy, with just a few lines of code. An exemple script will be made
With every release, here is what should be tested: