Ming-Gih Lam 1 week ago
committed by GitHub
parent
commit
222c8463b5
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
13 changed files with 10416 additions and 0 deletions
  1. +20
    -0
      keyboards/dcpedit/midevil/config.h
  2. +15
    -0
      keyboards/dcpedit/midevil/halconf.h
  3. +2702
    -0
      keyboards/dcpedit/midevil/image/animated.qgf.c
  4. +11
    -0
      keyboards/dcpedit/midevil/image/animated.qgf.h
  5. +7363
    -0
      keyboards/dcpedit/midevil/image/background.qgf.c
  6. +11
    -0
      keyboards/dcpedit/midevil/image/background.qgf.h
  7. +136
    -0
      keyboards/dcpedit/midevil/info.json
  8. +21
    -0
      keyboards/dcpedit/midevil/keymaps/default/keymap.json
  9. +26
    -0
      keyboards/dcpedit/midevil/keymaps/via/keymap.json
  10. +12
    -0
      keyboards/dcpedit/midevil/mcuconf.h
  11. +69
    -0
      keyboards/dcpedit/midevil/midevil.c
  12. +27
    -0
      keyboards/dcpedit/midevil/readme.md
  13. +3
    -0
      keyboards/dcpedit/midevil/rules.mk

+ 20
- 0
keyboards/dcpedit/midevil/config.h View File

@ -0,0 +1,20 @@
// Copyright 2023 Ming-Gih Lam (@dcpedit)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
/* LCD config */
#define LCD_DC_PIN GP16 // data/command
#define LCD_CS_PIN GP17 // chip select
#define LCD_RST_PIN GP14 // reset
#define BACKLIGHT_PWM_DRIVER PWMD7
#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_B
/* SPI pins */
#define SPI_DRIVER SPID0
#define SPI_SCK_PIN GP18
#define SPI_MOSI_PIN GP19
#define SPI_MISO_PIN NO_PIN
#define QUANTUM_PAINTER_DISPLAY_TIMEOUT 0 // milliseconds
#define QUANTUM_PAINTER_SUPPORTS_256_PALETTE TRUE

+ 15
- 0
keyboards/dcpedit/midevil/halconf.h View File

@ -0,0 +1,15 @@
// Copyright 2023 Ming-Gih Lam (@dcpedit)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include_next <halconf.h>
#undef HAL_USE_SPI
#define HAL_USE_SPI TRUE
#undef SPI_USE_WAIT
#define SPI_USE_WAIT TRUE
#undef HAL_USE_PWM
#define HAL_USE_PWM TRUE

+ 2702
- 0
keyboards/dcpedit/midevil/image/animated.qgf.c
File diff suppressed because it is too large
View File


+ 11
- 0
keyboards/dcpedit/midevil/image/animated.qgf.h 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 animated.gif -f pal256`
#pragma once
#include <qp.h>
extern const uint32_t gfx_animated_length;
extern const uint8_t gfx_animated[43015];

+ 7363
- 0
keyboards/dcpedit/midevil/image/background.qgf.c
File diff suppressed because it is too large
View File


+ 11
- 0
keyboards/dcpedit/midevil/image/background.qgf.h 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 background.png -f pal256`
#pragma once
#include <qp.h>
extern const uint32_t gfx_background_length;
extern const uint8_t gfx_background[117596];

+ 136
- 0
keyboards/dcpedit/midevil/info.json View File

