A Google Pixel 7 with a detachable Bluetooth keyboard.

BlueBerry Is A Smartphone-Agnostic Keyboard Firmware

If you’re anything like us, you really, really miss having a physical keyboard on your phone. Well, cry no more, because [Joe LiTrenta] has made it possible for any modern smartphone whatsoever to have a detachable, physical keyboard and mouse at the ready. [Joe] calls this creation the BlueBerry.

A couple of metal plates and a mag-safe pop socket connect a Bluetooth keyboard to a Google Pixel 7. The keyboard/mouse combo in question is a little BlackBerry Bluetooth number from ZitaoTech which is available on Tindie, ready to go in a 3D printed case. What [Joe] has done is to create a custom ZMK-based firmware that allows the keyboard be device-agnostic.

In order to easily mount the keyboard to the phone and make it detachable, [Joe] used adhesive-backed metal mounting plates on both the phone and the keyboard, and a mag-safe pop socket to connect the two. The firmware makes use of layers so everything is easily accessible.

Check out the demo video after the break, which shows the board connected to a Google Pixel 7. It makes the phone comically long, but having a physical keyboard again is serious business, so who’s laughing now? We’d love to see a keyboard that attaches to the broad side of the phone, so someone get on that. Please?

Do you have a PinePhone? There’s an extremely cute keyboard for that.

Continue reading “BlueBerry Is A Smartphone-Agnostic Keyboard Firmware”

A Planck-inspired 40% ortholinear keyboard.

DIY Keyboard Can Handle Up To Three Host Devices

Here’s a story that may be familiar: [der-b] is a Linux developer who is forced two carry two laptops — one for work with unavoidable work stuff on it, and one for software development. Unfortunately this leads to keyboard confusion between the two when one is connected to an external display.

In an attempt to overcome this, [der-b] designed a keyboard that can be connected to more than one device at a time, despite ultimately thinking that this will lead to another layer of confusion. The point was to try to make something as lightweight as possible, since carrying two laptops is already a struggle. As a bonus, this project was a learning experience for soldering SMD parts.

The keyboard itself is based on the Planck and uses an ATMega32u4 running QMK firmware, so that means it’s a 40% ortholinear with 48 keys total. [der-b] used low-profile Cherry MX switches to keep things sleek.

In order to switch between different host devices, [der-b] uses shortcuts as you’ll see in the short video after the break. This is accomplished with a FSUSB36 IC on the USB connections between the ATMega and the host.

[der-b] encountered a spate of issues while building this keyboard, which you can read all about in the blog post. We love to see transparency when it comes to your write-ups, especially when the projects become learning experiences. (Aren’t they all?) But if 48 keys aren’t nearly enough for you, check out this learning-experience keyboard build.

Continue reading “DIY Keyboard Can Handle Up To Three Host Devices”

Displays We Love Hacking: LVDS And EDP

There are times when tiny displays no longer cut it. Whether you want to build a tablet or reuse some laptop displays, you will eventually deal with LVDS and eDP displays. To be more exact, these are displays that want you to use either LVDS or eDP signaling to send a picture.

Of the two, LVDS is the older standard for connecting displays, and eDP is the newer one. In fact, eDP has mostly replaced LVDS for things like laptop and tablet displays. Nevertheless, you will still encounter both of these in the wild, so let’s start with LVDS.

The name “LVDS” actually comes from the LVDS signaling standard (Low-Voltage Differential Signaling), which is a fairly generic data transfer standard over differential pairs, just like RS485. Using LVDS signaling for embedded display purposes is covered by a separate standard called FPD-Link, and when people say “LVDS”, what they’re actually talking about is FPD-Link. In this article, I will also use LVDS while actually talking about FPD-Link. Barely anyone uses FPD-Link except some datasheets, and I’ll use “LVDS” because that’s what people actually use. It’s just that you deserve to know the distinction so that you’re not confused when someone mentions LVDS when talking about, say, industrial machinery.

Both LVDS and eDP run at pretty high frequencies – they’re commonly used for color displays with pretty large resolutions, so speed can no longer be a constraint. eDP, as a successor technology, is a fair bit more capable, but LVDS doesn’t pull punches either – if you want to make a 1024 x 768 color LCD panel work, you will use LVDS, sometimes parallel RGB – at this point, SPI just won’t cut it. There’s a lot of overlap – and that’s because LVDS is basically parallel RGB, but serialized and put onto diffpairs. Let me show you how that happened, and why it’s cool.

Continue reading “Displays We Love Hacking: LVDS And EDP”

Bluepad32 Brings All The Controllers To Your MCU

