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.