From 28944b4c30279437c3bbd2d21d17ecff30e41a71 Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Fri, 13 Jun 2025 17:53:45 +0300 Subject: [PATCH 01/44] Add Printronics Mectechpad 3x3 RP2040 macropad with VIA support --- keyboards/mectechpad/config.h | 18 ++++ keyboards/mectechpad/keyboard.json | 40 +++++++++ keyboards/mectechpad/keymaps/default/keymap.c | 87 +++++++++++++++++++ keyboards/mectechpad/mectechpad.h | 5 ++ keyboards/mectechpad/mectechpad_via.json | 16 ++++ keyboards/mectechpad/readme.md | 42 +++++++++ keyboards/mectechpad/rules.mk | 8 ++ 7 files changed, 216 insertions(+) create mode 100644 keyboards/mectechpad/config.h create mode 100644 keyboards/mectechpad/keyboard.json create mode 100644 keyboards/mectechpad/keymaps/default/keymap.c create mode 100644 keyboards/mectechpad/mectechpad.h create mode 100644 keyboards/mectechpad/mectechpad_via.json create mode 100644 keyboards/mectechpad/readme.md create mode 100644 keyboards/mectechpad/rules.mk diff --git a/keyboards/mectechpad/config.h b/keyboards/mectechpad/config.h new file mode 100644 index 00000000000..31ca0ff0b3b --- /dev/null +++ b/keyboards/mectechpad/config.h @@ -0,0 +1,18 @@ +// Copyright 2025 Jack Sachinidhs (@jacksaxi) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once +/* Key matrix size */ +#define MATRIX_ROWS 3 +#define MATRIX_COLS 3 + +/* LED pin definitions */ +#define LED_PIN_LAYER1 GP12 +#define LED_PIN_LAYER2 GP11 +#define LED_PIN_LAYER3 GP10 +#define LED_PIN_LAYER4 GP9 + +/* Pin for the layer change button */ +#define LAYER_CHANGE_PIN GP13 + +/* Debounce time in milliseconds */ +#define DEBOUNCE 15 diff --git a/keyboards/mectechpad/keyboard.json b/keyboards/mectechpad/keyboard.json new file mode 100644 index 00000000000..1ae015dfb95 --- /dev/null +++ b/keyboards/mectechpad/keyboard.json @@ -0,0 +1,40 @@ +{ + "manufacturer": "Printronics", + "keyboard_name": "Mectechpad", + "maintainer": "jacksaxi", + "bootloader": "rp2040", + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "command": true, + "console": true, + "extrakey": true, + "mousekey": true + }, + "matrix_pins": { + "rows": ["GP26", "GP15", "GP14"], + "cols": ["GP29", "GP28", "GP27"] + }, + "processor": "RP2040", + "url": "printronics.gr", + "usb": { + "device_version": "1.0.0", + "pid": "0x1A2B", + "vid": "0x3C4D" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/mectechpad/keymaps/default/keymap.c b/keyboards/mectechpad/keymaps/default/keymap.c new file mode 100644 index 00000000000..7555bdc93cb --- /dev/null +++ b/keyboards/mectechpad/keymaps/default/keymap.c @@ -0,0 +1,87 @@ +// Copyright 2025 Jack Sachinidhs (@jacksaxi) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H +#include "mectechpad.h" // or whatever the correct file is + +enum layers { + _LAYER1, + _LAYER2, + _LAYER3, + _LAYER4 +}; + +// Define the pin for the layer change button +#define LAYER_CHANGE_PIN GP13 +#define DEBOUNCE_DELAY 10 // Debounce time in milliseconds + +// Update LEDs based on the current layer +void set_layer_indicator(uint8_t layer) { + writePin(LED_PIN_LAYER1, layer == _LAYER1); + writePin(LED_PIN_LAYER2, layer == _LAYER2); + writePin(LED_PIN_LAYER3, layer == _LAYER3); + writePin(LED_PIN_LAYER4, layer == _LAYER4); +} + +// Initialize pins +void keyboard_post_init_user(void) { + setPinOutput(LED_PIN_LAYER1); + setPinOutput(LED_PIN_LAYER2); + setPinOutput(LED_PIN_LAYER3); + setPinOutput(LED_PIN_LAYER4); + + // Initialize the layer change button pin + setPinInputHigh(LAYER_CHANGE_PIN); + + set_layer_indicator(_LAYER1); +} + +// Cycle through layers based on the layer change button state +void matrix_scan_user(void) { + static bool last_button_state = false; + static uint16_t last_debounce_time = 0; + + // Read the current state of the button (active low) + bool current_button_state = !readPin(LAYER_CHANGE_PIN); + + // Check if the button state has changed and debounce time has passed + if (current_button_state != last_button_state) { + if (timer_elapsed(last_debounce_time) > DEBOUNCE_DELAY) { + last_debounce_time = timer_read(); // Reset debounce timer + + if (current_button_state) { + // Button was just pressed, move to the next layer + uint8_t current_layer = get_highest_layer(layer_state); + uint8_t next_layer = (current_layer + 1) % 4; // Cycle to the next layer + layer_move(next_layer); + set_layer_indicator(next_layer); + } + } + } + + // Update the last known button state + last_button_state = current_button_state; +} + +// Define the keymap +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_LAYER1] = LAYOUT( + KC_1, KC_2, KC_3, + KC_4, KC_5, KC_6, + KC_7, KC_8, KC_9 + ), + [_LAYER2] = LAYOUT( + KC_Q, KC_W, KC_E, + KC_R, KC_T, KC_Y, + KC_U, KC_I, KC_O + ), + [_LAYER3] = LAYOUT( + KC_A, KC_S, KC_D, + KC_F, KC_G, KC_H, + KC_J, KC_K, KC_L + ), + [_LAYER4] = LAYOUT( + KC_Z, KC_X, KC_C, + KC_V, KC_B, KC_N, + KC_M, KC_COMM, KC_DOT + ), +}; diff --git a/keyboards/mectechpad/mectechpad.h b/keyboards/mectechpad/mectechpad.h new file mode 100644 index 00000000000..d088b7322e9 --- /dev/null +++ b/keyboards/mectechpad/mectechpad.h @@ -0,0 +1,5 @@ +// Copyright 2025 Jack Sachinidhs (@jacksaxi) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include "quantum.h" diff --git a/keyboards/mectechpad/mectechpad_via.json b/keyboards/mectechpad/mectechpad_via.json new file mode 100644 index 00000000000..0cea4481acd --- /dev/null +++ b/keyboards/mectechpad/mectechpad_via.json @@ -0,0 +1,16 @@ +{ + "name": "Printronics Mectechpad", + "productId": "0x1A2B", + "vendorId": "0x3C4D", + "matrix": { + "rows": 3, + "cols": 3 + }, + "layouts": { + "keymap": [ + ["0,0","0,1","0,2"], + ["1,0","1,1","1,2"], + ["2,0","2,1","2,2"] + ] + } +} diff --git a/keyboards/mectechpad/readme.md b/keyboards/mectechpad/readme.md new file mode 100644 index 00000000000..fa5f1d0dcb1 --- /dev/null +++ b/keyboards/mectechpad/readme.md @@ -0,0 +1,42 @@ +# MECTECHPAD + +A 3x3 custom macropad designed by [Printronics](https://printronics.gr), powered by the RP2040 MCU, and fully compatible with VIA for real-time key remapping. + +## Features + +- **3x3 matrix** (9 keys) +- RP2040 microcontroller +- VIA support for easy key remapping +- 4 programmable layers, with hardware-based layer switching via dedicated button +- Layer indicator LEDs (one per layer) +- Designed for makers, productivity, and automation + +## Matrix and Pinout + +| Row Pins | Col Pins | +|--------------|--------------| +| GP26, GP15, GP14 | GP29, GP28, GP27 | + +**Diode Direction:** ROW2COL + +## Layer Switch & LEDs + +- Dedicated layer change button: **GP13** +- Layer indicator LEDs: *specify your pins here* (e.g. GP2, GP3, GP4, GP5) + +## How to Flash + +1. Hold the **BOOTSEL** button and plug the board into USB. +2. Copy the generated `.uf2` firmware file to the new drive ("RPI-RP2"). +3. The board will reboot automatically. + +## VIA Support + +- Use [VIA](https://usevia.app/) for live key remapping. +- If VIA doesn’t auto-detect, drag and drop `mectechpad_via.json` into VIA’s design tab. + +## Maintainer + +[jacksaxi](https://github.com/jacksaxi) + +--- \ No newline at end of file diff --git a/keyboards/mectechpad/rules.mk b/keyboards/mectechpad/rules.mk new file mode 100644 index 00000000000..9802a11bc3d --- /dev/null +++ b/keyboards/mectechpad/rules.mk @@ -0,0 +1,8 @@ +# MCU type for RP2040 +MCU = RP2040 + +# Enable VIA support +VIA_ENABLE = yes + +# Bootloader type for RP2040 boards +BOOTLOADER = rp2040 From 02259b2ea4f045d0aed4e98f6d5dc92fd775f6fd Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Fri, 13 Jun 2025 18:42:35 +0300 Subject: [PATCH 02/44] Delete keyboards/mectechpad/mectechpad_via.json --- keyboards/mectechpad/mectechpad_via.json | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100644 keyboards/mectechpad/mectechpad_via.json diff --git a/keyboards/mectechpad/mectechpad_via.json b/keyboards/mectechpad/mectechpad_via.json deleted file mode 100644 index 0cea4481acd..00000000000 --- a/keyboards/mectechpad/mectechpad_via.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "Printronics Mectechpad", - "productId": "0x1A2B", - "vendorId": "0x3C4D", - "matrix": { - "rows": 3, - "cols": 3 - }, - "layouts": { - "keymap": [ - ["0,0","0,1","0,2"], - ["1,0","1,1","1,2"], - ["2,0","2,1","2,2"] - ] - } -} From 79ef5903b1dcf3f1f97d5bb30cbd231f45256c89 Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Fri, 13 Jun 2025 18:48:59 +0300 Subject: [PATCH 03/44] Update rules.mk --- keyboards/mectechpad/rules.mk | 2 -- 1 file changed, 2 deletions(-) diff --git a/keyboards/mectechpad/rules.mk b/keyboards/mectechpad/rules.mk index 9802a11bc3d..cd760d772e0 100644 --- a/keyboards/mectechpad/rules.mk +++ b/keyboards/mectechpad/rules.mk @@ -1,8 +1,6 @@ # MCU type for RP2040 MCU = RP2040 -# Enable VIA support -VIA_ENABLE = yes # Bootloader type for RP2040 boards BOOTLOADER = rp2040 From e9cf8eee42efbeae018d704da51d552e6271bc80 Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Fri, 13 Jun 2025 22:07:55 +0300 Subject: [PATCH 04/44] Delete keyboards/mectechpad/rules.mk --- keyboards/mectechpad/rules.mk | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 keyboards/mectechpad/rules.mk diff --git a/keyboards/mectechpad/rules.mk b/keyboards/mectechpad/rules.mk deleted file mode 100644 index cd760d772e0..00000000000 --- a/keyboards/mectechpad/rules.mk +++ /dev/null @@ -1,6 +0,0 @@ -# MCU type for RP2040 -MCU = RP2040 - - -# Bootloader type for RP2040 boards -BOOTLOADER = rp2040 From 5a77b0cdd4928c1b49f0a874fc2148615e9caa51 Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Fri, 13 Jun 2025 22:08:10 +0300 Subject: [PATCH 05/44] Delete keyboards/mectechpad/mectechpad.h --- keyboards/mectechpad/mectechpad.h | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 keyboards/mectechpad/mectechpad.h diff --git a/keyboards/mectechpad/mectechpad.h b/keyboards/mectechpad/mectechpad.h deleted file mode 100644 index d088b7322e9..00000000000 --- a/keyboards/mectechpad/mectechpad.h +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright 2025 Jack Sachinidhs (@jacksaxi) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include "quantum.h" From 95df28ccf2367f00433384344164c3222464c586 Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Fri, 13 Jun 2025 22:08:50 +0300 Subject: [PATCH 06/44] Update keyboards/mectechpad/config.h Co-authored-by: ClownFish <177758267+clownfish-og@users.noreply.github.com> --- keyboards/mectechpad/config.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/keyboards/mectechpad/config.h b/keyboards/mectechpad/config.h index 31ca0ff0b3b..17aa92ea66a 100644 --- a/keyboards/mectechpad/config.h +++ b/keyboards/mectechpad/config.h @@ -13,6 +13,3 @@ /* Pin for the layer change button */ #define LAYER_CHANGE_PIN GP13 - -/* Debounce time in milliseconds */ -#define DEBOUNCE 15 From 1b314be0376180852114431af22dd9655e4b3ca5 Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Fri, 13 Jun 2025 22:08:56 +0300 Subject: [PATCH 07/44] Update keyboards/mectechpad/keyboard.json Co-authored-by: ClownFish <177758267+clownfish-og@users.noreply.github.com> --- keyboards/mectechpad/keyboard.json | 1 + 1 file changed, 1 insertion(+) diff --git a/keyboards/mectechpad/keyboard.json b/keyboards/mectechpad/keyboard.json index 1ae015dfb95..9efb300ff36 100644 --- a/keyboards/mectechpad/keyboard.json +++ b/keyboards/mectechpad/keyboard.json @@ -3,6 +3,7 @@ "keyboard_name": "Mectechpad", "maintainer": "jacksaxi", "bootloader": "rp2040", + "debounce": 15, "diode_direction": "ROW2COL", "features": { "bootmagic": true, From 06d920157f4b95b50a3227bb2789945c430fa7c1 Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Fri, 13 Jun 2025 22:09:05 +0300 Subject: [PATCH 08/44] Update keyboards/mectechpad/keymaps/default/keymap.c Co-authored-by: ClownFish <177758267+clownfish-og@users.noreply.github.com> --- keyboards/mectechpad/keymaps/default/keymap.c | 1 - 1 file changed, 1 deletion(-) diff --git a/keyboards/mectechpad/keymaps/default/keymap.c b/keyboards/mectechpad/keymaps/default/keymap.c index 7555bdc93cb..397c160fd90 100644 --- a/keyboards/mectechpad/keymaps/default/keymap.c +++ b/keyboards/mectechpad/keymaps/default/keymap.c @@ -1,7 +1,6 @@ // Copyright 2025 Jack Sachinidhs (@jacksaxi) // SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H -#include "mectechpad.h" // or whatever the correct file is enum layers { _LAYER1, From a0cb6202c115d939a868b176ed3521e1fe663822 Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Fri, 13 Jun 2025 22:09:24 +0300 Subject: [PATCH 09/44] Update keyboards/mectechpad/config.h Co-authored-by: ClownFish <177758267+clownfish-og@users.noreply.github.com> --- keyboards/mectechpad/config.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/keyboards/mectechpad/config.h b/keyboards/mectechpad/config.h index 17aa92ea66a..d167c0904e1 100644 --- a/keyboards/mectechpad/config.h +++ b/keyboards/mectechpad/config.h @@ -1,10 +1,6 @@ // Copyright 2025 Jack Sachinidhs (@jacksaxi) // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -/* Key matrix size */ -#define MATRIX_ROWS 3 -#define MATRIX_COLS 3 - /* LED pin definitions */ #define LED_PIN_LAYER1 GP12 #define LED_PIN_LAYER2 GP11 From f77c8378706e425301c010f93ab7077c9bd006e5 Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Fri, 13 Jun 2025 22:31:49 +0300 Subject: [PATCH 10/44] Create rules.mk --- keyboards/mectechpad/rules.mk | 1 + 1 file changed, 1 insertion(+) create mode 100644 keyboards/mectechpad/rules.mk diff --git a/keyboards/mectechpad/rules.mk b/keyboards/mectechpad/rules.mk new file mode 100644 index 00000000000..36ee49ccb09 --- /dev/null +++ b/keyboards/mectechpad/rules.mk @@ -0,0 +1 @@ +SRC += matrix.c From bffb23a3e4a143a20b3dc8eee28fb66afa22a3f2 Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Fri, 13 Jun 2025 22:32:33 +0300 Subject: [PATCH 11/44] Create matrix.c --- keyboards/mectechpad/matrix.c | 61 +++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 keyboards/mectechpad/matrix.c diff --git a/keyboards/mectechpad/matrix.c b/keyboards/mectechpad/matrix.c new file mode 100644 index 00000000000..2aeec1733de --- /dev/null +++ b/keyboards/mectechpad/matrix.c @@ -0,0 +1,61 @@ +// Copyright 2025 Jack Sachinidhs (@jacksaxi) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H +enum layers { + _LAYER1, + _LAYER2, + _LAYER3, + _LAYER4 +}; + +// Define the pin for the layer change button +#define LAYER_CHANGE_PIN GP13 +#define DEBOUNCE_DELAY 10 // Debounce time in milliseconds + +// Update LEDs based on the current layer +void set_layer_indicator(uint8_t layer) { + writePin(LED_PIN_LAYER1, layer == _LAYER1); + writePin(LED_PIN_LAYER2, layer == _LAYER2); + writePin(LED_PIN_LAYER3, layer == _LAYER3); + writePin(LED_PIN_LAYER4, layer == _LAYER4); +} + +// Initialize pins +void keyboard_post_init_user(void) { + setPinOutput(LED_PIN_LAYER1); + setPinOutput(LED_PIN_LAYER2); + setPinOutput(LED_PIN_LAYER3); + setPinOutput(LED_PIN_LAYER4); + + // Initialize the layer change button pin + setPinInputHigh(LAYER_CHANGE_PIN); + + set_layer_indicator(_LAYER1); +} + +// Cycle through layers based on the layer change button state +void matrix_scan_user(void) { + static bool last_button_state = false; + static uint16_t last_debounce_time = 0; + + // Read the current state of the button (active low) + bool current_button_state = !readPin(LAYER_CHANGE_PIN); + + // Check if the button state has changed and debounce time has passed + if (current_button_state != last_button_state) { + if (timer_elapsed(last_debounce_time) > DEBOUNCE_DELAY) { + last_debounce_time = timer_read(); // Reset debounce timer + + if (current_button_state) { + // Button was just pressed, move to the next layer + uint8_t current_layer = get_highest_layer(layer_state); + uint8_t next_layer = (current_layer + 1) % 4; // Cycle to the next layer + layer_move(next_layer); + set_layer_indicator(next_layer); + } + } + } + + // Update the last known button state + last_button_state = current_button_state; +} From 29aa2c50007dff19c2e763c452c740b6afb43bbc Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Fri, 13 Jun 2025 22:34:36 +0300 Subject: [PATCH 12/44] Update keymap.c --- keyboards/mectechpad/keymaps/default/keymap.c | 52 ------------------- 1 file changed, 52 deletions(-) diff --git a/keyboards/mectechpad/keymaps/default/keymap.c b/keyboards/mectechpad/keymaps/default/keymap.c index 397c160fd90..b996b351f92 100644 --- a/keyboards/mectechpad/keymaps/default/keymap.c +++ b/keyboards/mectechpad/keymaps/default/keymap.c @@ -9,58 +9,6 @@ enum layers { _LAYER4 }; -// Define the pin for the layer change button -#define LAYER_CHANGE_PIN GP13 -#define DEBOUNCE_DELAY 10 // Debounce time in milliseconds - -// Update LEDs based on the current layer -void set_layer_indicator(uint8_t layer) { - writePin(LED_PIN_LAYER1, layer == _LAYER1); - writePin(LED_PIN_LAYER2, layer == _LAYER2); - writePin(LED_PIN_LAYER3, layer == _LAYER3); - writePin(LED_PIN_LAYER4, layer == _LAYER4); -} - -// Initialize pins -void keyboard_post_init_user(void) { - setPinOutput(LED_PIN_LAYER1); - setPinOutput(LED_PIN_LAYER2); - setPinOutput(LED_PIN_LAYER3); - setPinOutput(LED_PIN_LAYER4); - - // Initialize the layer change button pin - setPinInputHigh(LAYER_CHANGE_PIN); - - set_layer_indicator(_LAYER1); -} - -// Cycle through layers based on the layer change button state -void matrix_scan_user(void) { - static bool last_button_state = false; - static uint16_t last_debounce_time = 0; - - // Read the current state of the button (active low) - bool current_button_state = !readPin(LAYER_CHANGE_PIN); - - // Check if the button state has changed and debounce time has passed - if (current_button_state != last_button_state) { - if (timer_elapsed(last_debounce_time) > DEBOUNCE_DELAY) { - last_debounce_time = timer_read(); // Reset debounce timer - - if (current_button_state) { - // Button was just pressed, move to the next layer - uint8_t current_layer = get_highest_layer(layer_state); - uint8_t next_layer = (current_layer + 1) % 4; // Cycle to the next layer - layer_move(next_layer); - set_layer_indicator(next_layer); - } - } - } - - // Update the last known button state - last_button_state = current_button_state; -} - // Define the keymap const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LAYER1] = LAYOUT( From 2d52570240617436b3a288186f7dc44b4d1b02af Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Fri, 13 Jun 2025 22:37:54 +0300 Subject: [PATCH 13/44] Update readme.md --- keyboards/mectechpad/readme.md | 43 ++++------------------------------ 1 file changed, 4 insertions(+), 39 deletions(-) diff --git a/keyboards/mectechpad/readme.md b/keyboards/mectechpad/readme.md index fa5f1d0dcb1..dfd2eb92242 100644 --- a/keyboards/mectechpad/readme.md +++ b/keyboards/mectechpad/readme.md @@ -1,42 +1,7 @@ -# MECTECHPAD +# %Mectechpad% -A 3x3 custom macropad designed by [Printronics](https://printronics.gr), powered by the RP2040 MCU, and fully compatible with VIA for real-time key remapping. +![%Mectechpad%](printronics.gr) -## Features +*A short description of the keyboard/project* -- **3x3 matrix** (9 keys) -- RP2040 microcontroller -- VIA support for easy key remapping -- 4 programmable layers, with hardware-based layer switching via dedicated button -- Layer indicator LEDs (one per layer) -- Designed for makers, productivity, and automation - -## Matrix and Pinout - -| Row Pins | Col Pins | -|--------------|--------------| -| GP26, GP15, GP14 | GP29, GP28, GP27 | - -**Diode Direction:** ROW2COL - -## Layer Switch & LEDs - -- Dedicated layer change button: **GP13** -- Layer indicator LEDs: *specify your pins here* (e.g. GP2, GP3, GP4, GP5) - -## How to Flash - -1. Hold the **BOOTSEL** button and plug the board into USB. -2. Copy the generated `.uf2` firmware file to the new drive ("RPI-RP2"). -3. The board will reboot automatically. - -## VIA Support - -- Use [VIA](https://usevia.app/) for live key remapping. -- If VIA doesn’t auto-detect, drag and drop `mectechpad_via.json` into VIA’s design tab. - -## Maintainer - -[jacksaxi](https://github.com/jacksaxi) - ---- \ No newline at end of file +* Keyboard Maintainer: [%Jack Sachinidhs%](https://github.com/jacksaxi) From bfbb25a502b89d2a87b5d804e34325c5b1ffe28c Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Fri, 13 Jun 2025 22:39:08 +0300 Subject: [PATCH 14/44] Update readme.md --- keyboards/mectechpad/readme.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/mectechpad/readme.md b/keyboards/mectechpad/readme.md index dfd2eb92242..3af054caf12 100644 --- a/keyboards/mectechpad/readme.md +++ b/keyboards/mectechpad/readme.md @@ -1,7 +1,7 @@ -# %Mectechpad% +# Mectechpad -![%Mectechpad%](printronics.gr) +![Mectechpad](http://printronics.gr/wp-content/uploads/2025/06/IMG-eeceb5eaaa776b9dc9114b3c06fc050b-V.jpg) *A short description of the keyboard/project* -* Keyboard Maintainer: [%Jack Sachinidhs%](https://github.com/jacksaxi) +* Keyboard Maintainer: [Jack Sachinidhs](https://github.com/jacksaxi) From 56c9212345a9dfa2f85fa7cc0d1ecf1734740352 Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Fri, 13 Jun 2025 22:48:02 +0300 Subject: [PATCH 15/44] Update readme.md --- keyboards/mectechpad/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/mectechpad/readme.md b/keyboards/mectechpad/readme.md index 3af054caf12..37df8e9c52a 100644 --- a/keyboards/mectechpad/readme.md +++ b/keyboards/mectechpad/readme.md @@ -2,6 +2,6 @@ ![Mectechpad](http://printronics.gr/wp-content/uploads/2025/06/IMG-eeceb5eaaa776b9dc9114b3c06fc050b-V.jpg) -*A short description of the keyboard/project* +printronics.gr * Keyboard Maintainer: [Jack Sachinidhs](https://github.com/jacksaxi) From 88c911df4d9f88a24f2b90fe2a9292bffd3226c4 Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Wed, 18 Jun 2025 12:28:22 +0300 Subject: [PATCH 16/44] Update keyboards/mectechpad/matrix.c Co-authored-by: ClownFish <177758267+clownfish-og@users.noreply.github.com> --- keyboards/mectechpad/matrix.c | 79 +++++++++++------------------------ 1 file changed, 24 insertions(+), 55 deletions(-) diff --git a/keyboards/mectechpad/matrix.c b/keyboards/mectechpad/matrix.c index 2aeec1733de..26fe2548e8c 100644 --- a/keyboards/mectechpad/matrix.c +++ b/keyboards/mectechpad/matrix.c @@ -1,61 +1,30 @@ // Copyright 2025 Jack Sachinidhs (@jacksaxi) // SPDX-License-Identifier: GPL-2.0-or-later -#include QMK_KEYBOARD_H -enum layers { - _LAYER1, - _LAYER2, - _LAYER3, - _LAYER4 -}; - -// Define the pin for the layer change button -#define LAYER_CHANGE_PIN GP13 -#define DEBOUNCE_DELAY 10 // Debounce time in milliseconds +#include "quantum.h" +// Initialize LED pins +void matrix_init_kb() { + gpio_set_pin_output(LED_PIN_LAYER_0); + gpio_write_pin_low(LED_PIN_LAYER_0); + gpio_set_pin_output(LED_PIN_LAYER_1); + gpio_write_pin_low(LED_PIN_LAYER_1); + gpio_set_pin_output(LED_PIN_LAYER_2); + gpio_write_pin_low(LED_PIN_LAYER_2); + gpio_set_pin_output(LED_PIN_LAYER_3); + gpio_write_pin_low(LED_PIN_LAYER_3); +} // Update LEDs based on the current layer -void set_layer_indicator(uint8_t layer) { - writePin(LED_PIN_LAYER1, layer == _LAYER1); - writePin(LED_PIN_LAYER2, layer == _LAYER2); - writePin(LED_PIN_LAYER3, layer == _LAYER3); - writePin(LED_PIN_LAYER4, layer == _LAYER4); +void housekeeping_task_kb(void) { + gpio_write_pin(LED_PIN_LAYER_0, (get_highest_layer(layer_state) == 0)); + gpio_write_pin(LED_PIN_LAYER_1, (get_highest_layer(layer_state) == 1)); + gpio_write_pin(LED_PIN_LAYER_2, (get_highest_layer(layer_state) == 2)); + gpio_write_pin(LED_PIN_LAYER_3, (get_highest_layer(layer_state) == 3)); } -// Initialize pins -void keyboard_post_init_user(void) { - setPinOutput(LED_PIN_LAYER1); - setPinOutput(LED_PIN_LAYER2); - setPinOutput(LED_PIN_LAYER3); - setPinOutput(LED_PIN_LAYER4); - - // Initialize the layer change button pin - setPinInputHigh(LAYER_CHANGE_PIN); - - set_layer_indicator(_LAYER1); -} - -// Cycle through layers based on the layer change button state -void matrix_scan_user(void) { - static bool last_button_state = false; - static uint16_t last_debounce_time = 0; - - // Read the current state of the button (active low) - bool current_button_state = !readPin(LAYER_CHANGE_PIN); - - // Check if the button state has changed and debounce time has passed - if (current_button_state != last_button_state) { - if (timer_elapsed(last_debounce_time) > DEBOUNCE_DELAY) { - last_debounce_time = timer_read(); // Reset debounce timer - - if (current_button_state) { - // Button was just pressed, move to the next layer - uint8_t current_layer = get_highest_layer(layer_state); - uint8_t next_layer = (current_layer + 1) % 4; // Cycle to the next layer - layer_move(next_layer); - set_layer_indicator(next_layer); - } - } - } - - // Update the last known button state - last_button_state = current_button_state; -} +// Mask to accommodate the direct pin switch +const matrix_row_t matrix_mask[MATRIX_ROWS] = { + 0b111, + 0b111, + 0b111, + 0b001, +}; From cb9f8e049809e452cef71c4c733cb9cb291f8752 Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Wed, 18 Jun 2025 12:28:30 +0300 Subject: [PATCH 17/44] Update keyboards/mectechpad/config.h Co-authored-by: ClownFish <177758267+clownfish-og@users.noreply.github.com> --- keyboards/mectechpad/config.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/mectechpad/config.h b/keyboards/mectechpad/config.h index d167c0904e1..09ede8a6534 100644 --- a/keyboards/mectechpad/config.h +++ b/keyboards/mectechpad/config.h @@ -2,10 +2,10 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once /* LED pin definitions */ -#define LED_PIN_LAYER1 GP12 -#define LED_PIN_LAYER2 GP11 -#define LED_PIN_LAYER3 GP10 -#define LED_PIN_LAYER4 GP9 +#define LED_PIN_LAYER_0 GP12 +#define LED_PIN_LAYER_1 GP11 +#define LED_PIN_LAYER_2 GP10 +#define LED_PIN_LAYER_3 GP9 /* Pin for the layer change button */ #define LAYER_CHANGE_PIN GP13 From 03da1897d36d99a19014b006eecb8a08a70badac Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Wed, 18 Jun 2025 12:29:33 +0300 Subject: [PATCH 18/44] Update keyboards/mectechpad/keymaps/default/keymap.c Co-authored-by: ClownFish <177758267+clownfish-og@users.noreply.github.com> --- keyboards/mectechpad/keymaps/default/keymap.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/keyboards/mectechpad/keymaps/default/keymap.c b/keyboards/mectechpad/keymaps/default/keymap.c index b996b351f92..94622326465 100644 --- a/keyboards/mectechpad/keymaps/default/keymap.c +++ b/keyboards/mectechpad/keymaps/default/keymap.c @@ -26,7 +26,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F, KC_G, KC_H, KC_J, KC_K, KC_L ), - [_LAYER4] = LAYOUT( + [_LAYER3] = LAYOUT( + TO(_LAYER0), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT From c467da28b995c3d1ee0fd79267bc340a189b9fc4 Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Wed, 18 Jun 2025 12:29:43 +0300 Subject: [PATCH 19/44] Update keyboards/mectechpad/keymaps/default/keymap.c Co-authored-by: ClownFish <177758267+clownfish-og@users.noreply.github.com> --- keyboards/mectechpad/keymaps/default/keymap.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/keyboards/mectechpad/keymaps/default/keymap.c b/keyboards/mectechpad/keymaps/default/keymap.c index 94622326465..a68e6bd4bfc 100644 --- a/keyboards/mectechpad/keymaps/default/keymap.c +++ b/keyboards/mectechpad/keymaps/default/keymap.c @@ -21,7 +21,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O ), - [_LAYER3] = LAYOUT( + [_LAYER2] = LAYOUT( + TO(_LAYER3), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L From 2c196177dd28cfa241077935433b5595f18f5deb Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Wed, 18 Jun 2025 12:29:53 +0300 Subject: [PATCH 20/44] Update keyboards/mectechpad/keymaps/default/keymap.c Co-authored-by: ClownFish <177758267+clownfish-og@users.noreply.github.com> --- keyboards/mectechpad/keymaps/default/keymap.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/keyboards/mectechpad/keymaps/default/keymap.c b/keyboards/mectechpad/keymaps/default/keymap.c index a68e6bd4bfc..0c47dd9e612 100644 --- a/keyboards/mectechpad/keymaps/default/keymap.c +++ b/keyboards/mectechpad/keymaps/default/keymap.c @@ -16,7 +16,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_4, KC_5, KC_6, KC_7, KC_8, KC_9 ), - [_LAYER2] = LAYOUT( + [_LAYER1] = LAYOUT( + TO(_LAYER2), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O From e77217268e0903b3eae337f6c873fa24286943a8 Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Wed, 18 Jun 2025 12:30:00 +0300 Subject: [PATCH 21/44] Update keyboards/mectechpad/keymaps/default/keymap.c Co-authored-by: ClownFish <177758267+clownfish-og@users.noreply.github.com> --- keyboards/mectechpad/keymaps/default/keymap.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/keyboards/mectechpad/keymaps/default/keymap.c b/keyboards/mectechpad/keymaps/default/keymap.c index 0c47dd9e612..25e02723efc 100644 --- a/keyboards/mectechpad/keymaps/default/keymap.c +++ b/keyboards/mectechpad/keymaps/default/keymap.c @@ -11,7 +11,8 @@ enum layers { // Define the keymap const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER1] = LAYOUT( + [_LAYER0] = LAYOUT( + TO(_LAYER1), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9 From c06ba49f1971a8f253c7ab36178891f5bf804d52 Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Wed, 18 Jun 2025 12:30:09 +0300 Subject: [PATCH 22/44] Update keyboards/mectechpad/keymaps/default/keymap.c Co-authored-by: ClownFish <177758267+clownfish-og@users.noreply.github.com> --- keyboards/mectechpad/keymaps/default/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/mectechpad/keymaps/default/keymap.c b/keyboards/mectechpad/keymaps/default/keymap.c index 25e02723efc..907700a397d 100644 --- a/keyboards/mectechpad/keymaps/default/keymap.c +++ b/keyboards/mectechpad/keymaps/default/keymap.c @@ -3,10 +3,10 @@ #include QMK_KEYBOARD_H enum layers { + _LAYER0, _LAYER1, _LAYER2, - _LAYER3, - _LAYER4 + _LAYER3 }; // Define the keymap From f51ba230269a9515dcf277fc4c97988a0bc53d0d Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Wed, 18 Jun 2025 12:30:22 +0300 Subject: [PATCH 23/44] Update keyboards/mectechpad/keyboard.json Co-authored-by: ClownFish <177758267+clownfish-og@users.noreply.github.com> --- keyboards/mectechpad/keyboard.json | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/keyboards/mectechpad/keyboard.json b/keyboards/mectechpad/keyboard.json index 9efb300ff36..290bf1a545b 100644 --- a/keyboards/mectechpad/keyboard.json +++ b/keyboards/mectechpad/keyboard.json @@ -26,15 +26,16 @@ "layouts": { "LAYOUT": { "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2} + {"matrix": [3, 2], "x": 0, "y": 0}, + {"matrix": [0, 0], "x": 0, "y": 1}, + {"matrix": [0, 1], "x": 1, "y": 1}, + {"matrix": [0, 2], "x": 2, "y": 1}, + {"matrix": [1, 0], "x": 0, "y": 2}, + {"matrix": [1, 1], "x": 1, "y": 2}, + {"matrix": [1, 2], "x": 2, "y": 2}, + {"matrix": [2, 0], "x": 0, "y": 3}, + {"matrix": [2, 1], "x": 1, "y": 3}, + {"matrix": [2, 2], "x": 2, "y": 3} ] } } From d4729394e581e857a8ff31d79cd61292db73937d Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Wed, 18 Jun 2025 12:30:37 +0300 Subject: [PATCH 24/44] Update keyboards/mectechpad/config.h Co-authored-by: ClownFish <177758267+clownfish-og@users.noreply.github.com> --- keyboards/mectechpad/config.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/mectechpad/config.h b/keyboards/mectechpad/config.h index 09ede8a6534..283902350e1 100644 --- a/keyboards/mectechpad/config.h +++ b/keyboards/mectechpad/config.h @@ -7,5 +7,5 @@ #define LED_PIN_LAYER_2 GP10 #define LED_PIN_LAYER_3 GP9 -/* Pin for the layer change button */ -#define LAYER_CHANGE_PIN GP13 +/* matrix mask for direct pin switch */ +#define MATRIX_MASKED From 4848b6e80a787d34d873dd46f6368a39df0d182c Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Wed, 18 Jun 2025 13:02:44 +0300 Subject: [PATCH 25/44] Rename matrix.c to mectechpad.c --- keyboards/mectechpad/{matrix.c => mectechpad.c} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename keyboards/mectechpad/{matrix.c => mectechpad.c} (100%) diff --git a/keyboards/mectechpad/matrix.c b/keyboards/mectechpad/mectechpad.c similarity index 100% rename from keyboards/mectechpad/matrix.c rename to keyboards/mectechpad/mectechpad.c From a80facd654f04670bafba7d01782bcacb1737ad9 Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Wed, 18 Jun 2025 13:03:04 +0300 Subject: [PATCH 26/44] Update rules.mk --- keyboards/mectechpad/rules.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/mectechpad/rules.mk b/keyboards/mectechpad/rules.mk index 36ee49ccb09..817e4151110 100644 --- a/keyboards/mectechpad/rules.mk +++ b/keyboards/mectechpad/rules.mk @@ -1 +1 @@ -SRC += matrix.c +SRC += mectechpad.c From 876faebb42ec31b1252a504ec5024a4aaa1ea7db Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Wed, 18 Jun 2025 15:15:29 +0300 Subject: [PATCH 27/44] Update keyboards/mectechpad/keyboard.json Co-authored-by: ClownFish <177758267+clownfish-og@users.noreply.github.com> --- keyboards/mectechpad/keyboard.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/mectechpad/keyboard.json b/keyboards/mectechpad/keyboard.json index 290bf1a545b..2aeeee92f90 100644 --- a/keyboards/mectechpad/keyboard.json +++ b/keyboards/mectechpad/keyboard.json @@ -13,7 +13,7 @@ "mousekey": true }, "matrix_pins": { - "rows": ["GP26", "GP15", "GP14"], + "rows": ["GP26", "GP15", "GP14", "GP13"], "cols": ["GP29", "GP28", "GP27"] }, "processor": "RP2040", From 48ef3f5cbd7ffed8ab94adef4c6facac0a2d42c5 Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Wed, 18 Jun 2025 15:32:01 +0300 Subject: [PATCH 28/44] Delete keyboards/mectechpad/rules.mk --- keyboards/mectechpad/rules.mk | 1 - 1 file changed, 1 deletion(-) delete mode 100644 keyboards/mectechpad/rules.mk diff --git a/keyboards/mectechpad/rules.mk b/keyboards/mectechpad/rules.mk deleted file mode 100644 index 817e4151110..00000000000 --- a/keyboards/mectechpad/rules.mk +++ /dev/null @@ -1 +0,0 @@ -SRC += mectechpad.c From 0796dfcb70a43b1b589d0508b0b6090c0b635d7e Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Wed, 18 Jun 2025 15:33:22 +0300 Subject: [PATCH 29/44] Update keyboards/mectechpad/keyboard.json Co-authored-by: Joel Challis --- keyboards/mectechpad/keyboard.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/keyboards/mectechpad/keyboard.json b/keyboards/mectechpad/keyboard.json index 2aeeee92f90..ecd1aa0b87a 100644 --- a/keyboards/mectechpad/keyboard.json +++ b/keyboards/mectechpad/keyboard.json @@ -7,8 +7,6 @@ "diode_direction": "ROW2COL", "features": { "bootmagic": true, - "command": true, - "console": true, "extrakey": true, "mousekey": true }, From 48669d130de71603e80fa5fab2e79fcf1e12311f Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Wed, 18 Jun 2025 15:33:39 +0300 Subject: [PATCH 30/44] Update keyboards/mectechpad/mectechpad.c Co-authored-by: Joel Challis --- keyboards/mectechpad/mectechpad.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/keyboards/mectechpad/mectechpad.c b/keyboards/mectechpad/mectechpad.c index 26fe2548e8c..d7f6ec4e7a3 100644 --- a/keyboards/mectechpad/mectechpad.c +++ b/keyboards/mectechpad/mectechpad.c @@ -20,11 +20,3 @@ void housekeeping_task_kb(void) { gpio_write_pin(LED_PIN_LAYER_2, (get_highest_layer(layer_state) == 2)); gpio_write_pin(LED_PIN_LAYER_3, (get_highest_layer(layer_state) == 3)); } - -// Mask to accommodate the direct pin switch -const matrix_row_t matrix_mask[MATRIX_ROWS] = { - 0b111, - 0b111, - 0b111, - 0b001, -}; From 1ee762e125c88b23c6a06fb115bf6f0b16ab92d2 Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Wed, 18 Jun 2025 15:33:57 +0300 Subject: [PATCH 31/44] Update keyboards/mectechpad/mectechpad.c Co-authored-by: Joel Challis --- keyboards/mectechpad/mectechpad.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/keyboards/mectechpad/mectechpad.c b/keyboards/mectechpad/mectechpad.c index d7f6ec4e7a3..0aa520db1a5 100644 --- a/keyboards/mectechpad/mectechpad.c +++ b/keyboards/mectechpad/mectechpad.c @@ -2,8 +2,8 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include "quantum.h" -// Initialize LED pins -void matrix_init_kb() { +void keyboard_post_init_kb(void) { + // Initialize LED pins gpio_set_pin_output(LED_PIN_LAYER_0); gpio_write_pin_low(LED_PIN_LAYER_0); gpio_set_pin_output(LED_PIN_LAYER_1); @@ -12,7 +12,10 @@ void matrix_init_kb() { gpio_write_pin_low(LED_PIN_LAYER_2); gpio_set_pin_output(LED_PIN_LAYER_3); gpio_write_pin_low(LED_PIN_LAYER_3); + + keyboard_post_init_user(); } + // Update LEDs based on the current layer void housekeeping_task_kb(void) { gpio_write_pin(LED_PIN_LAYER_0, (get_highest_layer(layer_state) == 0)); From d75677be12481fe2d8013bbc5b2b202d0b9e0d66 Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Wed, 18 Jun 2025 15:34:09 +0300 Subject: [PATCH 32/44] Update keyboards/mectechpad/keyboard.json Co-authored-by: Joel Challis --- keyboards/mectechpad/keyboard.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/mectechpad/keyboard.json b/keyboards/mectechpad/keyboard.json index ecd1aa0b87a..63f4230bada 100644 --- a/keyboards/mectechpad/keyboard.json +++ b/keyboards/mectechpad/keyboard.json @@ -37,4 +37,4 @@ ] } } -} \ No newline at end of file +} From e0f761490cccdf311a7ff4b8e4441d30157f9a09 Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Wed, 18 Jun 2025 16:04:08 +0300 Subject: [PATCH 33/44] Update readme.md --- keyboards/mectechpad/readme.md | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/keyboards/mectechpad/readme.md b/keyboards/mectechpad/readme.md index 37df8e9c52a..e0b3d8d8a4c 100644 --- a/keyboards/mectechpad/readme.md +++ b/keyboards/mectechpad/readme.md @@ -2,6 +2,22 @@ ![Mectechpad](http://printronics.gr/wp-content/uploads/2025/06/IMG-eeceb5eaaa776b9dc9114b3c06fc050b-V.jpg) -printronics.gr - * Keyboard Maintainer: [Jack Sachinidhs](https://github.com/jacksaxi) +* Hardware Supported: rp2040 +* Hardware Availability: [Printronics Website](https://printronics.gr) + +Make example for this keyboard (after setting up your build environment): + + make mectechpad:default + +Flashing example for this keyboard: + + make mectechpad: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 2 ways: +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **En to GND**: short en pin to a gng and plug the usb From 4c483b6993e47b580fb8dfe5f38e27795e4cce75 Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Wed, 18 Jun 2025 16:04:26 +0300 Subject: [PATCH 34/44] Update keyboards/mectechpad/keyboard.json Co-authored-by: Joel Challis --- keyboards/mectechpad/keyboard.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/keyboards/mectechpad/keyboard.json b/keyboards/mectechpad/keyboard.json index 63f4230bada..8b9731fbea0 100644 --- a/keyboards/mectechpad/keyboard.json +++ b/keyboards/mectechpad/keyboard.json @@ -24,16 +24,16 @@ "layouts": { "LAYOUT": { "layout": [ - {"matrix": [3, 2], "x": 0, "y": 0}, - {"matrix": [0, 0], "x": 0, "y": 1}, - {"matrix": [0, 1], "x": 1, "y": 1}, - {"matrix": [0, 2], "x": 2, "y": 1}, - {"matrix": [1, 0], "x": 0, "y": 2}, - {"matrix": [1, 1], "x": 1, "y": 2}, - {"matrix": [1, 2], "x": 2, "y": 2}, - {"matrix": [2, 0], "x": 0, "y": 3}, - {"matrix": [2, 1], "x": 1, "y": 3}, - {"matrix": [2, 2], "x": 2, "y": 3} + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3} ] } } From 7bf7d7938f6fa82b13b55545ed83dc98ed4e4a66 Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Wed, 18 Jun 2025 16:05:42 +0300 Subject: [PATCH 35/44] Update keyboards/mectechpad/keyboard.json Co-authored-by: Joel Challis --- keyboards/mectechpad/keyboard.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/mectechpad/keyboard.json b/keyboards/mectechpad/keyboard.json index 8b9731fbea0..93c1fbaefca 100644 --- a/keyboards/mectechpad/keyboard.json +++ b/keyboards/mectechpad/keyboard.json @@ -11,7 +11,7 @@ "mousekey": true }, "matrix_pins": { - "rows": ["GP26", "GP15", "GP14", "GP13"], + "rows": ["GP13", "GP26", "GP15", "GP14"], "cols": ["GP29", "GP28", "GP27"] }, "processor": "RP2040", From 142b0b9c58116c00c46225e63cf8672dec33ecbd Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Wed, 18 Jun 2025 16:13:37 +0300 Subject: [PATCH 36/44] Update keymap.c --- keyboards/mectechpad/keymaps/default/keymap.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/keyboards/mectechpad/keymaps/default/keymap.c b/keyboards/mectechpad/keymaps/default/keymap.c index 907700a397d..8a4a443963b 100644 --- a/keyboards/mectechpad/keymaps/default/keymap.c +++ b/keyboards/mectechpad/keymaps/default/keymap.c @@ -12,27 +12,28 @@ enum layers { // Define the keymap const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LAYER0] = LAYOUT( - TO(_LAYER1), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, - KC_7, KC_8, KC_9 + KC_7, KC_8, KC_9, + TO(_LAYER1) ), [_LAYER1] = LAYOUT( - TO(_LAYER2), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, - KC_U, KC_I, KC_O + KC_U, KC_I, KC_O, + TO(_LAYER2) ), [_LAYER2] = LAYOUT( TO(_LAYER3), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, - KC_J, KC_K, KC_L + KC_J, KC_K, KC_L, + TO(_LAYER3) ), [_LAYER3] = LAYOUT( - TO(_LAYER0), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, - KC_M, KC_COMM, KC_DOT + KC_M, KC_COMM, KC_DOT, + TO(_LAYER0) ), }; From cdc8a5e2154f553c460de35c0702052e9c5ba44f Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Wed, 18 Jun 2025 16:15:38 +0300 Subject: [PATCH 37/44] Update keymap.c --- keyboards/mectechpad/keymaps/default/keymap.c | 1 - 1 file changed, 1 deletion(-) diff --git a/keyboards/mectechpad/keymaps/default/keymap.c b/keyboards/mectechpad/keymaps/default/keymap.c index 8a4a443963b..93f39a043e7 100644 --- a/keyboards/mectechpad/keymaps/default/keymap.c +++ b/keyboards/mectechpad/keymaps/default/keymap.c @@ -24,7 +24,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { TO(_LAYER2) ), [_LAYER2] = LAYOUT( - TO(_LAYER3), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, From c12f0e40a6d5194e4c3ecbca95664025099b3424 Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Wed, 18 Jun 2025 16:19:55 +0300 Subject: [PATCH 38/44] Update keyboards/mectechpad/keymaps/default/keymap.c Co-authored-by: Joel Challis --- keyboards/mectechpad/keymaps/default/keymap.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/keyboards/mectechpad/keymaps/default/keymap.c b/keyboards/mectechpad/keymaps/default/keymap.c index 93f39a043e7..7e19ec069f0 100644 --- a/keyboards/mectechpad/keymaps/default/keymap.c +++ b/keyboards/mectechpad/keymaps/default/keymap.c @@ -9,30 +9,29 @@ enum layers { _LAYER3 }; -// Define the keymap const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LAYER0] = LAYOUT( + TO(_LAYER1), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, - KC_7, KC_8, KC_9, - TO(_LAYER1) + KC_7, KC_8, KC_9 ), [_LAYER1] = LAYOUT( + TO(_LAYER2), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, - KC_U, KC_I, KC_O, - TO(_LAYER2) + KC_U, KC_I, KC_O ), [_LAYER2] = LAYOUT( + TO(_LAYER3), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, - KC_J, KC_K, KC_L, - TO(_LAYER3) + KC_J, KC_K, KC_L ), [_LAYER3] = LAYOUT( + TO(_LAYER0), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, - KC_M, KC_COMM, KC_DOT, - TO(_LAYER0) - ), + KC_M, KC_COMM, KC_DOT + ) }; From ebb84c7e49128a8693c0afdc5a3ae874a23d3cca Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Wed, 18 Jun 2025 16:24:35 +0300 Subject: [PATCH 39/44] Update keyboard.json it wokrs this way else the layer changes with the last key --- keyboards/mectechpad/keyboard.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/keyboards/mectechpad/keyboard.json b/keyboards/mectechpad/keyboard.json index 93c1fbaefca..63f4230bada 100644 --- a/keyboards/mectechpad/keyboard.json +++ b/keyboards/mectechpad/keyboard.json @@ -11,7 +11,7 @@ "mousekey": true }, "matrix_pins": { - "rows": ["GP13", "GP26", "GP15", "GP14"], + "rows": ["GP26", "GP15", "GP14", "GP13"], "cols": ["GP29", "GP28", "GP27"] }, "processor": "RP2040", @@ -24,16 +24,16 @@ "layouts": { "LAYOUT": { "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "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, 2], "x": 0, "y": 0}, + {"matrix": [0, 0], "x": 0, "y": 1}, + {"matrix": [0, 1], "x": 1, "y": 1}, + {"matrix": [0, 2], "x": 2, "y": 1}, + {"matrix": [1, 0], "x": 0, "y": 2}, + {"matrix": [1, 1], "x": 1, "y": 2}, + {"matrix": [1, 2], "x": 2, "y": 2}, + {"matrix": [2, 0], "x": 0, "y": 3}, + {"matrix": [2, 1], "x": 1, "y": 3}, + {"matrix": [2, 2], "x": 2, "y": 3} ] } } From 3ecdd1619fd96c0478a8e3405e80fb2517d22983 Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Thu, 19 Jun 2025 15:22:00 +0300 Subject: [PATCH 41/44] Update keyboards/mectechpad/keyboard.json Co-authored-by: Joel Challis --- keyboards/mectechpad/keyboard.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/mectechpad/keyboard.json b/keyboards/mectechpad/keyboard.json index 63f4230bada..83714f1ba5b 100644 --- a/keyboards/mectechpad/keyboard.json +++ b/keyboards/mectechpad/keyboard.json @@ -11,7 +11,7 @@ "mousekey": true }, "matrix_pins": { - "rows": ["GP26", "GP15", "GP14", "GP13"], + "rows": ["GP13", "GP26", "GP15", "GP14"], "cols": ["GP29", "GP28", "GP27"] }, "processor": "RP2040", From 9abde406bf63555dbbc375a2c4287749288742d8 Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Thu, 19 Jun 2025 15:22:16 +0300 Subject: [PATCH 42/44] Update keyboards/mectechpad/keyboard.json Co-authored-by: Joel Challis --- keyboards/mectechpad/keyboard.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/keyboards/mectechpad/keyboard.json b/keyboards/mectechpad/keyboard.json index 83714f1ba5b..93c1fbaefca 100644 --- a/keyboards/mectechpad/keyboard.json +++ b/keyboards/mectechpad/keyboard.json @@ -24,16 +24,16 @@ "layouts": { "LAYOUT": { "layout": [ - {"matrix": [3, 2], "x": 0, "y": 0}, - {"matrix": [0, 0], "x": 0, "y": 1}, - {"matrix": [0, 1], "x": 1, "y": 1}, - {"matrix": [0, 2], "x": 2, "y": 1}, - {"matrix": [1, 0], "x": 0, "y": 2}, - {"matrix": [1, 1], "x": 1, "y": 2}, - {"matrix": [1, 2], "x": 2, "y": 2}, - {"matrix": [2, 0], "x": 0, "y": 3}, - {"matrix": [2, 1], "x": 1, "y": 3}, - {"matrix": [2, 2], "x": 2, "y": 3} + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3} ] } } From 23813f8a4e5e77abef1537367d13954621937055 Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Thu, 19 Jun 2025 21:39:34 +0300 Subject: [PATCH 43/44] Update readme.md --- keyboards/mectechpad/readme.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/keyboards/mectechpad/readme.md b/keyboards/mectechpad/readme.md index e0b3d8d8a4c..d2f80391e86 100644 --- a/keyboards/mectechpad/readme.md +++ b/keyboards/mectechpad/readme.md @@ -18,6 +18,5 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader -Enter the bootloader in 2 ways: +Enter the bootloader: * **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **En to GND**: short en pin to a gng and plug the usb From ae7d71688803dc91825e3c182018387435e342cb Mon Sep 17 00:00:00 2001 From: jacksaxi Date: Wed, 9 Jul 2025 14:45:03 +0300 Subject: [PATCH 44/44] Update keyboards/mectechpad/readme.md Co-authored-by: ClownFish <177758267+clownfish-og@users.noreply.github.com> --- keyboards/mectechpad/readme.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/keyboards/mectechpad/readme.md b/keyboards/mectechpad/readme.md index d2f80391e86..695d6a805ac 100644 --- a/keyboards/mectechpad/readme.md +++ b/keyboards/mectechpad/readme.md @@ -18,5 +18,8 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader -Enter the bootloader: +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the top left key) 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