Monday, April 30, 2018


5x5 Modular Keyboard

Up to three of these 5x5 matrices can be connected together, controlled by a single Arduino Micro clone. This works in the same way as the 4x4x4x4x4.

5x5, 5x10 and 5x15 matrices can be built with these boards.The solder pads on the edges of the boards make the electrical connections for the matrix. They can be soldered with large solder bridges, or headers can be installed and shunts used to connect the boards. Examples of how this works can be seen in the 4x4x4x4x4 post.

TMK firmware on git. Gerbers also on Git.

Three 5x5 boards as a 60% 5x15. Recycled Outemu switches from a cheap board.

Thick 1/8" 5052 aluminum plate purchased off eBay. 11.25x3.75". Each PCB is exactly 3.75" square.

Bottom of the assembled board. The solder bridges are on the other side of the PCB. Green Arduino Micro clone socketed on the first PCB.

M2 spacers and screws.

Top plate has holes large enough for most screw heads to fit through. PCB can be assembled without the plate if PCB mount switches are used.

Monday, April 23, 2018

EOTW Oreo Planck

End Of The World

April 23, 2018, apparently. Probably the only way this could ever be an end game keyboard.

The EOTW Planck PCB case from with a White Rev 4 PCB. Invyr Panda linear switches. PCB mount Cherry stabilizer.

The EOTW Oreo Planck. The matte black PCB soldermask contrasts with the beige Invyr Panda switches. The other side of the top plate is gold ENIG finish, it can be used either side up. There is only one plate style, if you want a full 48 key grid layout there will be a small gap between the center keys where the space bar would have been.

The bottom of the EOTW PCB. ENIG finish made into a graphic design. I was hoping the text in the middle was on a removable sticker, but it is a permanent part of the PCB. Because of the cutout for the USB and the RESET button hole, the bottom can not be reversed.

The flimsy plastic inserts that came with the case were designed to clip into the Rev 5 PCB mount holes. The white Rev 4 PCB has mounting holes in the same places but they are smaller and fit M2 screws perfectly. I used M2 threaded brass spacers and M3 plastic spacers (the M2 spacers fit in the M3 plastic spacers). To be able to tighten the screws from both sides the plate needs to be removed. The sockets on the Invyr Panda allows for the switches with the top plate to be removed to access the screws.

With the solid brass spacers it is much sturdier, but there are no supports at the corners and it flexes badly. The Rev 6 PCB is supposed to have something different than the plastic inserts to hold the plates together.

Wednesday, April 18, 2018

GNAP! Underglow

GNAP! with WS2812B strip

Added a WS2812B strip using the connections on the unused second Pro Micro pads. The data line for the WS2812B strip is D3. Normally the second Pro Micro (which would have powered the in switch LEDs) is connected to the main Pro Micro through D2 and D3, the serial port.

The modified firmware with RGB is on git.

WS2812B strip added to the silent GNAP!.

Side view. White PCB/plates would reflect the light better.

The self adhesive WS2812B strip is stuck to the bottom plate. 30awg wire is used to connect it to the PCB.

Closeup of the connections to the pads for the second Pro Micro. The yellow wire is connected to D3. The pad to the left of it is D2.

Tuesday, April 17, 2018

Dilly Case

PCB case for the Dilly

I made a PCB sandwich case for the Dilly. The low profile Kailh Choc switches are plate mountable, unlike the Cherry ML which are PCB mount only.

The cutouts for the switches are 14mm squares, just like Cherry MX style switches.

I used one of the rev 1.0 PCBs that are sold at a discount on crap sale. They come in a pair.

Files on git.

I didn't have enough of the blue switches so used Jade switches for the middle row.  The contrast in the louder clicks is interesting.

Bottom plate. The other side is blank. M2 spacers and screws hold the two plates together.

There is a very tiny amount of space between the top plate and the PCB. About 0.5mm. All components have to be placed on the bottom of the PCB. All the leads have to be trimmed as short as possible. I trimmed the pins on the socket flush with the PCB before soldering it on.

I used a standard height socket as the low profile socket "pins" are hollow and I can't trim them shorter without damaging them.

Everything fits. The Pro Micro is now recessed and protected by the plates. On the bare Dilly the Pro Micro sticks out the top about 2.5mm.

Monday, April 16, 2018


60% PCB Sandwich

Working on a simple ANSI only 60% PCB. This is powered by a Pro Micro and has LED backlighting. There is one available data pin that can be used for a WS2812B RGB strip.

Everything works, but I am working on a revision to move some components so they are not touching the PCB mount stabilizers.

Revised version here.

Wednesday, April 11, 2018

