Skip to content
Closed
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
119,996 changes: 119,996 additions & 0 deletions hackboards/Automaticity S Keyboard/CAD/Automaticity S Keyboard.step

Large diffs are not rendered by default.

34 changes: 34 additions & 0 deletions hackboards/Automaticity S Keyboard/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Automaticity S

Automaticity S is a 70 key split keyboard that uses KMK firmware. Its based on a 60% keyboard design, however, I managed to cram in the arrow keys.

<p align="center">
<img src="https://github.com/user-attachments/assets/3cc6c5e7-69dd-43e1-aa5b-98405ac5c757" alt="description" width="600">
</p>

Schematic:
<p align="center">
<img width="584" alt="image" src="https://github.com/user-attachments/assets/00fa8b8c-8ef5-4d30-9c99-3e99fba66d4c" />
</p>

Copper layers of the PCB:
<p align="center">
<img alt="image" src="https://github.com/user-attachments/assets/9420e17e-9737-4aef-9735-f8d7c08793cb" width="600"/>
</p>

Case(s):
<p align="center">
<img width="600" alt="image" src="https://github.com/user-attachments/assets/f869f70b-df8f-4c1d-98f4-6604469170bc" />
</p>

# BOM

| Parts | Quantity |
|-------------------------------|--------------|
| Keygeek Keylin Switches | 70 |
| Through-hole 1N4148 Diodes | 70 |
| Orpheus Pico | 2 |
| EPOMAKER Lavender Keycaps Set | 1 (133 keys) |
| TX "AP" Stabilizers | 1 TKL kit |
| M3 x 16mm (20px) | 1 |
| M3 Nuts (50pc) | 1 |
22 changes: 22 additions & 0 deletions hackboards/Automaticity S Keyboard/firmware/Left Split Keyboard.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
from kmk.kmk_keyboard import KMKKeyboard
from kmk.keys import KC
from kmk.scanners.digital import DiodeOrientation
import board

keyboard = KMKKeyboard()

keyboard.col_pins = (board.D4, board.D3, board.D2, board.D1, board.D0)
keyboard.row_pins = (board.D5, board.D6, board.D7, board.D8, board.D9, board.D10)
keyboard.diode_orientation = DiodeOrientation.COL2ROW

keyboard.keymap = [
[KC.SPACE, KC.B, KC.G, KC.T ,KC.N5],
[KC.LALT, KC.V, KC.F, KC.R, KC.N4],
[KC.LGUI, KC.C, KC.D, KC.E, KC.N3],
[KC.LCTRL, KC.X, KC.S, KC.W, KC.N2],
[KC.TRNS, KC.Z, KC.A, KC.Q, KC.N1],
[KC.GRAVE, KC.SHIFT, KC.CAPSLOCK, KC.TAB, KC.ESCAPE],
]

if __name__ == '__main__':
keyboard.go()
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
from kmk.kmk_keyboard import KMKKeyboard
from kmk.keys import KC
from kmk.scanners.digital import DiodeOrientation
import board

keyboard = KMKKeyboard()

keyboard.col_pins = (board.D4, board.D3, board.D2, board.D1, board.D0)
keyboard.row_pins = (board.D5, board.D6, board.D7, board.D8, board.D9, board.D10,board.D11,board.D12)
keyboard.diode_orientation = DiodeOrientation.COL2ROW

keyboard.keymap = [
[KC.SPACE, KC.N, KC.H, KC.Y ,KC.N6],
[KC.RALT, KC.M, KC.J, KC.U, KC.N7],
[KC.PSCREEN, KC.COMMA, KC.K, KC.I, KC.N8],
[KC.RCTRL, KC.DOT, KC.L, KC.O, KC.N9],
[KC.RGUI, KC.SLASH, KC.SCOLON, KC.P, KC.N0],
[KC.LEFT, KC.SHIFT, KC.QUOTE, KC.LBRACKET, KC.MINUS],
[KC.DOWN, KC.UP, KC.F1, KC.RBRACKET, KC.EQUAL],
[KC.RIGHT, KC.F2, KC.ENTER, KC.BSLASH, KC.BSPACE],

]

if __name__ == '__main__':
keyboard.go()
Loading