Another single-switch circuit board

mtl

25 Aug 2015, 01:33

Melvang came up with the original idea for the Enabler, a single-switch PCB that supports Cherry MX and Alps switches. The idea was...
Melvang wrote: ...for people who want a custom layout but:
  1. Don't want to pay for a single PCB or 3 from OshPark
  2. Don't want to or don't have the ability to solder the rows and columns directly to the pins of the switches
  3. Want to have a more secure method for back lighting
  4. Want to try something a little bit different
MOZ designed the PCB and last year a group buy was run.

Hand wiring a keyboard matrix can be a meticulous process, can result in fragile connections between keys, and shorts in the matrix. To help improve the process, I wanted to take another crack at a single-switch PCB that offers the following benefits:
  1. Ability to connect the matrix using bare (non-insulated) wire. Creating hundreds of short jumper wires is a huge pain, and a PCB should be able to overcome this by eliminating the need for connection wires to overlap.
  2. Ability to mount the PCBs to the switch plate for structural reinforcement. Key cap swaps and switch modifications carry the risk of pulling the entire key switch away from the plate, possibly breaking matrix connections in the process. Mounting the PCB should prevent this.
  3. Support for through-hole components (LED resistor and n-key rollover diode), in case hand soldering SMD components is not your thing.
The above items do not come for free, however. Unlike the Enabler, the current design only supports Cherry MX switches (no Alps) (Alps support added! See updated renders below.), and the overall dimensions are larger than an MX switch.

I've ordered some prototypes from OSH Park and will test them out before looking into larger quantities. Here is the current original design (updated design posted later in the thread):

PCB renders (latest):
1u:
amoeba-1u.png
amoeba-1u.png (111.67 KiB) Viewed 63839 times
2u:
amoeba-2u.png
amoeba-2u.png (139.76 KiB) Viewed 63839 times
PCB renders (original):
Spoiler:
Front:
top.png
top.png (161.58 KiB) Viewed 64524 times
Back:
bottom.png
bottom.png (160.54 KiB) Viewed 64524 times
Note: SC = Switch column, SR = Switch row, LC = LED column, LR = LED row. The bottom of the PCB has extra SC and LC pads to make column wiring easier for staggered layouts.

Schematics:
Spoiler:
Board:
amoeba-schematic.png
amoeba-schematic.png (30.57 KiB) Viewed 64524 times
Key:
key-schematic.png
key-schematic.png (28.27 KiB) Viewed 64524 times
Circuit design:
Spoiler:
Front:
top-copper.png
top-copper.png (70.89 KiB) Viewed 64524 times
Back:
bottom-copper.png
bottom-copper.png (72.44 KiB) Viewed 64524 times
The design files are on github, and can be made available on OSH Park (I haven't shared the project yet because I'd like to validate the design first.). I'll be sure to keep this thread updated with progress after the prototypes come in. :)

Lastly, I wanted to thank Melvang and MOZ for their encouragement with this project and the original inspiration. Thanks, guys!
Last edited by mtl on 23 Nov 2015, 05:20, edited 7 times in total.

User avatar
Eszett

25 Aug 2015, 02:39

Maybe I don't quite get it, but I have to wire all of those single switch PCBs together, right? So this is the same amount work anyways, no matter if I use those single unit PCBs or not.

Engicoder

25 Aug 2015, 03:40

Yes, but this allows you to solder on diodes for the matrix and resistors and leds for back lighting to a pcb rather than having to solder them to the switch pins directly. It reduces the hand wiring to just interconnect. It truly simplifies the process.

User avatar
Eszett

25 Aug 2015, 04:27

Alright, if you plan to use LEDs, then these PCBs are a help, I understand.

mtl

26 Aug 2015, 04:43

Eszett wrote: Maybe I don't quite get it, but I have to wire all of those single switch PCBs together, right? So this is the same amount work anyways, no matter if I use those single unit PCBs or not.
The main reason for this PCB is to make the task of hand wiring a matrix much, much easier. Stripping wire to connect all the key switches is tedious. This PCB is designed to let you use bare wire.


As a bonus, it can allow for more robust solder connections than direct wiring, and can also be mounted to the switch plate to prevent switches from being yanked out.

It's a step between direct wiring and having a full-blown custom PCB. The latter of course requiring PCB design expertise and adds complexity.

