mirror of
https://xff.cz/git/pinephone-keyboard/
synced 2024-09-07 20:35:41 +02:00
User-space driver pinephone keyboard
docs | ||
firmware | ||
keymaps | ||
.gitignore | ||
bin2pgd.c | ||
common.c | ||
COPYING | ||
HACKING | ||
i2c-charger-ctl.c | ||
i2c-debugger.c | ||
i2c-flasher.c | ||
i2c-inputd.c | ||
Makefile | ||
README | ||
README.flashing | ||
README.i2c-intf | ||
README.testing | ||
TODO | ||
usb-debugger.c | ||
usb-flasher.c |
FOSS firmware for pinephone keyboard ==================================== Features: - Dual firmware architecture: stock firmware + optional user firmware. - Stock firmware implements the full functionality of the keyboard. - Stock firmware is layout independent, it reports the raw status of the whole keyboard matrix. - Key maps and combinations can be arbitrarily changed in the keyboard driver without re-flashing the firmware. - Stock firmware should be sufficient for most users who will not want to do HW modifications to their keyboard to add more peripherals to the keyboard MCU. - Power efficient implementation using power-down feature of the MCU to save power as much as possible. (currently: 700 uW when idle, 15mW in active scanning mode - with at least one key pressed) - Stock firmware is flashed in factory and allows flashing user firmware from the pinephone itself over I2C interface. - User firmware can be used either for updates or for customizations (SW support for HW modifications of the keyboard) - USB stack and tools for stock firmware flashing using ELAN's original bootloader to ease development of the stock firmware. - Self-testing features to quickly test for issues with the keyboard matrix. - Fully based on FOSS software, with no dependencies. You only need sdcc 4.1+ to build the firmware. See demo video https://megous.com/dl/tmp/kb.mp4 and some technical overview https://xnux.eu/log/ You can support the project via donations at https://xnux.eu/contribute.html#toc-donations See also Samuel's kernel driver: https://github.com/smaeul/linux/commits/wip/pp-keyboard Enjoy! ~megi