Tuesday, June 27, 2017


EasyEDA's parts store

I purchased some parts from LCSC.com. It is the same company as EasyEDA.com and they will ship the parts for free with your PCB order. When you checkout you select "ship with PCB" and the shipping cost is removed. You use your EasyEDA login to login to LCSC.

The prices are good for the parts I could find. I got several different 1n4148 diodes and some resistors. I also found a MOSFET that works with the backlight circuits I use.

Here's the parts I bought:

Semtech 1n4148 (Thin wire leads)

STARSEA 1n4148

MCC 1n4148

Fairchild 1n4148


UniOhm MFR0W8F5100A50 510ohm

UniOhm MFR0W8F1000A50 100ohm

UniOhm MFR0W8F1003A50 100Kohm

The Semtech diodes have very thin leads. 0.39mm. They are the cheapest diodes on LCSC. I would not recommend them. The other 3 brands of 1n4148 diodes have 0.48mm leads. It is very difficult to see any difference between them physically. All diodes come on tape. The tape is fresh and not old and gummy so comes off clean without leaving sticky residue. Prices ranged from $0.009 to $0.0059 each in quantities of 500.

They did not have 470ohm resistors, which is what I usually use. The closest was 510ohm, which is close enough. Prices for the resistors were very good. $5.55 for 1500. I got 100 of the 100ohm and 100Kohm @ $0.52 for 100. These were also on tape.

The MOSFETs were $0.63 for 10. Dirt cheap.

Example packing slip. Looks like all prices are not in USD.
Things I could not find:
  • Machine pin sockets (24pin wide)
  • Through hole LEDs appropriate for backlighting
  • Hardware
The search engine is nothing like Digikey or Mouser. Finding the part you want will take you some time. You may even have to read the datasheets to get the details on the parts. Many of the brands are Chinese and their datasheets are in Chinese. The prices are very good though, if you can find what you need.

Monday, June 26, 2017

2 Pack

2 Key PCB with top and bottom plates

Tiny 2 Key macropad, PCB and case parts combined. The PCB is similar to the previous 2 Key PCB, the main change is the rotation of the switches. This puts the switch pins farther away from the USB connector on the Pro Micro so that it is less likely to make contact and short out. The pinout is the same, switches are connected to pins 2 and 3. The LEDs are connected to pins 9 and 10.

In the current version the USB port is recessed too far for some larger USB cable connectors. Planning on a version with a small cutout on the bottom plate to accommodate the larger connectors. It will also allow for shorter standoffs.

There is printing on the top sides of the plate pieces. The bottoms are blank, it can be built with either side facing out. Other than switches, the only other parts are 2 LEDs and the 2 resistors for them.

The pieces snap apart. The edges need to be sanded down. I used 220 grit wet/dry sandpaper on a flat surface. I wet sanded all four sides smooth. I also sanded off the solder mask on the plate pieces.

4 different builds.
  • Gateron Clear/permanent pin headers
  • Invyr Panda/permanent pin headers
  • Gateron Red/low profile socket
  • Kailh Speed Bronze/Holtites and full height socket
End view of the four. Three have 10mm spacers. The one with the full height socket has 12mm spacers.

Side view. Thin laptop style screws were used. These are so small the only way to secure them in place would be double stick tape. I use 3M Command strips which are removable.

Invyr Panda switches with integrated sockets. LEDs are installed under the switch and fit in the slots. The Panda sockets do not fit all MX style switches.

Holtite sockets fit properly without soldering. They press fit as they were designed.

Switches and LEDs inserted into sockets. You can see the red brand marking on the PCB. Normally not seen when covered with solder mask. From EasyEDA.com I have seen several different brand markings. Some are darker than others. This one is the darkest and most visible.

Wednesday, June 21, 2017

Alps 48 RGB

48 Key Per Key RGB - Rainbow Cat Vomit 1.2 PCB

  • 4x12 matrix
  • Per key RGB reactive lighting
  • Powered by two Pro Micros
  • TMK on first Pro Micro, same firmware as the Gnap!
  • Arduino sketch running on second Pro Micro
  • 48 WS2812B LEDs
  • Matias click switches with clear body
  • 1.2mm PCB
  • 1.2mm top plate
  • 1.6mm bottom plate
  • 19.05mm switch spacing. Not compatible with the Planck
  • M2 11mm spacers
  • 0805 0.1 uf capacitors
Full RGB 48 key Alps ortholinear keyboard. This uses the same firmware as the Gnap! which uses the serial port to communicate with the second Pro Micro which is controlling the LEDs. Instead of a single color LED matrix on the Gnap!, the second controller is connected to a string of WS2812B LEDs.

