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 Reverb keyboard. #22387

Merged
merged 8 commits into from
Dec 15, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
Next Next commit
init
  • Loading branch information
daskygit committed Oct 19, 2023
commit c43e4e0ce68236fee6c19d220116d6bc817b5d8c
15 changes: 15 additions & 0 deletions keyboards/dasky/reverb/config.h
Original file line number Diff line number Diff line change
@@ -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
2,265 changes: 2,265 additions & 0 deletions keyboards/dasky/reverb/graphics/splash.qgf.c

Large diffs are not rendered by default.

11 changes: 11 additions & 0 deletions keyboards/dasky/reverb/graphics/splash.qgf.h
Original file line number Diff line number Diff line change
@@ -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];
8 changes: 8 additions & 0 deletions keyboards/dasky/reverb/halconf.h
Original file line number Diff line number Diff line change
@@ -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>
198 changes: 198 additions & 0 deletions keyboards/dasky/reverb/info.json
Original file line number Diff line number Diff line change
@@ -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
daskygit marked this conversation as resolved.
Show resolved Hide resolved
},
"url": "",
daskygit marked this conversation as resolved.
Show resolved Hide resolved
"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}
]
}
}
}
32 changes: 32 additions & 0 deletions keyboards/dasky/reverb/keymaps/default/keymap.json
Original file line number Diff line number Diff line change
@@ -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"]
]
}
37 changes: 37 additions & 0 deletions keyboards/dasky/reverb/keymaps/via/keymap.json
Original file line number Diff line number Diff line change
@@ -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"]
]
}
9 changes: 9 additions & 0 deletions keyboards/dasky/reverb/mcuconf.h
Original file line number Diff line number Diff line change
@@ -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
27 changes: 27 additions & 0 deletions keyboards/dasky/reverb/readme.md
Original file line number Diff line number Diff line change
@@ -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
18 changes: 18 additions & 0 deletions keyboards/dasky/reverb/reverb.c
Original file line number Diff line number Diff line change
@@ -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();
}
6 changes: 6 additions & 0 deletions keyboards/dasky/reverb/reverb.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
// Copyright 2023 Dasky (@daskygit)
// SPDX-License-Identifier: GPL-2.0-or-later

#include <qp.h>

painter_device_t reverb_display;
3 changes: 3 additions & 0 deletions keyboards/dasky/reverb/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
QUANTUM_PAINTER_DRIVERS = gc9a01_spi

SRC += graphics/splash.qgf.c