My awesome macropad!
- 2 Devlogs
- 1 Total hours
Today I made a lot of progress on my Hackpad PCB. I started with a simple 3-key layout, but then decided I wanted to make the project bigger and more useful, so I changed the design to a 12-key macropad with a 3×4 key matrix, one rotary encoder, and an OLED connector. A lot of the time went into figuring out how the matrix was supposed to work. At first I was wiring the switches like they were chained together, but that was wrong, so I rebuilt it using rows and columns. I added 12 diodes, one for each switch, so the keyboard can avoid ghosting when multiple keys are pressed. I kept the diodes on the top side of the PCB because they fit fine and I think it will be easier to solder that way. After finishing the schematic, I assigned all the footprints, including the Cherry MX switch footprints, 1N4148 diode footprints, the XIAO footprint, the EC11 rotary encoder footprint, and a 1x4 pin header for the OLED. Then I moved everything into the PCB editor and spent a while arranging the layout. I wanted it to look kind of like a clean macropad with the keys on the left and the knob/OLED area on the right. Routing was definitely the most annoying part. I had a bunch of overlapping traces at first, and my first DRC run had a lot of errors, including shorts, clearance issues, and traces going too close to the board edge. I had to delete and reroute some traces, use both copper layers, and make sure the rows, columns, encoder, OLED, power, and ground were all connected correctly. Eventually I got the PCB to pass DRC with 0 errors and 0 unconnected items. The only warnings left were silkscreen warnings, which are not a big deal.
Most of my time today went into setup and troubleshooting. I linked my KiCad project to Hackatime using kicad-wakatime, got the project showing up on Hackatime, and confirmed that heartbeats are being sent when I save my KiCad files. I also ran into an issue where KiCad’s .history folder created duplicate schematic files, which confused kicad-wakatime, so I adjusted the backup settings and switched to saving manually while I work. I also started adding the required Hackpad KiCad libraries and worked on assigning footprints for the parts, including the switches and XIAO microcontroller footprint. My next step is to finish the schematic, make sure all footprints are correctly assigned, and then move on to PCB layout/routing.