The Poly Keyboard is a DIY project to create a keyboard with tiny OLED displays beneath each key, allowing you to switch languages, layouts, or other functions via software.
It’s been under development for a few years, but this month the creator of the project assembled the first functional prototype of the keyboard… or at least of the left side of what will eventually be a split keyboard.
A short demo video shows the key labels changing when a user presses the Caps Lock key. But theoretically this sort of screens-as-labels design would also allow you to change languages, switch to a Dvorak layout or a different arrangement of keys, or highlight just the keys you need for a game, video editing application, or other software.
It’s not the first time we’ve seen a keyboard-with-screen-as-keys design, but Poly is certainly one of the more intriguing entries in this space. It’s an open hardware design: the PCB design, 3D printer files for keycaps, and other files are available at GitHub. And the firmware is based on the open source QMK keyboard firmware.
While the project was originally designed to use an STM32F407 microcontroller, prices went up during the pandemic and ensuing supply chain shortage, so the Poly Keyboard now is now powered by a Raspberry Pi RP2040 microcontroller.
Under each of the keys is a 0.42 inch black and white mini OLED display with a resolution of 72 x 40 pixels.
You can find more details about the project by following the developer’s progress on Twitter or in a series of ports on a Ko-fi page.
Yes!! Left side of the split keyboard works! #MechanicalKeyboard #OLED pic.twitter.com/2shKk43PQw
— thpoll (@thpoll2) June 9, 2022
Isn’t there an Apple notebook with a row of function keys at the top at are OLED?
Why can’t Apple or Microsoft make a nice high quality stand alone keyboard with this functionality on all keys?
You mean the ones with the Touch Bar? That’s not a row of keys, that’s a long thin touchcreen that sometimes displays keys on it but not always when you want it to and they quit doing that because it wasn’t very good.
As for doing something like this, putting a tiny screen on a moving button is pretty hard to get right at a price anyone would be willing to pay. You might have to make every single keycap it’s own NFC powered and controlled E-INK screen so there’s no wires to worry about, and that would still be crazy expensive.
Cool. Art Lebedev, anybody?
Hopefully this will accomplish the one thing that all other “screen on each key” keyboards have failed at… feel. Most of them have had such an awful key feel, that I wouldn’t have paid $10 for the keyboard, based on the feel alone. Nevermind the >$1000 they usually want.
One of the biggest examples was the Optimus Maximus, and those switches were awful. They were scratchy feeling, and the keys would bind if you pressed them slightly off-centre. It was by far the worst keyboard I had ever typed on.
The reason most attempts to accomplish this have failed is because adding a screen in the key requires a more mechanically complex design, and it becomes more prone to binding (jamming due to the friction of pressing it off-axis).
For example, in the Optimus, the keycap needs to slide up and down around the stationary screen, and then the cap pushes the switch up and down. So there’s 2 things that are capable of binding: the cap that slides along the edges of the screen housing, and the switch’s plunger, which slides against the housing of the switch.
I had the Optimus Popularis for a few weeks. It had one big screen under clear keys so it was (relatively) less expensive than the Maximus. Several huge problems: needed a ton of power so unusable on the go. I’m sure it could be changed to run from USB-C power. Software was so primitive and missing features – more than a year after it was being sold. And, worst, the keys. As Grant wrote, the touch was awful – although probably better than the Maximus. And, if the keyboard was at all pushed in front of you, and not right under your nose, the sides of the keys blocked you from seeing part of the display for each one!