Friday, July 24, 2020

penny pincher

Penny with penny spacers

The Penny is a 4x12 grid layout powered by a Pro Micro. Pennies were used as an alternative to the usual M2 spacers I use to assemble my keyboards. 1.5mm x 15mm slots were added to the perimeter and two in the middle.

Penny's are 19mm diameter and ~1.5mm thick. They fit a bit loose in the slots. Maybe mint condition penny's would be tighter.

18 cents installed in the bottom of the PCB. The Pro Micro is socketed and there is a place for a reset switch. The diodes are installed on the top side of the board. Cathodes to the square pad.

A second PCB is placed on top the main PCB. I have also used dimes and they work as well. You could also use washers in the right size. 17-19mm in diameter.

Rubber bands hold the two PCB together. These are #64 rubber bands that are 3.5" x 1/4". They aren't very tight. There are also #61 and #62 rubber bands that are 2" and 2.5" long. Those should hold more tightly.

On a flat surface it feels quite solid. PCB mount switches were used. This would also work with the 4x4 switch plates I used on the unquadquad if you needed to use plate mount switches. The switch footprint allows the switches to be oriented in any direction.

The PCB can be flipped. This shows PCB flipped and the Pro Micro installed on the opposite side. The firmware needs to have the order of the Column pins reversed if it is assembled this way. It shares the same matrix layout as the Gnap! and can run the same firmware.

Gerbers on git.

Tuesday, July 14, 2020


Germanium Diodes

I have a lot of NOS (New Old Stock) Russian germanium diodes that I purchased on eBay. I've used them in a few keyboards in place of the common 1N4148. They don't always fit as they are much larger.

I decided to make a board to highlight these large glass diodes.

The diodes are all moved to the top left of the board. In 4 clusters of 12. Each of the clusters is a row.

The board is a plain 4x12 grid layout. Powered by a Pro Micro. This one has the new Sparkfun Qwiic Pro Micro which has a USB-C connector.

I use a second PCB as the bottom. There are holes for M2 spacers and screws to hold the two PCBs together.

I installed Peel-A-Way sockets on the PCB. I did try installing them in the small top PCB as well but trying to get the leads to line up was next to impossible as the diodes would wobble in the sockets. Soldering them held them in place and made it much easier to fit all 13 pins in the socket.

The top PCB connects the Cathodes of the 12 diodes together. There is a 13th pin that connects the Cathodes back to the main PCB.

The WS2812B RGB LED is installed under the diodes. The dot indicates pin 1, which is the opposite corner of the notch on the LED.

Trimming the leads in a staircase pattern made it much easier to fit the top PCB. The leads were trimmed flush to the PCB and then soldered.

Here the bottom piece is the same PCB in black. I had already soldered a set with sockets before realizing how difficult it is to align all 12 diodes.

The grid of holes to the right of the Pro Micro are for small zip ties to secure the USB cable. I ran out of red ones, would use at least one more to secure the cable.

The matrix is identical to the Gnap. The WS2812B LEDs are connected to the same pin as on the Gnap RGB (Gnap with a WS2812B strip attached). The same firmware can be used, the only change needed is the number of RGB LEDs. 4 instead of 7.

I used the same 4x4 plate that I made for the unquadquad. The PCB also has the holes for PCB mount switches.

With some black keycaps.

Gerber files on git.

Monday, December 30, 2019


4 Squares

I was going to use two sets of 3 Nori PCB's to rebuild the 96 key Ti-Pro keypad. Instead I created 5 tetromino shaped PCB's that can be arranged to fit just about any rectangular shape with a number of switches divisible by 4.

There are five designs. They use the same any direction switch pads that I used on the Polyandry. Individual PCB's can be placed in any orientation.

I arranged the PCB's into a 8x12 grid. I used some steel rulers to hold the pieces tightly together.

Blue painter's tape holds all the pieces in place.

Flipped over, ready for the solder bridges to be soldered.

All pieces held together with solder bridges. Tape removed.

Close up of the solder bridges. Lots of solder.

Test fit in the Ti-Pro. It can be placed either side up, or rotated 180. I had previously de-soldered the original Ti-Pro PCB. These boards have no places for supports. They would only work well with a solid plate to support the switches. The Ti-Pro has a heavy steel plate.

Diodes and jumpers installed. All vertically aligned pads are diodes. Cathode goes to the Square pad, which is sometimes on the top or on the bottom. All horizontal pads are jumpers. These jumpers are 0 ohm resistors. Pieces of wire could be used too, but the resistors were easier to work with.

Close up of the diodes and jumpers. The jumpers are for the Columns, and the diodes are the Rows. This is for a COL2ROW matrix.

PCB installed and switches soldered. A 30awg wire is soldered to each row and column. I mounted the PCB with the diodes hidden on the other side.

I used a wire wrap tool to connect the wires to header pins on the Arduino Micro clone.

Close up of the Arduino Micro clone.

I cut down some color paper and inserted them in the relegendable keycapes. It mimics the colors of the PCB's.

Gerber files on git.

Wednesday, November 20, 2019


A board for the left over keycaps that I don't use

