The Blackberry Keyboard: How An Open-Source Ecosystem Sprouts
What could happen when you open-source a hardware project? No, seriously. I hold a fair few radical opinions – one is that projects should be open-source to the highest extent …read more


What could happen when you open-source a hardware project?
No, seriously. I hold a fair few radical opinions – one is that projects should be open-source to the highest extent possible. I’ve seen this make miracles happen, make hackerdom stronger, and nourish our communities. I think we should be publishing all the projects, even if incomplete, as much as your opsec allows. I would make ritual sacrifices if they resulted in more KiCad projects getting published, and some days I even believe that lightly bullying people into open-sourcing their projects can be justified. My ideal universe is one where companies are unable to restrict schematics from people getting their hardware, no human should ever hold an electronics black box, by force if necessary.
Why such a strong bias? I’ve seen this world change for the better with each open-source project, and worse with closed-source ones, it’s pretty simple for me. Trust me here – let me tell you a story of how a couple reverse-engineering efforts and a series of open-source PCBs have grown a tree of an ecosystem.
A Chain Of Blackberry Hackers
A big part of this story has been dutifully documented by [Michael] on his BBKB community website – it’s a meticulous summary of devices in the BBKB ecosystem. You should click on it and check it out, it’s a labor of love, aimed at introducing newcomers to the Blackberry keyboard-adorned device ecosystem, with a degree of care for fellow hackers that’s worth appreciating. In this article, I am relying on [Michael]’s research and interviews, but also on my own experience and research of Blackberry keyboard device community.
As [Michael] has found out, it all started in 2015, with a reverse-engineered replacement part keyboard for a Blackberry Q10. [JoeN] on Eevblog forums reverse-engineered the pinout, then posted the pinout and code to Arduino forums – for sufficiently devoted hackers to create with. Three years later, [WooDWorkeR] on our own Hackaday.io picked up the work, reverse-engineered the backlight, and made an Arduino Nano proof-of-concept. Things heated up when Hackaday superfriend [arturo182] picked up the mantle in 2018 – starting off with a Q10 keyboard PMOD, then eventually reverse-engineering the touchpad-equipped Q20 keyboard, and as a culmination, building a standalone Q20 keyboard with a USB-C connection and a RP2040 controller.
If you’ve seen a few QWERTY handhelds, you’ve likely seen one that’s downstream of [arturo182]’s work. Recently, he’s been big on creating castellated stamps – his RP2350 stamps make for great prototyping devices, can heavily recommend. He’s got a hardware company thing going on, called SolderParty, with a good few innovative products like the FlexyPins I’ve covered before – I adore castellated modules, and I feel like he’s mastered the craft of doing them.
Also, have you seen the Tanmatsu, and in particular, its custom QWERTY keyboard? That keyboard is one of his design – as of recent, he’s got a side project of hacker-friendly keyboards going on, partly to replace the Q20s as they become more and more scarce on the new-old-stock market.
But back to the Blackberry: the Q20 keyboard really hit the news, going beyond the hacker world, if I were to guess, relying upon a fair bit of nostalgy for QWERTY handhelds. My personal belief is “the more screen, the less soul”, and when reading articles like the ones written about the Q20 keyboard, I can feel that in the air. I wasn’t the only one, for sure – looks like Eric Migicovsky, founder of Pebble, felt it too.
Beep Beep (Watch Out For Trademarks)
A few prototypes later, the SQFMI group released the Beepberry project, later known as Beepy. It had the essentials of a pocket computer – a Pi Zero, a Sharp LCD, a Q20 keyboard, an RP2040 tying its all together, a 2000 mAh cell and onboard battery management, plus, a few extra niceties like a side button and an RGB LED for notifications. What else? An integration with the Beeper project, a platform putting all your messaging service under a single roof. All files fully published on GitHub, including the KiCad files for the PCB. A Discord server with open invites. Minimum amount of software support. A rubberband and two pieces of double-sided tape keeping the battery, screen, and keyboard attached to the board. I think that was it?
First batch was merely 50 pieces. The pricing did raise my eyebrow – $80 for a PCBA ($10), Pi Zero 2 W ($10-15), Sharp screen ($20), a Blackberry keyboard ($10), and a 2000mAh cell, for a BOM total of around $50-60, all put together and presumably tested? That sure flies in the face of all “multiply BOM by three” advice. Nevertheless, more and more people started receiving their Beepberries, sharing pictures online, coming together on the Discord and other social media, and playing around with their new cool hardware. It got a good few reviews, too, including a must-read review from our own [Tom Nardi]!
The project’s journey wasn’t seamless, of course, but the problems were few and far between. For instance, the Beepberry project became Beepy – because of Blackberry, legally speaking, raising an eyebrow at the naming decision; it’s the kind of legal situation we’ve seen happen with projects like Notkia. If you ever get such a letter, please don’t hold any hard feelings towards the company – after all, trademarks can legally be lost if the company doesn’t take action to defend them. From what I gather, BlackBerry’s demands were low, as it goes with such claims – the project was renamed to Beepy going forward, and that’s about it.
Unity Through Discord
People deride Discord servers as means of community building, and by now, I’ve heard it all. I get it. Sadly, these days, you’re going to either get on Discord, or be detached from a large chunk of the hacker community – and such a detachment is bad if you want to stay up to date with things. Dislike Discord as much as you want, and I can assure you that all the bad things about it are true, but that’s how the game is played. So, if you’re not on the Beepy Discord server and you like what Beepy stands for, you’re missing out – thankfully, there is a Matrix integration, too.
Beepy owners and fans alike joined the crowd. Each had something to contribute, with varying degrees of hardware and software competence, modulated by varying degrees of executive function, as it goes. Some people received their own Beepies, a few people got the KiCad project and ordered the files, and an unexpected amount of people breadboarded a Beepy! The barebones software support might’ve had deterred people, but at the same time, it became a community obstacle to overcome.
Starting from [arturo182]’s Linux driver work and someone else’s Linux drivers for the Sharp screen, a Linux experience started to grow. Initially, just the keyboard and touchpad were supported, but the support grew – both the RP2040 firmware and the Linux driver grew in functionality, changed names, picked up by one developer after another. Different people picked fonts to fit the screen’s low resolution, mapped extra keycodes to layers built upon the 40-something buttons of the Q20 keyboard and designed on-screen hints, worked on “sleep” modes (mostly implemented within the RP2040 by powering down the Pi Zero in particular), wrote like a dozen different helper scripts for the GPIO-exposed side button, and the apps, oh were there apps!
People Found Purposes
Beepy is no X server-carrying device, and you won’t be running even LXDE on the Pi Zero and the 400×240 mono screen. Under the sheets of a virtual terminal, however, there’s heaps to work with. Of course, Linux has plenty of commandline apps – most of them aimed at a 80×24 text screen resolution and not a character less, but many worked outright. SSH and email clients? Weather alert UIs? Beeper-compatible messengers? Music players? Games? ChatGPT interfaces? Pico8 and other game emulators? Doom? Of course people ran Doom. There were multiple attempts at lightweight GUIs with apps, too, not to foreshadow too much too early.
Beepy became a hacker’s pocket friend. Maybe not everything was great all the time. The hardware had its sometimes-board-killing flaws, the GPIOs were quite tricky to hack on because of their layout, and the hardware features were pretty barebones. Software achievements and releases were somewhat uncoordinated, too – Discord just isn’t great for discoverability; I can only tell you about all this because I went through two years worth of Discord server logs, and found a lot of cool stuff that people published only to be forgotten in the chat logs. If you ask me, this period of the community would’ve been turbocharged by a monthly Beepy newsletter, also published on on a blog so that outsiders could be linked to it, too.
The Beepy community has truly made Beepy grow into a veritable pocket device, pushing the limits of the Pi Zero, the screen, and the keyboard alike. By now, there’s assortments of software you can run, documentation websites, Debian repositories running on GitHub infrastructure, a few lightweight Buildroot-based distros, dozens of 3D printed cases, and never a shortage of people coming into the Discord server asking when Beepy will be available for sale again.
Just The Beep-ginning
It genuinely fascinates me how a chain of, spanning years, has come from “keyboard pinout” to “a mass-manufactured open-source board with a big community” – Q10 keyboard reverse-engineering on Eevblog forums led to wider adoption, which eventually led to Arturo’s Q20 board and its splash, and that in led to Beepy and its Discord server. Did it end here? Of course it didn’t – I did say ecosystems, plural. Next week, you’re getting a continuation article about the Beepy derivatives, because the story is just starting here.
Enough about open-source – next article, you will hear about the phenomenon of closed-open-source, clones of high and low effort alike, and a pretty cool open-source Beepy successor. (Spoilers: I’m biased because I’m involved.) But for a start, we’ll talk about a mis-used Texas Instruments boost regulator, a mis-calculated resistor, and a few overlooked datasheet parameters.