The WS2812B LEDs fit snugly in the cutouts. Tiny solder bridges connect the LEDs to the PCB. 1.2mm PCB was used to make the bridging easier. With 1.6mm PCB the LED sits low in the cutout and the solder bridge was difficult to form. It works just like the 30% MX RGB board, but with Alps there is no center switch stem and the LED could be placed closer to the center of the switch.

The only problem in assembly is the sockets for the Pro Micros. The Alps switch is wider than an MX switch. The pins from the socket touch the edges of the switch. The pins need to be trimmed as short as possible and soldered as flush to the surface as possible. I also ground the edges of the switch down a little so that they would sit flat against the PCB over the pins.

Running the LEDs at 1/4 power it draws about 400mA in a full rainbow display. The Adafruit Neopixel library lets you set the maximum brightness. Potentially I could plug in both Pro Micro's at the same time to provide more double the current, though it is already quite bright at 1/4 power.

Currently deciding on revising the PCB with the Pro Micros rotated like on the Gnap!. This would remove the problem with the socket pins. Would have to either plug in from the side, or run a pigtail to a USB connector on the back like on the Gnap!.
One of the color patterns programmed in the the Pro Micro running an Arduino sketch. You can see more of them in the video at the bottom of the post.

The top PCB plate was originally green but I sanded it down to the bare FR4 material.

The schematic showing the switch matrix with the WS2812B LEDs integrated.

Front and back of the PCB. On the top you can see how the pins of the socket overlap the white outline of the switches.

Side view showing the two Pro Micros. The one on the left os running TMK, the one on the right is running the Arduino sketch.

11mm brass spacers.

The Pro Micro running TMK. You can see how the pins from the socket would interfere with the switch if they were not trimmed.

The Pro Micro running the RGB Arduino sketch.

Random LED output. There is also an interactive mode that lights up the switches as they are pressed and then fade. There are many WS2812B effects libraries for the Arduino.

Monday, June 19, 2017

Tomato 1.3 30% RGB

Tomato 1.3 PCB

Latest version of the Tomato PCB, this time with red solder mask. Minor fixes. Otherwise identical to the previous version. This one has a steel top and bottom plate from Lasergist. The switches are Cherry MX Speed Silver RGB. They have translucent bottoms and clear tops.

Friday, June 16, 2017

Cherry ML

Cherry ML "Planck"

Custom keyboard with Cherry ML switches. The switches and keycaps were harvested from two different keyboards. The orthogonal PLUM keyboard and a Cherry G84-5500LPMEU-2.

The PLUM keyboard is a long discontinued model. You can still find them in unused condition on eBay. The Cherry is an obsolete PS2 model that can be found for under $20 on Amazon.

The is powered by a Pro Micro. The matrix is identical to a GNAP! without the LED matrix.

Revised 1.1 version here.

The switch spacing is 19.05mm. This is what most keyboards use and is what the PLUM keyboard was designed as.

The PLUM has all 1u keys and has most of the keys you would want, even some blanks.

The Cherry keyboard has smaller keys. The switch spacing was 18mm. A few keys were even narrower (ESC, Del).

The PLUM keycaps are also taller. In the picture the PLUM keycap is resting on the prongs that stick out below the keycap.

The PLUM keycaps are ABS and Laser marked. The prongs are smooth and are held in the switch by friction alone.

The Cherry keycaps are also ABS and laser marked with a different technology. The legends look like laser foaming. The prongs have small nubs that click the keycap into place in the switch. These feel much more secure than the PLUM ones.

The PLUM keycaps are centered on the stem of the switch. The board was designed for these so the spacing is even around the edges of the keyboard.

The Cherry keycaps are centered on the switch itself. So the keycaps sit closer to the bottom edge of the keyboard. The keycaps are also closer to the board and were touching the diodes, so they were installed on the bottom of the board for this one.

A Planck is 28mm thick with DSA keycaps. The ML is 19mm thick with PLUM keycaps, 18.75mm with Cherry keycaps.

Currently using 6mm spacers, the next version will use 5 or 4mm spacers.

Tuesday, June 13, 2017

Double Gherkin

60% Gherkin

Two Gherkin PCB's mounted to a double base plate. The two 5x6 matrices combined into a single 10x6 matrix.

Both PCB's are connected to a single Pro Micro. One switch from each column is bridged to the corresponding switch on the other PCB. The header is used to bridged the connections for the unused pins, VCC and ground to the other PCB. Where the other Pro Micro would have been the unused pins are jumpered to the correct rows.

The backlight also works. A single MOSFET is used to control all the LEDs on both PCBs.

Details of the pinout and modified firmware can be found on Github.

Two Gherkin PCB's spaced correctly.

The baseplate.

The connections between the two PCB's.

The power and row pins.

The column pins. Also the connection from the other PCB to the single MOSFET.

Wires are visible from above.

6mm spacers.

The single Pro Micro.

LEDs on.

XDA blank key caps.