Wednesday, March 6, 2019

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

Thursday, December 20, 2018

I got the 3 pack of regular USB A keys. There is also a USB C version and a NFC version.

They each came with a random color silicone boot and also a single pack of additional boots in red, green, blue, black and white.

Blue boot with the bare Solokey. That's a little RGB LED in the middle of the switch. It lights up through the silicone, it's visible, even through the black boot.

Back side of the Solokey. They also have a hacker version that you can customize the firmware on. This is a regular model, and has a bootloader that allows updating the firmware with signed images over USB. More info on their github page.

With the silicone boot installed. It's a tight fit. I would not plan to switch boot colors once you have one of these installed.

Bare PCB next to the original U2F Zero. The Solokey PCB is 2mm thick. It fits very snugly in a USB port. The U2F Zero had a 1.5mm PCB and wobbles a bit.

I'll probably get a few NFC ones once they are available. You can pre-order them here.

Thursday, December 13, 2018

Testing a Lead Free HASL PCB

One of my new projects is to make a steno keyboard based on the type of high resistance circuitry the Makey Makey uses.

I usually have PCBs made using the cheapest finishing option, leaded HASL. HASL is Hot Air Solder Leveling, essentially a layer of solder coats the copper traces. Copper is reactive and will corrode if left exposed to the air, the solder protects it.

Since this project will have fingers in physical contact with the HASL coating I chose the Lead Free HASL option. It was only a few dollars more.

I used a 3M test to see if it contained lead.

I bought the 8 pack from Amazon. The reviews on Amazon were mixed. It can produce false positives. The only good result is a negative result which would indicate that there is no lead, a positive result may not mean lead is present.

They look like cigarettes.

It is a cardboard tube with a plastic tube inside. The tube has 2 glass vials that are broken when you squeeze the tube (you aren't supposed to take it apart like I did.) Then you squeeze the mixed liquid out the white fibrous tip.

The 8 pack also came with 2 test cards. (One shown here.) This is to verify the test worked by triggering the lead reaction.

In short, it didn't work. Whatever the chemical reacts with turned it dark brown immediately on contact with the lead free HASL. So the test is useless in this application. If it remained white then there would be no lead. If it turned light pink, there might be lead. Turning dark brown is not something it is supposed to do.

Almost black.

I did another test on a leaded HASL PCB and it did turn pink (hard to see but it is a light pink.) So the test does detect the lead in that PCB, which definitely does have lead. Next to it in the picture is the dark brown test from the lead free HASL test.

Using the verification card the leaded HASL turned a uniform reddish color, as is should. The brown lead free test was already so dark I couldn't see a difference after using the verification card.

So, is the lead free HASL really lead free? Probably, but this test can't prove it. I think I will splurge on a ENIG PCB on my next version of the steno board.

Thursday, November 22, 2018

PCBs that are under 100mm x 100mm

JLCPCB has special pricing for boards this size or smaller. $2 for 10 pieces with green soldermask. $5 for each additional small design in the same order. Shipping will be the largest part of the cost. Adding a small board to an existing order will only increase the shipping cost a few dollars.

Until recently, if you chose any color other than green the price would revert to the non-100mm special price. Now you can add color and just pay the additional fee for the colored solder mask.

You can also combine shipping if your previous order is still in production. The shipping for the additional boards from the new order will be combined with the previous order and will be much less than shipping a separate new order. I have done this twice to the same order.

I have many gerber files that are small enough for the special pricing:

Tuesday, November 20, 2018

Made something for all those left over ISO enter keys

A small board with space for 4 ISO enter keys with PCB mount Cherry stabilizers. Powered by a Pro Micro.

I have a lot of left over ISO enter keys that came with cheap keysets from eBay.

Bottom of the PCB. The hole serves no purpose, though you could use it as a pen holder. You could assemble it upside down, but then the enter keys would face outwards. You could also use the 2u backspace or numpad plus/enter key caps.

The two PCB's are held together with M2 spacers and screws. The Pro Micro is mounted to the bottom.

There isn't a lot of space to fit the Pro Micro. I left the top two pins unsoldered since they might touch the metal stabilizer wire. Also, the bottom left corner pin is removed since it sits under the plastic stabilizer housing.

The Pro Micro is programmed with a simple Arduino sketch. Sketch and PCB files are on github.

Tuesday, November 13, 2018

Six Pack Arduino Backpack

Six Cherry MX compatible switches on an Arduino Leonardo. Per key LED control.

This is the exact same circuit as the Six Pack, shaped as an Arduino Shield. It is designed for the Arduino Leonardo and it's clones which have the same controller as the Pro Micro (ATmega32U4).

Assembled and stacked on top a clone Arduino Leonardo. This runs the same Arduino sketch as the Six Pack.

Separated from the Arduino Leonardo.

The PCB snaps in half. The top is a plate and the bottom is the Arduino shield. I wet sanded the edges smooth after snapping them in half. It is under 100mm square and can be made at a discount at JLCPCB. Files are on github.

I used the header pins that came with the many Pro Micros I have. The only other parts are the 2 resistors (if you want LEDs), switches and LEDs. If you use PCB mount switches you can eliminate the plate.

It is possible to use this with other Arduino boards based on the older ATmega328p (Diecimila, Duemilanove, Uno), but you would only be able to use it as a form of input for your sketch and not directly as a keyboard HID device. The USB connector on those other boards only provides a serial connection, used primarily for programming and debugging.

Wednesday, October 31, 2018

Another modular 4x4 experiment

A 4x12 matrix using 3 modular 4x4 matrix boards and powered by a Pro Micro.

The previous 4x4 boards were powered by an Arduino Micro, this one is using a Pro Micro. The Pro Micro has less data pins available so only 3 boards can be connected instead of 4. There are 2 pins left over, I used one (B5) for a backlight circuit like on a Gherkin. The other data pin is left for possible use with a WS2812B strip.

Fully assembled with a top PCB plate. LEDs are powered by a MOSFET and controlled by a PWM enabled data pin (B5).

I also made a plain bottom plate. The plates are held together with solder brides, like on the original 4x4.

Top plate, PCB and bottom plate connected with M2 spacers and screws.

You could just use the PCB and skip the plates. Use PCB mount switches and a piece of wood or aluminum as the base.

The mini USB connector can be installed on any of the 3 boards. The pigtail connects it to the Pro Micro.

If you want LEDs, the MOSFET has to be installed on the first board with the Pro Micro.

I added little nubs that interlock the boards. They may need to be lightly sanded so that they fit into the notches and the boards are flush together.

The edge connectors are in a similar pattern to the original 4x4. Only the top 3 sets of connectors are used for the keyboard matrix. The bottom pair are to pass power, LEDs and the extra data pin. DATA is the extra unused pin and FET is the MOSFET that the LED cathodes on each board connect to.

Gerber files, parts list and a json file for kbfirmware.com are on github.