-
Notifications
You must be signed in to change notification settings - Fork 2
License
shell382/pinephone-keyboard
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
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: 9 mW when idle, 20mW
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
-------------------------------------------------------------------------------------------------------------------------------------
Pine Phone Keyboard Case (ppkc)
notes on fixes and tweaks (2022-02):
The top number and function row has a slightly different sized set of keys, and type unreliably. User fixes exist.
PINE key can be rebound
The function keys F1-F10 require using the userspace daemon ppkb-i2c-inputd. F-11 . . .
To use the userspace daemon instead of the kernel module – necessary if you want to have F1-F10:
This is just a first pass at instructions based on what worked for me. Please proceed carefully, and edit as needed. The 'PinePhone keyboard userspace daemon' may lack auditing. Keyboard software can have large consequences.
Do these steps directly in a terminal on your PinePhone (or via SSH to the phone).
git clone https://xff.cz/git/pinephone-keyboard/
change to your clone's directory (cd pinephone-keyboard)
run make (you may need to install dependencies – for me, I had to install php.)
blacklist the kb151 module, by adding “blacklist kb151” to /etc/modprobe.d/blacklist.conf
add i2c-dev to /etc/modules to make sure it loads at boot
sudo update-initramfs -u
to start automatically at boot, create a systemd service file in /etc/systemd/system/. Here's mine (change ExecStart path to point to where your built ppkb-i2c-inputd binary is):
[Unit]
Description=PinePhone keyboard userspace daemon
[Service]
Type=simple
ExecStart=/home/mobian/src/pinephone-keyboard/build/ppkb-i2c-inputd
Restart=on-failure
RestartSec=10
KillMode=process
[Install]
WantedBy=multi-user.target
verify it with sudo systemctl status FILENAME
enable it with sudo systemctl enable FILENAME
Then reboot.
reference: https://wiki.mobian-project.org/doku.php?id=pine-phone-keyboard-case-ppkc
About
No description, website, or topics provided.
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published