An FPGA-Based Mechanical Keyboard

You can buy all kinds of keyboards these days, from basic big-brand stuff to obscure mechanical delicacies from small-time builders. Or, you can go the maker route, and build your own. That’s precisely what [Lambert Sartory] did with their Clavier build.

This build goes a bit of a different route to many other DIY keyboards out there, in that [Lambert] was keen to build it around an FPGA instead of an off-the-shelf microcontroller. To that end, the entire USB HID stack was implemented in VHDL on a Lattice ECP5 chip. It was a heavy-duty way to go, but it makes the keyboard quite unique compared to those that just rely on existing HID libraries to do the job. This onboard hardware also allowed [Lambert] to include JTAG, SPI, I2C, and UART interfaces right on the keyboard, as well as a USB hub for good measure.

As for the mechanical design, it’s a full-size 105-key ISO keyboard with one bonus key for good measure. That’s the coffee key, which either locks the attached computer when you’re going for a break, or resets the FPGA with a long press just in case it’s necessary. It’s built with Cherry MX compatible switches, has N-key rollover capability, and a mighty 1000 Hz polling rate. If you can exceed that by hand, you’re some sort of superhuman.

The great thing about building your own keyboard is you can put in whatever features you desire. If you’re whipping up your own neat interface devices, don’t hesitate to let us know!

Franke A600 coffee machine with PicoVoice

Coffee By Command: The Speech2Touch Voice Hack

If you were to troll your colleagues, you can label your office coffee maker any day with a sticker that says ‘voice activated’. Now [edholmes2232] made it actually come true. With Speech2Touch, he grafts voice control onto a Franke A600 coffee machine using an STM32WB55 USB dongle and some clever firmware hacking.

The office coffee machine has been a suspect for hacking for years and years. Nearly 35 years ago, at Cambridge University, a webcam served a live view of the office coffee pot. It made sure nobody made the trip to the coffee pot for nothing. The funny, but in fact useless HTTP status 418 was brought to life to state that the addressed server using the protocol was in fact a teapot, in answer to its refusal to brew coffee. Enter this hack – that could help you to coffee by shouting from your desk – if only your arms were long enough to hold your coffee cup in place.

Back to the details. The machine itself doesn’t support USB keyboards, but does accept a USB mouse, most likely as a last resort in case the touchscreen becomes irresponsive. That loophole is enough: by emulating touchscreen HID packets instead of mouse movement, the hack avoids clunky cursors and delivers a slick ‘sci-fi’ experience. The STM32 listens through an INMP441 MEMS mic, hands speech recognition to Picovoice, and then translates voice commands straight into touch inputs. Next, simply speaking to it taps the buttons for you.

It’s a neat example of sidestepping SDK lock-in. No reverse-engineering of the machine’s firmware, no shady soldering inside. Instead, it’s USB-level mischief, modular enough that the same trick could power voice control on other touchscreen-only appliances.

This Device Is A Real Page Turner

You can read e-books on just about anything—your tablet, your smartphone, or even your PC. However, the interface can be lacking somewhat compared to a traditional book—on a computer, you have to use the keyboard or mouse to flip the pages. Alternatively, you could do what [NovemberKou] did, and build a dedicated page-turning device.

The device was specifically designed for use with the Kindle for Mac or Kindle for PC reader apps, allowing the user to peruse their chosen literature without using the keyboard to change pages. It consists of a thumb wheel, rotary encoder, and an Arduino Pro Micro mounted in a 3D printed shell. The Pro Micro is set up to emulate a USB keyboard, sending “Page Up” or “Page Down” key presses as you turn the thum bwheel in either direction.

Is it a frivolous device with a very specific purpose? Yes, and that’s why we love it. There’s something charming about building a bespoke interface device just to increase your reading pleasure, and we wholeheartedly support it.

Continue reading “This Device Is A Real Page Turner”

Restoring A Vintage Computer And Its Plotter

Repairing vintage computers is bread-and-butter for many of us around here. The machines themselves tend to be fairly fixable, assuming spare parts are available and there hasn’t been too much physical damage. Peripherals can be another matter, though. Since they interface with the real world they can have more esoteric problems that aren’t always solvable. [joekutz] was handed just such a device in the form of a CE-150 docking station for a Sharp PC1500 Pocket Computer, which has a plotter built in. Here’s his “tip” for getting plotters like these working again.

