Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add 1upkeyboards Super16v3 #21665

Merged
merged 14 commits into from
Sep 3, 2023
22 changes: 22 additions & 0 deletions keyboards/1upkeyboards/1upsuper16v3/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/* Copyright 2023 ziptyze
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#pragma once

#define RGB_MATRIX_LED_COUNT 48
#define RGB_MATRIX_KEYPRESSES // reacts to keypresses
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
164 changes: 164 additions & 0 deletions keyboards/1upkeyboards/1upsuper16v3/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
{
ziptyze marked this conversation as resolved.
Show resolved Hide resolved
"manufacturer": "1upkeyboards",
"keyboard_name": "1upsuper16v3",
"maintainer": "ziptyze",
"bootloader": "rp2040",
"dynamic_keymap": {
"layer_count": 10
},
"encoder": {
"rotary": [
{"pin_a": "GP20", "pin_b": "GP21"},
{"pin_a": "GP25", "pin_b": "GP26"},
{"pin_a": "GP2", "pin_b": "GP3"},
{"pin_a": "GP6", "pin_b": "GP7"}
]
},
"features": {
"bootmagic": true,
"command": false,
"console": false,
"encoder": true,
"extrakey": true,
"mousekey": true,
"nkro": false,
"rgb_matrix": true
},
"matrix_pins": {
"direct": [
["GP23", "GP24", "GP4", "GP5"],
["GP19", "GP27", "GP1", "GP8"],
["GP18", "GP28", "GP0", "GP9"],
["GP17", "GP16", "GP15", "GP11"]
]
},
"processor": "RP2040",
"rgb_matrix": {
"animations": {
"band_pinwheel_sat": true,
"band_pinwheel_val": true,
"band_sat": true,
"band_spiral_sat": true,
"band_spiral_val": true,
"band_val": true,
"breathing": true,
"cycle_all": true,
"cycle_left_right": true,
"cycle_out_in": true,
"cycle_out_in_dual": true,
"cycle_pinwheel": true,
"cycle_spiral": true,
"cycle_up_down": true,
"digital_rain": true,
"dual_beacon": true,
"gradient_left_right": true,
"gradient_up_down": true,
"hue_breathing": true,
"hue_pendulum": true,
"hue_wave": true,
"jellybean_raindrops": true,
"multisplash": true,
"pixel_flow": true,
"pixel_rain": true,
"rainbow_beacon": true,
"rainbow_moving_chevron": true,
"rainbow_pinwheels": true,
"raindrops": true,
"solid_multisplash": true,
"solid_reactive": true,
"solid_reactive_cross": true,
"solid_reactive_multicross": true,
"solid_reactive_multinexus": true,
"solid_reactive_multiwide": true,
"solid_reactive_nexus": true,
"solid_reactive_simple": true,
"solid_reactive_wide": true,
"solid_splash": true,
"splash": true,
"typing_heatmap": true
},
"driver": "ws2812",
"layout": [
{"x": 99, "y": 1, "flags": 2},
{"x": 70, "y": 1, "flags": 2},
{"x": 42, "y": 1, "flags": 2},
{"x": 14, "y": 1, "flags": 2},
{"x": 4, "y": 4, "flags": 2},
{"x": 4, "y": 12, "flags": 2},
{"matrix": [0, 0], "x": 28, "y": 8, "flags": 4},
{"matrix": [0, 1], "x": 84, "y": 8, "flags": 4},
{"x": 4, "y": 20, "flags": 2},
{"x": 4, "y": 28, "flags": 2},
{"matrix": [1, 0], "x": 28, "y": 24, "flags": 4},
{"matrix": [1, 1], "x": 84, "y": 24, "flags": 4},
{"x": 4, "y": 36, "flags": 2},
{"x": 4, "y": 44, "flags": 2},
{"matrix": [2, 0], "x": 28, "y": 40, "flags": 4},
{"matrix": [2, 1], "x": 84, "y": 40, "flags": 4},
{"x": 4, "y": 52, "flags": 2},
{"x": 4, "y": 60, "flags": 2},
{"x": 14, "y": 63, "flags": 2},
{"matrix": [3, 0], "x": 28, "y": 56, "flags": 4},
{"x": 42, "y": 63, "flags": 2},
{"x": 70, "y": 63, "flags": 2},
{"matrix": [3, 1], "x": 84, "y": 56, "flags": 4},
{"x": 99, "y": 63, "flags": 2},
{"x": 126, "y": 63, "flags": 2},
{"matrix": [3, 2], "x": 140, "y": 56, "flags": 4},
{"x": 154, "y": 63, "flags": 2},
{"x": 182, "y": 63, "flags": 2},
{"matrix": [3, 3], "x": 196, "y": 56, "flags": 4},
{"x": 210, "y": 63, "flags": 2},
{"x": 220, "y": 60, "flags": 2},
{"x": 220, "y": 52, "flags": 2},
{"x": 220, "y": 44, "flags": 2},
{"matrix": [2, 3], "x": 196, "y": 40, "flags": 4},
{"matrix": [2, 2], "x": 140, "y": 40, "flags": 4},
{"x": 220, "y": 36, "flags": 2},
{"x": 220, "y": 28, "flags": 2},
{"matrix": [1, 3], "x": 196, "y": 24, "flags": 4},
{"matrix": [1, 2], "x": 140, "y": 24, "flags": 4},
{"x": 220, "y": 20, "flags": 2},
{"x": 220, "y": 12, "flags": 2},
{"matrix": [0, 3], "x": 196, "y": 8, "flags": 4},
{"matrix": [0, 2], "x": 140, "y": 8, "flags": 4},
{"x": 220, "y": 4, "flags": 2},
{"x": 210, "y": 1, "flags": 2},
{"x": 182, "y": 1, "flags": 2},
{"x": 154, "y": 1, "flags": 2},
{"x": 126, "y": 1, "flags": 2}
]
},
ziptyze marked this conversation as resolved.
Show resolved Hide resolved
"usb": {
"device_version": "1.0.0",
"pid": "0x5610",
"vid": "0x6F75"
},
"ws2812": {
"driver": "vendor",
"pin": "GP29"
},
"community_layouts": ["ortho_4x4"],
"layouts": {
"LAYOUT_ortho_4x4": {
"layout": [
{"label": "00", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "01", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "02", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "03", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "10", "matrix": [1, 0], "x": 0, "y": 1},
{"label": "11", "matrix": [1, 1], "x": 1, "y": 1},
{"label": "12", "matrix": [1, 2], "x": 2, "y": 1},
{"label": "13", "matrix": [1, 3], "x": 3, "y": 1},
{"label": "20", "matrix": [2, 0], "x": 0, "y": 2},
{"label": "21", "matrix": [2, 1], "x": 1, "y": 2},
{"label": "22", "matrix": [2, 2], "x": 2, "y": 2},
{"label": "23", "matrix": [2, 3], "x": 3, "y": 2},
{"label": "30", "matrix": [3, 0], "x": 0, "y": 3},
{"label": "31", "matrix": [3, 1], "x": 1, "y": 3},
{"label": "32", "matrix": [3, 2], "x": 2, "y": 3},
{"label": "33", "matrix": [3, 3], "x": 3, "y": 3}
]
}
}
}
39 changes: 39 additions & 0 deletions keyboards/1upkeyboards/1upsuper16v3/keymaps/default/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/* Copyright 2023 ziptyze
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#include QMK_KEYBOARD_H

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_ortho_4x4(
KC_P7, KC_P8, KC_P9, KC_PMNS,
KC_P4, KC_P5, KC_P6, KC_PPLS,
KC_P1, KC_P2, KC_P3, KC_PSLS,
MO(1), KC_P0, KC_PDOT, KC_PENT
),
[1] = LAYOUT_ortho_4x4(
RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI,
RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD,
RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT
)
};

#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }
};
#endif
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ENCODER_MAP_ENABLE = yes
39 changes: 39 additions & 0 deletions keyboards/1upkeyboards/1upsuper16v3/keymaps/via/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/* Copyright 2023 ziptyze
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#include QMK_KEYBOARD_H

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_ortho_4x4(
KC_P7, KC_P8, KC_P9, KC_PMNS,
KC_P4, KC_P5, KC_P6, KC_PPLS,
KC_P1, KC_P2, KC_P3, KC_PSLS,
MO(1), KC_P0, KC_PDOT, KC_PENT
),
[1] = LAYOUT_ortho_4x4(
RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI,
RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD,
RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT
)
};

#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }
};
#endif
4 changes: 4 additions & 0 deletions keyboards/1upkeyboards/1upsuper16v3/keymaps/via/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
VIA_ENABLE = yes
LTO_ENABLE = yes

ENCODER_MAP_ENABLE = yes
22 changes: 22 additions & 0 deletions keyboards/1upkeyboards/1upsuper16v3/readme.md
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would an image (link) of this board/PCB be possible?

Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# 1upSuper16v3

This keyboard is the Super16v3 from 1upkeyboards, a 4x4 macropad with the option for up to four encoders in the top row. Notable features include in-switch per-key addressable RGB LEDs and thirty two 1mm underglow RGB LEDs; for bright and smooth lighting effects. The Super16v3 utilises an rp2040 microcontroller, wired using direct pins.

* Keyboard Maintainer: [ziptyze](https://github.com/ziptyze)

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

make 1upkeyboards/1upsuper16v3:default

Flashing example for this keyboard:

make 1upkeyboards/1upsuper16v3: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:

* **Bootmagic reset**: Hold down the key at (0,0) in the matrix. For this keyboard it is the top left button
* **Physical reset button**: Hold the button on the back of the PCB and plug in the keyboard
Empty file.