mirror of
https://github.com/System-End/hackpad.git
synced 2026-04-19 22:15:14 +00:00
Switch matrix guide
This commit is contained in:
parent
58c3aa4443
commit
e4e33692c9
8 changed files with 34 additions and 5 deletions
BIN
website/public/docs/v2/keymatrixdiode.png
Normal file
BIN
website/public/docs/v2/keymatrixdiode.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 271 KiB |
BIN
website/public/docs/v2/keymatrixschematic.png
Normal file
BIN
website/public/docs/v2/keymatrixschematic.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 458 KiB |
BIN
website/public/docs/v2/keymatrixschematicassign.png
Normal file
BIN
website/public/docs/v2/keymatrixschematicassign.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 473 KiB |
BIN
website/public/docs/v2/keymatrixschematicconnected.png
Normal file
BIN
website/public/docs/v2/keymatrixschematicconnected.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 395 KiB |
BIN
website/public/docs/v2/keymatrixschematicdiode.png
Normal file
BIN
website/public/docs/v2/keymatrixschematicdiode.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 657 KiB |
|
|
@ -12,11 +12,37 @@ Are you not satisfied with a simple PCB? Here you have more information on advan
|
|||
<a name="matrix"/>
|
||||
## Switch Matrix
|
||||
|
||||
[If you want, here is a detailed explenation of how key matrices works](https://pcbheaven.com/wikipages/How_Key_Matrices_Works/)
|
||||
[If you want, here is a detailed explenation of how key matrices works.](https://pcbheaven.com/wikipages/How_Key_Matrices_Works/)
|
||||
|
||||
Now you aren't satisfied with the number of keys you have? With switch matrices you can have more switches on less pins! (Wow this is a good sales pitch, hire me adafruit :3)
|
||||
|
||||
First, open up your schematic and place the switches in a grid shape:
|
||||
|
||||
<img src="/docs/v2/keymatrixschematic.png" className="max-w-96" />
|
||||
|
||||
If you want a non-symetric shape for your keys, it's fine to delete any switch you don't want.
|
||||
|
||||
Now add diodes. Their schematic name is `D`. Place them at one end of the switch (any end, but it should be the same for all the switches), **pointing away from the switch**:
|
||||
|
||||
<img src="/docs/v2/keymatrixschematicdiode.png" className="max-w-96" />
|
||||
|
||||
Now, connect each row of diode heads together to form a row, and connect the each row to a GPIO pin. Do the same with the each column of switches (on the side without the diode) to form a column. Connect each column to a GPIO pin too.
|
||||
|
||||
<img src="/docs/v2/keymatrixschematicconnected.png" className="max-w-96" />
|
||||
|
||||
Now you do the same things assigning the footprints, but for diodes you will use Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal as the footprint.
|
||||
|
||||
<img src="/docs/v2/keymatrixschematicassign.png" className="max-w-96" />
|
||||
|
||||
Congrats! You got a working key matrix. Nothing really changed for the PCB routing part. Just as a side note, don't put the diodes directly on the switches (or they will collide in real life). I recommend putting them on the other side of the board (flip using F) and between the switches:
|
||||
|
||||
<img src="/docs/v2/keymatrixdiode.png" className="max-w-96" />
|
||||
|
||||
<a name="lcd"/>
|
||||
## OLED
|
||||
[Download this footprint library and unzip it](https://download-directory.github.io/?url=https%3A%2F%2Fgithub.com%2Fcheyao%2Fmacropad%2Ftree%2Fmain%2FPCB%2Fthird_party%2FKiCad-SSD1306-128x64-master)
|
||||
[Download this footprint library and unzip it](https://download-directory.github.io/?url=https%3A%2F%2Fgithub.com%2Fcheyao%2Fmacropad%2Ftree%2Fmain%2FPCB%2Fthird_party%2FKiCad-SSD1306-128x64-master). Add it to kicad.
|
||||
|
||||
Be sure to not use the built in footprint! The correct footprint should be called 128x64OLED.
|
||||
|
||||
<a name="expander"/>
|
||||
## IO expander
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
Here I will write out some tips and trics I learnt about in my designs. Feel free to add any of yours!
|
||||
|
||||
- Google is your best friend, search up anything u don't know. (And the cake is a lie :P)
|
||||
- Spam vias everywhere! They are free.
|
||||
- Try routing everything on one layers first, if you can't without making a big loop, move to the second layer. This keeps your board clean.
|
||||
- Make multiple revisions! I rerouted my first macropad like 10 times while adding stuff.
|
||||
|
|
|
|||
|
|
@ -22,13 +22,15 @@ This process is going to be broken into 3 parts, each with its own sub-parts:
|
|||
- [kmk!](#kmk)
|
||||
|
||||
|
||||
If you're unsure about anything, send a message in #hackpad! We have so many eager people to help.
|
||||
If you're unsure about anything, send a message in #hackpad! We have so many eager people to help. (Please try searching your question in the search bar first.)
|
||||
|
||||
There's also [this](/resources) giant wall of resources to reference!
|
||||
|
||||
Here is also a guide on [advanced PCB components](/advancedPCB)
|
||||
Here is also a guide on [advanced PCB components](/advancedPCB).
|
||||
|
||||
[Don't forget to find out some Tips'n Tricks here!](/tipsntricks)
|
||||
Don't forget to find out some [Tips'n Tricks here!](/tipsntricks)
|
||||
|
||||
[Look up DRC errors here :D](/tipsntricks)
|
||||
|
||||
Lets start with:
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue