Timeline
GB114
added to the journal ago
Routed Diodes to the PCB layout
Placed the diodes to their corresponding keyswitches and routed them according to their rows. I also added the power/battery management components and did my best to route them while keeping hand soldering in mind. The next step is for me to add the USB interface to the main board and also maybe add an SWD interface to help with testing.



GB114
added to the journal ago
Added Diodes to the schematic
I added the diodes for the keyboard matrix and assigned footprints for them. Now I have to add all of these to the PCB layout and wire them. I also need to route the battery charging system but that's besides the point.


GB114
added to the journal ago
Finished working on the power management circuit
With the help of blue entity, I was able to rework the Battery Charging and Power management system for my keyboard. I have previously used Gemini to assist me with this but the circuit was totally wrong from the ones on the datasheet. Thanks to blue entity, I can read and understand datasheets now. :yay:

GB114
added to the journal ago
Working on power management
Since I'm using an nrf52840 module with no charging capabilities, I have to implement that functionality myself. I used U4 (MCP73831-4-OT) to make sure the charging of the lithium ion batteries is correct. Additionally, U5 (LP2985−3.3) is a Low Dropout regulator that insures the battery is providing a stable supply of V3.3.

GB114
added to the journal ago
Routed the key matrix for the main board
Ok. So, it has been a cumbersome process and I wasn't sure if I was doing it correctly, mainly because the density of the routes, but it came out pretty great.



GB114
added to the journal ago
Cleaned up the PCB layout and started routing
I rearranged the key switches based on their placement on the schematic. I also connected the net labels to the nrf and routed the PCB layout based on it.

GB114
added to the journal ago
Cleaned up the schematic
Now the schematic is easier to read and follow. I think this would also make the keymatrix scanning easier than whatever I had earlier. The missing spots on the schematic are there because some keys take longer spaces than others.

GB114
added to the journal ago
Cleaning up the layout
I ditched the previous wiring system for simplicity so now I have to restructure everything before I try to wire it. These two images are for the schematic and PCB layout. As you can see, I'm just getting started on editing it.


GB114
added to the journal ago
Laid out the layout of the main board
Using the image I posted before as a reference I was able to put the key switches in a sensible layout. Overall, it needs a little bit of cleaning up but I had fun trying to figure out where to place them. And there are a few footprints, like the space bar and backspace buttons, that aren't the exact size I wanted so I just gave them more space than their footprint so that if I had the chance, I could make the key caps in sizes like 2U and 5U.



GB114
added to the journal ago
Got started on the Keyboard matrix
After doing a lot of research, I decided to get started on the main board's keyboard matrix. I am thinking of doing something similar to the picture below and I am not adding the diodes yet because I am testing the layout of the keys.



GB114
added to the journal ago
Started working on the main board
After consulting many sources, I have decided to use a Hierarchical sheets to make the schematics for the two modules (Main keyboard and Key pad module).



GB114
added to the journal ago
Finalized The KeyPad (For real this time)
Moved the XIAO to the other side of the PCB. I did that to reduce the PCB size which may also decrease costs and I guessed it would make it look better.




GB114
added to the journal ago
Finalized The KeyPad (Hopefully)
With the help of @Koeg, I figured why the footprint and 3D models didn't align -- it was because the sockets were supposed to be on the opposite side of the PCB from the key switches :face-palm:. I prefer the sharp corners over the rounded ones though.




GB114
added to the journal ago
Added Modular Connectors
We're reaching the final few stages to completing our keypad module. I am planning to wire the test pads on the bottom left to pogo-pins which can connect to other modules. I have to get feedback on it first though.

GB114
added to the journal ago
Rerouted the MCP Once More
Since my modular keypad was supposed to be connected to the main keyboard from the right side, I decided to free up some space from the left side of the keypad. Had to rearrange some routes but I think it should be fine for now.

GB114
added to the journal ago
Added Mounting Holes and Defined Edge Cuts
Today I added 6 mounting holes and put four of them on the corners and the other two in the middle. I have also defined an edge cut that came out to be around 119X81 mm^2. I also tried to look for 3d models that fit my HS socket but couldn't find one since all of them are inverted (I inverted the one in the picture below but that just breaks the rendering).

