This commit is contained in:
Dasky 2023-10-19 16:58:16 +01:00
parent f6c70c40af
commit c43e4e0ce6
12 changed files with 2629 additions and 0 deletions

View File

@ -0,0 +1,15 @@
// Copyright 2023 Dasky (@daskygit)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define SPI_DRIVER SPID0
#define SPI_SCK_PIN GP18
#define SPI_MOSI_PIN GP19
#define SPI_MISO_PIN GP16
#define DISPLAY_RST GP15
#define DISPLAY_CS GP21
#define DISPLAY_DC GP20
#define QUANTUM_PAINTER_SUPPORTS_256_PALETTE true

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,11 @@
// Copyright 2023 QMK -- generated source code only, image retains original copyright
// SPDX-License-Identifier: GPL-2.0-or-later
// This file was auto-generated by `qmk painter-convert-graphics -i splash.png -f pal256`
#pragma once
#include <qp.h>
extern const uint32_t gfx_splash_length;
extern const uint8_t gfx_splash[36030];

View File

@ -0,0 +1,8 @@
// Copyright 2023 Dasky (@daskygit)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define HAL_USE_SPI TRUE
#include_next <halconf.h>

View File

@ -0,0 +1,198 @@
{
"manufacturer": "Dasky",
"keyboard_name": "Reverb",
"maintainer": "daskygit",
"bootloader": "rp2040",
"build": {
"lto": true
},
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"quantum_painter": true,
"rgb_matrix": true
},
"matrix_pins": {
"cols": ["GP12", "GP1", "GP4", "GP13", "GP6", "GP8", "GP27", "GP22"],
"rows": ["GP11", "GP7", "GP9", "GP28", "GP26", "GP10", "GP14"]
},
"processor": "RP2040",
"rgb_matrix": {
"driver": "ws2812",
"animations": {
"solid_color": true,
"alphas_mods": true,
"gradient_up_down": true,
"gradient_left_right": true,
"breathing": true,
"band_sat": true,
"band_val": true,
"band_pinwheel_sat": true,
"band_pinwheel_val": true,
"band_spiral_sat": true,
"band_spiral_val": true,
"cycle_all": true,
"cycle_left_right": true,
"cycle_up_down": true,
"cycle_out_in": true,
"cycle_out_in_dual": true,
"rainbow_moving_chevron": true,
"cycle_pinwheel": true,
"cycle_spiral": true,
"dual_beacon": true,
"rainbow_beacon": true,
"rainbow_pinwheels": true,
"raindrops": true,
"jellybean_raindrops": true,
"hue_breathing": true,
"hue_pendulum": true,
"hue_wave": true,
"pixel_fractal": true,
"pixel_flow": true,
"pixel_rain": true,
"typing_heatmap": true,
"digital_rain": true,
"solid_reactive_simple": true,
"solid_reactive": true,
"solid_reactive_wide": true,
"solid_reactive_multiwide": true,
"solid_reactive_cross": true,
"solid_reactive_multicross": true,
"solid_reactive_nexus": true,
"solid_reactive_multinexus": true,
"splash": true,
"multisplash": true,
"solid_splash": true,
"solid_multisplash": true
},
"layout": [
{"matrix": [2, 1], "x": 95, "y": 13, "flags": 4},
{"matrix": [2, 0], "x": 80, "y": 9, "flags": 4},
{"matrix": [1, 1], "x": 65, "y": 2, "flags": 4},
{"matrix": [1, 0], "x": 46, "y": 3, "flags": 4},
{"matrix": [0, 1], "x": 29, "y": 3, "flags": 4},
{"matrix": [0, 0], "x": 12, "y": 0, "flags": 4},
{"matrix": [0, 2], "x": 8, "y": 10, "flags": 4},
{"matrix": [0, 3], "x": 25, "y": 14, "flags": 4},
{"matrix": [1, 2], "x": 42, "y": 14, "flags": 4},
{"matrix": [1, 3], "x": 60, "y": 13, "flags": 4},
{"matrix": [2, 2], "x": 75, "y": 19, "flags": 4},
{"matrix": [2, 3], "x": 91, "y": 24, "flags": 4},
{"matrix": [2, 5], "x": 87, "y": 35, "flags": 4},
{"matrix": [2, 4], "x": 71, "y": 30, "flags": 4},
{"matrix": [1, 5], "x": 56, "y": 24, "flags": 4},
{"matrix": [1, 4], "x": 38, "y": 24, "flags": 4},
{"matrix": [0, 5], "x": 20, "y": 24, "flags": 4},
{"matrix": [0, 4], "x": 5, "y": 22, "flags": 4},
{"matrix": [0, 6], "x": 0, "y": 32, "flags": 4},
{"matrix": [0, 7], "x": 16, "y": 35, "flags": 4},
{"matrix": [1, 6], "x": 34, "y": 35, "flags": 4},
{"matrix": [1, 7], "x": 52, "y": 35, "flags": 4},
{"matrix": [2, 6], "x": 68, "y": 42, "flags": 4},
{"matrix": [2, 7], "x": 83, "y": 46, "flags": 4},
{"matrix": [6, 0], "x": 60, "y": 54, "flags": 5},
{"matrix": [6, 1], "x": 76, "y": 58, "flags": 5},
{"matrix": [6, 2], "x": 96, "y": 64, "flags": 5},
{"matrix": [6, 3], "x": 128, "y": 64, "flags": 5},
{"matrix": [6, 4], "x": 148, "y": 58, "flags": 5},
{"matrix": [6, 5], "x": 164, "y": 54, "flags": 5},
{"matrix": [3, 6], "x": 141, "y": 46, "flags": 4},
{"matrix": [3, 7], "x": 156, "y": 42, "flags": 4},
{"matrix": [4, 6], "x": 172, "y": 35, "flags": 4},
{"matrix": [4, 7], "x": 190, "y": 35, "flags": 4},
{"matrix": [5, 6], "x": 208, "y": 35, "flags": 4},
{"matrix": [5, 7], "x": 224, "y": 32, "flags": 4},
{"matrix": [5, 5], "x": 219, "y": 22, "flags": 4},
{"matrix": [5, 4], "x": 204, "y": 24, "flags": 4},
{"matrix": [4, 5], "x": 186, "y": 24, "flags": 4},
{"matrix": [4, 4], "x": 168, "y": 24, "flags": 4},
{"matrix": [3, 5], "x": 153, "y": 30, "flags": 4},
{"matrix": [3, 4], "x": 137, "y": 35, "flags": 4},
{"matrix": [3, 2], "x": 133, "y": 24, "flags": 4},
{"matrix": [3, 3], "x": 149, "y": 19, "flags": 4},
{"matrix": [4, 2], "x": 164, "y": 13, "flags": 4},
{"matrix": [4, 3], "x": 182, "y": 14, "flags": 4},
{"matrix": [5, 2], "x": 199, "y": 14, "flags": 4},
{"matrix": [5, 3], "x": 216, "y": 10, "flags": 4},
{"matrix": [5, 1], "x": 212, "y": 0, "flags": 4},
{"matrix": [5, 0], "x": 195, "y": 3, "flags": 4},
{"matrix": [4, 1], "x": 178, "y": 3, "flags": 4},
{"matrix": [4, 0], "x": 159, "y": 2, "flags": 4},
{"matrix": [3, 1], "x": 144, "y": 9, "flags": 4},
{"matrix": [3, 0], "x": 129, "y": 13, "flags": 4}
],
"led_count": 54
},
"url": "",
"usb": {
"device_version": "1.0.0",
"pid": "0x0001",
"vid": "0x8181"
},
"ws2812": {
"driver": "vendor",
"pin": "GP0"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [1, 0], "x": 2, "y": 0},
{"matrix": [1, 1], "x": 3, "y": 0},
{"matrix": [2, 0], "x": 4, "y": 0},
{"matrix": [2, 1], "x": 5, "y": 0},
{"matrix": [3, 0], "x": 8, "y": 0},
{"matrix": [3, 1], "x": 9, "y": 0},
{"matrix": [4, 0], "x": 10, "y": 0},
{"matrix": [4, 1], "x": 11, "y": 0},
{"matrix": [5, 0], "x": 12, "y": 0},
{"matrix": [5, 1], "x": 13, "y": 0},
{"matrix": [0, 2], "x": 0, "y": 1},
{"matrix": [0, 3], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [2, 2], "x": 4, "y": 1},
{"matrix": [2, 3], "x": 5, "y": 1},
{"matrix": [3, 2], "x": 8, "y": 1},
{"matrix": [3, 3], "x": 9, "y": 1},
{"matrix": [4, 2], "x": 10, "y": 1},
{"matrix": [4, 3], "x": 11, "y": 1},
{"matrix": [5, 2], "x": 12, "y": 1},
{"matrix": [5, 3], "x": 13, "y": 1},
{"matrix": [0, 4], "x": 0, "y": 2},
{"matrix": [0, 5], "x": 1, "y": 2},
{"matrix": [1, 4], "x": 2, "y": 2},
{"matrix": [1, 5], "x": 3, "y": 2},
{"matrix": [2, 4], "x": 4, "y": 2},
{"matrix": [2, 5], "x": 5, "y": 2},
{"matrix": [3, 4], "x": 8, "y": 2},
{"matrix": [3, 5], "x": 9, "y": 2},
{"matrix": [4, 4], "x": 10, "y": 2},
{"matrix": [4, 5], "x": 11, "y": 2},
{"matrix": [5, 4], "x": 12, "y": 2},
{"matrix": [5, 5], "x": 13, "y": 2},
{"matrix": [0, 6], "x": 0, "y": 3},
{"matrix": [0, 7], "x": 1, "y": 3},
{"matrix": [1, 6], "x": 2, "y": 3},
{"matrix": [1, 7], "x": 3, "y": 3},
{"matrix": [2, 6], "x": 4, "y": 3},
{"matrix": [2, 7], "x": 5, "y": 3},
{"matrix": [3, 6], "x": 8, "y": 3},
{"matrix": [3, 7], "x": 9, "y": 3},
{"matrix": [4, 6], "x": 10, "y": 3},
{"matrix": [4, 7], "x": 11, "y": 3},
{"matrix": [5, 6], "x": 12, "y": 3},
{"matrix": [5, 7], "x": 13, "y": 3},
{"matrix": [6, 0], "x": 4, "y": 4},
{"matrix": [6, 1], "x": 5, "y": 4},
{"matrix": [6, 2], "x": 6, "y": 4},
{"matrix": [6, 3], "x": 7, "y": 4},
{"matrix": [6, 4], "x": 8, "y": 4},
{"matrix": [6, 5], "x": 9, "y": 4}
]
}
}
}