As much as we enjoy spinning up our own solutions, there are times when you’ve got to look at what’s on the market and realize you might be out of your league. For example, take Bluetooth game controllers. Sure, you could make your own with a microcontroller, some buttons, and a couple joysticks. But between the major players like Microsoft, Nintendo, and Sony, as well as independent peripheral companies like 8BitDo, there’s some seriously impressive hardware out there that can be easily repurposed.

How, you ask? Well, Bluepad32 by [Ricardo Quesada] would be a great place to start. This Apache v2.0 licensed project allows you to easily interface with a wide array of commercially available BT controllers, and supports an impressive number of software and hardware platforms. Using the Arduino IDE on the ESP32? No problem. CircuitPython on Adafruit’s PyPortal? Supported. There’s even example code provided for using it on Linux and Mac OS. Sorry Windows fans — perhaps there’s a sassy paperclip or sentient dog built into your OS that can instruct you further.

A few of the controllers supported by Bluepad32.

The nature of the Bluetooth Human Interface Device (HID) protocol means that, at least in theory, pretty much all modern devices should be supported by Bluepad32 automatically. But even still, it’s hard not to be impressed by the official controller compatibility list. There’s also separate lists for Bluetooth mice and keyboards that are known to work with the project.

While it’s somewhat unlikely to be a problem in this particular community, there is an unusual quirk to this project which we think should at least be mentioned. Although Bluepad32 itself is free and open source software (FOSS), it depends on the BTstack library, which in turn uses a more ambiguous licensing scheme. BTstack is “open” in the sense that you can see the source code and implement it in your own projects, but its custom license precludes commercial use. If you want to use BTstack (and by extension, Bluepad32) in a commercial product, you need to contact the developers and discuss terms.

License gotchas aside, Bluepad32 is definitely a project to keep in the back of your mind for the future. You can always build your own controller if you’re looking a challenge, but you’ll have a hell of a time beating the decades of testing and development Sony has put into theirs.

Building A Mechanical Keyboard As A Learning Project

[Thomas Rinsma] wanted to learn about designing PCBs. Thus, he set about a nifty project that would both teach him those lessons and net him something useful in the process. The result was kb1, a mechanical keyboard of his own design!

You might think [Thomas] would have started with a basic, barebones design, but he didn’t shy away from including some neat features. His keyboard has a “tenkeyless” layout, and uses Cherry MX-style switches, as has become the norm in the mechanical keyboard world. It has a 16×2 LCD display for user feedback, a rotary encoder, and it even has an RGB backlight for every key thanks to SK6812 addressable LEDs. Running the show is a Raspberry Pi Pico, equipped with the KMK firmware. The board actually uses twin PCBs as the enclosure, which is a nifty trick.

It’s remarkably fully featured for a first time build.

Most of a three-key macro pad featuring a 3D-printed, LEGO-compatible plate.

3D-Printed Macro Pad Plate Is LEGO-Compatible

We love LEGO, we love keyboards, and when the two join forces, we’re usually looking at a versatile peripheral that’s practically indestructible. Such seems to be the case with [joshmarinacci]’s LEGO-compatible 3D-printed plate for a three-key macro pad. For a first foray into scratch-built keyboard construction, we think this is pretty great.

The idea here is threefold: the plate holds the switches in place, negates the need for a PCB, and makes it possible to build the case completely out of LEGO. In fact, [joshmarinacci]’s plan for the keycaps even includes LEGO — they are going to 3D print little adapters that fit the key switch’s stem on one side, and the underside of a 2×2 plate on the other.

Although [joshmarinacci]’s plan is to design a PCB for the next version, there is plenty to be said for combining the plate and the PCB by printing guides for the wires, which we’ve seen before. We’ve also seen LEGO used to create a keyboard stand that fits just right. 

Via KBD

Illustrated Kristina with an IBM Model M keyboard floating between her hands.

Keebin’ With Kristina: The One With The Transmitting Typewriter

Image by [SrBlonde] via Hackaday.IO
Okay, so we’re opening with more than just a keyboard, and that’s fine. In fact, it’s more than fine, it’s probably the cutest lil’ ZX Spectrum you’ll see today.

[SrBlonde]’s wonderful micro Spectrum project has only the essential inputs, which makes for an interesting-looking keyboard for sure. Inside you’ll find an Orange Pi Zero 2 board loaded with Batocera so [SrBlonde] can play all their favorite childhood games on the 5″ IPS display.

Something else that’s interesting is that the switches are a mix of blues and blacks — clickies and linears. I can’t figure out how they’re distributed based on the numbers in the components list, but I could see using clickies on the alphas and linears everywhere else (or vice versa). At any rate, it’s a great project, and you can grab the STL files from Thingiverse if you’re so inclined.

Continue reading “Keebin’ With Kristina: The One With The Transmitting Typewriter”