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
39 changes: 39 additions & 0 deletions hackpads/EPad/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Epad
This is my submission for Hackpad V2!

## Inspiration
I was inspired by a macropad that I saw in a YouTube video a while back. It looked really cool so I tried to replicate it as best as I could from memory.

## Challenges
My biggest challenge was getting everything to line up correctly. I know I spent a long time just getting every hole at the top lined up with the switches.

## Features
- 12x cherry mx keys
- 1x rotary encoder switch
- KMK firmware

## PCB

| **Schematic** | **PCB** |
|---------------|---------|
|![](https://cdn.hack.pet/slackcdn/ff0a99e057239e2adf649a0528985796.png)|![](https://cdn.hack.pet/slackcdn/4191841fe6e9bd667cdf39350d526072.png)|

## CAD

Designed with Fusion 360. The guide helped a ton!

![](https://cdn.hackclubber.dev/slackcdn/ead36b9d1c1b09904461575c4e985a7b.png)
![](https://cdn.hack.pet/slackcdn/e168b3d68d40c1df74bbcc92daa0a3c6.png)

## Firmware

Made using KMK Firmware

## BOM
- 1 XIAO-RP2040
- 12x Cherry MX Switches
- 12x White keycaps
- 12x 35_SOD27_P7.62mm diodes
- 1x Rotary Encoder Switch
- 4x 8mm deep 3.332mm wide 4mm size m4x0.7 screws
- 1x knob for the rotary encoder
224,626 changes: 224,626 additions & 0 deletions hackpads/EPad/cad/Combined With PCB Components.step

Large diffs are not rendered by default.

126,119 changes: 126,119 additions & 0 deletions hackpads/EPad/cad/Combined Without PCB Components.step

Large diffs are not rendered by default.

33 changes: 33 additions & 0 deletions hackpads/EPad/firmware/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import board
from kmk.kmk_keyboard import KMKKeyboard
from kmk.keys import KC
from kmk.scanners import DiodeOrientation
from kmk.modules.encoder import EncoderHandler

keyboard = KMKKeyboard()

encoder_handler = EncoderHandler()
keyboard.modules.append(encoder_handler)

keyboard.col_pins = (board.GP6, board.GP7, board.GP0, board.GP3) # 5, 6, 7, 11
keyboard.row_pins = (board.GP4, board.GP2, board.GP1) # 10, 9, 8
keyboard.diode_orientation = DiodeOrientation.COL2ROW

encoder_handler.pins = ((board.GP4, board.GP2, board.GP3))

keyboard.keymap = [
[
KC.A, KC.B, KC.C, KC.D,
KC.E, KC.F, KC.G, KC.H,
KC.I, KC.J, KC.K, KC.L
]
]

encoder_handler.map = [
[
KC.VOLU, KC.VOLD
]
]

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