The first step here is to disassemble the original, dried out pens to scavenge a few of the parts. The outer case needs to be kept so that it can be put back into the plotter, and a small O-ring is saved as well. To replace the dried-out tips [joekutz] discards the original tips and replaces them with tips from a common ink pen, using shrink wrap tubing to help fit the pen’s tip into the original plotter cylinder. He also takes the ink from the pen to fill the plotter’s cartridge, completing the surgery on the multi-colored plotter and bringing it back to life.

Of course this build goes well beyond the plotter, including bringing the PC1500 back to life as well. There are a few other videos about this project covering that original restoration as well as demonstrating some of the quirks of how this computer is meant to be programmed. But we mostly focused on the plotter here since that is a little bit out of the ordinary, and we’re also sure that refilling ink cartridges of any sort gets under the skin of everyone at HP.

Continue reading “Restoring A Vintage Computer And Its Plotter”

A Serial Mouse For A Homebrew 8-bit Computer

[Too Many Wires] has a custom computer he’s building. He wanted a mouse, but USB is a bit of a stretch for the fledgling computer. We might have opted for PS/2, but he went for something even older: a serial mouse connected with a DE-9 (colloquially, a DB-9). Check it out in his recent video update on the project below.

Don’t remember serial mice? They were very common many years ago, and apparently, you can still buy new ones, which makes you wonder what people are doing with them. If you are an old hand at serial, you’ll immediately know why he couldn’t get it to work at first. If you haven’t worked with RS-232 gear before, you’ll learn a lot.

The protocol is simple enough, and you can read the code or find plenty of old documents. He’s using a UART chip, which offloads the CPU. However, the PS/2 mice are very easy to work with directly, and you could skip the +/- 12V RS-232 and other issues.

Either way, however, using an RS-232 or PS/2 mouse in a project is relatively straightforward. You might not think you need a mouse, but don’t forget, they are really accurate two-axis sensors. An optical mouse on a motion table, for example, could be worth something.

The computer is based on [Ben Eater]’s design, if you want more details on that. Can’t decide between RS-232 and PS/2? You don’t have to.

Continue reading “A Serial Mouse For A Homebrew 8-bit Computer”

The Android Linux Commander

Last time, I described how to write a simple Android app and get it talking to your code on Linux. So, of course, we need an example. Since I’ve been on something of a macropad kick lately, I decided to write a toolkit for building your own macropad using App Inventor and any sort of Linux tools you like.

I mentioned there is a server. I wrote some very basic code to exchange data with the Android device on the Linux side. The protocol is simple:

  • All messages to the ordinary Linux start with >
  • All messages to the Android device start with <
  • All messages end with a carriage return

Security

You can build the server so that it can execute arbitrary commands. Since some people will doubtlessly be upset about that, the server can also have a restrictive set of numbered commands. You can also allow those commands to take arguments or disallow them, but you have to rebuild the server with your options set.

There is a handshake at the start of communications where Android sends “>.” and the server responds “<.” to allow synchronization and any resetting to occur. Sending “>#x” runs a numbered command (where x is an integer) which could have arguments like “>#20~/todo.txt” for example, or, with no arguments, “>#20” if you just want to run the command.

If the server allows it, you can also just send an entire command line using “>>” as in: “>>vi ~/todo.txt” to start a vi session.

Continue reading “The Android Linux Commander”

Open source mute button

Silent No More: Open-Source Fix For Mic Mishaps

“Sorry, my mic was muted…” With the rise of video calls, we’ve all found ourselves rushing to mute or unmute our mics in the midst of a call. This open-source Mute Button, sent in by [blackdevice], aims to take out the uncertainty and make toggling your mic easy.

It’s centered around a small PIC32MM microcontroller that handles the USB communications, controls the three built-in RGB LEDs, and reads the inputs from the encoder mounted to the center of this small device. The button knob combo is small enough to easily move around your desk, yet large enough to toggle without fuss when it’s your turn to talk.

To utilize all the functions of the button, you’ll need to install the Python-based driver on your machine. Doing so will let you not only toggle your microphone and volume, but it will also allow the button to light up to get your attention should you be trying to talk with the mic muted.

Although small, it’s also quite rugged, knowing it will spend its life being treated much like a game of Whac-A-Mole—slapped whenever needed. The case is designed to be 3D printed by any FDM printer, with the top knob section printed in translucent material to make the notification light clearly visible.

All of the design files, firmware, and parts list are available over on [blackdevices]’s GitHub page, and they are open-source, allowing you to tweak the design to fit your unique needs. Thank you for sending in this well-documented project, [blackdevices]; we look forward to seeing future work. If you like this type of thing, be sure to check out some of our other cool featured desk gadgets.

Continue reading “Silent No More: Open-Source Fix For Mic Mishaps”