Now, we can’t call these LEGO key caps for obvious reasons, but also because they don’t actually work with standard LEGO. But that’s just fine and dandy, because they’re height-adjustable key caps that use the building block principle.
Image by [paper5963] via redditNow you could just as easily build wells as the dome shape pictured here, and I’d really like to see that one of these days.
In the caption of the gallery, [paper5963] mentions foam. As far as I’ve studied the pictures, it seems to be all 3D-printed material. If they were foam, they would likely be porous and would attract and hold all kinds of nastiness. Right?
[paper5963] says that there are various parts that add on to these, not just flat tops. There are slopes and curves, too. They are also designing these for narrow pitch, and say they are planning to release the files. Exciting!
Sometimes you have this project idea in your mind that seems so simple and straightforward, and which feels just so right that you have to roll with it. Then, years later you stumble across the sad remnants of the tearful saga and the dismal failure that it portrays. Do you put it away again, like an unpleasant memory, or write it up in an article, as a tearful confession of past sins? After some coaxing by a friend, [Alessandro] worked up the courage to detail how he set about making a hardware-only password keeper, and why it failed.
The idea was so simple: the device would pretend to be a keyboard and type the passwords for you. This is not that unusual, as hardware devices like the Mooltipass do something similar. Even better, it’d be constructed only out of parts lying around, including an ATtiny85 and an HD44780 display, with bit-banged USB connectivity.
Prototyping the hardware on a breadboard.
Overcoming the challenge of driving the LC display with one pin on the MCU required adding a 74HC595 demultiplexer and careful timing, which sort of worked when the stars aligned just right. Good enough, but what about adding new passwords?
This is where things quickly skidded off the tracks in the most slapstick way possible, as [Alessandro] solved the problem of USB keyboard HID devices being technically ‘output-only’, by abusing the indicator statuses for Caps Lock, Num Lock, and Scroll Lock. By driving these from the host PC in just the right way you can use them as a sort of serial protocol. This incidentally turned out to be the most reliable part of the project.
Where the project finally tripped and fell down the proverbial flight of stairs was when it came to making the bit-banged USB work reliably. As it turns out, USB is very unforgiving with its timing unlike PS/2, making for an infuriating user experience. After tossing the prototype hardware into a box, this is where the project gathered dust for the past years.
If you want to give it a try yourself, maybe using an MCU that has more GPIO and perhaps even a USB hardware peripheral like the STM32F103, ESP32-S3 or something fruit-flavored, you can take a gander at the project files in the GitHub repository.
Macropads can be as simple as a few buttons hooked up to a microcontroller to do the USB HID dance and talk to a PC. However, you can go a lot further, too. [CNCDan] demonstrates this well with his sleek macropad build, which throws haptic feedback into the mix.
The build features six programmable macro buttons, which are situated either on side of a 128×64 OLED display. This setup allows the OLED screen to show icons that explain the functionality of each button. There’s also a nice large rotary knob, surrounded by 20 addressable WS2811 LEDs for visual feedback. Underneath the knob lives an an encoder, as well as a brushless motor typically used in gimbal builds, which is driven by a TMC6300 motor driver board. Everything is laced up to a Waveshare RP2040 Plus devboard which runs the show. It’s responsible for controlling the motors, reading the knob and switches, and speaking USB to the PC that it’s plugged into.
It’s a compact device that nonetheless should prove to be a good productivity booster on the bench. We’ve featured [CNCDan’s] work before, too, such as this nifty DIY VR headset.
I just love it when y’all send in your projects, so thanks, [Kai]! But were do I even begin with this one? Okay, so, first of all, you need to know that [Kai Ruhl] built an amazing split keyboard with plenty of keys for even someone like me. Be sure to check it out, because the build log is great reading.
Image by [Kai Ruhl] via Land of KainBut that wasn’t enough — a mousing solution was in order that didn’t require taking [Kai]’s hands off of the keyboard. And so, over the course of several months, the RollerMouse Keyboard came into being. That’s the creation you see here.
Essentially, this is an ortholinear split with a built-in roller bar mouse, which basically acts like a cylindrical trackball. There’s an outer pipe that slides left/right and rolls up and down, and this sits on a stationary inner rod. The actual mouse bit is from a Logitech M-BJ69 optical number, and [Kai] operates the roller bar using thumbs.
[Kai] found it unpleasant to work the roller bar using thumbs, so mousing is done via the palm rests. You may find it somewhat unpolished with all that exposed wiring in the middle. But I don’t. I just worry about dust is all. And like, wires getting ripped out accidentally.
There are many solutions for remote control keyboards, be they Bluetooth, infrared, or whatever else. Often they leave much to be desired, and come with distinctly underwhelming physical buttons. [konkop] has a solution to these woes we’ve not seen before, turning an ESP32-S3 into a USB HID keyboard with a web interface for typing and some physical keyboard macro buttons. Instead of typing on the thing, you connect to it via WiFi using your phone, tablet, or computer, and type into a web browser. Your typing is then relayed to the USB HID interface.
The full hardware and software for the design is in the GitHub repository. The macro buttons use Cherry MX keys, and are mapped by default to the common control sequences that most of us would find useful. The software uses Visual Studio Code, and PlatformIO.
We like this project, because it solves something we’ve all encountered at one time or another, and it does so in a novel way. Yes, typing on a smartphone screen can be just as annoying as doing so with a fiddly rubber keyboard, but at least many of us already have our smartphones to hand. Previous plug-in keyboard dongles haven’t reached this ease of use.
These days, Windows has a moderately robust method for managing the volume across several applications. The only problem is that the controls for this are usually buried away. [CHWTT] found a way to make life easier by creating a physical mixer to handle volume levels instead.
The build relies on a piece of software called MIDI Mixer. It’s designed to control the volume levels of any application or audio device on a Windows system, and responds to MIDI commands. To suit this setup, [CHWTT] built a physical device to send the requisite MIDI commands to vary volume levels as desired. The build runs on an Arduino Micro. It’s set up to work with five motorized faders which are sold as replacements for the Behringer X32 mixer, which makes them very cheap to source. The motorized faders are driven by L293D motor controllers. There are also six additional push-buttons hooked up as well. The Micro reads the faders and sends the requisite MIDI commands to the attached PC over USB, and also moves the faders to different presets when commanded by the buttons.
If you’re a streamer, or just someone that often has multiple audio sources open at once, you might find a build like this remarkably useful. The use of motorized faders is a nice touch, too, easily allowing various presets to be recalled for different use cases.
The build is based around an Adafruit RP2040 Feather ThinkInk devboard, chosen because it plugs straight into a readily-available 4.2 inch e-ink. The display is tasked with showing icons that correspond to the macro assignments for the 3 x 4 array of mechanical keyboard switches. Everything is wrapped up in a 3D printed frame, with an bracket to mount it to the monitor arms on the desk. The macropad is set up to talk to a custom Python app that runs on the host machine, which handles triggering actions and can also talk back to the pad itself.