I was frustrated by the lack of decent phones with physical keyboards. The phones that are currently available are hard to buy, crap, expensive, are old, outdated, have bad software support and/or disappointing hardware.

So I decided to design and build one myself.

This is a Fairphone 4 with a DIY, open source keyboard attachment. It uses a spare Blackberry Q10 keyboard and a custom, self designed Arduino-compatible mainboard, which translates the keyboard matrix to regular USB HID.

This means, it works on any phone without the need of any software modification at all. If the phone can handle a USB keyboard, it can handle this one.

All that’s necessary to make it compatible to any other phone is to adjust the case to fit that phone.

(And yes, that’s XFCE running on Ubuntu in a chroot jail.)

  • Have you heard of QMK? It’s open source keyboard firmware commonly used in custom desktop keyboards.

    You’d easily be able to customise the layout (e.g. to add a euro key) with the VIA web interface.

    QMK supports macros and “layers” (basically multiple keyboard layouts, with a key combination to swap between them). And of course being open source you can modify the source code.

    Some people go pretty nuts with layers - here’s one with six layer keys (but more than six layers - notice they hold multiple layer keys at once sometimes): https://www.reddit.com/r/MechanicalKeyboards/comments/13755u4/theres_nothing_you_cant_type_with_steno/

    • Yeah, I heard of it, and I heard that it’s great, but I was too lazy to try to understand it, so instead I wrote my firmware from scratchˆˆ

      Probably QMK would have been the better option. But I’m so far happy with my solution, and it’s all open source, so if someone else were to replicate it (and that’s a big if), anyone could just use QMK instead.