Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 20 additions & 14 deletions hackpads/minipad/README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,22 @@
# Minipad
My first time experimenting with PCB, keyboards, firmware and everything that comes along with it.
To keep things simple, I created a simple 4 switch grid (with one rotary encoder) direct wired to the microcontroller.
The case is another simple design, with a rectangular shape with curved corners, with some empty space to add some stickers or similar.

<img src="https://github.com/user-attachments/assets/31e4dd04-7e39-4f0b-9f51-8c2857c7320a" alt="MiniP" width="250"/>

# BOM
- 3x Cherry MX switches
- 1x EC11 Encoder
- 1x PCB
- 1x Xiao Seeed RP2040
- 3x Blank DSA Key Caps
- 1x sticker to put on top
# Hackpad
name: minipad
description: this is a three key macropad designed forminimal use and simplicity.
inspiration: wanted something small to fit on my desk but also look sleek/functionable
challenges: no experience in making pcbs or keyboards, had to learn a lot about the requirements and process
overall hackpad:
<img width="957" alt="image" src="https://github.com/user-attachments/assets/16321ce3-d0a1-401c-bd67-bd18465f8f21" />
schematic:
![image](https://github.com/user-attachments/assets/e2cb7c9d-147b-4e5f-8f97-e1f8fe91aa36)
pcb:
![image](https://github.com/user-attachments/assets/f4ab698f-7498-4ba4-aa5b-b5fa4d21ae57)
case:
<img width="477" alt="image" src="https://github.com/user-attachments/assets/f24992b6-aec6-449f-8154-06738a5e38e0" />

BOM:

1x 3d printed case
4x m3.5 12mm screws
3x cherry mx switches
1x XIAO RP2040
3x DSA keycap
1x pcb
66,238 changes: 66,238 additions & 0 deletions hackpads/minipad/cad/minipad.step

Large diffs are not rendered by default.

26 changes: 26 additions & 0 deletions hackpads/minipad/firmware/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import board

from kmk.kmk_keyboard import KMKKeyboard
from kmk.scanners.keypad import KeysScanner
from kmk.keys import KC
from kmk.modules.macros import Press, Release, Tap, Macros

keyboard = KMKKeyboard()

macros = Macros()
keyboard.modules.append(macros)

PINS = [board.D3, board.D2, board.D1]

keyboard.matrix = KeysScanner(
pins=PINS,
value_when_pressed=False,
)

keyboard.keymap = [
[KC.MACRO(Press(KC.LCTL), Tap(KC.C), Release(KC.LCTL)), KC.MACRO(Press(KC.LCTL), Tap(KC.V), Release(KC.LCTL)), KC.MACRO("Hello world!"),]
]

# Start kmk!
if __name__ == '__main__':
keyboard.go()
2 changes: 2 additions & 0 deletions hackpads/minipad/pcb/minipad.kicad_pcb
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
(kicad_pcb (version 20240108) (generator "pcbnew") (generator_version "8.0")
)
83 changes: 83 additions & 0 deletions hackpads/minipad/pcb/minipad.kicad_prl
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
{
"board": {
"active_layer": 0,
"active_layer_preset": "",
"auto_track_width": true,
"hidden_netclasses": [],
"hidden_nets": [],
"high_contrast_mode": 0,
"net_color_mode": 1,
"opacity": {
"images": 0.6,
"pads": 1.0,
"tracks": 1.0,
"vias": 1.0,
"zones": 0.6
},
"selection_filter": {
"dimensions": true,
"footprints": true,
"graphics": true,
"keepouts": true,
"lockedItems": false,
"otherItems": true,
"pads": true,
"text": true,
"tracks": true,
"vias": true,
"zones": true
},
"visible_items": [
0,
1,
2,
3,
4,
5,
8,
9,
10,
11,
12,
13,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
32,
33,
34,
35,
36,
39,
40
],
"visible_layers": "fffffff_ffffffff",
"zone_display_mode": 0
},
"git": {
"repo_password": "",
"repo_type": "",
"repo_username": "",
"ssh_key": ""
},
"meta": {
"filename": "minipad.kicad_prl",
"version": 3
},
"project": {
"files": []
}
}
Loading