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
43,573 changes: 43,573 additions & 0 deletions hackpads/Williams-Hackpad/CAD/Wills Hackpad v2 v3.step

Large diffs are not rendered by default.

41 changes: 41 additions & 0 deletions hackpads/Williams-Hackpad/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<h1>WILLIAMS HACKPAD</h1>
<p1>HELLO!!!! I made an awesome 6 key micropad with 2 rotary encoders and 2 LEDS and uses QMK fw.

This is a project for hackclub (which is really awesome if you want to check it out)</p1>
<h2>CAD Model:</h2>
<p1> I really don't have much to say, my fushion is ok, because I have a 3D printer, but ya'know, fushion sucks </p1>
<img src="https://yt3.ggpht.com/6-VRuSasB1pfzJvVmzNhKTFhWPJr_rgPfWLnh3jEkj6TjyO0RXxhI0WPY6y8xaNECLwRMZTRaTix=s1600-c-fcrop64=1,2cc10000d33effff-nd-v1">

<h2>PCB</h2>
<p1> OWNWWHWHHWHWH, this is so exciting, I realy enjoyed designing the pcb, I did it in one day and LOVEE IT!!!! It was done in kicad:
schematic </p1>
<img src="https://yt3.ggpht.com/eqc3y8V0tRHNrANAZr02oUb1ksKfn8bO4OY46tu5V0WE_OTXFx1OQ4pIhHn0jN2OfQcbzt2gl5PX=s1600-c-fcrop64=1,2cc10000d33effff-nd-v1">
<img src="https://yt3.ggpht.com/-HVmkObIJJ49GNNAl7E9l29NGhIUtoiOtZfBWenqECFixZHoHtVlIiP-yR3FfNohseb071tOux75WQ=s1600-c-fcrop64=1,2cc10000d33effff-nd-v1">
<h2> Firmware (I'll give you a hint, is QMK)</h2>
<p1>
-The first rotary encoder changes volume the, second pages up and down in a page.

-6 keys that I am going to use for macros

-gooly goodness I don't like qmk, but we perserve!!!!! :)))

-Imma make the firmware actually good when the macropad arrives

<img src="https://yt3.ggpht.com/yknhpgLqxxmp8Dxq2fMxTDps766ZCukeLEOROiSA6fuKehcVt_ZeikQTO_cOGv_hehfstuxfen_b=s1600-c-fcrop64=1,2cc10000d33effff-nd-v1">
</p1>
<h2> BOM: </h2>
<p1>Here's what I need:

-6 Cherry MX keycaps

-6 keycaps

-2 SK6812MINI LED's

-2 EC11 Rotary encoders

-1 XIAO RP2040

-1 Case (2 3D printed parts)

-What ever you think I need </p1>
40 changes: 40 additions & 0 deletions hackpads/Williams-Hackpad/firmware/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#pragma once
#define RGBLIGHT_LED_COUNT 2
#define WS2812_LED_COUNT 2
#define WS2812_DI_PIN 6



#define WS2812_DI_PIN GP6
#define RGBLED_NUM 2
#define WS2812_LED_COUNT RGBLIGHT_LED_COUNT

// Bootloader for bootmagic to occur
#define BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP

// My layout dimensions
#define MATRIX_ROWS 2
#define MATRIX_COLS 3
#define MCU RP2040

// Pins for the rotary encoders and LEDs
#define ENCODER_DIRECTION_FLIP
#define ENCODER_RESOLUTION 4
#define ENCODER_A_PINS { GP28, GP27 }
#define ENCODER_B_PINS { GP29, GP26 }
#define LED2_PIN GP6

// Matrix settings (key debounce time, etc)
#define DEBOUNCE 5

// RGB config
#define RGBLED_NUM 2 // Number of LEDs
#define RGBLIGHT_LIMIT_VAL 120
#define RGBLIGHT_LIMIT_VAL 120 // Maximum brightness

#define MANUFACTURER "William"
#define DIRECT_PIN_INPUTS // Disables matrix and uses direct pins

//sry towards the end I gave up on annotations

35 changes: 35 additions & 0 deletions hackpads/Williams-Hackpad/firmware/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#include <stdint.h> // For uint8_t and uint16_t
#include <stdbool.h> // For bool
#include QMK_KEYBOARD_H // Use quotes for local headers

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_A, KC_B, KC_C, // Row 1
KC_D, KC_E, KC_F // Row 2
)
};

// Rotary Encoder Functionality
bool encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) { // First encoder
if (clockwise) {
tap_code(KC_VOLU); // Volume Up
} else {
tap_code(KC_VOLD); // Volume Down
}
} else if (index == 1) { // Second encoder
if (clockwise) {
tap_code(KC_PGDN); // Page Down
} else {
tap_code(KC_PGUP); // Page Up
}
}
return true;
}

// LED Control
void keyboard_post_init_user(void) {
// Set initial LED state
rgblight_enable();
rgblight_sethsv(HSV_RED);
}
26 changes: 26 additions & 0 deletions hackpads/Williams-Hackpad/firmware/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# williams_hackpad

![williams_hackpad]

*HELLO!!!! This is my first hackclub project and I have been super exicted about it (just ask my mom I've bearly slept and am flunking out of school!!!! Ok but this micro-pad is a 2x2 ORTHO with 2 rotary encoders and 2 LEDs, this is my first time working with qmk so please don't judge my terrible code! Thanks!)*

* Keyboard Maintainer: [William](https://github.com/BOTwillplayz)
* Hardware Supported: *6 Cherry MX brown switches, 2 rotary encoders, 2 leds, 1 XIAO RP2040*

Make example for this keyboard (after setting up your build environment):

make williams_hackpad:default

Flashing example for this keyboard:

make williams_hackpad:default:flash

See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

## Bootloader

Enter the bootloader in 3 ways:

* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
12 changes: 12 additions & 0 deletions hackpads/Williams-Hackpad/firmware/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
MCU = RP2040
BOOTLOADER = rp2040
ENCODER_ENABLE = yes
SRC += matrix.c
RGBLIGHT_ENABLE = yes
ROTARY_ENCODER_ENABLE = yes
EXTRAFLAGS += -Wno-error
WS2812_DRIVER = vendor
RGBLIGHT_DRIVER = ws2812
PLATFORM = chibios
CFLAGS += -DWS2812_LED_COUNT=10 -DRGBLIGHT_LED_COUNT=10 -DWS2812_DI_PIN=10

1 change: 1 addition & 0 deletions hackpads/Williams-Hackpad/pcb/#auto_saved_files#
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/Users/williamdownes/Desktop/HackPad resources/pcb/_autosave-Hackpad v1.kicad_sch
Binary file added hackpads/Williams-Hackpad/pcb/Gerber.zip
Binary file not shown.
Loading