The new Blanck Keyboard

After having used the Blanck keyboard for a few months, I realized there were a few things I wish I had done differently, like the wiring of the switch or having a slight angle to the keyboard. In parallel, I had been wanting to teach myself how to design circuit boards for a while, so I figured this would be a great occasion to learn.

Before going into the details of how the new Blanck keyboard came to be, let’s take a look at the finished product, here are some of its features:

  • Porcelain and leather case built around a walnut body
  • Keyboard is at a 7° angle for more comfortable typing
  • Custom designed PCB
  • Custom white/magenta frankenswitches
  • On/off push button switch with indicator LED
  • Cap lock LED
  • Same magsafe charger as the first Blanck, so I can reuse my cables

Circuit board

As mentioned above, I had had this itch to learn how to design PCBs for a while, so over the course of a couple of days I taught myself how to use KiCAD and came up with the following. Aside from the miserable UX, it was a pretty easy process, given that most of what I am doing here is putting wires between a very simple set of components: switches, diodes, LEDs and a micro-controller board that has the actual electronic.

PCB design in KiCAD

I actually went through two rounds of design: I first ordered some boards from OSH Park, but then went back to the drawing board because I really wanted was to be able to disconnect the battery and switch from the PCB, so I added some JST headers to avoid having to solder all the parts together. I then got those boards manufactured by EasyEDA. They are pretty good quality, and I love the white color, but the process was tedious and took far longer to deliver than I expected. Thankfully EasyEDA has a good customer service.

Left: PCB from EasyEDA. Right: Diodes and headers soldered in.

I had designed the circuit planning to use the Feather 32u4 Bluefruit LE as the micro-controller, but between then and assembly time Adafruit released the Feather nRF52 Bluefruit LE which has a compatible pinout and has only one chip on board instead of having one dedicated to computation and the other one to Bluetooth LE, so I swapped that at the last minute and rewrote my firmware to support the new API.

Case

Having designed an all wood unibody keyboard, I wanted to experiment with something entirely different. While researching materials for this build, I remembered that a few months ago, I had come across Shapeways, an online 3d printing service that among other things does porcelain prints. Unfortunately, the maximum dimensions for that material doesn’t allow making a whole case out of it, so I had to find a workaround and I came up with the idea of building a segmented case: two porcelain end pieces with another contrasting material in the middle (my initial plans were walnut, but I ultimately decided that the visible part of that section should be leather).

With this in mind, I started putting things together in Sketchup. The body consists of four main parts: the porcelain ends, the walnut inner body, the walnut top plate, and the leather middle section. Because the top plate sits at a 7° angle, I designed the whole thing as a big brick, chopped its bottom and rotated it to lay flat. I also added two opening in the left porcelain part to fit a switch and expose the magsafe charger.

Initial render of the case, plate, PCB and buttons

I had a couple of concerns using porcelain: because it has to be fired to harden it might lose its shape, and because of the glazing any openings might end up a little smaller than intended. After a few weeks I finally received the prints from Shapeways, the left piece had significant bowing on one edge, but I ultimately decided I’d still use the piece because I didn’t want to wait another month and a half to get started with the build (in the end, it isn’t bad looking, gives it a more organic look). As for the holes, I had designed them with a bunch of padding to account for the shrinking, the fit was very snug but I could loosen things up with some light filing.

Left: render of the porcelain sections. Right: porcelain sections 3d printed by Shapeways with pushbutton.

The next step was to build the skeleton of the case, to add some structure and rigidity to the body. I designed it to fit in the porcelain parts and then used my CNC to cut the different faces before glueing everything together. Because the porcelain parts have a very uneven surface, getting the inner body to fit in the end sections required an incredible amount of sanding, constantly checking the fit.

Top left: inner body in Sketchup. Top right: faces before glue up. Bottom left: body assembled. Bottom right: body after a lot of sanding, snuggly sitting in the outer case.

Given that the keyboard has a PCB, the top plate does not need to be rigid, so I could get away with using walnut again, and I again used the CNC to cut it out. I then drilled 4 holes in the inner body and epoxied in M2 standoffs to attach both of these together.

Top left: cutting the top plate. Top right: finished top plate. Bottom left: inner body with standoffs. Bottom right: inner body and top plate assembled

Assembly

I expoxied the walnut body to the porcelain end pieces, and then cut small walnut rectangles, covered them in leather before gluing them to the middle section. I then finished the bottom with a layer of felt and epoxied in the on/off switch, which I soldered to a 3 pin JST connector. The battery is a 500mAh LiPo battery, and with this I’m getting a few days of typing before I need to charge the device.

Left: bottom part of the case assembled. Right: Everything wired up

One of the most important parts of the build: the switches. For this one, I dissassembled Invyr Panda switches and replaced the linear stem with a tactile Originative MOD-L stem. It was pretty tedious to take all of these apart and then put them back together, but in the end it gives a crisper tactile bump than a Cherry Brown, but in a much smoother body, and a heavier touch. Also they look pretty great.

And finally, the finished board. I used blank WV SA keycaps from the Nantucket Selectric set in 2–3–4–2 profile. It was a pain to find enough keycaps to cover a whole board: towards the end I was buying them a couple at a time from Mechmarket but after a couple of months I got all the ones I needed.

Finished board from different angles. Bottom right corner shows caps lock LED in low light.