Wednesday, November 20, 2019

detritus

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 kbfirmware.com

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

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:
https://howchoo.com/g/mwnlytk3zmm/how-to-add-a-power-button-to-your-raspberry-pi

Info on the activity LED here:
https://medium.com/@davidgordon_55525/how-to-redirect-pi-heartbeat-to-gpio-pin-9921c0a98003
https://raspberrypi.stackexchange.com/questions/69674/are-there-other-act-led-trigger-options-besides-mmc-and-heartbeat

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.

Tuesday, July 16, 2019

tomu

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.

Polyandry

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

Semaphore

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 3x5, 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.