4x4x4x4x4 Shunts

Modular swappable

Found some cheap 6 position shunt jumpers at These are a fraction of the cost of new. Used these on a set of 4x4x4x4x4 PCBs. Only needed a 4 position jumper, but these fit fine and are really cheap.

The four assembled PCBs separated.

Bottom view of the 4 PCBs. Jumpers are installed on one side of each PCB. The header pins were the ones that came with Pro Micro clones. I snapped each 12 position pin into three 4 pin sections.

Close up of the pins and jumpers.

The 6 position shunt jumpers.

Side view of the installed jumpers.

All 4 PCBs connected.

Side view. The jumpers make good electrical connections but do not physically hold the pieces together well. A bottom plate is necessary.

Monday, April 9, 2018

Adafruit ItsyBitsy

Another AtMega32U4 breakout board

Adafruit recently released the ItsyBitsy. It comes in two versions 5V 16MHz and 3V 8MHz.

It looks similar to the Pro Micro but has more data pins, 23 total usable (instead of 18). Some are along the bottom edge. ItsyBitsy is longer with 14 pins on each side instead of 12. It sort of looks like a Teensy LC. It even has a reset button.

It has the same Caterina type bootloader, so flashing it is the same as a Pro Micro with Avrdude.

The price is not bad at under $10 each. The build quality is much better. Gold ENIG finish. The micro USB connector's feet go into the PCB, should be harder to break off.

It comes with some header pins.  The reset button is at the bottom.

The bottom is completely flat.

The pinout with the AtMega32U4 pin names. An explanation of the other pins can be found here.

According to the schematic of the 5V version, it should also work with the VBUS power detection that the Let's Split firmware uses to determine which half is plugged into the USB port.

Lego PCB

Lego holes

I have been experimenting with adding Lego compatible holes to the PCBs. The size is critical. Since the fiberglass is rigid and has no flex, the ABS Lego pieces either fit or they don't. There is no squeezing them in.

4.9mm holes are is just a tiny bit loose. 4.8mm is too tight. You can take a small round file and slowly enlarge the holes for a perfect fit, so starting off too small may be better than too large.

The final size probably varies due to the manufacturer's tolerances. What might be perfect on one order may be too big/smaller the next time.

I don't have a lot of Lego blocks to experiment with. This Gherkin base plate has 4.9mm holes on 8mm spacing. The blocks hold in well. Some tighter than others.

Closeup of the holes.

Another experiment. This one with 4.8mm holes. The blocks will not fit without some filing to enlarge the holes.

Tuesday, April 3, 2018

GNAP 4x4

Modular GNAP! keyboard

This has the same matrix and uses the same firmware as the 4x4x4x4x4. The GNAP! was split into 3 equal sized 4x4 matrices. The board edges were routed to fit together and then solder bridges hold the pieces together and create the electrical connections.

Each individual PCB is under 100mm square. has a $5 special on sub 100mm PCBs.

Gerber files on git.

The 3 PCBs. Left, Middle and Right (Right, Middle and Left since they are upside down). The pairs of boards fit together very precisely. The relative position of the components to the board outline is a tiny bit off, not enough to be noticeable without measuring.

The assembled board with keycaps. It looks and performs like a regular GNAP!.

M2 spacers and screws secure the PCBs to a 1/8th inch thick 3 x 9.375" piece of 5052 aluminum. The aluminum was purchased on eBay. There are several sellers that will custom cut for a reasonable price.

A pigtail is used to connect the Arduino Micro clone to the Mini USB connector. The holes for each PCB are spaced differently, the bottom will only attach in one orientation. An assembled set of PCBs were used as a template to drill the holes.

Side view of the sandwich construction. There is no plate, so PCB mount switches are required.

The 2U keycap is supported by a Cherry PCB mount stabilizer.

The bottom of the assembled PCBs. It is possible to add an additional 4x4 PCB to either the left or right side, making it a full 4x16 matrix. If a 4x4 PCB is added to the left side the Arduino Micro clone will need to be moved to the left most board.

Closeup of the pigtail. It is a regular cheap Micro USB cable cut up. The texture on the bottom of the solder bridges is from the blue painters tape I used to hold the pieces in place during soldering.

The top of the assembled PCBs. You can see the solder bridges holding the boards together. The interlocking board shapes and offset rows of solder bridges creates a very rigid board once assembled.

Monday, April 2, 2018

Spring Cleaning

Cleaned the daily driver

Gnap! with Nantucket Selectric SA profile keycaps. This is my daily driver at work. Gave it a cleaning. The keycaps were removed and soaked with a denture tablet. One LED had died so I replaced that. Good as new.