Close
0%
0%

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.

Chassis v85.step

step - 1.43 MB - 03/06/2025 at 10:46

Download

custom.sensorpanel

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

Download

  • Update

    Nick04/05/2025 at 05:31 0 comments

    An update to summarize a number of changes made in the last few months.

    It would take too long to construct some sort of timeline documenting each change, and there's probably no interest in that anyway.

    Instead, I'll just include a list of features previous iterations didn't have, and add a few photos to the gallery.


    Firstly, I incorporated the spring catches I mentioned in the last log.
    These work, in the sense that they provide a tactile feedback when slotting modules, and prevent them from falling off. 

    However... after going to the effort of printing a new chassis and the spring catch pods themselves, it turns out devices like the USB VFD and streamdeck (I bought one) need a light tap for the pogo connectors to connect.

    Fairly sure this is because the rails are too loose. I can fix this by just making the tolerances tighter, but that might make slotting modules tedious / too stiff to slide freely.

    In light of this, I'm considering using supplemental magnets. Combined with the magnets in the pogo connectors, it should be strong enough. I'll do the print pausing trick to install them, so they won't shatter from impact.


    Next, small changes to the aesthetic design elements of the chassis. The back face was extruded forward so the HDMI cover doesn't protrude. This gives it a more consistent and proper look


    I also changed how the keyboard trays work. Rather than eliminating them entirely, I made the rails more robust and easier to print, no supports required.

    I did this because I wanted to be able to slot in different keyboards, which necessitates trays; making it possible to adjust the angle of the board slightly as needed.

    I made a tray for my Nullbits Nibble65, which has a USB C socket parallel with the table, unlike my TAB 90M which is at a slight incline.


    I also made changes to how the two halves attach, adding strength and reducing complexity


    That is all for the external components, but the internals have changed too.

    It still uses the amazon USB hubs, but rather than USB A terminal blocks, I purchased some more compact USB A breakout boards. These are much neater and feel more professional, but even so are actually a stopgap solution.

    I am inquiring with PCBWay about having a simple PCB designed and manufactured, which will function as single port USB hubs that can be daisy-chained. They also will use JST sockets instead of USB A sockets, as those are what my internal wiring now uses, and also because USB A connectors are large and have no purpose as an internal connector.


    Lastly, I've made a few modules since my last update.

    A stream deck as mentioned earlier, a touch-screen LCD, and a refreshed design for the wider LCD.


    That's it for now, I'll make another updates if the quote from PCBWay is reasonable.

  • LCD Module, New Rail Design

    Nick08/02/2024 at 07:26 0 comments

    I actually finished the LCD module very soon after the previous log but hadn't gotten around to posting it.

    I'll link a short clip of that in action at the end.


    As I mentioned briefly in the last log, I wanted to design a better rail system.

    I've gone with smooth rails and spring-loaded ball catches that engage with a indent on the module.

    They're made using springs from this multi-size pack and these ball bearings (sold as paint mixing balls, but were cheapest and the right size), inside of a printed capsule that screws closed and drops into the main chassis at the end of the rails.

    The bottom half of the capsule is a separate part from the chassis, since the plastic threads might fail which would mean reprinting that whole side of the chassis. They will probably be held into the chassis with a bit of double sided tape, that way they can be removed and replaced if the thread of any one capsule breaks. Since there is no pulling force on them, tape should be more than strong enough.

    I haven't redesigned the actual chassis to use these yet, but I've printed a proof of concept to confirm it will work, clip at the end.


    When I redesign the chassis to use the new rails, I might also revisit the keyboard tray. It is a bit finicky and frankly over complicated. I now realize that I can probably just use the keyboard itself without a tray, and add something onto the front to stop it sliding back out.

    That solves two problems; the over complicated and fragile tracks the tray slides on, and adds a lip to stop the keyboard lifting out when turned upside down and straining the USB C plug / keyboard port.




  • 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
    • USB DAC/AMP
    • 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.


View all 12 project logs

Enjoy this project?

Share

Discussions

Richard Hogben wrote 4 days ago point

Can you make a module to support badge SAOs :)

  Are you sure? yes | no

Patrick wrote 04/10/2025 at 04:24 point

Awesome work!

Lilygo has some decent prices on e-ink displays when you're ready for those. Waveshare has ok pricing on their smaller units too. Otherwise, the physical architecture isn't too dissimilar to an LED panel.

  Are you sure? yes | no

alan_r_cam wrote 04/10/2025 at 00:22 point

Several keyboard include a rotary knob (volume, video jog control). That's one option.

Personally, I'd prefer a thumb joystick, to emulate a Lenovo Trackpoint (and play games).

Beyond that, audio mixers would ask for linear crossfade slide controls. With a modular backplane, allowing for 2 / 4 / 8+ controls at once. 

  Are you sure? yes | no

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

Thanks! 

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