You are browsing as a guest. Sign up (or log in) to start making projects!

Numpad Macropad

Hardware
  • 17 Devlogs
  • 30 Total hours

I'm decently familiar with programming and CAD modelling, yet when it comes to hardware, I'm an absolute novice. I decided to make a 10 key macropad for entering various unicode characters for a much-needed hardware introduction.

Open comments for this post

1h 46m logged

Organised the files needed for shipping the project, installed the QMK dependencies and created a repository for the project. This step took a while since OneDrive was clashing with Git, causing rested repositories and requiring a clean sweep of the .git folder.

0

Loading discussion…

0
6
Open comments for this post

1h 36m 2s logged

Added a USB-C cable to the mockup. The alignment needed some fiddling with since apparently a USB-C port is a rounded rectangle where the radius is <1/2 of its height, but the connector has the radius equal to 1/2 its height, creating a capsule shape. I should now be able to start on the firmware.

0

Loading discussion…

0
8
Open comments for this post

1h 49m 2s logged

Finished organising all sheet bodies and normal bodies in the PCB directory. I unioned an insane quantity (e.g. the XIAO had ~30 bodies), but sheet bodies (and non-contacting bodies) are not able to be unioned, hence the organisation required. I should be essentially done with the mockup (a few finishing touches left) and I might be able to start on the firmware.

0

Loading discussion…

0
5
Open comments for this post

3h 58m logged

Added the PCB to the mockup. This took quite a while, since the first time I tried it, I found out that due to the 0.1 mm grid I was using, the spacing of the keyswitches was 19 mm instead of the default (and correct to real life) 19.05 mm. This had to be painstakingly adjusted due to the fact that each row and column had to be moved up/right by its 0.05(ID-1) mm. All of the traces (but luckily none of the components (other than the keyswitches of course (and the diodes too (this leaves just the XIAO, could’ve just said that))) due to the fact that the XIAO is in the bottom left (hence the movement towards the top right)). I found a few other minor misalignments of pin heights and trace heights (widths too) in the process. The width and height of the PCB then had to be adjusted (Edge.cuts in KiCad and the variables in Shapr3D). When I finally began aligning everything again (by using the align tool on SW0’s large pin hole and an alignment cylinder made on top of the plate), I found out that there had to be a gap between the PCB and the plate due to the unorthodox 3 mm plate thickness. I did a bit of research and asked AI, with which cross-referencing the hardware list and the screw lengths led me to believe that 3.5 mm was the depth of the gap. However, it turned out to be false (it was 2.15, found through z-aligning the plastic bump on SW0 and the PCB). I then found out that I’d forgotten to correct 3 rows (out of 4) and had forgotten about SW0’s row existing, meaning I had to go through the same process of shifting 9 keyswitches by 0.05 mm (along with their traces (but none of the diodes since no horizontal shifting was done)). When I went back to the z-alignment, I realised that there were 2 “floating” layers above the top of the substrate layer of the PCB (a soldermask and silkscreen). I found the soldermask to be the coat of paint and assumed the silkscreen to be a projection of the copper layer, meaning that I had to align the plastic bumps to the soldermask layer. I hypothesise that the explanation for the “floating” effect of the “flat” layer is that KiCad isn’t advanced/comprehensive enough to make the soldermask its real size, and to compensate and keep it a 3D body (that looks like a flat layer) they just put the top layer in its correct position and the bottom one infinitesimally close to it instead of at the proper substrate core. This would’ve explained why it was measured as having no thickness as well as appearing as a floating layer (it’s too small for Shapr3D to measure (fun fact: zooming in way beyond the minimum 0.001 mm grid size did reveal some thickness)). The diodes also clipped the plate, however, this turned out to be because of the 1 mm gap between the diode and the PCB that’s standard for machine-manufactured PCBs (which obviously won’t happen in real life while hand-soldering). Apologies for the rant, had to do it to explain the 4 hours taken for this step.

*this is in section view to show the PCB with the rest of the components better.

0

Loading discussion…

0
8
Open comments for this post

1h 29m logged

Added the keyswitches to the Shapr3D mockup, and everything fits perfectly. The quirks of the alignment tool made this decently hard to achieve since I wasn’t able to just draw corresponding faces and set their coordinates equal to each other.

0

Loading discussion…

0
12
Open comments for this post

42m 1s logged

Bugfixed to allow for the XIAO’s 3D mockup to be loaded. Turns out the footprint designer had nicknamed the path for the XIAO “footprints”, which made for several errors to be thrown if the path was more aptly named something like “XIAO”.

0

Loading discussion…

0
8
Open comments for this post

3h 52m 7s logged

Worked on the CAD mockup of the PCB by modifying the root footprints. In the process, I was able to organise the user files as per KiCad syntax, which should help when shipping the project.

0

Loading discussion…

0
8
Open comments for this post

49m logged

Made small trace adjustments to the PCB (but I should be done). I’ll have to adjust the case and account for the fact that the switches aren’t centred, but that’s tomorrow’s problem.

0

Loading discussion…

0
10
Open comments for this post

2h 18m 1s logged

Reworked the whole PCB since I forgot that front and back layers existed. Also updated the CAD model, however, forgot to record it and 50 minutes of my time was lost (though that was before the rework).

0

Loading discussion…

0
8
Open comments for this post

1h 36m 1s logged

Finished updating the PCB and now there should be no more changes to be made. The case has also been updated, although there aren’t any noticeable differences due to the fact that the only changes made were to accommodate the newly finished PCB.

0

Loading discussion…

0
6
Open comments for this post

1h 3m 1s logged

Worked on the mockup (added the keyswitches) and rotated the XIAO for an actually feasible angle. I’ll need to add the XIAO in the mockup tomorrow. I also need to reroute the row and column global pads since now the order of the traces needs to be flipped.

0

Loading discussion…

0
6
Open comments for this post

59m logged

Finished designing the case for the keyboard. I’ll have to add a USB insert later, but that will be completed along with the mockup. The PCB looks fine, but before printing the case at home, I’ll double check it with the measurements of the PCB to ensure corrections can be made.

0

Loading discussion…

0
5
Open comments for this post

53m logged

Made minor changes to the layout of the tracks and decreased the footprint of the whole PCB. Turns out there was yet ANOTHER pad that I’d forgotten to connect (don’t ask how).

0

Loading discussion…

0
3
Open comments for this post

3h 57m logged

Decided to take the time to reroute the whole thing. Originally, it was for aesthetics and maintainability, but then an hour in, I realised I’d forgotten to connect SW7 and had to restart. Realised that the “optimal” layout was concentric traces corresponding to switch numbers in descending order. Still have a bit more to do but that’s in terms of proximity of the tracks but decided that this was enough for the day.

0

Loading discussion…

0
3
Open comments for this post

1h 0m logged

Finished tracing all of the plates, which was a pain. Initially, the pin order on the XIAO was messed up (which, with the help of AI and the spacepad reference turned out to be misplaced junctions). The tracing took several tries to get a good layout, which I’m (mostly) satisfied with. It isn’t optimal, but I’ll take it. I guess I’m moving onto the (too) familiar CAD next session for the case design.

0

Loading discussion…

0
6
Open comments for this post

1h 24m logged

Finished working on the schematics for the upgraded 10-key macropad. Funnily enough, a decent amount of time was spent formatting all of the text (with the help of some “research”) since for the longest time, I couldn’t figure out how to make the font size smaller. Almost forgot to horizontally flip the diodes xd. Thanks to the spacepad project for inspiration for the structure of the key matrix (goes to show just how much of a novice I am when it comes to PCB design).

0

Loading discussion…

0
7
Open comments for this post

36m 1s logged

Created the schematics of and wired the example 3-switch PCB. Somehow managed to spend 5 minutes figuring out how to assign footprints to parts (turns out you just have to double-click). Next, I’ll have to add more switches (7 more for a numpad), but that will have to wait.

0

Loading discussion…

0
6

Followers

Loading…