Keys FeatherWing

A FeatherWing with three keyboard keys.

Similar projects worth following

Many Adafruit Feather boards are capable of simulating USB HID devices, like keyboards and mice. So why not have a shield that makes it easy to add a small macro keyboard to your computer? Or, you know, a set or really nice buttons with color LEDs to your project.



x-fritzing-fzz - 66.59 kB - 11/18/2019 at 20:48



Zip Archive - 76.26 kB - 11/18/2019 at 20:48


  • 1 × PCB
  • 3 × Kailh Chocolate Switch
  • 3 × APA102
  • 2 × Pin Headers
  • 3 × Key Caps for Chocolate Switches

  • Contest

    deʃhipu11/19/2019 at 22:26 0 comments

    So a few words about this project in the context of the contest it was created for. Sure, the design is very simple, and it wasn't much work, but I think it's a genuinely useful product, especially for beginners. It lets you experiment with real mechanical keyboard switches (and some nice blinky lights) without large risk usually involved in making a large expensive keyboard. It fits several of the contest categories:

    • The Weirdest Feather — fine, maybe it's not so weird — not as weird as the #SpiderWing or the #Quadcopter FeatherWing for Huzzah32. But it's not your usual "sensor breakout" add-on either.
    • You’ll Cut Yourself On That Edge — it so happens that the Kailh chocolate switches used in this design are relatively new — I think the first keyboards using them only appeared a year or two ago, and they are still a rarity in the mechanical keyboard communities. You can tell by how hard it is to find key caps for them.
    • Retro Feather — what is more retro than a mechanical keyboard? Those are the kinds of keyboards that were made for computers back when they costed more than an airplane and had the computing power of a watch.
    • Assistive Tech — a dedicated macro keyboard such as can be built with this is an excellent usability- and accessibility-enhancing tool. But you don't have to stop there — experiments with chording, durations, modes, etc. can lead directly to improvements with our current keyboards and other input devices. You can also use it as a component in more complex devices — add an accelerometer and you ave an airmouse with three buttons.
    • Wireless Feather — fine, that's the second category that doesn't apply to this project.

  • The Popcorn Wing

    deʃhipu11/19/2019 at 09:30 6 comments

    Yeah, I decided to give the tiny keyboard thingy one more try, this time with solder paste and hot air gun. Turns out those small buttons have a pretty narrow thermal curve — they get crispy really easily.

    Also, weren't they supposed to just magically pop right into their places, instead of clustering together into a single mega-button?

  • Schematic and Design Files

    deʃhipu11/18/2019 at 20:50 0 comments

    Here is the schematic of the finished design:

    The gerbers and the Fritzing file are available in the "files" section. The BOM is in the "components".

  • You Shouldn't Doesn't Mean That You Can't

    deʃhipu11/18/2019 at 17:27 4 comments

    The PCB for the crazy tiny keyboard arrived as well, and I had a stab at soldering the buttons by hand. I got as far as the second button of the second row and decided that it's not going to work. My tiny soldering iron tip is simply too big for this.

    I might give it another try with solder paste and hot air gun, but I really don't have much hope for it. It's also pretty inconvenient for typing with your thumbs, so I guess I will just call this one a failure.

  • Prototype

    deʃhipu11/18/2019 at 16:57 0 comments

    The PCBs arrived already, so I assembled the prototype. Of course it's a very easy design, so I had to do something wrong — in this case, the holes in the switch footprint are slightly too small. I will need to add some 0.25mm to them to make the switch fit in there, but for now I just used the reaming tool to enlarge the holes.

    Soldering the APA102 RGB LEDs was a bit of a challenge, but with a few tries with a hot air gun I got them all to light up. There should be no problem with them when done with solder paste and an oven.

    You can see that the holes on the sides are staggered — that means you can insert your pin headers in there without soldering, and it will give you good enough connection still! Of course if you get any problems, you cal always solder them.

    While the switches fit within the board's outline, the key caps you put on them might stick out a little bit to the sides, but I think that it's fine, as then you can make a case for the device that is exactly flush with the key caps.

  • More Keys

    deʃhipu11/18/2019 at 11:21 3 comments

    Just three keys may be useful, but seems like a very simple thing, so I decided to try and also make a more advanced version. This time it's a full keyboard, using the smallest switches I have in my drawer.

    I'm not sure if I will have the stamina to actually assemble it, but since I was ordering the PCB for the 3-key version anyways, and the main cost is shipping, I decided to throw this design in.

    On the back there is a single atmega to do the scanning of the matrix. Since there is no way I could fit diodes for every key in there, they keyboard will have ghosting effects. I added a separate column just for the special keys, like shift, function and so on, to mitigate that a bit. It's going to talk to the parent board over serial.

  • Execution

    deʃhipu11/10/2019 at 23:50 0 comments

    So let's get this thing done. First, it's good to start with a mock-up, so that we catch any obvious errors:

    I also checked that the APA102 LED fits inside that window in the switch. All seems good, so let's work on the footprint. Kailh has some dimensions in their docs:

    That lets me draw the footprint in Inkscape and import it into Fritzing. I already had a footprint for the APA102 LED, so all that is left is to route it all:

    The keys go to their own pins each, and the LEDs are chained together and connected to the SPI bus. The DRC check passes, I can't see any obvious errors, but it's past midnight already, so I won't be ordering this PCB yet. I will wait until morning, to take one more look at it, and then order it, like a responsible person that I pretend to be when someone is looking.

  • Idea

    deʃhipu11/10/2019 at 21:45 0 comments

    Basically there is this contest for a FeatherWing going on now, and I have those three spare mechanical keyboard switches left over from #5plit Keyboard Clone, so why not put them on a PCB with some LEDs and add some transparent key caps?

View all 8 project logs

Enjoy this project?



ostropest wrote 01/11/2020 at 17:00 point

Lepiej dodaj po prostu wyświetlacz e-ink dla każdego klawisza

  Are you sure? yes | no

deʃhipu wrote 01/11/2020 at 17:54 point

Yes, and an FPGA.

  Are you sure? yes | no

Wesley Ellis wrote 01/11/2020 at 15:12 point

Maybe I'm blind, but I can't seem to find the source code for this. Could you please upload it?

  Are you sure? yes | no

deʃhipu wrote 01/11/2020 at 16:40 point

Not sure what you mean. There are no programmable components on this board, there is nothing to write code for. If you are looking for example code, then Adafruit already has excellent tutorials on this:

  Are you sure? yes | no

Wesley Ellis wrote 01/11/2020 at 20:04 point

Oh, I figured you had paired this with a specific feather and had written some code to make it work with lights and debounce and stuff and I was curious to see that code

I might order some PCBs based on your project here and try to make it work with the QMK keyboard firmware on a Feather 32u4 bluefruit LE

  Are you sure? yes | no

deʃhipu wrote 01/11/2020 at 20:20 point

If you use CircuitPython, then the ``gamepad`` module handles scanning and debouncing of the keys for you, the ``dotstar`` module handles the LEDs, and the ``usb_hid`` module lets you send the keystrokes easily, you just have to copy-paste the right parts from those tutorials. I expect there are similar libraries also for Arduino or whatever else you might be using.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates