“I wanted a pocket-sized Linux computer with a physical keyboard and I sort of hacked something together last year that wasn’t very nice,” Dan explains. “I decided to have another go at it this spring when I got a pre-release Amp Ripper 4000 PSU to try out.” His goal was to incorporate a keyboard, scroll wheel, and touchscreen, and include a laptop-style battery that would report its state of charge to the OS.
Key points
At the Chonky Pocket’s heart is a Raspberry Pi 4 computer. “I usually use Ubuntu and it’s great that Raspberry Pi is officially supported,” Dan says. It’s hooked up to a 5-inch HDMI touchscreen with a speaker and, of course, a handful of keys. They’re ‘chorded’ which means: several keys need to be pressed together to enter characters, words, phrases, or commands.
“The keyboard layout is mostly just the eight-key ARTSEYIO chording layout with two extra keys mapped to ‘)’ and ‘(‘ and chorded ‘:’ – keys that normally require a layer shift with the ARTSEYIO layout.” This enables Python coding. “It was a bonus that the extra keys made the keyboard physically symmetrical, so I could change the layout for either hand,” Dan adds.
Of course, it’s going to take some getting used to. “I can type about 20 words per minute (wpm) with it when I practise a bit, but there are folks on the ARTSEYIO Discord who can do more than 40 wpm,” Dan continues. “If I wanted to type faster with one hand, I’d be inclined to use half of a Corne split keyboard (CRKBD) which has more thumb buttons for layer shifting and more direct access to symbols, numbers, and CTRL/SHIFT/ALT.”
Powering on
The build posed some challenges. “Modifying the battery kernel module for this was interesting,” Dan says. “I haven’t touched any C code since college and the window manager would crash when I loaded the module in Raspberry Pi OS. I’m just lucky that it worked in Ubuntu without having to do much troubleshooting.”
Power was hard to get right too. “Even using the wrong connector between a battery and the boost/charge board can cause voltage warnings and rebooting with Raspberry Pi 4,” he explains. And he has rewritten the GPIO keyboard firmware a couple of times. “It was an opportunity to learn about the current state of GPIO programming on Raspberry Pi with ‘lgpio’ and figure out how to use ‘uinput’.”
Dan hopes many people will enjoy building their own version and already plans for a build that includes a second HDMI port, external pins, a display that turns off when idle, and more. “I’ve gotten lots of supportive comments on Reddit for this build and some nice media coverage. It’s been a lot of fun,” he says.