User avatar
flabbergast

26 Aug 2015, 10:35

Yea, I quite like the idea. It will certainly make wiring weird matrices (e.g. if you want something like 104 keys and need to save on microcontroller pins, so wiring 10x11 instead of the natural 6x21).

User avatar
pyrelink

27 Aug 2015, 14:35

I am interested to see how these turn out. Alps compatability is a big one for me. I have a TKL set worth of the Enabler PCBs, but there is already an abundance of Cherry PCBs out there and I don't really care much for Cherry. Alps Enablers would be really useful!

mtl

28 Aug 2015, 04:36

pyrelink wrote: Alps compatability is a big one for me. I have a TKL set worth of the Enabler PCBs, but there is already an abundance of Cherry PCBs out there and I don't really care much for Cherry. Alps Enablers would be really useful!
I've taken a crack at adding Alps support. :) It's a little iffy because OSH Park doesn't officially support oval drill holes ("slots"). We'll have to see how they come out. (Update: OSH Park says they look good and shouldn't be a problem.) I don't have any Alps key switches to test with, however. The spec was easy enough to follow, so hopefully there won't be any issues!
front.render.png
front.render.png (163.91 KiB) Viewed 64298 times
back.render.png
back.render.png (162.86 KiB) Viewed 64298 times

mtl

13 Sep 2015, 22:30

Prototypes are in! Actually I've had 'em for a while but have been super busy. Only had a small run of 6 made, but you can start to see how they would wire together as a matrix:
amoeba-2.jpeg
amoeba-2.jpeg (156.3 KiB) Viewed 64212 times
amoeba-1.jpeg
amoeba-1.jpeg (398.39 KiB) Viewed 64212 times
Note you only need one set of connecting wires for the switch matrix. The double wires going between switches form both the switch and LED matrices.

I've made a couple of improvements for v1.2.1:
  1. An extra SC (switch column) pad at the top left where the version number currently is. This will make wiring non-staggered layouts easier.
  2. The lower-left SC pad was left unconnected in the circuit design and has been fixed. :)
Also, I have some 3mm length M2 spacers purchased on eBay.
Image

These are a good fit for between the PCB and plate. The Phantom plate in the pictures is just being used for testing, but ultimately I'm thinking to have a plate made with holes between the switches for mounting these PCBs, and the spacers will help ensure the switches stay put. I also ordered some brass stand-offs for the same purpose, but they haven't arrived yet from China.
Spoiler:
Image

joey

14 Sep 2015, 00:26

They're so cute!

Are there any good techniques for not having to solder them together? Some little metal clippy things.

mtl

14 Sep 2015, 06:34

Hmm not that I know of. There is a keyboard currently in development I believe that lets you plug in whole switches and LEDs without soldering. So maybe a single key PCB version of that would be a start and then use a system of jumper wires to connect the matrix?

User avatar
t8c

14 Sep 2015, 10:48

This looks really cool. I am definitely in on this! Any thoughts on how to use Alps Lock / MX lock switches using these?

User avatar
Muirium
µ

14 Sep 2015, 14:33

MX Lock is pin compatible with regular MX switches, so that should be no problem. Only the LED location is moved.

mtl

14 Sep 2015, 16:27

It's probably best to produce a variant of the PCB specifically for MX lock switches, if you want LED support.

Enabling support for LEDs on both MX lock and non-lock using the same PCB would, I believe, require the addition of two solder bridge jumpers. There are issues with through-hole diode, because the lock LED uses one of the diode holes. So the jumpers would be used to put the PCB in "lock mode" or non-lock mode, and you would need to use an SMD diode for the lock mode to inhibit ghosting.

I didn't see good information on our wiki regarding Alps lock switches. In what way would they be different, pin-wise?
Last edited by mtl on 14 Sep 2015, 16:48, edited 1 time in total.

User avatar
HzFaq

14 Sep 2015, 16:33

I managed to bend an LED around and get it to fit inside an MX lock. It took a bit of fiddling, but if you're basically using these to hand-wire a matrix, bending some LED legs probably isn't beyond your capabilities...

http://deskthority.net/f-o-r-s-a-l-e-f5 ... ml#p222882

mtl

15 Sep 2015, 22:37

