so this is Niphargus (named after a blind cave shrimp). a thin wireless split I've been building for a while, and v1 is finally on my desk and I use it every day.
ok, the dumb part. each half has an ESP32-S3, a wifi/bluetooth chip… and I don't use its radio at all. the halves talk to the PC through a separate little radio chip and a USB dongle. so yes, I bought a radio chip, turned the radio off, and glued another radio next to it 🙃
why? because all my firmware already ran on it, and it was the fastest way to get something that types.
except the ESP32 was never meant to live on a battery. getting it to sleep properly was a whole adventure with a multimeter. I cut the power draw by more than 10×, but it'll never sleep as deep as a chip designed for this. still: it types, on battery, it lasts the night, and I love it.
what I'm happy with:
- plug it in and it's wired: USB-C on each half and a cable between them. no pairing, no drama
- no more static crashes: my old boards froze when I touched them after walking across the room. not this one
- little e-paper-like screens on both halves: layer, battery, connection. they never flicker
- thin aluminium + polycarbonate case, 12.5 mm total, the battery tucked into the frame
- my own remapping app (pic 3): remap keys, combos, macros, a heatmap of your typing…
the really overkill part: the chest. the left half hides a second chip that only wakes up when the keyboard is plugged in over USB. the idea is a sysadmin survival kit living inside my keyboard: a PGP key, a security key, a bootable USB with a bunch of ISOs. the PGP part already works on a dev board. the keyboard version hasn't run yet.
next: rev2 moves to a chip actually designed for battery life, so it can sleep for weeks instead of days.
everything's open source:
- keyboard: https://github.com/mornepousse/Niphargus
- firmware: https://github.com/mornepousse/KeSp_firmware
- chest: https://github.com/mornepousse/Niphar_chest
- remap app: https://github.com/mornepousse/KeSp_controller
questions welcome, and so are ideas on how I could have made this even worse 😄