summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandrew morton <drewish@katherinehouse.com>2025-11-25 03:07:01 -0700
committerGitHub <noreply@github.com>2025-11-25 10:07:01 +0000
commit5e1b1f50237ce78a78499fb8ab9810a0d651b921 (patch)
treee390a67ff05f24866ef770e5ea00e217f048d22b
parentcc567c917b22b49046c9f61eb321c204045eef0d (diff)
Add support for Coffee Break Keyboards' Coffeevan (#25805)
-rw-r--r--keyboards/cbkbd/coffeevan/keyboard.json193
-rw-r--r--keyboards/cbkbd/coffeevan/keymaps/default/keymap.c20
-rw-r--r--keyboards/cbkbd/coffeevan/matrix_diagram.md18
-rw-r--r--keyboards/cbkbd/coffeevan/readme.md27
4 files changed, 258 insertions, 0 deletions
diff --git a/keyboards/cbkbd/coffeevan/keyboard.json b/keyboards/cbkbd/coffeevan/keyboard.json
new file mode 100644
index 0000000000..a1c96425c4
--- /dev/null
+++ b/keyboards/cbkbd/coffeevan/keyboard.json
@@ -0,0 +1,193 @@
1{
2 "manufacturer": "CoffeeBreakKeyboards",
3 "keyboard_name": "Coffeevan",
4 "maintainer": "CoffeeBreakKeyboards",
5 "bootloader": "rp2040",
6 "diode_direction": "COL2ROW",
7 "dynamic_keymap": {
8 "layer_count": 6
9 },
10 "features": {
11 "bootmagic": true,
12 "extrakey": true,
13 "mousekey": true,
14 "nkro": true,
15 "rgblight": true
16 },
17 "matrix_pins": {
18 "cols": ["GP13", "GP12", "GP11", "GP10", "GP24", "GP9", "GP8", "GP28", "GP4", "GP3", "GP2", "GP1"],
19 "rows": ["GP27", "GP26", "GP25", "GP14"]
20 },
21 "processor": "RP2040",
22 "rgblight": {
23 "animations": {
24 "alternating": true,
25 "breathing": true,
26 "christmas": true,
27 "knight": true,
28 "rainbow_mood": true,
29 "rainbow_swirl": true,
30 "snake": true,
31 "static_gradient": true,
32 "twinkle": true
33 },
34 "led_count": 20
35 },
36 "usb": {
37 "device_version": "1.0.1",
38 "pid": "0x4356",
39 "vid": "0x4342"
40 },
41 "ws2812": {
42 "driver": "vendor",
43 "pin": "GP16"
44 },
45 "layouts": {
46 "LAYOUT_all": {
47 "layout": [
48 {"matrix": [0, 0], "x": 0, "y": 0},
49 {"matrix": [0, 1], "x": 1, "y": 0},
50 {"matrix": [0, 2], "x": 2, "y": 0},
51 {"matrix": [0, 3], "x": 3, "y": 0},
52 {"matrix": [0, 4], "x": 4, "y": 0},
53 {"matrix": [0, 5], "x": 5, "y": 0},
54 {"matrix": [0, 6], "x": 6, "y": 0},
55 {"matrix": [0, 7], "x": 7, "y": 0},
56 {"matrix": [0, 8], "x": 8, "y": 0},
57 {"matrix": [0, 9], "x": 9, "y": 0},
58 {"matrix": [0, 10], "x": 10, "y": 0},
59 {"matrix": [0, 11], "x": 11, "y": 0, "w": 1.75},
60 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.25},
61 {"matrix": [1, 1], "x": 1.25, "y": 1},
62 {"matrix": [1, 2], "x": 2.25, "y": 1},
63 {"matrix": [1, 3], "x": 3.25, "y": 1},
64 {"matrix": [1, 4], "x": 4.25, "y": 1},
65 {"matrix": [1, 5], "x": 5.25, "y": 1},
66 {"matrix": [1, 6], "x": 6.25, "y": 1},
67 {"matrix": [1, 7], "x": 7.25, "y": 1},
68 {"matrix": [1, 8], "x": 8.25, "y": 1},
69 {"matrix": [1, 9], "x": 9.25, "y": 1},
70 {"matrix": [1, 10], "x": 10.25, "y": 1},
71 {"matrix": [1, 11], "x": 11.25, "y": 1, "w": 1.5},
72 {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
73 {"matrix": [2, 1], "x": 1.75, "y": 2},
74 {"matrix": [2, 2], "x": 2.75, "y": 2},
75 {"matrix": [2, 3], "x": 3.75, "y": 2},
76 {"matrix": [2, 4], "x": 4.75, "y": 2},
77 {"matrix": [2, 5], "x": 5.75, "y": 2},
78 {"matrix": [2, 6], "x": 6.75, "y": 2},
79 {"matrix": [2, 7], "x": 7.75, "y": 2},
80 {"matrix": [2, 8], "x": 8.75, "y": 2},
81 {"matrix": [2, 9], "x": 9.75, "y": 2},
82 {"matrix": [2, 10], "x": 10.75, "y": 2},
83 {"matrix": [2, 11], "x": 11.75, "y": 2},
84 {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
85 {"matrix": [3, 1], "x": 1.25, "y": 3},
86 {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25},
87 {"matrix": [3, 3], "x": 3.5, "y": 3, "w": 2.75},
88 {"matrix": [3, 6], "x": 3.5, "y": 4, "w": 6.25},
89 {"matrix": [3, 5], "x": 6.25, "y": 3, "w": 2.25},
90 {"matrix": [3, 8], "x": 8.5, "y": 3, "w": 1.25},
91 {"matrix": [3, 9], "x": 9.75, "y": 3},
92 {"matrix": [3, 10], "x": 10.75, "y": 3},
93 {"matrix": [3, 11], "x": 11.75, "y": 3}
94 ]
95 },
96 "LAYOUT_single_space": {
97 "layout": [
98 {"matrix": [0, 0], "x": 0, "y": 0},
99 {"matrix": [0, 1], "x": 1, "y": 0},
100 {"matrix": [0, 2], "x": 2, "y": 0},
101 {"matrix": [0, 3], "x": 3, "y": 0},
102 {"matrix": [0, 4], "x": 4, "y": 0},
103 {"matrix": [0, 5], "x": 5, "y": 0},
104 {"matrix": [0, 6], "x": 6, "y": 0},
105 {"matrix": [0, 7], "x": 7, "y": 0},
106 {"matrix": [0, 8], "x": 8, "y": 0},
107 {"matrix": [0, 9], "x": 9, "y": 0},
108 {"matrix": [0, 10], "x": 10, "y": 0},
109 {"matrix": [0, 11], "x": 11, "y": 0, "w": 1.75},
110 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.25},
111 {"matrix": [1, 1], "x": 1.25, "y": 1},
112 {"matrix": [1, 2], "x": 2.25, "y": 1},
113 {"matrix": [1, 3], "x": 3.25, "y": 1},
114 {"matrix": [1, 4], "x": 4.25, "y": 1},
115 {"matrix": [1, 5], "x": 5.25, "y": 1},
116 {"matrix": [1, 6], "x": 6.25, "y": 1},
117 {"matrix": [1, 7], "x": 7.25, "y": 1},
118 {"matrix": [1, 8], "x": 8.25, "y": 1},
119 {"matrix": [1, 9], "x": 9.25, "y": 1},
120 {"matrix": [1, 10], "x": 10.25, "y": 1},
121 {"matrix": [1, 11], "x": 11.25, "y": 1, "w": 1.5},
122 {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
123 {"matrix": [2, 1], "x": 1.75, "y": 2},
124 {"matrix": [2, 2], "x": 2.75, "y": 2},
125 {"matrix": [2, 3], "x": 3.75, "y": 2},
126 {"matrix": [2, 4], "x": 4.75, "y": 2},
127 {"matrix": [2, 5], "x": 5.75, "y": 2},
128 {"matrix": [2, 6], "x": 6.75, "y": 2},
129 {"matrix": [2, 7], "x": 7.75, "y": 2},
130 {"matrix": [2, 8], "x": 8.75, "y": 2},
131 {"matrix": [2, 9], "x": 9.75, "y": 2},
132 {"matrix": [2, 10], "x": 10.75, "y": 2},
133 {"matrix": [2, 11], "x": 11.75, "y": 2},
134 {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
135 {"matrix": [3, 1], "x": 1.25, "y": 3},
136 {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25},
137 {"matrix": [3, 6], "x": 3.5, "y": 3, "w": 6.25},
138 {"matrix": [3, 9], "x": 9.75, "y": 3},
139 {"matrix": [3, 10], "x": 10.75, "y": 3},
140 {"matrix": [3, 11], "x": 11.75, "y": 3}
141 ]
142 },
143 "LAYOUT_split_space": {
144 "layout": [
145 {"matrix": [0, 0], "x": 0, "y": 0},
146 {"matrix": [0, 1], "x": 1, "y": 0},
147 {"matrix": [0, 2], "x": 2, "y": 0},
148 {"matrix": [0, 3], "x": 3, "y": 0},
149 {"matrix": [0, 4], "x": 4, "y": 0},
150 {"matrix": [0, 5], "x": 5, "y": 0},
151 {"matrix": [0, 6], "x": 6, "y": 0},
152 {"matrix": [0, 7], "x": 7, "y": 0},
153 {"matrix": [0, 8], "x": 8, "y": 0},
154 {"matrix": [0, 9], "x": 9, "y": 0},
155 {"matrix": [0, 10], "x": 10, "y": 0},
156 {"matrix": [0, 11], "x": 11, "y": 0, "w": 1.75},
157 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.25},
158 {"matrix": [1, 1], "x": 1.25, "y": 1},
159 {"matrix": [1, 2], "x": 2.25, "y": 1},
160 {"matrix": [1, 3], "x": 3.25, "y": 1},
161 {"matrix": [1, 4], "x": 4.25, "y": 1},
162 {"matrix": [1, 5], "x": 5.25, "y": 1},
163 {"matrix": [1, 6], "x": 6.25, "y": 1},
164 {"matrix": [1, 7], "x": 7.25, "y": 1},
165 {"matrix": [1, 8], "x": 8.25, "y": 1},
166 {"matrix": [1, 9], "x": 9.25, "y": 1},
167 {"matrix": [1, 10], "x": 10.25, "y": 1},
168 {"matrix": [1, 11], "x": 11.25, "y": 1, "w": 1.5},
169 {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
170 {"matrix": [2, 1], "x": 1.75, "y": 2},
171 {"matrix": [2, 2], "x": 2.75, "y": 2},
172 {"matrix": [2, 3], "x": 3.75, "y": 2},
173 {"matrix": [2, 4], "x": 4.75, "y": 2},
174 {"matrix": [2, 5], "x": 5.75, "y": 2},
175 {"matrix": [2, 6], "x": 6.75, "y": 2},
176 {"matrix": [2, 7], "x": 7.75, "y": 2},
177 {"matrix": [2, 8], "x": 8.75, "y": 2},
178 {"matrix": [2, 9], "x": 9.75, "y": 2},
179 {"matrix": [2, 10], "x": 10.75, "y": 2},
180 {"matrix": [2, 11], "x": 11.75, "y": 2},
181 {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
182 {"matrix": [3, 1], "x": 1.25, "y": 3},
183 {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25},
184 {"matrix": [3, 3], "x": 3.5, "y": 3, "w": 2.75},
185 {"matrix": [3, 5], "x": 6.25, "y": 3, "w": 2.25},
186 {"matrix": [3, 8], "x": 8.5, "y": 3, "w": 1.25},
187 {"matrix": [3, 9], "x": 9.75, "y": 3},
188 {"matrix": [3, 10], "x": 10.75, "y": 3},
189 {"matrix": [3, 11], "x": 11.75, "y": 3}
190 ]
191 }
192 }
193}
diff --git a/keyboards/cbkbd/coffeevan/keymaps/default/keymap.c b/keyboards/cbkbd/coffeevan/keymaps/default/keymap.c
new file mode 100644
index 0000000000..5179fd930e
--- /dev/null
+++ b/keyboards/cbkbd/coffeevan/keymaps/default/keymap.c
@@ -0,0 +1,20 @@
1// Copyright 2023 QMK
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#include QMK_KEYBOARD_H
5
6const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
7 [0] = LAYOUT_all(
8 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
9 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
10 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
11 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, MO(1), KC_RALT, KC_RGUI, KC_RCTL
12 ),
13
14 [1] = LAYOUT_all(
15 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_TOGG, UG_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
16 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
17 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
18 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
19 ),
20};
diff --git a/keyboards/cbkbd/coffeevan/matrix_diagram.md b/keyboards/cbkbd/coffeevan/matrix_diagram.md
new file mode 100644
index 0000000000..91cd05e6ba
--- /dev/null
+++ b/keyboards/cbkbd/coffeevan/matrix_diagram.md
@@ -0,0 +1,18 @@
1# Matrix Diagram for Coffeevan
2```
3Minisub style split-space
4┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬──────┐
5│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │
6├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬─────┤
7│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │
8├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
9│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │
10├────┬─┴─┬─┴──┬┴───┴───┴─┬─┴───┴──┬┴───┼───┼───┼───┤
11│30 │31 │32 │33 │35 │38 │39 │3A │3B │
12└────┴───┴────┴──────────┴────────┴────┴───┴───┴───┘
13
14JetVan style 6.25u
15┌────┬───┬────┬────────────────────────┬───┬───┬───┐
16│30 │31 │32 │36 │39 │3A │3B │
17└────┴───┴────┴────────────────────────┴───┴───┴───┘
18``` \ No newline at end of file
diff --git a/keyboards/cbkbd/coffeevan/readme.md b/keyboards/cbkbd/coffeevan/readme.md
new file mode 100644
index 0000000000..129a3bd430
--- /dev/null
+++ b/keyboards/cbkbd/coffeevan/readme.md
@@ -0,0 +1,27 @@
1# Coffeevan
2
3![Coffeevan](https://imgur.com/1VDxDmp.jpeg)
4
5Coffeevan is a drop-in replacement PCB for MiniVan cases. Coffeevan supports the Minisub split-space and JetVan 6.25u spacebar layout.
6
7* Keyboard Maintainer: [Coffee Break Keyboards](https://github.com/CoffeeBreakKeyboards)
8* Hardware Supported: Coffeevan
9* Hardware Availability: [Coffee Break Keyboards](https://www.cbkbd.com/product/minivan-kits)
10
11Make example for this keyboard (after setting up your build environment):
12
13 make cbkbd/coffeevan:default
14
15Flashing example for this keyboard:
16
17 make cbkbd/coffeevan:default:flash
18
19See the [build environment setup](getting_started_build_tools) and the [make instructions](getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](newbs).
20
21## Bootloader
22
23Enter the bootloader in 3 ways:
24
25* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
26* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
27* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file