Few of my keyboards use all of the keys in a typical keyset. I have many left over Shift, Enter, Backspace, etc... keycaps. This is somewhat related to the I-S-hOle.

Mostly the larger than 1u keycaps. They fit nicely in a 5x5 size square grid. 95mm square. Gerber files on git.

PCB mount switches and PCB mount 2u Cherry stabilizers.

The matrix is 4x5, 4 columns and 5 rows. There is a JSON file for use with

Cols F4 F5 F6 F7
Rows D4 C6 D7 E6 B4

Powered by a Pro Micro. The USB connector comes out the side of the board. There was no way to position it coming out the top due to the odd spacing of the switches. The unused pins are broken out to pads. There are pads for a 5.2mm surface mount tactile switch connected to RESET.

There are also pads for a TRRS jack. I have not built it, but this should work as a split keyboard.

 Like the Gherkin I use a second PCB as the bottom. M2 spacers and screws hold the two together.

Wednesday, October 30, 2019


Pumpkin Keycap

My only novelty keycap. These can be ordered on Shapeways.

It is sitting on the FLIRC case with the MX switch mod. The LED is controlled by the CPU usage of the Raspberry Pi. The switch powers the Pi on or off.

Monday, October 28, 2019

PB Gherkin

Gherkin that can mount switches in any direction

Like the Polyandry this version of the Gherkin can mount the switches facing up/down/left/right. The trade off is that there are no in switch LEDs. The matrix is the same as the original Gherkin, and it will run the same firmware.

Externally it looks the same as a regular Gherkin. The new top plate has notches for switch top removal on all 4 sides. Gerber files on git.

The PCB can be assembled either side up, which will place the Pro Micro right side up or upside down. There are pads for a 5.2mm tactile surface mount reset switch on both sides of the board.

Flipped the other way, the Pro Micro is mounted the same was as on the original Gherkin. Extra care has to be taken as the switch pins are more likely to make contact with the USB connector on the Pro Micro in certain orientations.

The square pad indicates Pin 1 on the Pro Micro. For the diodes the cathodes connect to the square pad.

There are double rows of pads for the Pro Micro. These can be used to connect to the unused pins. They can also allow for use of some of the odd sized Pro Micros as on the Nein.

Bottom plate. Is pretty much the same as the old plate. The size of the PB Gherkin is identical to the original Gherkin. The holes are in the same locations.

First generation of the PB Gherkin had smaller holes instead of the large oval. These are too small for some types of switches with built in sockets.

Monday, September 16, 2019

Flirc 1 button

Power button for the Raspberry Pi

Created a custom top plate for the Flirc 3B case. The original top was made of black plastic and had little tabs that snapped into cut outs in the top of the aluminum case. The top I made is just a flat piece of PCB material with black soldermask. The PCB has a 14mm square hole to fit a Cherry MX style switch.

I use 3M VHB tape to hold it in place. The VHB tape is 0.8mm thick. This creates a gap between the case and plate that the thin 30AWG wire can fit through. The wires pass through one of the cutouts to the Raspberry PI GPIO pins inside the case.

The PCB is about 1mm smaller then the recessed area. I manually centered it, 0.5mm gap on each edge. This also fits the Flirc Pi 4B case, except that the recessed area is larger and there is a larger gap on the top/bottom edges.

I used small pieces of the 3M tape. It is very strong and would be difficult to remove if needed. Thin kapton tape is used to keep the wires from moving around.

A 2x3x4mm size LED fits inside the Gateron clear top switches. Zealio switches have the same design.

A current limiting resistor connects the cathode of the LED to one of the switch pins. This shares the ground connection back to the GPIO header (black wire). The anode of the LED is connected to the red wire which connects to GPIO4. The other pin of the switch is connected to GPIO3 with the blue wire.

The wires pass though one of the cutouts and I used a wirewrap tool to connect them to the GPIO pins.

Another angle view of the connection to the GPIO pins. Ground. GPIO3 used for the power switch. GPIO4 used for the activity LED.

Info on the power button and how to set it up can be found here:

Info on the activity LED here:

Gerber files on git. The board is less than 100mm square, and can be manufactured at a discount at many PCB fabrication houses.

Video of the activity LED. This is starting from a shutdown state. Shorting GPIO3 to ground will restart the Raspberry from this state. The activity LED is using the CPU trigger. There is a short delay on startup and before complete shutdown where the Raspberry Pi's original activity LED is in use instead of the GPIO LED.

Saturday, August 31, 2019

piz pad

3 key phat for the Raspberry Pi Zero

Simple board for 3 PCB mount MX style switches. They are connected to GPIO 22, 23, 24. Closing the switch connects the GPIO pin to ground.

This works with either the Pi Zero or Pi Zero W. There are many tutorials online about using switches with the GPIO pins to control actions. You can also use USB gadget mode to use the Pi Zero as a USB HID keyboard device.

Gerber files on git.

Mounting holes in standard locations. 2x20 header to connect to the Pi Zero.

The switch pads can mount PCB mount switches in any orientation.

M2.5 spacers and screws hold it in place on the Raspberry Pi Zero.

The standard header height leaves a lot of space under the board. I am looking at some lower profile sockets, but they may break compatibility with the standard male headers.