From 8468502d0ae4ea1fe628c3431bd6659dd2a34af0 Mon Sep 17 00:00:00 2001 From: Ben Park <152503119+benPark20@users.noreply.github.com> Date: Tue, 22 Oct 2024 18:35:40 -0400 Subject: [PATCH] Add files via upload --- .../Firmware/nummacropad/config.h | 49 +++++++++++++++++++ .../Firmware/nummacropad/keyboard.json | 48 ++++++++++++++++++ .../nummacropad/keymaps/default/keymap.c | 30 ++++++++++++ .../Firmware/nummacropad/readme.md | 27 ++++++++++ .../Firmware/nummacropad/rules.mk | 32 ++++++++++++ 5 files changed, 186 insertions(+) create mode 100644 hackpads/NumMarcroPad/Firmware/nummacropad/config.h create mode 100644 hackpads/NumMarcroPad/Firmware/nummacropad/keyboard.json create mode 100644 hackpads/NumMarcroPad/Firmware/nummacropad/keymaps/default/keymap.c create mode 100644 hackpads/NumMarcroPad/Firmware/nummacropad/readme.md create mode 100644 hackpads/NumMarcroPad/Firmware/nummacropad/rules.mk diff --git a/hackpads/NumMarcroPad/Firmware/nummacropad/config.h b/hackpads/NumMarcroPad/Firmware/nummacropad/config.h new file mode 100644 index 00000000..c32f1fed --- /dev/null +++ b/hackpads/NumMarcroPad/Firmware/nummacropad/config.h @@ -0,0 +1,49 @@ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x03A8 +#define PRODUCT_ID 0xA701 +#define DEVICE_VER 0x0001 +#define MANUFACTURER YourName +#define PRODUCT 4x4 Macropad RP2040 +#define DESCRIPTION A simple 4x4 macropad using RP2040 + +/* Key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 4 + +/* Pin definitions */ +#define MATRIX_ROW_PINS { D3, D4, D5, D6 } // Define your row pins (GPIO0 to GPIO3 for example) +#define MATRIX_COL_PINS { D0, D1, D2, D10 } // Define your column pins (GPIO4 to GPIO7 for example) + +#define UNUSED_PINS + +/* Diode direction */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce configuration */ +#define DEBOUNCE 5 + +/* RGB LEDS */ +#define WS2812_DI_PIN 10 +#define RGBLIGHT_LED_COUNT 10 + +/* Encoder */ +#define ENCODER_A_PINS { D8 } +#define ENCODER_B_PINS { D7 } +#define ENCODER_RESOLUTION 4 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM, or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +#define LOCKING_RESYNC_ENABLE + +/* Encoder support (if needed, set in rules.mk) */ +// #define ENCODERS_PAD_A { GP14 } +// #define ENCODERS_PAD_B { GP15 } +// #define ENCODER_RESOLUTION 4 + +/* Bootmagic Lite keycode (optional, allows resetting keymap) */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/hackpads/NumMarcroPad/Firmware/nummacropad/keyboard.json b/hackpads/NumMarcroPad/Firmware/nummacropad/keyboard.json new file mode 100644 index 00000000..191f28d3 --- /dev/null +++ b/hackpads/NumMarcroPad/Firmware/nummacropad/keyboard.json @@ -0,0 +1,48 @@ +{ + "manufacturer": "Ben Park", + "keyboard_name": "nummacropad", + "maintainer": "benPark20", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["D3", "D4", "D5", "D6"], + "rows": ["D0", "D1", "D2", "D10"] + }, + "processor": "RP2040", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT_ortho_4x4": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3} + ] + } + } +} \ No newline at end of file diff --git a/hackpads/NumMarcroPad/Firmware/nummacropad/keymaps/default/keymap.c b/hackpads/NumMarcroPad/Firmware/nummacropad/keymaps/default/keymap.c new file mode 100644 index 00000000..e4fe5bbe --- /dev/null +++ b/hackpads/NumMarcroPad/Firmware/nummacropad/keymaps/default/keymap.c @@ -0,0 +1,30 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┐ + * │ 7 │ 8 │ 9 │ / │ + * ├───┼───┼───┼───┤ + * │ 4 │ 5 │ 6 │ * │ + * ├───┼───┼───┼───┤ + * │ 1 │ 2 │ 3 │ - │ + * ├───┼───┼───┼───┤ + * │ 0 │ . │Ent│ + │ + * └───┴───┴───┴───┘ + */ + [0] = LAYOUT_ortho_4x4( + KC_P7, KC_P8, KC_P9, KC_PSLS, + KC_P4, KC_P5, KC_P6, KC_PAST, + KC_P1, KC_P2, KC_P3, KC_PMNS, + KC_P0, KC_PDOT, KC_PENT, KC_PPLS + ) + +}; +#if defined(ENCODER_MAP_ENABLE) + const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, +}; +#endif diff --git a/hackpads/NumMarcroPad/Firmware/nummacropad/readme.md b/hackpads/NumMarcroPad/Firmware/nummacropad/readme.md new file mode 100644 index 00000000..0a0393ea --- /dev/null +++ b/hackpads/NumMarcroPad/Firmware/nummacropad/readme.md @@ -0,0 +1,27 @@ +# nummacropad + +![nummacropad](imgur.com image replace me!) + +*A short description of the keyboard/project* + +* Keyboard Maintainer: [Ben Park](https://github.com/benPark20) +* Hardware Supported: *The PCBs, controllers supported* +* Hardware Availability: *Links to where you can find this hardware* + +Make example for this keyboard (after setting up your build environment): + + make nummacropad:default + +Flashing example for this keyboard: + + make nummacropad: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 diff --git a/hackpads/NumMarcroPad/Firmware/nummacropad/rules.mk b/hackpads/NumMarcroPad/Firmware/nummacropad/rules.mk new file mode 100644 index 00000000..5f701ab5 --- /dev/null +++ b/hackpads/NumMarcroPad/Firmware/nummacropad/rules.mk @@ -0,0 +1,32 @@ +# MCU Settings +MCU = rp2040 + +# Bootloader Selection (usually rp2040) +BOOTLOADER = rp2040 + +# Build options +# You can enable or disable features here +RGBLIGHT_ENABLE = yes # Disable RGB lighting by default +RGBLIGHT_DRIVER = ws2812 +MOUSEKEY_ENABLE = no # Disable mouse keys +EXTRAKEY_ENABLE = yes # Enable extra keys (media control, etc.) +CONSOLE_ENABLE = no # Disable console output +COMMAND_ENABLE = no # Disable command feature + +# Define matrix size (rows x columns) +MATRIX_ROWS = 4 +MATRIX_COLS = 4 + +# Enable USB Features +VUSB_ENABLE = no # Disable virtual USB for this project +USB_VID = 0x03A8 # Vendor ID +USB_PID = 0xA701 # Product ID for the macropad + +# Set processor frequency +F_CPU = 12000000 + +# Enable bootmagic lite for keymap reset +BOOTMAGIC_ENABLE = lite # Allows for holding a key during boot to reset QMK + +# Enable encoder support if needed +ENCODER_ENABLE = yes # Disable by default