@ -0,0 +1,136 @@
{
"manufacturer": "dcpedit",
"keyboard_name": "MidEvil",
"maintainer": "dcpedit",
"bootloader": "rp2040",
"bootmagic": {
"matrix": [7, 9]
},
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"backlight": true,
"quantum_painter": true
},
"matrix_pins": {
"cols": ["GP27", "GP28", "GP11", "GP10", "GP9", "GP4", "GP3", "GP2", "GP1", "GP0"],
"rows": ["GP6", "GP8", "GP13", "GP22", "GP20", "GP5", "GP7", "GP12", "GP26", "GP21"]
},
"processor": "RP2040",
"url": "https://github.com/dcpedit/midevil",
"usb": {
"device_version": "1.0.0",
"pid": "0x177E",
"vid": "0xDC9E"
},
"backlight": {
"pin": "GP15",
"levels": 5,
"default": {
"brightness": 3
}
},
"layouts": {
"LAYOUT": {
"layout": [
{"label": "7,9", "matrix": [7, 9], "x": 0.5, "y": 0.25},
{"label": "0,0", "matrix": [0, 0], "x": 2, "y": 0.25},
{"label": "5,0", "matrix": [5, 0], "x": 3, "y": 0.25},
{"label": "0,1", "matrix": [0, 1], "x": 4.5, "y": 0.25},
{"label": "5,1", "matrix": [5, 1], "x": 5.5, "y": 0.13},
{"label": "0,2", "matrix": [0, 2], "x": 6.5, "y": 0.25},
{"label": "5,2", "matrix": [5, 2], "x": 7.5, "y": 0.38},
{"label": "0,3", "matrix": [0, 3], "x": 10, "y": 0.5},
{"label": "5,3", "matrix": [5, 3], "x": 11, "y": 0.5},
{"label": "0,4", "matrix": [0, 4], "x": 12, "y": 0.5},
{"label": "5,4", "matrix": [5, 4], "x": 13, "y": 0.5},
{"label": "0,5", "matrix": [0, 5], "x": 15.5, "y": 0.38},
{"label": "5,5", "matrix": [5, 5], "x": 16.5, "y": 0.25},
{"label": "0,6", "matrix": [0, 6], "x": 17.5, "y": 0.13},
{"label": "5,6", "matrix": [5, 6], "x": 18.5, "y": 0.25},
{"label": "0,7", "matrix": [0, 7], "x": 20, "y": 0.25},
{"label": "5,7", "matrix": [5, 7], "x": 21, "y": 0.25},
{"label": "0,8", "matrix": [0, 8], "x": 22, "y": 0.25},
{"label": "5,8", "matrix": [5, 8], "x": 23, "y": 0.25},
{"label": "0,9", "matrix": [0, 9], "x": 24, "y": 0.25},
{"label": "5,9", "matrix": [5, 9], "x": 25.25, "y": 0.25},
{"label": "1,0", "matrix": [1, 0], "x": 1.25, "y": 1.25, "w": 1.5},
{"label": "6,0", "matrix": [6, 0], "x": 2.75, "y": 1.25},
{"label": "1,1", "matrix": [1, 1], "x": 4.5, "y": 1.25},
{"label": "6,1", "matrix": [6, 1], "x": 5.5, "y": 1.13},
{"label": "1,2", "matrix": [1, 2], "x": 6.5, "y": 1.25},
{"label": "6,2", "matrix": [6, 2], "x": 7.5, "y": 1.38},
{"label": "1,3", "matrix": [1, 3], "x": 10, "y": 1.5},
{"label": "6,3", "matrix": [6, 3], "x": 11, "y": 1.5},
{"label": "1,4", "matrix": [1, 4], "x": 12, "y": 1.5},
{"label": "6,4", "matrix": [6, 4], "x": 13, "y": 1.5},
{"label": "1,5", "matrix": [1, 5], "x": 15.5, "y": 1.38},
{"label": "6,5", "matrix": [6, 5], "x": 16.5, "y": 1.25},
{"label": "1,6", "matrix": [1, 6], "x": 17.5, "y": 1.13},
{"label": "6,6", "matrix": [6, 6], "x": 18.5, "y": 1.25},
{"label": "1,7", "matrix": [1, 7], "x": 20.25, "y": 1.25},
{"label": "6,7", "matrix": [6, 7], "x": 21.25, "y": 1.25},
{"label": "1,8", "matrix": [1, 8], "x": 22.25, "y": 1.25},
{"label": "1,9", "matrix": [1, 9], "x": 23.25, "y": 1.25, "w": 1.5},
{"label": "6,9", "matrix": [6, 9], "x": 25.25, "y": 1.25},
{"label": "2,0", "matrix": [2, 0], "x": 0.75, "y": 2.25, "w": 1.75},
{"label": "7,0", "matrix": [7, 0], "x": 2.5, "y": 2.25},
{"label": "2,1", "matrix": [2, 1], "x": 4.5, "y": 2.25},
{"label": "7,1", "matrix": [7, 1], "x": 5.5, "y": 2.13},
{"label": "2,2", "matrix": [2, 2], "x": 6.5, "y": 2.25},
{"label": "7,2", "matrix": [7, 2], "x": 7.5, "y": 2.38},
{"label": "2,3", "matrix": [2, 3], "x": 10, "y": 2.5},
{"label": "7,3", "matrix": [7, 3], "x": 11, "y": 2.5},
{"label": "2,4", "matrix": [2, 4], "x": 12, "y": 2.5},
{"label": "7,4", "matrix": [7, 4], "x": 13, "y": 2.5},
{"label": "2,5", "matrix": [2, 5], "x": 15.5, "y": 2.38},
{"label": "7,5", "matrix": [7, 5], "x": 16.5, "y": 2.25},
{"label": "2,6", "matrix": [2, 6], "x": 17.5, "y": 2.13},
{"label": "7,6", "matrix": [7, 6], "x": 18.5, "y": 2.25},
{"label": "2,7", "matrix": [2, 7], "x": 20.5, "y": 2.25},
{"label": "7,7", "matrix": [7, 7], "x": 21.5, "y": 2.25},
{"label": "2,8", "matrix": [2, 8], "x": 22.5, "y": 2.25, "w": 2.25},
{"label": "2,9", "matrix": [2, 9], "x": 25.25, "y": 2.25},
{"label": "3,0", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.25},
{"label": "7,8", "matrix": [7, 8], "x": 1.25, "y": 3.25},
{"label": "8,0", "matrix": [8, 0], "x": 2.25, "y": 3.25},
{"label": "3,1", "matrix": [3, 1], "x": 4.5, "y": 3.25},
{"label": "8,1", "matrix": [8, 1], "x": 5.5, "y": 3.13},
{"label": "3,2", "matrix": [3, 2], "x": 6.5, "y": 3.25},
{"label": "8,2", "matrix": [8, 2], "x": 7.5, "y": 3.38},
{"label": "9,2", "matrix": [9, 2], "x": 8.5, "y": 3.38},
{"label": "3,3", "matrix": [3, 3], "x": 10, "y": 3.5},
{"label": "8,3", "matrix": [8, 3], "x": 11, "y": 3.5},
{"label": "3,4", "matrix": [3, 4], "x": 12, "y": 3.5},
{"label": "8,4", "matrix": [8, 4], "x": 13, "y": 3.5},
{"label": "4,5", "matrix": [4, 5], "x": 14.5, "y": 3.38},
{"label": "3,5", "matrix": [3, 5], "x": 15.5, "y": 3.38},
{"label": "8,5", "matrix": [8, 5], "x": 16.5, "y": 3.25},
{"label": "3,6", "matrix": [3, 6], "x": 17.5, "y": 3.13},
{"label": "8,6", "matrix": [8, 6], "x": 18.5, "y": 3.25},
{"label": "3,7", "matrix": [3, 7], "x": 20.75, "y": 3.25},
{"label": "8,7", "matrix": [8, 7], "x": 21.75, "y": 3.25},
{"label": "3,8", "matrix": [3, 8], "x": 22.75, "y": 3.25, "w": 1.25},
{"label": "3,9", "matrix": [3, 9], "x": 24.25, "y": 3.5},
{"label": "4,0", "matrix": [4, 0], "x": 0.5, "y": 4.25, "w": 1.25},
{"label": "9,0", "matrix": [9, 0], "x": 1.75, "y": 4.25, "w": 1.25},
{"label": "4,1", "matrix": [4, 1], "x": 5, "y": 4.25, "w": 1.25},
{"label": "9,1", "matrix": [9, 1], "x": 6.25, "y": 4.25, "w": 1.25},
{"label": "4,2", "matrix": [4, 2], "x": 7.5, "y": 4.38, "w": 2},
{"label": "4,3", "matrix": [4, 3], "x": 10, "y": 4.5},
{"label": "9,3", "matrix": [9, 3], "x": 11, "y": 4.5},
{"label": "4,4", "matrix": [4, 4], "x": 12, "y": 4.5},
{"label": "9,4", "matrix": [9, 4], "x": 13, "y": 4.5},
{"label": "9,5", "matrix": [9, 5], "x": 14.5, "y": 4.38, "w": 2.75},
{"label": "4,6", "matrix": [4, 6], "x": 17.25, "y": 4.25, "w": 1.25},
{"label": "9,6", "matrix": [9, 6], "x": 20.5, "y": 4.25, "w": 1.25},
{"label": "4,7", "matrix": [4, 7], "x": 21.75, "y": 4.25, "w": 1.25},
{"label": "9,7", "matrix": [9, 7], "x": 23.25, "y": 4.5},
{"label": "4,8", "matrix": [4, 8], "x": 24.25, "y": 4.5},
{"label": "4,9", "matrix": [4, 9], "x": 25.25, "y": 4.5}
]
}
}
}