View File

@ -0,0 +1,32 @@
{
"keyboard": "dasky/reverb",
"keymap": "default",
"layout": "LAYOUT",
"layers": [
["KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_PSCR",
"KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPC",
"KC_LCTL", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT",
"KC_LSFT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_ESC",
"KC_LGUI", "MO(1)", "KC_SPC", "KC_ENT", "MO(2)", "KC_RALT"],
["KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F12", "KC_F12",
"KC_TAB", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_BSPC",
"KC_LCTL", "_______", "_______", "_______", "_______", "_______", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RIGHT","_______", "_______",
"KC_LSFT", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
"KC_LGUI", "KC_TRNS", "KC_SPC", "KC_ENT", "MO(3)", "KC_RALT"],
["KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_PSCR",
"KC_TAB", "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "KC_BSPC",
"KC_LCTL", "_______", "_______", "_______", "_______", "_______", "KC_MINS", "KC_EQL", "KC_LBRC", "KC_RBRC", "KC_BSLS", "KC_GRV",
"KC_LSFT", "_______", "_______", "_______", "_______", "_______", "KC_UNDS", "KC_PLUS", "KC_LCBR", "KC_RCBR", "KC_PIPE", "KC_TILD",
"KC_LGUI", "MO(3)", "KC_SPC", "KC_ENT", "KC_TRNS", "KC_RALT"],
["KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_PSCR",
"QK_BOOT", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
"RGB_TOG", "RGB_HUI", "RGB_SAI", "RGB_VAI", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
"RGB_MOD", "RGB_HUD", "RGB_SAD", "RGB_VAD", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
"KC_LGUI", "KC_TRNS", "KC_SPC", "KC_ENT", "KC_TRNS", "KC_RALT"]
]
}

