If you want keyboards, we can get you keyboards. If you want a small keyboard, you might be out of luck. Unless you’re hacking Blackberry keyboards or futzing around with tiny tact switches, there’s no good solution to small, thin, customization keyboards. There’s one option though: silicone keyboards. No one’s done it yet, so I figured I might as well.

Unfortunately, there is no readily available information on the design, construction, or manufacture of custom silicone keypads. There is a little documentation out there, but every factory that does this seems to have copy and pasted the information from each other. Asking a company in China about how to do it is a game of Chinese Whispers. Despite this, I managed to build a custom silicone keypad, and now I’m sharing this information on how to do it with you.

The goal of this project is to build a very small computer keyboard for wearable electronics, electronic conference badges, to play Fortnite on a portable gaming rig, and as a very small USB keyboard. This has been done before. The 2018 Hackaday Belgrade Conference Badge used 55 standard tact switches arranged in a keyboard layout. Another project on Hackaday.io, the mini (Pi)QWERTY USB keyboard, also used several dozen standard tact switches arranged in a keyboard layout for user input. However, there are shortcomings with these devices.

Firstly, standard 4 mm tact switches are fairly expensive. This is not a problem when you’re only using a handful in a project, but if you’re using sixty or seventy switches per device, those costs add up. The cheapest tact switches I have found come in at about $70 USD per reel of 4000, or about two cents per switch. Multiplied by 70, this is $1.25 USD per device, just on switches. It is conceivable that switches could cost more than the microcontroller in a project.

Secondly, tact switches require assembly. The failure rate of a pick and place machine might be very low, but if you’re picking and placing dozens of switches per board, the failure rate will be higher than if there were one monolithic device. Compared to SMD resistors and caps, tact switches are big and chonky, increasing the placement failure rate. Also, since picking and placing switches takes time, you’ll end up paying more for assembling switches versus using one self-contained assembly. This pushes the price of standard tact switches higher.

Finally, and this is purely vanity, tact switches have no labeling. If you’re going to build a keyboard out of 4 mm tact switches, you’ll also need to put labels on the silkscreen of your PCB. The Hackaday Belgrade Conference Badge did this sufficiently well, and the mini (Pi)QWERTY did this spectacularly by using two PCBs, one for the electronics, and another for the labeling. It may very well be possible that tact switch keyboards could be labeled through either screen printing or pad printing, but the surface area is already very small; there’s not much room for labeling anyway.

The solution to these problems is using injection molded silicone keypads. You have seen and used these keypads before. They’re found in nearly every remote control I’ve ever seen, they were used in your old Nokia Brick cell phone. Silicone keypads are everywhere, and there are factories that will make you custom silicone keypads:

There are many advantages to using silicone keypads. First, nearly all of them use labeling on the buttons. Second, you are not limited to small 4 mm diameter buttons as you are with tact switches. These buttons can be any size and any shape you can imagine. Assembly is easy; to use a silicone keypad with a printed circuit board, you need only place the keypad onto a PCB; everything else is taken care of. Finally, a silicone keypad simply looks cooler than any array of tact switches ever could. So why aren’t people using them? The reason is mostly cost, but there’s also a fair bit of engineering that goes into silicone keypads.

Different types of silicone and membrane switches

Before digging into the design of silicone keypads, I should discuss the various different designs of small keyboards and keypads. The first is Metal Dome keypads, or membrane keypads. As far as popular home computers of the 1980s, the ZX Spectrum or the Atari 400 (the version with the crappy keyboard) are the best examples of tactile membrane switches. Elsewhere in your home, your microwave probably has one of these keypads.

These keypads arrange buttons in a matrix. The circuit tracing out this matrix consists of conductive ink drawn on two sheets of polyester. A stainless steel dome is placed over each node (under each key) in the keypad matrix. Pushing the button down collapses the dome, making a circuit between the two layers of polyester.

The best pictures you’ll find of a tactile membrane keypad are from one of my projects. Tactile membrane switches do not care how the metal dome is pressed down. The simplest solution to putting buttons and letters on top of the membrane is simply a graphic overlay. A piece of screen printed plastic can be glued down to the array of tactile membrane switches. This is how the keypad in the Speak N Spell and the Big Trak were done. This is how you make a three-year-old-with-Peanut-Butter-proof keyboard.

But purely membrane switches feel cheap, and there’s little tactile feedback for a tactile membrane keypad. One option manufacturers have is to put plastic keycaps above the membrane switch. Take a look at the Metal Dome keyboard again. This is the best visual documentation you’ll ever find on how tactile membrane keyboards are built. They use hard plastic keys to press down on small metal domes sandwiched between two pieces of polyester printed with conductive ink:

Alternatively, tactile membrane keyboards don’t require hard plastic buttons. You can use soft, silicone buttons above a tactile membrane keyboard, like the ZX Spectrum. Instead of hard, plastic squares like my Metal Dome keyboard, the Speccy used a monolithic sheet of silicone buttons. The ZX Spectrum used silicone buttons in its keyboard, but it was still a membrane keyboard. There’s no difference between a metal dome being pressed down by a sheet of screen printed plastic or a silicone square.

The other type of keypad — and the type I’ve built for this article — is a silicone keyboard, or a ‘chicklet’ keyboard, or to mechanical keyboard enthusiasts, a rubber dome keyboard.

The silicone keyboard uses injection-molded silicone buttons pressing against contacts. In the silicone keyboard, the carbon contact (a ‘pill’) is molded into the silicone button, and the contacts for the keyboard matrix are constructed with traces on a printed circuit board. The contacts can be integrated into the PCB (ENIG gold plating is recommended) or printed on with conductive ink. In either case, the keypad consists of a circuit board, a silicone keypad with conductive contacts underneath each button, little conductive carbon contacts in each button, and a bezel to clamp the silicone to the circuit board.

In deciding between a membrane or silicone keypad, there are a few items to consider, many of which tip the balance in favor of a membrane keypad. While silicone keypads can be made with multiple colors of button, the graphics on a membrane keypad are effectively printed; a membrane keyboard can have any graphic, in any color. Membrane keypads are inherently cheaper, because they don’t need an injection mold. Silicone keyboards require a bezel or fascia to contain the monolithic block of silicone buttons, and this means the added cost of a second mold. Between the two, the only thing a silicone keypad has going for it is the feel. If you’ve ever tried to use an Atari 400, you’ll agree: silicone keyboards are much better to type on. They also have a bit more panache than a membrane switch.

Current research and open projects

To date, I’m not aware of any low-volume usage of customized silicone keypad. That’s not to say they don’t exist in the DIY community, they very much do: Adafruit sells a 4×4 grid of silicone buttons (Sparkfun has the same thing), and similar silicone buttons can be purchased on AliExpress and eBay. Yes, Sparkfun and Adafruit put some engineering time into the design of the PCBs, but the raw buttons are most likely manufactured in some factory in a far-off land. This isn’t a customized silicone keypad; this is a standard, off-the-shelf keypad used for customized projects.

These specific silicone buttons have been used to great effect, with a Monome clone, a step sequencer, and a MIDI device. This is what a grid of underlit silicone buttons were designed for, after all: they make great MIDI controllers. But because these buttons are unlabeled, they’re not much good for anything else.

These project using 4×4 silicone keypads are, to the best of my knowledge, the only use of silicone buttons in any sort of Maker / DIY / amateur engineering. That’s not to say people aren’t trying. Several people in proper engineering forums are looking at silicone keypads, and a few are experimenting with their own aluminum molds, but to date no one has pulled the trigger. [Dave Jones] has rejected silicone keypads for the uSupply project, instead going with a custom membrane switch.

Design of a silicone keypad, bosses, and fart holes

So, what goes into making a silicone keypad? Ultimately, you’re designing a steel or aluminum mold. This mold goes into an injection molding machine where it’s filled with carbon pills, hot silicone is sent in, that silicone is vulcanized, and the part is removed. Further processing can be done to the key cap, such as laser etching the labels, silk screening the labels, and putting a hard epoxy coating onto the key caps. The design of a silicone keypad is the design of an injection mold, but the basic components are actually pretty simple. The example below — a single key silicone keypad — was made in a few minutes with Fusion360.

The Any Key The interior structure of the Any Key. The carbon pill is in the middle of the key. On the corners, four bosses (placed into holes on the PCB) keep the key stable A cutaway view of the Any Key. The carbon pill (the cylinder in the center) does not extend to the bottom of the key

The outside structure of this key pad is defined by the key itself and a layer of silicone serving as a base. On the corners of this base are four bosses, meant to fit into the PCB. These bosses are for alignment, and so the silicone key pad doesn’t slide around.

The interior structure of the keypad is defined by a large carbon pill, or the actual contact that will press up against the electrical contacts on the PCB. This is the interior of the key pad I designed, and apart from more keys and more complexity, it’s still the same basic shape as the example above. Notice there are gaps on the underside of the key pad to allow air to pass through to each key. These are fart holes. If you don’t put those in, your keypad will fart.

With the design of the keyboard complete and the files sent off to a silicone keypad factory to make a mold and produce a few samples, it was time to create the PCB. In my research, the design of the PCB contacts for a silicone keypad is not critical at all. The only thing that matters is that there are two traces, connected to opposite sides of a keyboard matrix, and these traces should be close together. ENIG, or gold plated finish is recommended. Manufacturing limitations also come into play; the ‘standard’ minimum width of trace and space is 6 or 8 mil, and I designed this PCB with 10 mil trace and space separation for each contact.

With the keypad and PCB done, I could turn my attention to the bezel or fascia. This is a perforated piece of plastic that screws to the PCB. The silicone keypad is sandwiched in between the bezel and PCB. I built this as a prototype, merely to test the keypad as a USB keyboard. The electronics are simply a Teensy LC (because that was what I had sitting around), with a cutout to allow access to the dev board:

This model was sent off to Shapeways, and the entire thing assembled. The firmware running on the Teensy just uses the standard Keypad library and presents itself to a computer as a USB HID device. This is a custom-made silicone keyboard, in exactly the shape I want it. It’s not the final build, because the USB keyboard is just a proof-of-concept to test the silicone keypad, but it does indeed work.

Note the alignment ‘nubs’. These align the silicone with the pads on the PCB

Economically, this doesn’t make sense unless you’re building 10,000.

I’m going to be completely open with how much this project cost. These prices have a sample size of one; I’ve only talked to one silicone keyboard manufacturer, and I’ve only gotten a quote on one design. However, just because of how competitive the market is, I expect these prices to be representative of the average cost of custom silicone keypads.

The design costs for this silicone keypad are as follows:

Tooling $2,219 Design cost $600 Bank Fee $58 TOTAL: $2,877

The total cost for a handful of samples is $2,877. This is just the price of the mold and having an engineer look over my CAD files. Three thousand dollars gets me ten keypads.

But once the design and tooling is done, the factory responsible for this can churn out keypads. The quote per piece after this ranges from $1.30 USD for 1,000 units, to $0.79 USD for 5,000 units. So all up, one thousand keyboards will cost me $4,177, or just over $4.18 USD/unit. Five thousand keyboards will cost me $6,827, or $1.36 USD/unit. This last price — under $1.50 per unit — makes this a viable technology for anyone doing small-scale manufacturing.

We know silicone keypads work for large manufacturers; Samsung is selling millions of TVs, and all of them come with the same remote control. The question of making custom silicone keypads for what are effectively DIY project has always been open. There are no small-scale projects that use this technology, and therefore no one to ask if custom silicone switches make sense. I’m here to tell you that it does, provided you’re making a thousand or so units. At around five thousand, the cost of your silicone keypad and associated plastic bezel might be below the cost of your microcontroller.

All the source for this project is available on the GitHub.