+ 21
- 0
keyboards/dcpedit/midevil/keymaps/default/keymap.json View File

@ -0,0 +1,21 @@
{
"keyboard": "midevil",
"keymap": "default",
"layout": "LAYOUT",
"layers": [
[
"KC_ESC", "KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_NUM", "KC_PSLS", "KC_PAST", "KC_PMNS", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_MINS", "KC_EQL", "KC_BSPC", "KC_BSPC", "KC_PGUP",
"KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_P7", "KC_P8", "KC_P9", "KC_PPLS", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_LBRC", "KC_RBRC", "KC_BSLS", "KC_PGDN",
"KC_CAPS", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_P4", "KC_P5", "KC_P6", "KC_PPLS", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_ENT", "KC_DEL",
"KC_LSFT", "KC_BSLS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "MO(1)", "KC_P1", "KC_P2", "KC_P3", "KC_PENT", "MO(1)", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT", "KC_RSFT", "KC_UP",
"KC_LCTL", "KC_LGUI", "KC_LALT", "KC_APP", "KC_SPC", "KC_P0", "KC_P0", "KC_PDOT", "KC_PENT", "KC_SPC", "KC_RALT", "KC_RGUI", "KC_RALT", "KC_LEFT", "KC_DOWN", "KC_RGHT"
],
[
"QK_RBT", "KC_TRNS", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "QK_BOOT",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "BL_UP",
"KC_LNG8", "KC_LNG9", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "BL_DOWN", "KC_TRNS"
]
]
}