View File

@ -0,0 +1,37 @@
{
"keyboard": "dasky/reverb",
"keymap": "via",
"layout": "LAYOUT",
"config": {
"features": {
"via": true
}
},
"layers": [
["KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_PSCR",
"KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPC",
"KC_LCTL", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT",
"KC_LSFT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_ESC",
"KC_LGUI", "MO(1)", "KC_SPC", "KC_ENT", "MO(2)", "KC_RALT"],
["KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F12", "KC_F12",
"KC_TAB", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_BSPC",
"KC_LCTL", "_______", "_______", "_______", "_______", "_______", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RIGHT","_______", "_______",
"KC_LSFT", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
"KC_LGUI", "KC_TRNS", "KC_SPC", "KC_ENT", "MO(3)", "KC_RALT"],
["KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_PSCR",
"KC_TAB", "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "KC_BSPC",
"KC_LCTL", "_______", "_______", "_______", "_______", "_______", "KC_MINS", "KC_EQL", "KC_LBRC", "KC_RBRC", "KC_BSLS", "KC_GRV",
"KC_LSFT", "_______", "_______", "_______", "_______", "_______", "KC_UNDS", "KC_PLUS", "KC_LCBR", "KC_RCBR", "KC_PIPE", "KC_TILD",
"KC_LGUI", "MO(3)", "KC_SPC", "KC_ENT", "KC_TRNS", "KC_RALT"],
["KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_PSCR",
"QK_BOOT", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
"RGB_TOG", "RGB_HUI", "RGB_SAI", "RGB_VAI", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
"RGB_MOD", "RGB_HUD", "RGB_SAD", "RGB_VAD", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
"KC_LGUI", "KC_TRNS", "KC_SPC", "KC_ENT", "KC_TRNS", "KC_RALT"]
]
}