GB114
added to the journal ago
Rearranged the key switches
The blueprint chat seems to be offline right now. I tried asking questions but I didn't get anything back so I decided to continue working on it by my self. From other projects I saw that you can place the diodes on the padding area so I did that, but I wanted to make sure that the diode doesn't affect the key switch placement so I went looking for 3d models for the key switch, I found one but couldn't get it to fit so I scratched that. Finally, I rerouted the entire key matrix as the image you see below.

GB114
added to the journal ago
Rerouted the MCP
I needed to connect the pins that set the address for the MCP to the XIAO so I decided to rotate it around. This meant that I had to change the whole routing again.

GB114
added to the journal ago
Routed the PCB (Partially)
I routed the PCB before realizing that I have to follow the hackpad tutorial. I am just happy though because I didn't have the internet during the time that I routed it and I think it turned out pretty great. (Except for the battery pins ofc)

GB114
added to the journal ago
Waiting for Peer Review
Arranged my keypad and now I am waiting for feedback from the #blueprint and #electronics community. So far, I think it is great, but I am looking for comments from someone more knowledgeable before I start routing.

GB114
added to the journal ago
Arranged the Key Switches
I have arranged the key switches aligned with 1mm grid. This took a lot of time because when you try to move the footprints together, the X or Y positions misalign from the grid. I don't think there is a fix for this so ig I'll have to work with it.

GB114
added to the journal ago
Started working on the PCB layout
I was arranging the key switches after finishing my schematic. I noticed that my keys weren't similar to the ones being used in the tutorial (because I liked how they looked). Now my layout is messed up so I am trying to find KiCad shortcuts that make this process faster.


GB114
added to the journal ago
(Hopefully) Finished the Schematic
I have separated the key matrix connection into an MCP23017 and set it to communicate with the XIAO through SDA and SCL pins. Using the leftover pins I connected them to the module connectors so I can use them to transfer information between the main board (or other modules) and the keypad module. I may add LEDs to this but since I am planning to give the main board RGB LEDs, I am going to give this module only back light (possibly white) LEDs that may have dimming properties.

GB114
added to the journal ago
Decided to use an IO Expander
I decided to use an IO expander for my keyboard matrix. I couldn't find one with 9 pins so I chose to use the default one given in the symbol library of KiCad. I think this project is getting complex day by day and I hope I finish it.

GB114
added to the journal ago
Researched ALOT
I wanted to have something like MagSafe, magnetic connectors, between my keyboard modules, so I looked into various types of connections. I finally settled on using magnetic pogo-pins and decided to use a 6 pin connector for power and I2C connections between modules. I am now facing issues because I now need 6 total free pins (including power, SDA, SCL, and other two GPIO pins for other extra needs). I am thinking of rewiring my KeyMatrix in order to have some free pins.

GB114
added to the journal ago
Assigned Footprints
Assigned all of the footprints.
I wish if the guide provided more information on which key switch was used and why. The guide says "chalk hot swap sockets from marbastlib", but when I checked I didn't find any switch called "chalk" in the repository. I couldn't also get the footprints from marbastlib to appear in the footprint selection tab so I spent a lot of time there. I finally decided to go with the default Keyboard switches in KiCad, "Cherry_MX" which I think would work.

GB114
added to the journal ago
Made schematics V`1
I made the first iteration of the schematic.
I think it looks cool and I tried to make it organized like what you see in the image. I had to experiment a bit to find where the blue rectangles from the guide come from and I think those were great additions to my schematic page.

GB114
added to the journal ago
Installed KiCad and the required libraries
I have successfully installed kicad and the necessary libraries needed to work on this project. It took a lot of trial and error to get it but in the end I have figured out how to add those necessary libraries.
I am thinking of making a number pad that can connect both wirelessly and wired. (It may also be part of my bigger project which I am not going to spoil here.)

GB114
started Keyboard ago