+ 26
- 0
keyboards/dcpedit/midevil/keymaps/via/keymap.json View File

@ -0,0 +1,26 @@
{
"keyboard": "midevil",
"keymap": "via",
"layout": "LAYOUT",
"config": {
"features": {
"via": true
}
},
"layers": [
[
"KC_ESC", "KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_NUM", "KC_PSLS", "KC_PAST", "KC_PMNS", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_MINS", "KC_EQL", "KC_BSPC", "KC_BSPC", "KC_PGUP",
"KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_P7", "KC_P8", "KC_P9", "KC_PPLS", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_LBRC", "KC_RBRC", "KC_BSLS", "KC_PGDN",
"KC_CAPS", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_P4", "KC_P5", "KC_P6", "KC_PPLS", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_ENT", "KC_DEL",
"KC_LSFT", "KC_BSLS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "MO(1)", "KC_P1", "KC_P2", "KC_P3", "KC_PENT", "MO(1)", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT", "KC_RSFT", "KC_UP",
"KC_LCTL", "KC_LGUI", "KC_LALT", "KC_APP", "KC_SPC", "KC_P0", "KC_P0", "KC_PDOT", "KC_PENT", "KC_SPC", "KC_RALT", "KC_RGUI", "KC_RALT", "KC_LEFT", "KC_DOWN", "KC_RGHT"
],
[
"QK_RBT", "KC_TRNS", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "QK_BOOT",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "BL_UP",
"KC_LNG8", "KC_LNG9", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "BL_DOWN", "KC_TRNS"
]
]
}

