geekhack Projects > Making Stuff Together!

Muri ONE: Low Profile Wireless TKL

(1/5) > >>

Hi everyone!

So for the past 6 months or so I've been working secretly on a little project of mine to possibly replace my old dinovo edge keyboard.
It looks to me like there's a pretty big void in high-end low profile keyboards which I'd maybe like to fill some day so I thought I'd maybe gather some feedback before committing to any design and getting the parts made - I'm trying to be economic.

Features I'm aiming for:

- Low profile: The current design is for a total thickness of 15mm with keycaps included. (11mm body only).
- All aluminum chassis
- Wireless: I've decided on Nordic's nRF52840 which supports Bluetooth 5.2 (and has a few other tricks up its sleeve as well :))
- USB-C for charging or wired use.
- Capacitive slider: I like the function of rotaries, not so much the look. Controlling volume for a start but I wonder if I can also make it work for doing stuff like controlling sliders inside software light Lightroom or DAWs - not a priority right now though.
- Macro row: Mostly to offset, the extra spacing around the slider on the other side.
- Top mounted plate/PCB: I was initially thinking of just milling out the holes from the top enclosure but now I'm a bit worried about the wireless reception - there isn't enough room inside the case for a proper slot antenna implementation and an external one isn't an option. So the plate would have to be non-metal.

The main questions I'm struggling with now are:

Choosing the appropriate switch system

So far I've been hoping to use Kailh's Choc (v1) switches with their biggest obvious drawback so far being the lack of keycaps. So my idea was to use these caps for the initial prototypes although they're not compatible with the Choc stabilizers - nor can I see any other stabilizers I'd be able to get that work with the switches.

An alternative would be to use their v2 Choc with cherry stems, though that'd probably still require custom molds in the end as I didn't see any with a profile lower than ~6-7mm (I'd really like to stay around ~4).

Choosing the right layout

I'm currently deciding between two layouts:

- A classic TKL
- Or a narrower variant

I'm personally a fan of the latter, having the page-up/down buttons closer and I can't remember the last time I used the arrow keys.
It'd also help on cutting down on the increased width from the slider/macro row (regular TKL case would be ~425mm wide, one row less gives ~406mm).
Curious what other people think.

I'd like to eventually make a matching numpad as well.

Where are things at currently

So I started by writing the firmware last spring. It's custom as ZMK wasn't a thing back then, but I'm still planning on open sourcing it once I'm done.
Core functionality is pretty much fully implemented. I've held off for stuff like LED animations etc. until I have a proper board to test with.

I have a ready PCB design - though obviously I'm holding off on ordering the boards before deciding on the layout. And I'm starting to have second thoughts about the Chocs :(
I'm wrapping up the design of the TKL case, but the more I think about it I think I'd like the narrower layout more.

Help me draw the line and I promise you some nice pictures next week :D

Standard TKL it is.
Unfortunately I made the mistake of using the default 19x19mm switch spacing and eventually I figured I should probably stick with 18x17 which seems to be the standard for Chocs, to better serve people already invested in them.
Besides, over the width of the entire layout, adjusting the spacing saves as much as removing an entire column with the normal spacing.

Anyway, I pretty much wrapped up the design on the case. It ended up being 12mm thick without keycaps, so the total height should be around 16-18mm.
The whole thing is still pretty large, so to keep it visually smaller I went with these 'winglets' on each end to isolate the macro keys/slider area with the added bonus of the keyboard to appear as if it's floating when looked at from the right angle.
Excuse my poor render quality - it must be like 15 years since I tried to render anything... For now I'm not really willing to spend much time on that, it's really just to give a decent overview of how things will look.

Now, I'll have to update my PCB to match the new spacing and hopefully should be on my way to ordering a prototype soon after.

It's been a while since the last update... and in the mean time I went through another three revisions of the PCB until it felt right.
Redoing it in 'choc spacing' was getting pretty hard while trying to avoid routing on the inner layers and when I finally managed it, I decided just don't like the look of the rectangular keycaps.

Anyway, this is it:

Even though it's only my first PCB, having redone it four times allowed me to notice and address a bunch of thing I definitely wouldn't have noticed in my first run.
Yet, perhaps the most important lesson would be to remember this is a prototype and to keep my options open.

And so I've added breakaway tabs for the macro column as well isolated it electrically from the other components, as I will be ordering a few of these anyway and I might want to use one for a different project where that part would be obsolete.
I have two sets of stabilizer holes under the spacebar, one to accommodate for the stock 'awkwardly-sized' Kailh stabilizer that's actually obtainable and the other using the standard 100mm 6.25u spacing for me to experiment with.
The board is using hot-swap sockets which I believe will make working with it much easier/faster for prototyping purposes. While that somewhat restricts the layout options (this one is ANSI) I've made sure my key/rgb matrix can accommodate the additional ISO key if that were to be a possibility.

Unfortunately some things can't be made adjustable :( I'd love to test different positions of the BLE module relative to the case for optimal performance but that can't really be done without manufacturing several PCBs and having some more advanced RF knowledge. So I'm making a bet that it'll work best under the spacebar considering the rest of the case is metal. If it doesn't, I'll see what I can come up with then.

As for the general specs:
- The board is powered by the PAN1780 BLE module (nRF52840, ZMK compatible although ZMK doesn't offer support for any of the additional features just yet, I think).
- Per key RGB provided by two IS31FL3743A chips. The led's are actually mounted on the opposite side of the board as assembly costs aren't actually that much higher, the led's themselves are much cheaper than the larger reverse-mount ones and it frees up TONS of space on the board.
- There's a dedicated CY8CMBR3106S touch controller to take care of the slider which will be on a separate FPC so it can be mounted correctly inside the case.
- ESD protection.

So, hopefully I'll have the thing assembled for the next update and with the basic keyboard functionality working. Then it's time to implement rgb matrix and touch slider support.

PS. To all of you that have been doing it for a while - respect. I must admit it looks way easier than it is. I expected the PCB layout to be a cakewalk considering the PCB size but with all the holes and the staggered layout... It's a nightmare to work with.

King Icewind:
Nice work on your project! Why did you choose the IS31FL3743A over the IS31FL3733? Is this a four layer board? Looking at your vias and traces, I donít think it is. Iíd definitely recommend changing it to a four layer board of it isnít. It will help your trace paths a lot.


--- Quote from: King Icewind on Thu, 24 December 2020, 10:22:56 ---Nice work on your project! Why did you choose the IS31FL3743A over the IS31FL3733? Is this a four layer board? Looking at your vias and traces, I donít think it is. Iíd definitely recommend changing it to a four layer board of it isnít. It will help your trace paths a lot.

--- End quote ---

Thanks! So to answer that:

IS31FL3733 seems to be going out of production and I believe the IS31FL3743 is the recommended replacement for new designs. Other than that, key differences would be it's using a higher scanning frequency which probably is only significant for the largest of these drivers, it allows for configurable matrix size and promises reduced EMI which is nice I guess.

It is in fact a four layer board except all signal/matrix traces are routed on the outside layers. The inner layers... one is solid ground and the other is ground as well as my VBUS and +3.3V power rails. From what I've read it's best not to break up the ground/reference planes with traces too much if you can avoid it hence all signal traces are routed on the outside.
I understand these are all relatively low speed traces other than maybe the USB differential pair so it may matter less but I decided not to take too chances with it as who knows, I might want to get it certified depending on where get it to.


[0] Message Index

[#] Next page

Go to full version