Show HN: A Truly Modular Keyboard (github.com)

186 pointsby NotARoombaa day ago64 comments

nkrisc 3 minutes ago

With such complexity per key, are there other advantages besides the modularity? Are there per key customizations this could enable that regular keyboards couldn’t do in firmware alone?

NotARoomba a day ago

A while back I was frustrated when wanting to buy a keyboard that there were no triangle-shaped keyboards or circle-shaped keyboards. This lack of peculiar keyboard shapes gave me the idea to make a keyboard that could be reconfigurable into any shape my heart desired. I’m still working on the firmware and making more keys but I wanted to share my progress so far. Heres the source if anyone’s interested in how I made it: https://github.com/notaroomba/keybytes

darksim905 6 hours ago

Just a small suggestion but... maybe re-record your demo without giant floodlights on your desk? :(

stavros 4 hours ago

What's wrong with the lights? I like a well-lit video.

luplex 3 hours ago

it completely clips when viewing on firefox (I use Zen btw). Like half the pixels are pure white. Looks fine on chromium.

frangonf 3 hours ago

Not the case in my Zen (macos) looks fine.

jdiff 2 hours ago

Firefox on my machines looks fine.

pjc50 an hour ago

I think that might be a FF problem.

If anything it needs more light to force the camera to turn down the exposure because the LEDs on the keys are bright. Almost all indoor home videos, youtube or zoom, could be improved by more light.

sleepybrett 2 hours ago

at the cost of what per key? Congrats your removed all the efficiency from the system.

pjc50 2 hours ago

People are willing to spend quite a lot on regular old mechanical keyboards.

But yes, just eyeballing that it's going to be hard to get it below $5/key and probably more like $10 for the first run.

pipe01 an hour ago

The key's circuit by itself is probably a few tens of cents, I can't imagine the rest of it being that expensive

broken-kebab an hour ago

But looking at demo, I see it can only be rectangular anyway?

digikata an hour ago

It's a reasonable demo, I could envision variable length wire/flex ribbon spacing segments for different arrangements. Also would be fun for custom buttons for custom panels - big red buttons, buttons w/ guards, etc.

Agentlien 7 hours ago

I like the idea but I could only find an image of two keys. It would be great to see a demo of a full layout. With only two keys it's a very early POC and hardly a keyboard.

Does communication work well and feel snappy with a full set of keys? How is the structural integrity of a full one? Can it be easily moved around? That type of questions could easily make this unusable at scale.

NotARoomba 6 hours ago

I am waiting on some key switches to make more keys (5 in total), but for now I just wanted to show the progress on the mechanical/electrical side. I don’t have enough PCBs for a full set of keys yet, but when the key switches arrive and I assemble the 3 other boards I’ll let you know how it goes :D

Agentlien 5 hours ago

Looking forward to seeing it!

What's the production cost of this per key?

mentalgear 4 hours ago

> Can it be easily moved around?

I would assume you could have a custom support the keys rest on, that itself is split eg in the middle, so you can easily split the whole keyboard and have it stored in a compact way (trading length for depth).

euroderf an hour ago

OT but I'd like to see circuits of this type, on this scale, available for every loco or car (or building or structure) in a model railroad. An interface to DCC. Every car addressable and effects controllable. Much more cheaply than the current SOTA.

wcchoi 7 hours ago

Something similar: https://youtu.be/_u8gV643214

The keys are attached to a board so it can be in any orientation

_paulc 2 hours ago

Neat project, given how cheap the ch32v003 is there are lots of opportunities to do fun distributed things with them (assume you have seen bitluni’s projects [1]) - even if they aren’t really practical!

I didn’t see the ch32 firmware in the repository - the ch32v003 only has 1 i2c peripheral - assume you are bit-banging the others?

[1] https://www.youtube.com/@bitluni

mrheosuper 5 hours ago

The I2C has limit of 127 of different addresses. Also there can be I2C hang, especially when there is that many slaves on the bus.

Maybe using CAN is better.

ehnto 4 hours ago

How small do CAN transceivers get?

childintime 4 hours ago

If the I2C open-collector bus works well enough, the same bus will work fine for CAN. There is no need to comply with the CAN spec.

mrheosuper 4 hours ago

Some MCU can have integrated CAN transceiver

>https://www.nxp.com/products/LPC11C00

dm319 an hour ago

My impression was I2C is quite prone to interference too?

kaipereira 8 hours ago

This is awesome!

How does the rigidity of the keyboard hold up with many keys and what's the cost of the materials at higher order quantity?

NotARoomba 7 hours ago

Thank you!!

It’s really rigid with 2 keys so far but I have yet to test with longer configurations. At a higher order quantity, each key comes out to be around 6 USD but I’m trying to minimize that as much as possible with future revisons!

aveday 3 hours ago

Fantastic work, I'm always excited to new modular input device projects like this.

Are the connectors actually direction-agnostic? Looking at the layout it seems like depending on which side you connect you have a 50% chance of having the pin order reversed, and there don't appear to be any additional switching components correcting for it.

Do you have plans to address this so that any side can connect to any side? Or can they already and I've missed something?

vim-guru 4 hours ago

I like the idea, but ergonomic keyboards are usually not perfectly columnar.

childintime 4 hours ago

Gotcha! Just in time before he scales things up to consider the impact of not having column comms.

mft_ an hour ago

Very good point. I wonder whether the communication would work with rows of connected keys, only joined to other rows at one end? You could then just create simple connection blocks for different row offsets.

9dev 4 hours ago

I'd suggest also adding blank modules without a switch on them for empty space on the keyboard (for example around arrow keys), that would still provide the interconnect to adjacent keys. Cool project.

kvakvs 7 hours ago

Sometimes my keyboards get dropped and lose a keycap or two, but never anything serious. If this is dropped on the floor, my trusty keyboard will turn into a bag of puzzle bits, right in the middle of heated gameplay or a meeting...

NotARoomba 7 hours ago

The magnets are strong enough that most of it should survive lol. I will be doing drop tests to test that theory out soon

tensegrist 3 hours ago

perhaps you could add optional magnetic rails for extra support

or even 3d-printed "grids" of arbitrary shapes, with magnets embedded at the junctions, to interface with the keys' magnets while being separate from them

voidUpdate 3 hours ago

A gridfinity based keyboard? https://en.wikipedia.org/wiki/Gridfinity

pinyen_cheng 2 hours ago

I think maybe the most difficult part will be cost. As far as I know, it will cost more than 5 dollars per item. But if the quality is good enough, I think maybe some gaming user will buy it. Customize layouts is really important for gaming user.

rjh29 25 minutes ago

For a gaming user it would be cheaper to generate a keyboard PCB, plate and case, then manufacture it with JLCPCB and put in your desired switches and keycaps. There are generators online for any custom layout.

IllIIlIlIlIIIIl 8 hours ago

This is a really neat idea for a macro keyboard. If it supported staggered rows and row heights, not to mention structural rigidity it would be good for everyday use too.

NotARoomba 7 hours ago

Thank you! I am currently thinking about adding those in the next revision and it would definitely make it more practical.

O_H_E 4 hours ago

I'm not sure if I have a use case for this but on the technical aspects this is so cool. Those magnetic snaps made me grin!

rebooot 4 hours ago

good idea! the other day was doing a roundup on keyboards to see whats new and got a striking realization, how nobody has ever slapped a nvme slot into on the back/core part of the enclosure to use as external drive since lot of us comute everyday with extra peripherals

pjc50 2 hours ago

NVME might not be the right idea as it's on the wrong end of a USB connection, but you could easily put a USB3-C socket in there.

eviks 8 hours ago

Is there a mouse module? Can you connect in a "staggered" manner rather than in a linear grid?

NotARoomba 7 hours ago

There isn’t a mouse module yet, but I am going to make more modules that include screens, finger print sensors, and I’ll add in a mouse one too :D. Currently there isn’t support for a staggered manner but I am going to work on it for the next revision.

jasonjmcghee 8 hours ago

This is very cool.

It needs spacers / extensions so it can be laid out as desired.

trollbridge 8 hours ago

I’ve wondered when someone would do this (which gets rid of the annoyances of scanning).

The real breakthrough would be reprogrammable key legends in something like e-ink.

SV_BubbleTime 8 hours ago

I looked over the PCB and schematic and it looks well polished. Not a first draft obviously.

I sort of don’t get the 4x I2C busses. I’m probably missing something obvious but it isn’t immediately apparent how the units all have addressing worked out.

NotARoomba 7 hours ago

Thank you!

The 4x I2C busses were mainly there to reduce parasitic capacitance and also allows me to know where each key is physically relative to each other in software. I’m still working on the firmware for it, but currently the plan is for each of the keys to remember its “parent”, the neighbor that is closest to the main board, and forward events repeatedly to the main board.

stavros 4 hours ago

This is cool, but wouldn't it cost more than $2k for a 104-key keyboard? I can't imagine these PCBs having a final price of less than $20 each.

pparanoidd 8 hours ago

Now give them all wheels so they can rearrange themselves on my desk

thenthenthen 5 hours ago

Was looking in the comments for this^

bitwize 3 hours ago

Hook the whole mess into Claude, so that it can punish you for attempting to write the code yourself!

aghuang 8 hours ago

Very cool, would really like one

fitsumbelay 8 hours ago

this is extremely cool. would love to see full board

M95D 5 hours ago

Non-viable product. I would NOT buy this.

- How much does it cost? Sell price, not BoM price. I expect something like $10'000 for a full 104-key layout.

- How heavy would it be?

- Can you lift a 104-key layout from the table without it breaking in 2 (or more) pieces? Can you even lift or move a 40% layout with one hand?

- How do you arrange it in a non-ortholinear layout? If you can't, then anyone can just buy an ordinary ortholinear for $100 and switch layouts in software.

- How does the spacebar key look like? Enter key? Shift? I can't type if those big keys aren't big.

- How do you make spaces between key groups?

- There are a lot of pogo pin connections. It's statistically impossible for all of them to work. Is there any redundancy for those connections? Alternate signal paths with automatic rerouting? Any debugging tools/indicators to find where the bad connections are?

- If you have a MCU in every key, and at that price, I would expect them to have a mini-display in the keycap plus lots of other fancy features.

- How about automatic function assignment for each key based on it's location? Can it do that? If not, then any drop on the floor becomes a half-hour puzzle-solving problem.

tourmalinetaco 4 hours ago

These are great points, however, who said anything about buying a 100% keyboard in this style, or buying anything at all? I didn’t see a sales page, so it’s likely not intended as an off-the-shelf product.

sleepybrett 2 hours ago

sure but even as a diy project it's hilariously stupid.

Jasp3r 2 hours ago

What do you mean? He tested the structural rigidity on 2 keys already and it worked fine

pjc50 2 hours ago

DIY is the right place for eccentric projects.

ehnto 4 hours ago

I think not-a-keyboard is probably the better use case. A modular plug and play, configurable keypad would be pretty useful for sim enthusiasts or various workstation uses. You could solve the "picking up" problem by putting the modules on a baseplate.

sleepybrett 2 hours ago

designing a custom pcb for your own 'weird keyboard layout' and getting them manufactured short run would probably be cheaper and work better.

M95D 14 minutes ago

Not even good for gaming because of the unreliable connections between modules.

Karliss 10 minutes ago

The MCU in each module is probably one of the cheapest parts in that build $0.2-0.25 a piece. It's the mechanical parts which are expensive. The switches+keycaps which you need anyway depending on how nice you want them to be can cost $0.4-1.5 per key. The most expensive part is probably the pogo pins $0.5/per pair x 8 = $4 and magents.