c988584fc181c2d59e71600ddbff73a99ba7be7f

Author
Andrew Kannan <andrew.kannan@gmail.com>
Committer
GitHub <noreply@github.com>
Date

Message

Add Reverie to QMK (#24227)

* Add Reverie to QMK

* Add backlight to reverie

* Update reverie readme and copyright notices

* Use format json to update keyboard.json formatting

* Update to have solderable and hotswap variants split

* Update copyright noticeS

* JSON formatting updates

* inherit config.h

* fix broken keymap

* Update reverie hs keyboard.json to be accurate

* Update keyboards/cannonkeys/reverie/hotswap/keyboard.json

Co-authored-by: jack <jack@pngu.org>

* Remove VIA keymaps

* Update keymap

---------

Co-authored-by: jack <jack@pngu.org>

Diff

This diff is truncated to protect this page.

  1diff --git a/keyboards/cannonkeys/reverie/config.h b/keyboards/cannonkeys/reverie/config.h
  2new file mode 100644
  3index 0000000000000000000000000000000000000000..ea5c26b6c72f8ecf861f659c3e2d09cf85a3ae8f
  4--- /dev/null
  5+++ b/keyboards/cannonkeys/reverie/config.h
  6@@ -0,0 +1,9 @@
  7+// Copyright 2024 Andrew Kannan
  8+// SPDX-License-Identifier: GPL-2.0-or-later
  9+
 10+#pragma once
 11+
 12+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
 13+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
 14+
 15+#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64
 16diff --git a/keyboards/cannonkeys/reverie/hotswap/keyboard.json b/keyboards/cannonkeys/reverie/hotswap/keyboard.json
 17new file mode 100644
 18index 0000000000000000000000000000000000000000..4a2101f9de297aeb775d4afd59e63c90d5ad54ce
 19--- /dev/null
 20+++ b/keyboards/cannonkeys/reverie/hotswap/keyboard.json
 21@@ -0,0 +1,296 @@
 22+{
 23+    "keyboard_name": "Reverie HS",
 24+    "usb": {
 25+        "pid": "0x0033"
 26+    },
 27+    "community_layouts": ["65_ansi_blocker", "65_ansi_blocker_split_bs", "65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs"],
 28+    "layout_aliases": {
 29+        "LAYOUT_65_ansi_blocker_split_bs": "LAYOUT_all"
 30+    },
 31+    "layouts": {
 32+        "LAYOUT_65_ansi_blocker": {
 33+            "layout": [
 34+                {"matrix": [0, 0], "x": 0, "y": 0},
 35+                {"matrix": [0, 1], "x": 1, "y": 0},
 36+                {"matrix": [0, 2], "x": 2, "y": 0},
 37+                {"matrix": [0, 3], "x": 3, "y": 0},
 38+                {"matrix": [0, 4], "x": 4, "y": 0},
 39+                {"matrix": [0, 5], "x": 5, "y": 0},
 40+                {"matrix": [0, 6], "x": 6, "y": 0},
 41+                {"matrix": [0, 7], "x": 7, "y": 0},
 42+                {"matrix": [0, 8], "x": 8, "y": 0},
 43+                {"matrix": [0, 9], "x": 9, "y": 0},
 44+                {"matrix": [0, 10], "x": 10, "y": 0},
 45+                {"matrix": [0, 11], "x": 11, "y": 0},
 46+                {"matrix": [0, 12], "x": 12, "y": 0},
 47+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
 48+                {"matrix": [0, 14], "x": 15, "y": 0},
 49+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
 50+                {"matrix": [1, 1], "x": 1.5, "y": 1},
 51+                {"matrix": [1, 2], "x": 2.5, "y": 1},
 52+                {"matrix": [1, 3], "x": 3.5, "y": 1},
 53+                {"matrix": [1, 4], "x": 4.5, "y": 1},
 54+                {"matrix": [1, 5], "x": 5.5, "y": 1},
 55+                {"matrix": [1, 6], "x": 6.5, "y": 1},
 56+                {"matrix": [1, 7], "x": 7.5, "y": 1},
 57+                {"matrix": [1, 8], "x": 8.5, "y": 1},
 58+                {"matrix": [1, 9], "x": 9.5, "y": 1},
 59+                {"matrix": [1, 10], "x": 10.5, "y": 1},
 60+                {"matrix": [1, 11], "x": 11.5, "y": 1},
 61+                {"matrix": [1, 12], "x": 12.5, "y": 1},
 62+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
 63+                {"matrix": [1, 14], "x": 15, "y": 1},
 64+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
 65+                {"matrix": [2, 1], "x": 1.75, "y": 2},
 66+                {"matrix": [2, 2], "x": 2.75, "y": 2},
 67+                {"matrix": [2, 3], "x": 3.75, "y": 2},
 68+                {"matrix": [2, 4], "x": 4.75, "y": 2},
 69+                {"matrix": [2, 5], "x": 5.75, "y": 2},
 70+                {"matrix": [2, 6], "x": 6.75, "y": 2},
 71+                {"matrix": [2, 7], "x": 7.75, "y": 2},
 72+                {"matrix": [2, 8], "x": 8.75, "y": 2},
 73+                {"matrix": [2, 9], "x": 9.75, "y": 2},
 74+                {"matrix": [2, 10], "x": 10.75, "y": 2},
 75+                {"matrix": [2, 11], "x": 11.75, "y": 2},
 76+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
 77+                {"matrix": [2, 14], "x": 15, "y": 2},
 78+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
 79+                {"matrix": [3, 2], "x": 2.25, "y": 3},
 80+                {"matrix": [3, 3], "x": 3.25, "y": 3},
 81+                {"matrix": [3, 4], "x": 4.25, "y": 3},
 82+                {"matrix": [3, 5], "x": 5.25, "y": 3},
 83+                {"matrix": [3, 6], "x": 6.25, "y": 3},
 84+                {"matrix": [3, 7], "x": 7.25, "y": 3},
 85+                {"matrix": [3, 8], "x": 8.25, "y": 3},
 86+                {"matrix": [3, 9], "x": 9.25, "y": 3},
 87+                {"matrix": [3, 10], "x": 10.25, "y": 3},
 88+                {"matrix": [3, 11], "x": 11.25, "y": 3},
 89+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
 90+                {"matrix": [3, 13], "x": 14, "y": 3},
 91+                {"matrix": [3, 14], "x": 15, "y": 3},
 92+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
 93+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
 94+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
 95+                {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
 96+                {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
 97+                {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
 98+                {"matrix": [4, 12], "x": 13, "y": 4},
 99+                {"matrix": [4, 13], "x": 14, "y": 4},
100+                {"matrix": [4, 14], "x": 15, "y": 4}
101+            ]
102+        },
103+        "LAYOUT_65_ansi_blocker_tsangan": {
104+            "layout": [
105+                {"matrix": [0, 0], "x": 0, "y": 0},
106+                {"matrix": [0, 1], "x": 1, "y": 0},
107+                {"matrix": [0, 2], "x": 2, "y": 0},
108+                {"matrix": [0, 3], "x": 3, "y": 0},
109+                {"matrix": [0, 4], "x": 4, "y": 0},
110+                {"matrix": [0, 5], "x": 5, "y": 0},
111+                {"matrix": [0, 6], "x": 6, "y": 0},
112+                {"matrix": [0, 7], "x": 7, "y": 0},
113+                {"matrix": [0, 8], "x": 8, "y": 0},
114+                {"matrix": [0, 9], "x": 9, "y": 0},
115+                {"matrix": [0, 10], "x": 10, "y": 0},
116+                {"matrix": [0, 11], "x": 11, "y": 0},
117+                {"matrix": [0, 12], "x": 12, "y": 0},
118+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
119+                {"matrix": [0, 14], "x": 15, "y": 0},
120+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
121diff --git a/keyboards/cannonkeys/reverie/hotswap/keymaps/default/keymap.c b/keyboards/cannonkeys/reverie/hotswap/keymaps/default/keymap.c
122new file mode 100644
123index 0000000000000000000000000000000000000000..e1081d169cbe6cca56f9eaeed28eafb54a964945
124--- /dev/null
125+++ b/keyboards/cannonkeys/reverie/hotswap/keymaps/default/keymap.c
126@@ -0,0 +1,27 @@
127+// Copyright 2024 Andrew Kannan
128+// SPDX-License-Identifier: GPL-2.0-or-later
129+
130+#include QMK_KEYBOARD_H
131+
132+enum layer_names {
133+    _BASE,
134+    _FN1
135+};
136+
137+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
138+  [_BASE] = LAYOUT_all(
139+    QK_GESC, KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,                 KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,   KC_BSPC, KC_DEL, KC_HOME,
140+    KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,   KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC,  KC_BSLS, KC_END,
141+    KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,                 KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,           KC_ENT, KC_PGUP,
142+    KC_LSFT,          KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,                 KC_M,    KC_COMM, KC_DOT,  KC_SLSH,           KC_RSFT, KC_UP, KC_PGDN,
143+    KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC,                                                   KC_RALT, MO(_FN1), KC_LEFT, KC_DOWN, KC_RIGHT
144+  ),
145+
146+  [_FN1] = LAYOUT_all(
147+    QK_GESC, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_DEL, _______, _______,
148+    _______, _______, KC_UP,   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
149+    _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______,
150+    _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______, _______,
151+    KC_GRV,  _______, _______,                            _______,                            _______, _______, _______, _______, QK_BOOT
152+  )
153+};
154diff --git a/keyboards/cannonkeys/reverie/info.json b/keyboards/cannonkeys/reverie/info.json
155new file mode 100644
156index 0000000000000000000000000000000000000000..1e2a885781b841c6d9cb292f17962562caefef0c
157--- /dev/null
158+++ b/keyboards/cannonkeys/reverie/info.json
159@@ -0,0 +1,24 @@
160+{
161+    "manufacturer": "CannonKeys",
162+    "maintainer": "awkannan",
163+    "bootloader": "rp2040",
164+    "diode_direction": "COL2ROW",
165+    "features": {
166+        "bootmagic": true,
167+        "command": false,
168+        "console": false,
169+        "extrakey": true,
170+        "mousekey": true,
171+        "nkro": true
172+    },
173+    "matrix_pins": {
174+        "cols": ["GP28", "GP8", "GP14", "GP13", "GP12", "GP11", "GP10", "GP9", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP0"],
175+        "rows": ["GP26", "GP27", "GP15", "GP16", "GP17"]
176+    },
177+    "processor": "RP2040",
178+    "url": "https://cannonkeys.com",
179+    "usb": {
180+        "device_version": "0.0.1",
181+        "vid": "0xCA04"
182+    }
183+}
184diff --git a/keyboards/cannonkeys/reverie/readme.md b/keyboards/cannonkeys/reverie/readme.md
185new file mode 100644
186index 0000000000000000000000000000000000000000..8647bc0dade6a464563da1c07228fae9c767da4e
187--- /dev/null
188+++ b/keyboards/cannonkeys/reverie/readme.md
189@@ -0,0 +1,30 @@
190+# Reverie PCBs
191+
192+Reverie PCBs from CannonKeys
193+
194+This folder is for both the solderable and hotswap versions of this PCB. 
195+
196+The hotswap version does not support per-key LEDs and has reduced layout support (no ISO)
197+
198+* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan)
199+* Hardware Supported: RP2040
200+* Hardware Availability: [CannonKeys](https://cannonkeys.com)
201+
202+
203+Make example for this keyboard (after setting up your build environment):
204+
205+    make cannonkeys/reverie/solderable:default
206+    
207+Flashing example for this keyboard:
208+
209+    make cannonkeys/reverie/solderable:default:flash
210+
211diff --git a/keyboards/cannonkeys/reverie/solderable/config.h b/keyboards/cannonkeys/reverie/solderable/config.h
212new file mode 100644
213index 0000000000000000000000000000000000000000..9a8669d7a85646d72083eaeedef1757cfceb0386
214--- /dev/null
215+++ b/keyboards/cannonkeys/reverie/solderable/config.h
216@@ -0,0 +1,7 @@
217+// Copyright 2024 Andrew Kannan
218+// SPDX-License-Identifier: GPL-2.0-or-later
219+
220+#pragma once
221+
222+#define BACKLIGHT_PWM_DRIVER PWMD3
223+#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A
224diff --git a/keyboards/cannonkeys/reverie/solderable/halconf.h b/keyboards/cannonkeys/reverie/solderable/halconf.h
225new file mode 100644
226index 0000000000000000000000000000000000000000..0536c37ff34834a0b14476dcd2beb0c78dbd9bb8
227--- /dev/null
228+++ b/keyboards/cannonkeys/reverie/solderable/halconf.h
229@@ -0,0 +1,8 @@
230+// Copyright 2024 Andrew Kannan
231+// SPDX-License-Identifier: GPL-2.0-or-later
232+
233+#pragma once
234+
235+#define HAL_USE_PWM TRUE
236+
237+#include_next <halconf.h>
238diff --git a/keyboards/cannonkeys/reverie/solderable/keyboard.json b/keyboards/cannonkeys/reverie/solderable/keyboard.json
239new file mode 100644
240index 0000000000000000000000000000000000000000..b1d909cb855a5bbfbbef95cc4998d019c775b222
241--- /dev/null
242+++ b/keyboards/cannonkeys/reverie/solderable/keyboard.json
243@@ -0,0 +1,672 @@
244+{
245+    "keyboard_name": "Reverie",
246+    "backlight": {
247+        "breathing": true,
248+        "breathing_period": 5,
249+        "levels": 15,
250+        "pin": "GP22"
251+    },
252+    "features": {
253+        "backlight": true
254+    },
255+    "indicators": {
256+        "caps_lock": "GP29",
257+        "on_state": 0
258+    },
259+    "usb": {
260+        "pid": "0x0030"
261+    },
262+    "community_layouts": ["65_ansi_blocker", "65_ansi_blocker_split_bs", "65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs", "65_iso_blocker", "65_iso_blocker_split_bs", "65_iso_blocker_tsangan", "65_iso_blocker_tsangan_split_bs"],
263+    "layout_aliases": {
264+        "LAYOUT": "LAYOUT_all"
265+    },
266+    "layouts": {
267+        "LAYOUT_65_ansi_blocker": {
268+            "layout": [
269+                {"matrix": [0, 0], "x": 0, "y": 0},
270+                {"matrix": [0, 1], "x": 1, "y": 0},
271+                {"matrix": [0, 2], "x": 2, "y": 0},
272+                {"matrix": [0, 3], "x": 3, "y": 0},
273+                {"matrix": [0, 4], "x": 4, "y": 0},
274+                {"matrix": [0, 5], "x": 5, "y": 0},
275+                {"matrix": [0, 6], "x": 6, "y": 0},
276+                {"matrix": [0, 7], "x": 7, "y": 0},
277+                {"matrix": [0, 8], "x": 8, "y": 0},
278+                {"matrix": [0, 9], "x": 9, "y": 0},
279+                {"matrix": [0, 10], "x": 10, "y": 0},
280+                {"matrix": [0, 11], "x": 11, "y": 0},
281+                {"matrix": [0, 12], "x": 12, "y": 0},
282+                {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
283+                {"matrix": [0, 14], "x": 15, "y": 0},
284+                {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
285+                {"matrix": [1, 1], "x": 1.5, "y": 1},
286+                {"matrix": [1, 2], "x": 2.5, "y": 1},
287+                {"matrix": [1, 3], "x": 3.5, "y": 1},
288+                {"matrix": [1, 4], "x": 4.5, "y": 1},
289+                {"matrix": [1, 5], "x": 5.5, "y": 1},
290+                {"matrix": [1, 6], "x": 6.5, "y": 1},
291+                {"matrix": [1, 7], "x": 7.5, "y": 1},
292+                {"matrix": [1, 8], "x": 8.5, "y": 1},
293+                {"matrix": [1, 9], "x": 9.5, "y": 1},
294+                {"matrix": [1, 10], "x": 10.5, "y": 1},
295+                {"matrix": [1, 11], "x": 11.5, "y": 1},
296+                {"matrix": [1, 12], "x": 12.5, "y": 1},
297+                {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
298+                {"matrix": [1, 14], "x": 15, "y": 1},
299+                {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
300+                {"matrix": [2, 1], "x": 1.75, "y": 2},
301+                {"matrix": [2, 2], "x": 2.75, "y": 2},
302+                {"matrix": [2, 3], "x": 3.75, "y": 2},
303+                {"matrix": [2, 4], "x": 4.75, "y": 2},
304+                {"matrix": [2, 5], "x": 5.75, "y": 2},
305+                {"matrix": [2, 6], "x": 6.75, "y": 2},
306+                {"matrix": [2, 7], "x": 7.75, "y": 2},
307+                {"matrix": [2, 8], "x": 8.75, "y": 2},
308+                {"matrix": [2, 9], "x": 9.75, "y": 2},
309+                {"matrix": [2, 10], "x": 10.75, "y": 2},
310+                {"matrix": [2, 11], "x": 11.75, "y": 2},
311+                {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
312+                {"matrix": [2, 14], "x": 15, "y": 2},
313+                {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
314+                {"matrix": [3, 2], "x": 2.25, "y": 3},
315+                {"matrix": [3, 3], "x": 3.25, "y": 3},
316+                {"matrix": [3, 4], "x": 4.25, "y": 3},
317+                {"matrix": [3, 5], "x": 5.25, "y": 3},
318+                {"matrix": [3, 6], "x": 6.25, "y": 3},
319+                {"matrix": [3, 7], "x": 7.25, "y": 3},
320+                {"matrix": [3, 8], "x": 8.25, "y": 3},
321+                {"matrix": [3, 9], "x": 9.25, "y": 3},
322+                {"matrix": [3, 10], "x": 10.25, "y": 3},
323+                {"matrix": [3, 11], "x": 11.25, "y": 3},
324+                {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
325+                {"matrix": [3, 13], "x": 14, "y": 3},
326+                {"matrix": [3, 14], "x": 15, "y": 3},
327+                {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
328+                {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
329+                {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
330+                {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
331+                {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
332+                {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
333+                {"matrix": [4, 12], "x": 13, "y": 4},
334+                {"matrix": [4, 13], "x": 14, "y": 4},
335+                {"matrix": [4, 14], "x": 15, "y": 4}
336+            ]
337+        },
338+        "LAYOUT_65_ansi_blocker_split_bs": {
339+            "layout": [
340+                {"matrix": [0, 0], "x": 0, "y": 0},
341+                {"matrix": [0, 1], "x": 1, "y": 0},
342+                {"matrix": [0, 2], "x": 2, "y": 0},
343diff --git a/keyboards/cannonkeys/reverie/solderable/keymaps/default/keymap.c b/keyboards/cannonkeys/reverie/solderable/keymaps/default/keymap.c
344new file mode 100644
345index 0000000000000000000000000000000000000000..0a256ac40643aae306b63d9aadc30c7bfe3a9fc8
346--- /dev/null
347+++ b/keyboards/cannonkeys/reverie/solderable/keymaps/default/keymap.c
348@@ -0,0 +1,27 @@
349+// Copyright 2024 Andrew Kannan
350+// SPDX-License-Identifier: GPL-2.0-or-later
351+
352+#include QMK_KEYBOARD_H
353+
354+enum layer_names {
355+    _BASE,
356+    _FN1
357+};
358+
359+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
360+  [_BASE] = LAYOUT_all(
361+    QK_GESC, KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,                 KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,   KC_BSPC, KC_DEL, KC_HOME,
362+    KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,   KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC,  KC_BSLS, KC_END,
363+    KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,                 KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,           KC_ENT, KC_PGUP,
364+    KC_LSFT, KC_BSLS, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,                 KC_M,    KC_COMM, KC_DOT,  KC_SLSH,           KC_RSFT, KC_UP, KC_PGDN,
365+    KC_LCTL, KC_LGUI, KC_LALT,                   KC_SPC,  KC_SPC,  KC_SPC,                                          KC_RALT, MO(_FN1), KC_LEFT, KC_DOWN, KC_RIGHT
366+  ),
367+
368+  [_FN1] = LAYOUT_all(
369+    QK_GESC, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_DEL, _______, _______,
370+    _______, _______, KC_UP,   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
371+    BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______,
372+    BL_UP,   _______, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______, _______,
373+    KC_GRV,  _______, _______,                   _______, _______, _______,                   _______, _______, _______, _______, QK_BOOT
374+  )
375+};
376diff --git a/keyboards/cannonkeys/reverie/solderable/matrix_diagram.md b/keyboards/cannonkeys/reverie/solderable/matrix_diagram.md
377new file mode 100644
378index 0000000000000000000000000000000000000000..c74adfdb7c1b53c03aa9d1b68d4533fb313f6bbe
379--- /dev/null
380+++ b/keyboards/cannonkeys/reverie/solderable/matrix_diagram.md
381@@ -0,0 +1,27 @@
382+# Matrix Diagram for CannonKeys Reverie
383+
384+```
385+                                                    ┌───────┐
386+                                       2u Backspace │0D     │
387+                                                    └───────┘
388+┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
389+│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2C │0E │
390+├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤      ┌─────┐
391+│10   │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D   │1E │      │     │
392+├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤   ┌──┴┐2D  │ ISO Enter
393+│20    │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D      │2E │   │1D │    │
394+├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤   └───┴────┘
395+│30  │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C    │3D │3E │
396+├────┴┬──┴┬──┴──┬┴───┴───┴──┬┴──┬┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤
397+│40   │41 │42   │45         │46 │49         │4B   │ │4C │4D │4E │
398+└─────┴───┴─────┴───────────┴───┴───────────┴─────┘ └───┴───┴───┘
399+┌────────┐
400+│30      │ 2.25u LShift
401+└────────┘
402+┌─────┬───┬─────┬───────────────────────────┬─────┐
403+│40   │41 │42   │46                         │4B   │ Blocker Tsangan
404+└─────┴───┴─────┴───────────────────────────┴─────┘
405+┌────┬────┬────┬────────────────────────┬────┬────┐
406+│40  │41  │42  │46                      │4A  │4B  │ Blocker
407+└────┴────┴────┴────────────────────────┴────┴────┘
408+```
409diff --git a/keyboards/cannonkeys/reverie/solderable/mcuconf.h b/keyboards/cannonkeys/reverie/solderable/mcuconf.h
410new file mode 100644
411index 0000000000000000000000000000000000000000..200f75c11b4e7b7f92a1d09c8044f19e634b8ae0
412--- /dev/null
413+++ b/keyboards/cannonkeys/reverie/solderable/mcuconf.h
414@@ -0,0 +1,9 @@
415+// Copyright 2024 Andrew Kannan
416+// SPDX-License-Identifier: GPL-2.0-or-later
417+
418+#pragma once
419+
420+#include_next <mcuconf.h>
421+
422+#undef RP_PWM_USE_PWM3
423+#define RP_PWM_USE_PWM3 TRUE