It seems like the base PCB is nearing completion. I'll probably do one more small order to verify the final design. Meanwhile, I've shared the design on OSH Park, and the latest kicad files are on github. I'm planning to make a variant PCB for switches that require stabilizers, and maybe the MX lock variant.

Here's the current design (v1.2.1), now with square pads for the LED matrix:
front-1.2.1.s.png
front-1.2.1.s.png (84.76 KiB) Viewed 64110 times
back-1.2.1.s.png
back-1.2.1.s.png (84.02 KiB) Viewed 64110 times
Not sure if anyone noticed, but the top-left wire was connected wrong in the above prototype pictures. :) Differently-shaped pads for each matrix should help prevent that mistake!

Also, the brass spacers arrived. Here are comparison shots between the brass and nylon:
spacer-brass.jpeg
spacer-brass.jpeg (101.83 KiB) Viewed 64110 times
spacer-nylon.jpeg
spacer-nylon.jpeg (67.28 KiB) Viewed 64110 times
Assuming a plate thickness of 1.5 mm, there is a gap of about 3.5 mm between the PCB and plate. The brass stand-offs are 3 mm exactly, but with a washer come out to about 3.4 mm and are a good fit. The nylon spacers are around 3.3 mm. The brass are heavier, but they're threaded and therefore won't move around. The nylon spacers do not fit the M2 screws tightly, so there is a chance they could rattle a little bit. So you have your pros and cons. ;)

mtl

18 Sep 2015, 06:24

Added updated renders to the first post, including a possible wide version to support Cherry stabilizers (and move the mount points further out to support Costar stabilizers).

Does anything need to be done special for Alps stabilizers? I think the wiki said some Alps boards use Cherry stabilizers. In any case, I don't think I have any Cherry stabs to test with.

If anyone has Alps switches and Cherry stabs and is willing to test the PCBs for fit, please let me know!

User avatar
t8c

18 Sep 2015, 10:57

The problem with Alps boards is that there are so many variants of stabilizers.

Apple uses one type on the standard keyboard and extended keyboard for. A circular hole is also required for the 6.5u space bar.

https://www.dropbox.com/sh/2vuxcgo8rm3i ... 2.dwg?dl=0
From jasonm23 on github.

In the following GH post are the matias stabilizers.
https://geekhack.org/index.php?topic=73 ... msg1866186

User avatar
flabbergast

18 Sep 2015, 11:13

t8c wrote: The problem with Alps boards is that there are so many variants of stabilizers.

Apple uses one type on the standard keyboard and extended keyboard for. A circular hole is also required for the 6.5u space bar.
Aw man. I'm new to the Alps game. I am slowly planning to a 60% Alps board with AEKII keycaps, I've got original keycap inserts and wires, but not the plate inserts. How does this restrict the plate layout and plate inserts?

User avatar
t8c

18 Sep 2015, 12:38

flabbergast wrote:
t8c wrote: The problem with Alps boards is that there are so many variants of stabilizers.

Apple uses one type on the standard keyboard and extended keyboard for. A circular hole is also required for the 6.5u space bar.
Aw man. I'm new to the Alps game. I am slowly planning to a 60% Alps board with AEKII keycaps, I've got original keycap inserts and wires, but not the plate inserts. How does this restrict the plate layout and plate inserts?
This GH thread will probably give you a clearer picture -> https://geekhack.org/index.php?topic=75071.0

mtl

25 Nov 2015, 14:00

Here are some pictures of the latest batch. I got bored designing an actual keyboard for these so have spent too much time tweaking the PCB design in KiCad. :lol:

There is a prototype version of the 2u board, though I need to find some Cherry PCB-mount stabilizers to test the fit. Also, I've widened the PCB-mount holes by 0.1 mm to accommodate Zealio switches. You can see OshPark is challenged by the angled slot for the Alps/Cherry shared hole. It fits a Cherry switch fine but I don't have an Alps on-hand to test it.

The OP has been updated with new renders showing some other minor improvements, such as arrow-shaped solder pads for the row/column pins and tighter solder masks around the graphics.
image.jpeg
image.jpeg (430.7 KiB) Viewed 63871 times
image.jpeg
image.jpeg (145.33 KiB) Viewed 63871 times
image.jpeg
image.jpeg (151.65 KiB) Viewed 63871 times
image.jpeg
image.jpeg (239.22 KiB) Viewed 63871 times
image.jpeg
image.jpeg (190.78 KiB) Viewed 63871 times
image.jpeg
image.jpeg (202.91 KiB) Viewed 63871 times