+ 12
- 0
keyboards/dcpedit/midevil/mcuconf.h View File

@ -0,0 +1,12 @@
// Copyright 2023 Ming-Gih Lam (@dcpedit)
// 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
#undef RP_PWM_USE_PWM7
#define RP_PWM_USE_PWM7 TRUE

+ 69
- 0
keyboards/dcpedit/midevil/midevil.c View File

@ -0,0 +1,69 @@
// Copyright 2023 Ming-Gih Lam (@dcpedit)
// SPDX-License-Identifier: GPL-2.0-or-later
#include "qp_comms.h"
#include "image/background.qgf.h"
#include "image/animated.qgf.h"
static painter_device_t lcd;
static painter_image_handle_t background;
static painter_image_handle_t animated;
static int animation_state;
static deferred_token my_anim;
void start_animation(void) {
my_anim = qp_animate(lcd, 116, 194, animated);
animation_state = 1;
}
void stop_animation(void) {
qp_stop_animation(my_anim);
animation_state = 0;
}
void toggle_animation(void) {
if (animation_state == 1) {
stop_animation();
}
else {
start_animation();
}
}
__attribute__((weak)) void draw_ui_init_user(void) {
start_animation();
}
void keyboard_post_init_kb(void) {
background = qp_load_image_mem(gfx_background);
animated = qp_load_image_mem(gfx_animated);
// Give the LCD some time to get some power
wait_ms(150);
// Initialise the LCD
lcd = qp_ili9488_make_spi_device(320, 480, LCD_CS_PIN, LCD_DC_PIN, LCD_RST_PIN, 4, 0);
qp_init(lcd, QP_ROTATION_180);
// Turn on the LCD
qp_power(lcd, true);
// Draw image
qp_drawimage(lcd, 0, 0, background);
draw_ui_init_user();
keyboard_post_init_user();
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case KC_LNG8:
if (record->event.pressed){
toggle_animation();
}
return false;
default:
return true;
}
return process_record_user(keycode, record);
}

+ 27
- 0
keyboards/dcpedit/midevil/readme.md View File

@ -0,0 +1,27 @@
# MidEvil
![MidEvil](https://i.imgur.com/WCE6GIU.jpg)
If number pads are evil, then this keyboard places all that evilness smack dab in the middle.
* Keyboard Maintainer: [dcpedit](https://github.com/dcpedit)
* Hardware Supported: Raspberry Pi Pico, RP2040-Plus
* Hardware Availability: https://github.com/dcpedit/midevil
Make example for this keyboard (after setting up your build environment):
make dcpedit/midevil:default
Flashing example for this keyboard:
make dcpedit/midevil: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 ESC key (top-left key) and plug in the keyboard
* **Physical reset button**: On the Raspberry Pi Pico, while holding down the BOOT button, press and release the RESET button
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

+ 3
- 0
keyboards/dcpedit/midevil/rules.mk View File

@ -0,0 +1,3 @@
QUANTUM_PAINTER_DRIVERS += ili9488_spi
SRC += image/background.qgf.c \
image/animated.qgf.c

Loading…
Cancel
Save