View File

@ -0,0 +1,9 @@
// Copyright 2023 Dasky (@daskygit)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include_next <mcuconf.h>
#undef RP_SPI_USE_SPI0
#define RP_SPI_USE_SPI0 TRUE

View File

@ -0,0 +1,27 @@
# Reverb
![Reverb](https://i.imgur.com/AaDUYjih.png)
A unibody split with SK6803 mini-e per key RGB, GC9A01 display and Raspberry Pi Pico.
* Keyboard Maintainer: [Dasky](https://github.com/daskygit)
* Hardware Supported: Raspberry Pi Pico, GC9A01
* Hardware Availability: TBA
Make example for this keyboard (after setting up your build environment):
make dasky/reverb:default
Flashing example for this keyboard:
make dasky/reverb: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 top left key and plug in the keyboard
* **Physical boot button**: Hold down the BOOTSEL button on the Raspberry Pi Pico and plug in the keyboard
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@ -0,0 +1,18 @@
// Copyright 2023 Dasky (@daskygit)
// SPDX-License-Identifier: GPL-2.0-or-later
#include "reverb.h"
#include "graphics/splash.qgf.h"
painter_device_t reverb_display;
void keyboard_post_init_kb(void) {
painter_image_handle_t splash_image;
reverb_display = qp_gc9a01_make_spi_device(240, 240, DISPLAY_CS, DISPLAY_DC, DISPLAY_RST, 2, 0);
qp_init(reverb_display, QP_ROTATION_0);
splash_image = qp_load_image_mem(gfx_splash);
qp_drawimage(reverb_display, 0, 0, splash_image);
qp_flush(reverb_display);
qp_close_image(splash_image);
keyboard_post_init_user();
}

View File

@ -0,0 +1,6 @@
// Copyright 2023 Dasky (@daskygit)
// SPDX-License-Identifier: GPL-2.0-or-later
#include <qp.h>
painter_device_t reverb_display;

View File

@ -0,0 +1,3 @@
QUANTUM_PAINTER_DRIVERS = gc9a01_spi
SRC += graphics/splash.qgf.c