User avatar
ramnes
ПБТ НАВСЕГДА

25 Nov 2015, 14:08

Looks awesome!

pcaro

25 Nov 2015, 14:31

mtl wrote: Here are some pictures of the latest batch.
Great project!

mtl, Have you pictures of a mounted "puzzle" keyboard? I wish to see conections between items, etc

pcaro

25 Nov 2015, 16:18


User avatar
BillDee

18 Dec 2015, 12:36

This is cool.
But why are there small square boards and larger rectangular boards?

What about the matrix that the switches fit in to?

Is there a "generic" version of those, too, or what?
Something you can use to put together to make whatever
keyboard you want to make?

I'm always thinking of my "Programmer's (Super) Keyboard".

http://deskthority.net/keyboards-f2/a-p ... t9879.html

And we have also been talking about a "keyboard perfboard", too.

http://deskthority.net/keyboards-f2/per ... 11403.html

mtl

05 Jan 2016, 02:46

pcaro wrote:I wish to see conections between items, etc
...
Sorry I cant see it in http://deskthority.net/workshop-f7/anot ... ml#p253525
Do you mean the connections between components on the PCB? Does this help?
instructions.png
instructions.png (252.35 KiB) Viewed 63628 times
BillDee wrote: But why are there small square boards and larger rectangular boards?
The larger rectangular (2u) boards are to support Cherry plate-mount stabilizers. If anyone needs them, it wouldn't be difficult to create longer versions for space bars of various widths.
BillDee wrote: What about the matrix that the switches fit in to?

Is there a "generic" version of those, too, or what?
Something you can use to put together to make whatever
keyboard you want to make?

I'm always thinking of my "Programmer's (Super) Keyboard".

http://deskthority.net/keyboards-f2/a-p ... t9879.html

And we have also been talking about a "keyboard perfboard", too.

http://deskthority.net/keyboards-f2/per ... 11403.html
The perfboard is a cool idea. I don't have anything like it planned to plug these modules into, but I think it could be made to work. You could also solder pins to these PCBs and plug them into an underlying board with sockets, and possibly make a keyboard that supports reconfigurable switch layouts. There are lots of possibilities!
2u-back-angle.jpg
2u-back-angle.jpg (219.91 KiB) Viewed 63628 times
This is probably the final design (sorry for the bad lighting), unless anybody points out something that needs to change. It's mostly aesthetic improvements over the last prototype, including arrow-shaped pads to make the matrix connections really obvious and tighter masks around the copper graphics. The version number has been bumped to 1.5, latest project files pushed to github and design shared on OSH Park. :)

pcaro

05 Jan 2016, 12:50

Thanks @mtl for the response.
You could also solder pins to these PCBs and plug them into an underlying board with sockets, and possibly make a keyboard that supports reconfigurable switch layouts.
This is a great idea!!

User avatar
BillDee

05 Jan 2016, 13:33

pcaro wrote: Thanks @mtl for the response.
You could also solder pins to these PCBs and plug them into an underlying board with sockets, and possibly make a keyboard that supports reconfigurable switch layouts.
This is a great idea!!
Maybe you could include holes for pins so that they can be aligned with .1" holes.

Then they could be used with perf boards. (and also proto boards?)

mtl

10 Jan 2016, 22:06

BillDee wrote: Maybe you could include holes for pins so that they can be aligned with .1" holes.

Then they could be used with perf boards. (and also proto boards?)
Yes, it can be done. The pins on the bottom half are already 0.1" spaced. The SR, SC and LC pins on the top will have to be rearranged slightly. A couple notes:
  • A perfboard with uniform 0.1" spacing would require keys to be offset by 0.8" (20.32 mm), which is slightly wider than the typical Cherry key spacing, about 0.75" or 19 mm.
  • The SR pins start to get close to the screw cutouts. I don't think it's too bad, but would probably motivate centering the cutouts between SR and LR pins, instead of keeping it aligned to the center of the switch where the force is directed.

User avatar
flabbergast

25 Feb 2016, 12:11

Just to report that I've used your amoebas for a CM switch tester. They're really great for doing things like this, it simplified the work, and more importantly the mess of wires, enormously!
Image
Image
Some more photos

Post Reply

Return to “Workshop”