Devlog #5
I spent this session finishing the physical PCB layout, which ended up being a much longer process than I expected because I went through three fairly different approaches before landing on something that actually worked.
First off, I decided to give the left column of switches a diagonal stagger instead of a straight grid, inspired by a macropad by Froskeys in the Hackpad galley, that used a similar fanned-out layout. The idea is that a diagonal arrangement follows the natural arc your fingers make when your hand rests on the board, so reach feels more even across all the keys instead of some being awkward stretches.
My first attempt was just a plain grid of 8 switches with no real thought behind the physical arrangement. It technically worked, but it didn’t fit within the 100x100mm size limit the Hackpad program requires, coming in at 108mm vertically. I also tried to save space by placing the XIAO microcontroller underneath three of the switches. Even though the components were on opposite sides of the board, the actual drill holes for switch legs and XIAO pins still passed through the entire board thickness, and landed on top of each other. That was a good lesson that opposite layers doesn’t always mean that a collision won’t occur.
My second attempt scrapped the overlap idea entirely and instead focused on compressing spacing everywhere: tightening the switch pitch to exactly 19.05mm, pulling the encoder and XIAO in closer, and moving the OLED header and capacitor out of dead space. This got me under the limit, but the layout still felt a bit boxy and arbitrary.
For the final version, I took some advice from my brother who walked had walked into my room and immediately told me that the design would look better if it was entirely rotated. Initially, my diagonal edge was on the left, but instead rotating it to the bottom also provided a distinct asymmetric shape while keeping it’s ergonomic function.
Along the way I also had to fix a wave of Design Rules Checker errors and add mounting holes without letting their clearance rings collide with nearby components, which happened more than once. Finally, I designed the copper pathways to connect all the components and provide a finalized PCB.
Challenges:
The biggest recurring issue was learning that visual inspection alone isn’t reliable for catching real electrical problems. I found that several times a layout looked fine by eye but DRC caught actual shorts or courtyard violations I hadn’t noticed. I also learned the hard way that mounting hole footprints include a much larger keepout zone than just the drill hole itself, which caused an unexpected collision with the XIAO’s pins.
Next Steps:
The layout is finalized and DRC is clean. Next is fixing the case design I have in Tinkercad to update the new PCB layout, and eventually writing the firmware to match this final pinout.
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.