Tuesday, July 16, 2019


Tiniest keyboard

Recently received my Tomu from crowdsupply. The Tomu is an opensource hardware/software project by Sutajio Ko-Usagi. The entire circuit board fits inside the USB connector. The only part that sticks out are the two touch sensitive contacts and a pair of LEDs.

The are several different firmware examples including a U2F security key. There is sample code that emulates a HID keyboard.

The Tomu comes with a clear plastic housing. The board is so thin that it would not stay securely in a USB port without the case.

The bottom of the board has all the circuitry. There isn't much more than the ARM chip and a few resistors/capacitors. There is one red and one green LED.

Next to a U2F Zero.

Very little of it sticks out of the port.

There is also the Fomu, which is a FPGA development board the same size as the Tomu.

The Somu is a Tomu size FIDO2 key from the maker of the U2F Zero, and Solokey.

Thursday, July 11, 2019

2 iota

Fixed the iota PCB

Finally got around to fixing and testing the 16mm iota pcb. More information can be found in the original post.

Gerber files on git. Firmware on git.

Gateron PCB mount switches.

M2 spacers and a second PCB used as a bottom.

Diodes are installed inside the switches.

Used some keyboard stickers to relabel the randoms keycaps I cut down.


4 way switch orientation with multiple controllers

The Polyandry can mount switches in any orientation. It also has a pinout that can work with several different micro controllers.

3x4 keypad. There are no diodes. Each switch is connected to it's own data pin. Between the many controllers there was not a common pin location for Ground, so an additional data pin is used as a ground pin. The pins used for the switches are marked on the board. The matrix is logically 1 row x 12 columns.

For each switch footprint the diagonally opposite pads are connected together. Each adjacent pair of pads are the two unique electrical connections for each switch.

To mount the controller upside down the PCB can be flipped over. Most of the controllers have a built in Reset button that would be inaccessible if mounted upside down.

The switch footprint allows the switches to be inserted in any direction. The top plate also has cut outs for switch top removal with the switch in any orientation.

Bottom of the plate with switches inserted.

You can see the pins aligned with the different pairs of PCB pads.

Some of the controllers that should work with this PCB:
  • Adafruit ItsyBitsy ATmega32U4
  • Adafruit ItsyBitsy M0
  • Adafruit ItsyBitsy M4
  • PJRC Teensy 3.5/3.6
  • PJRC Teensy 2.0
  • PJRC Teensy LC
  • PJRC Teensy 3.2
  • Pro Micro
The pin definition is different for each controller, only the physical locations are the same. High res PDF of chart here.

4 different processors tested so far. Adafruit ItsyBitsy ATmega32U4, PJRC Teensy 3.5, Pro Micro, Teensy 2.0. I made Arduino sketches for each on git.

Side views. M2 spacers and screws. Can be assembled without a plate if PCB mount switches are used.

Several revisions of the PCB were made. The first version could only have the switch in one orientation. The second has holes that are too small for some switches. The final has the large oval pads that fit any MX style switch.

The second outer row of pins act as a breakout board for connecting to the other unused pins.

The bottom of plate, the other side is blank.

All of the PCB's are under 100mm square. Very inexpensive to have made. Gerber files are on git.

Monday, June 3, 2019


5x6 Split Keyboard

Made a split split keyboard. Each half is made of two identical PCBs. Each PCB is under 100mm, very cheap to have made.

Powered by two Pro Micros, just like my other split keyboards.

TMK firmware and Gerber files on git.

Assembled with a top plate and bottom. Plate mount box switches. TRRS cable connecting the two halves.
The individual PCB. Two of these are connected with solder bridges to create one side of the split keyboard. Shaped to keep the individual PCB size under 100mm x 100mm. Could have done a simpler rectangular 3x6, like the 4x4 PCBs, but this shape is much stronger when assembled.

Side view of the assembled boards. M2 standoffs and screws. There are holes in the plate to access the screw heads.

Left and right halves. They are mirror images of each other. 1N4148 diodes installed. You can see the solder bridges.

Bottom view of the two halves. The TRRS jack is the same as on the foobar. The left half (right in the picture) has the Pro Micro mounted with the component side facing the PCB. The right half (left in picture) has the Pro Micro mounted with the component side facing up.
Bottom plates. The matte black finish really shows scratches.

Close up of the bottom of the right hand side. Peel-a-way sockets for the Pro Micro. 5.2mm surface mount switch connected to RESET.

Switches installed into plate before soldering. The plates are also mirrored for left/right halves. Otherwise the holes won't line up with the screws.

One half assembled. 

An older revision of the board with a different TRRS jack. The jack turned out to be a modified non-standard type so had to be changed back to the original Sparkfun TRRS jack.

The first version of the board. It did not have the 180 degree double switch footprint so half the board would have the switches mounted upside down.

Wednesday, May 1, 2019

Strawberry unquadquad

unquadquad with jade box switches

I made a small 4x4 plate to use plate mount switches with the unquadquad. My first unquadquad used PCB mount switches without a plate.

The plates have holes to access the screws that mount the PCB to the base. The holes are large enough for most screw heads to fit through.

There are 9 of the 4x4 plates to cover the entire 12x12 board.

The individual 4x4 plate has notches for switch top removal (for Cherry and Gateron switches.) The box switches are not compatible with the notches.

Gerber files on git.

Tuesday, April 23, 2019


A 9 key macropad

Powered by a Pro Micro and can fit any of the various different sized variations of Pro Micro.
Each switch is connected to it's own data pin and ground. There is no need for diodes, as each key has a dedicated data pin there is no possibility of ghosting.

The pinout is:
     F4, F5, F6
     F7, B1, B3
     B2, B6, B5

In Arduino the pin numbers are:
     21, 20, 19
     18, 15, 14
     16, 10, 9
The board can be flipped so that the Pro Micro can be mounted right side up, or upside down.

Gerber files on Git. There is also a json file for kbfirmware.com.

Assembled board with some left over Stealth G20 keycaps.

Low profile Peel-A-Way sockets. There is a place for a 5.2mm surface mount tactile switch connected to the RESET pin.

A standard Pro Micro will fit on the two inner rows of pins. 

The larger Pro Micro with the Mini USB connector fits on the outer rows of pins.

The odd ball Pro Micro is half way between the regular and large Pro Micros. It will fit on an inner and outer row.

PCB bottom.

PCB plate, PCB, and bottom assembled with M2 Spacers and screws.

Sunday, April 14, 2019

Mother of the Sea

Happy birthday Kathleen Mary Drew-Baker

I named one of my modular keyboards "nori". I did some googling and found a fascinating story. The modern Japanese nori industry venerates a British scientist for her discovery about the life cycle of a specific algae. The Japanese applied this knowledge to greatly improve the farming of algae that becomes nori.

Having eaten nori in some form or another most of my life, this story surprised me.

If you are in the UK, the BBC broadcast a program about the relationship the Japanese have with her.

Ars Technica published an article about "How an unpaid UK researcher saved the Japanese seaweed industry".

Musubi with green soldermask 'nori'.

Wednesday, April 10, 2019

Cheap Green Arduino Micro and Pro Micro clones

Back in stock on Aliexpress

I bought these before but they stopped showing up on Aliexpress. Both are now back in stock.

The Pro Micro clone is not an exact copy of the Sparkfun Pro Micro. It will not work properly in many split keyboards.

The green Arduino Micro clone is also different than the genuine Arduino Micro. In many ways it is better since it is thinner and has components only on the top side. It also has a Micro USB connector instead of Mini USB.

You can find the green Pro Micro by searching for BTE17-05.

The green Arduino Micro clone is listed under CNT-013.

They do not come with any headers. Just the board by itself.

I bought several.

Thursday, April 4, 2019

GNAP 4x4 in a GNAP case

Assembled a GNAP with 4x4 PCB's in with GNAP PCB case

Everything fits as with the normal GNAP! PCB.

Blue solder mask GNAP top plate. Clicky box switches.

GNAP 4x4 PCB's with Arduino Micro clone.

Bottom plate.

Held together with M2 spacers and standoffs.

Wednesday, March 20, 2019

Color PCBs at no additional cost

JLCPCB.com no longer charging for different color solder mask

No longer stuck with plain green PCBs when going cheap.

Red, blue, yellow, white and black at no additional cost. It seems also that additional sub 100mm PCBs are $4 instead of $5, after the first one at $2.

Wednesday, March 6, 2019

4x4 ItsyBitsy

4x4 modular powered by an Adafruit ItsyBitsy

First PCB I have designed to use the Adafruit ItsyBitsy. This is the ATmega32u4 5V 16MHz version of the ItsyBitsy. They also have a 8MHz version as well as ARM M0 and M4 based ItsyBitsy, the firmware I have is written for the 16MHz ATmega32u4 version.

The matrix is the same as the previous 4x4 PCBs, but this time it is staggered. It is as close an approximation to a GNAP as I could make that would be modular, using all 1u keys.

The firmware is the same as for the 4x4, only the pin mappings have been changed. Gerber files on git.

The individual PCB's are under 100mm square and are cheap to have produced.

The assembled board using 3 PCB's. The center two switches can be replaced with a single switch and a 2U Cherry PCB mount stabilizer.

The bare board. You can see the solder bridges that hold the boards together. Also the 2U stabilizer for the space bar.

The ItsyBitsy is mounted on the left most board. The Mini USB connector can be placed on any of the boards, with the pigtail connecting it to the ItsyBitsy.

Close up of the ItsyBitsy. I am only using the pins along the edges of the board. The ItsyBitsy has the same bootloader as a ProMicro and you flash it the same way with AVRDUDE. It does have a tiny reset button which makes things a little easier.

The pinout.

I used another set of 3 PCBs solder together as the base of the keyboard.

M2 spacers and screws hold the top and bottom together.

It is possible to connect 4 boards together. I have tested the circuitry, but did not build it.