Keyboard Thingo

It's a working title.
Making a modular platform for a keyboard + PC related devices.

Similar projects worth following
An desktop organization system that will implement modular components with ongoing support for new components. So far it supports a panel LCD, a hardware power switch for desktop PCs, an AIDA64-compatible VFD panel, and an easy-access USB port.

The main idea of the thing is a modular platform that primarily holds a keyboard and accepts modular components.

These are anything that makes sense to attach to a keyboard. Or, loosely make sense, even.

So far I have about half a dozen different modules.


Just a basic, no-resources config file for AIDA64's sensor panel function. Obviously it will need tweaking based on the specs of the computer it is running on, and the resolution of the LCD. Set the background to whatever you want, but it was designed with a calculator LCD asthetic in mind. Red 126 Green 140 Blue 115

sensorpanel - 14.13 kB - 04/12/2024 at 03:25


  • Total Redesign (Rev. 7) - Up and Up

    Nick05/19/2024 at 07:52 0 comments

    In the previous log I talked about making some significant changes to the overall design of the chassis with the goal of removing a few flaws and allowing for greater potential and utility.

    Oh boy did I underestimate how much work that would be.

    To start off, it has the keyboard tray I mentioned, but for a different reason.

    I actually resolved the issue of being unable to remove some modules without first popping the keyboard out by making the 'deck' longer. By 'deck' I mean the flat area between the back of the keyboard and where the rails start.

    I considered a lot of different methods for fixing that problem, but I couldn't work out any designs that allowed for quick and easy removal of the tray that would also be strong.

    Furthermore, due to the slope of the whole chassis (unavoidable side effect of housing the electronics; more on that in a bit), the whole thing needs to be lifted up to slide out the tray. Not good since it weighs a lot and needs to be done semi-regularly.

    The tray is just a convenient and tidy way to assemble the thing now. I could have the keyboard just drop in like in the original design, but that means the USB C cable for it would have to be loose, with a cover of some kind, which is all in all suboptimal.

    A USB C plug is mounted into the chassis, and the keyboard in the tray slides onto it.

    Next up is the pogo connectors.

    SO, this was simpler than I thought it would be.

    Currently they feed through into the sloped compartment, where they are screwed into four USB 2.0 breakout plugs, two per hub, one in each half. The hubs are just these cheapo $9 AUD ones from Amazon.

    The second hub plugs into the first, which is plugged into a USB A female to USB C female adapter, giving the chassis a female USB C slot just like a normal keyboard.

    I wasn't sure about the power supply of running two unpowered hubs and connected devices off one USB port, but it seems to be fine from what I've tested so far. I imagine unless you try and run an external HDD or two from it, there won't be a problem.

    And finally: the HDMI passthrough.

    This was probably the simplest part of the whole redesign. I used this magnetic connector, and two different flex cables and plugs, this one and this one.

    Internally there is a male HDMI to male HDMI (possible because these ribbon cables and connector boards are interchangeable), and the remaining mini HDMI to female HDMI connectors will be used on the LCD module.

    One of the male HDMI's goes to the magnetic adapter (right angle side), and the other goes to a female to female HDMI adapter I found lying around, which is mounted to the chassis at the back next to the USB C socket. I don't have a link to that female to female adapter, but any should work.

    I considered running the LCD module via a USB to HDMI adapter, which technically works, but unfortunately the DisplayLink software does not support custom resolutions, so my 1920 x 515 LCD is very distorted and such, hence the use of an external HDMI connector on the chassis.

    As for the rails, nothing has changed there. I have ideas to replace the complaint mechanism with something more resilient like spring loaded catches and smooth rails, but that's something for revision 8.

    Module wise, I've tested the LCD works via the pogos for power and the adapter + passthrough for HDMI, but the only completely adapted module so far is the USB VFD, which works flawlessly (massive surprise).

    At least while testing everything, I don't want to be doing a lot of soldering and desoldering, so on the modules, I'm connecting the pogos with these. Overkill and kind of huge, but the lever mechanism makes them very quick and easy to modify and assemble.

    All in all, it was more work than I was expecting, but it was well worth it.

    Below are some photos and a video of the thing.

  • The Frame - Total Overhaul

    Nick04/27/2024 at 02:28 0 comments

    So, there's a whole host of issues with the frame - aka the core of the whole project - that were becoming a hinderance to further upgrades and new modules.

    1. Removing most components meant first removing the keyboard. This is a huge hit to the modularity aspect. I'm fixing that by, at this stage, making a separate slide-out tray that the keyboard sits in. Haven't decided on the mechanism to lock it in place yet, thinking either magnets or some sort of compliant mechanism spring catch. The added benefit of this is that other keyboards (at least ones the same width or less) can have a tray made for them and slot into the same frame. I'm also going to remove the slot at the back for the keyboard USB C cable and make it internal, that way the keyboard slides onto the USB C connector.
    2. The rails had three different spacing increments. This was done to facilitate precise positioning of modules instead of moving the rail slots on the modules themselves, which is what I'm doing now. The rails are now evenly spaced apart pairs.
    3. Even with the inclusion of the USB hub, it still had wires poking out the back. As mentioned in an earlier log, pogo pin connectors are the plan to fix that. They've arrived, and I had to remake the whole backside of the frame to accommodate them neatly.

    I've gotten a more compact USB hub, which is actually taken out of its original casing to reduce unnecessary size. The underside compartments will be a lot slimmer than the previous ones.

    I went ahead and placed an order for a HDMI magnetic connector. When that arrives, I'll decide on a position on the back of the frame to affix it.

  • LED filaments - I wasn't bluffing

    Nick04/27/2024 at 02:00 0 comments

    Well, I done gone did it.

    Enclosure is probably temporary, can definitely reduce the overall bulk of it.

    When I can be bothered I'll give it rail slots and tabs, and slim it down.

    Like the power switch, it hooks up to the mainboard, but this time it's just two wires with dupont connectors on the ends.

    Makes for a neater cable and connection. I'll update the wiring for the PW switch at some point to be the same way.

  • LED filaments

    Nick04/20/2024 at 14:24 0 comments

    The PW LED header on motherboards is 3v.

    LED filaments require 3v.

    Wait a minute...

  • Oops, all screws!

    Nick04/20/2024 at 14:03 0 comments

    I redesigned the way the LCD module and its companion module interface together. Entirely.

    The LCD can still technically be used by itself, but the companion module is now attached to the LCD enclosure with screws when in use.

    The reason for doing this is that taking it off and putting it on is a precarious and risky maneuver that puts a lot of strain on the USB and HDMI ports on the driver board.

    The new setup means that it (all 6 pieces) can be put together off of the frame with a totally-sane 22 screws and slotted on in one collective piece.

    before, even the LCD module on its own had just a few thin PLA pins to stop it bending in the middle at the join, potentially cracking the LCD.

    Now the LCD module halves bolt together, and as mentioned before the companion module assembly bolts onto that.

    Also, the changes to the companion module mean it can have the shroud removed from the faceplate, rather than the shroud being a whole separate, alternative faceplate. I've even removed a lot of the material from the base of the companion module, allowing for (hopefully) future faceplates with extended / different functionality to just drop into place.

    When the pogo pins finally arrive (thanks customs), some of this will need to change.

    It'll just be a pogo pin connector at the back of the companion module for the USB, and another specialized one for the HDMI, rather than the hole it currently has which isn't a huge change and (I think) will only need a modify and reprint of the back cover of the whole assembly.

    The only piece of the puzzle remaining to get the LCD fully going with pogo pin connectors is the HDMI pogo pin connector, which I still need to order. Still, worst case scenario the frame-side pogo pins can be developed independently to the LCD assembly. 

  • On Pogo Pins, Rail System Upgrade

    Nick04/15/2024 at 05:55 0 comments

    Connecting each device via a USB cable creates a mess of wires out the back of the frame.

    The unga bunga way around that is some kind of bulky shroud that conceals them.

    Instead I'm going to see if I can incorporate pogo pin connectors to the rail ends and modules.

    I ordered these 4-pin pairs on AliExpress, which have PH2.0 plugs on the wire ends.

    At the frame side, a short USB male to PH2.0 female adapter should be fine, and makes replacing them easy if I need to later on.

    For the module end, I'll do the same but in reverse: PH2.0 female to USB A female, then very short (probably custom) relevant USB cables as required for whatever devices.

    The modules that only need 2.0 USB so far are:

    • VFD panel
    • Easy-access USB port
    • Power for LCD (I've also found this HDMI magnetic pogo pin connector which could be added too in a set position)

  • LCD Companion Module - Cable Organizer and PC Power Switch

    Nick04/11/2024 at 15:44 0 comments

    This module serves two purposes.

    The first is a pair of cable channels to route the LCD power and HDMI cables into.

    The second is a Cherry MX switch power button for a desktop PC.

    With the detachable faceplate, it can be configured to be used for either both or only the cable organizer. Threaded inserts are used to facilitate easy changing of faceplates.

    This is a version of the faceplate that has no shroud. Here the threaded inserts for the switch in the faceplate are shown.

    Currently, I've got the power switch wired up with a 4-pin fan connector since it was what I had on hand and gets the job done. Later on, I'll work out a more suitable connector and resolder it. On the module side, the wires are simply soldered onto a cherry MX switch. I have used a Kailh Box Jade for the loud click and tactile bump.

  • On Heat Set Threaded Inserts

    Nick04/11/2024 at 15:05 0 comments

    A recent module I was working on; a cable organizer and PC power switch, needed to be printed in a few parts.

    Naturally, this meant I needed to attach the pieces together. Normally I'd just do this with small self-tapping screws directly into the PLA, but I had none left and couldn't find any for sale in stores or online that would arrive any time soon.

    At that point, I figured it might be time to finally give heat-set threaded inserts a chance. I picked up these from amazon, along with this set of bolts.

    They arrived the next day and I gave them a try. Turns out, they are remarkably strong and easy to insert.

    So long as you aren't putting the strain of opening and closing a laptop hinge a thousand times on them, they are perfectly reliable.

  • How It Started, How Its Going

    Nick04/11/2024 at 13:16 0 comments

    The first would-be module and limited desk space are what gave me the idea for the whole thing.

    I had a VFD that I bought off of AliExpress (which talks to AIDA64 and can show the usual PC info), but no way to properly keep it on my desk (it connects via a micro USB cable, simple enough, but it had no enclosure of any sort).

    I thought to design and print a simple enclosure for it, but it would be yet another device floating about on my desk. Instead, I (somehow) had the idea to attach it to my keyboard.

    I designed and printed a case that my keyboard drops into, and a basic rail system with indents that the VFD enclosure snaps onto via thin tabs with hemispheres on them.

    The module itself is not much more than a rectangular tube with a few holes that the VFD mounts to with standoffs, but that is all it needed to be (that module is still the same as the first prototype. Something something "it just works").

    The keyboard being used (and still is) here is a Tab 90M by Vortex.

    This board was already my daily driver, and the fact that the case has no bezel (low profile bezel? low profile case?) means it just drops into the frame without needing to remove its case. In the future I may remove it from the case anyway to reduce the thickness of the front and sides, but for now it's staying as is.

    Unfortunately, they don't seem to sell them anymore. That said, most other keyboards of a similar size with a thin/no bezel case should work with simple adjustments to the model.

    From there, I was inspired by those notebooks with an LCD attached to the top of the palm rest.

    I found a panel LCD on Amazon, and came up with a way to attach it to the frame. It went through several iterations, but this is where it is currently (aside from a few slight changes).

    Beneath the cable channel is the LCD flex cable. The purpose of making the driver board separate to the LCD enclosure itself is, 1. ease of printing, and 2. the ability to modify one without also reprinting the other.

    Unfortunately, the LCD is wide enough that the VFD module can't be used at the same time, so these two modules can't be in the same setup.

    That said, there aren't going to be many that can be used with it. Currently I only have two others, one of which is a 'companion' module.

    I later decided to implement a USB hub into the frame. This meant adding a pair of compartments (one for each half) to the underside of the frame.

    It could be wired in one of two configurations:

    The first was a fully wireless setup, using a battery in the other half, a HDMI transceiver, and a Bluetooth module. In this mode, the hub was only for power supply to the devices (the Bluetooth module, the LCD and the HDMI transceiver).

    This was abandoned due to horrible battery efficiency, and the cheap HDMI transceiver not properly scaling for the long, short LCD.

    I'll include the STLs anyway since it did """technically""" work for a few hours per charge.

    The second (and current) setup simply uses the integrated hub and does away with the battery entirely.

    A chain of internal USB adapters (which will be replaced with the hub cable soldered to the female UCB C later on) gives it a USB C connector that links to the hub internally. This means that only one USB C cable goes to the PC like a normal keyboard.

    That is pretty much all of the major steps along the way so far. There has certainly been a lot more, but nothing worth making a note of.

    Recently I made the companion module for the LCD I mentioned earlier; a cable run for the power and HDMI cords as well as a power switch that connects to my PC's motherboard, which I will document in a new post as it is very recent.

  • On The Purpose Of This Project, And A Retrospective Log Entry

    Nick04/11/2024 at 12:22 0 comments

    Rather than pestering people with all my random ideas and updates that I have as this boondoggle of a project progresses, I'll take a crack at using this platform instead to log it all.

    Doing this also has the added benefit of keeping it all in one place, and gives me a place to store STLs, instructions and steps, should it ever reach a point where I want to share it with anyone interested.

    Ideally, that will mean all the files, parts, materials and tools will be documented here, making it possible for anyone interested to replicate the whole thing, and even add onto it.

    Per the second part of the title, I may also make a post soon that just shows a few of the major keynotes that led up to where the project is now for posterity's sake.

View all 10 project logs

Enjoy this project?



ap0l0 wrote 04/28/2024 at 16:44 point

impressive work! I would love to do this but using an eink display but seems quite expensive

  Are you sure? yes | no

Nick wrote 04/30/2024 at 05:25 point


An eink display is a great idea, but unfortunately, they do seem very costly.

Even still, I'll likely look into the feasibility of it at some point.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates