While reading about the Seeed Fusion DIY XIAO Mechanical Keyboard Contest I thought this could be a nice opportunity for creating a tiny inexpensive Bluetooth board, which could also be used wired (using the XIAO RP2040).
Step One: LayoutSince the XIAOs don't have that many pins available and hardware features are often too power-hungry for Bluetooth boards I thought I should focus on a small, portable board with a comfortable layout. I created the layout using Ergogen, which proved to be great for trying new variations.
Once I had a layout I tried to place the components in Illustrator and experimented with the overall shape of the board. I remembered that I wanted to try the Balbuzzard/Osprette layout where the top outer pinky button is placed outwards to make it easier to reach.
While doing this I remembered that I wanted to try the layout of the Balbuzzard/Osprette, where the top outer pinky key is placed outwards, to make it easier to reach.
So I added an extra pinky button and adjusted the shape, which also allowed for a nicer placement of the XIAO. Also my first attempt at adding a diode cluster, which gives the board its name (apart from the fact that I like the sound of the word).
From there it was a constant back and forth between Illustrator and KiCad until I ended up with this.
Two important things I learned along the way:
- If you plan to use the bottom pins of the XIAO, you should use one of the excellent footprints from crides kleeb collection.
- Routing a diode cluster isn't fun.
I tried to route the traces as close to the edge as possible to leave some copper-free areas for adding copper graphics.
Here you can see the PCB with the silkscreen and copper graphics added.
Things I tried to keep in mind:
- It shouldn't add extra switch height and minimal width to the board, so it maintains the overall shape.
- the height around the alpha keys should be pretty much flush with the case, to make it look like one unit.
- the thumb keys should still be easy to reach (often a problem with high cases)
- the edge between the top and bottom should be hidden as much as possible, while still easy to handle (inserting the board, with its components)
- it should work in transparent resin (something I wanted to try for a while).
Since I never worked in any CAD application I watched some tutorials and started right away, by exporting a STEP file from the KiCad PCB and bringing this into Fusion360. Since I hadn't assigned any 3D models in KiCad I had to place them manually in Fusion360, which was kind of a pain in the you know what.
Testwise I've ordered it in black resin from JLCPCB. Thankfully it arrived at the same time the wonderful PCBs from Seeedstudio (never gotten some ENIG PCBs of a design of my own before, so I was pretty excited).
While the first version of the case ended up kinda okayish the construction wasn't perfect. The spacing was too tight to get the PCB with the components in there without a lot of wiggling around.
Also, I thought it would look nicer if the case could be at level with the keycaps (or at least almost).
I started changing it, but after a few minutes, I realized that the file was too much of a mess. So I watched a lot more Fusion360 tutorials and started all over.
This time I assigned 3D models in KiCad to get a proper STEP file to work with (which is completely worth the effort).
I've also managed to integrate the connectors in a better way, while still trying to hide the seam between the top and bottom as best as I could. Thankfully some smart people from the MKD discord (a German discord channel) helped me a lot with it.
I did some clay renders of it, to get a better impression of how the case would look like and of course to keep the procrastination levels up.
I ordered another prototype from JLCPCB, which turned out even better than expected. Especially the cutouts around the connectors fitted surprisingly well.
Now it was time to order the transparent resin case from PCBway, which turned out great, while the spacing is slightly tighter overall.
Unfortunately, I made some stupid mistake in the groundfill (never did a split board in one PCB before) and had to reorder the PCB. This time I tried AllPCB, since I wanted to try some yellow silk a while too.
I was pleased with how well the yellow works with the ENIG.
Step Five: FirmwareWriting the firmware was pretty straight forwarded (at least mostly) since the board doesn't use fancy hardware shenanigans (apart from a really stupid mistake in ZMK, where I set the pins low where they should be high, which kept me busy for two days since I expected it to be a hardware issue. But thankfully some really nice people in the Absolem Club helped me find the solution).
A really important (but annoying) part is writing a build guide, preparing the files, and documenting everything in a way that everybody can order and build the board.
This always takes a lot of time (at least for me). But in the end, I'm really happy if people build and use my keyboards, so I try to put some effort into it.
Here you can find the build guide.
Step Seven: Making photosProper photos are quite important to get attention on social media.
Here you can see my photo setup for the transparent TOTEM. The lighting is a desk lamp with a diffuser in front of it.
I read on Discord somewhere that my boards didn't look THAT good, but I take pretty good photos of them. This isn't true either: I'm a pretty mediocre photographer, but I know how to apply a shit-ton of effects on top of them.
Here you can see some photos of the black version (which is quite affordable to get manufactured)
I hope you find this interesting and please send me some pictures if you get a TOTEM made. Since the XIAOs don't have that many pins, and hardware features are often too power-hungry for Bluetooth boards, I thought I should focus on a small, portable board with a comfortable layout. Since the XIAOs don't have that many pins, and hardware features are often too power-hungry for Bluetooth boards, I thought I should focus on a small, portable board with a comfortable layout.
Comments