388c3c6d1256a2b66a3ac23d28d8f8937ffdc039
- Author
- Cipulot <40441626+Cipulot@users.noreply.github.com>
- Committer
- GitHub <noreply@github.com>
- Date
Message
Diff
This diff is truncated to protect this page.
1diff --git a/keyboards/cipulot/ec_65x/config.h b/keyboards/cipulot/ec_65x/config.h
2new file mode 100644
3index 0000000000000000000000000000000000000000..142f7a140ec2e0ba4510bb7a001710ed1ba82250
4--- /dev/null
5+++ b/keyboards/cipulot/ec_65x/config.h
6@@ -0,0 +1,69 @@
7+/* Copyright 2024 Cipulot
8+ *
9+ * This program is free software: you can redistribute it and/or modify
10+ * it under the terms of the GNU General Public License as published by
11+ * the Free Software Foundation, either version 3 of the License, or
12+ * (at your option) any later version.
13+ *
14+ * This program is distributed in the hope that it will be useful,
15+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
16+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17+ * GNU General Public License for more details.
18+ *
19+ * You should have received a copy of the GNU General Public License
20+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
21+ */
22+
23+#pragma once
24+
25+#define MATRIX_ROWS 5
26+#define MATRIX_COLS 16
27+
28+#define MATRIX_ROW_PINS \
29+ { A8, A15, B13, B8, B9}
30+
31+#define AMUX_COUNT 1
32+#define AMUX_MAX_COLS_COUNT 16
33+
34+#define AMUX_EN_PINS \
35+ { B5 }
36+
37+#define AMUX_SEL_PINS \
38+ { B6, B7, B4, B3 }
39+
40+#define AMUX_COL_CHANNELS_SIZES \
41+ { 16 }
42+
43+#define AMUX_0_COL_CHANNELS \
44+ { 7, 6, 5, 4, 3, 2, 1, 0, 8, 15, 14, 12, 11, 13, 9, 10}
45+
46+#define AMUX_COL_CHANNELS AMUX_0_COL_CHANNELS
47+
48+#define DISCHARGE_PIN A2
49+#define ANALOG_PORT A3
50+
51+#define DEFAULT_ACTUATION_MODE 0
52+#define DEFAULT_MODE_0_ACTUATION_LEVEL 550
53+#define DEFAULT_MODE_0_RELEASE_LEVEL 500
54+#define DEFAULT_MODE_1_INITIAL_DEADZONE_OFFSET DEFAULT_MODE_0_ACTUATION_LEVEL
55+#define DEFAULT_MODE_1_ACTUATION_OFFSET 70
56+#define DEFAULT_MODE_1_RELEASE_OFFSET 70
57+#define DEFAULT_EXTREMUM 1023
58+#define EXPECTED_NOISE_FLOOR 0
59+#define NOISE_FLOOR_THRESHOLD 50
60+#define BOTTOMING_CALIBRATION_THRESHOLD 50
61+#define DEFAULT_NOISE_FLOOR_SAMPLING_COUNT 30
62+#define DEFAULT_BOTTOMING_READING 1023
63+#define DEFAULT_CALIBRATION_STARTER true
64+
65+#define DISCHARGE_TIME 10
66+
67+#define EECONFIG_KB_DATA_SIZE 169
68+
69+// PWM driver with direct memory access (DMA) support
70+#define WS2812_PWM_COMPLEMENTARY_OUTPUT
71+#define WS2812_PWM_DRIVER PWMD1
72+#define WS2812_PWM_CHANNEL 3
73+#define WS2812_PWM_PAL_MODE 1
74+#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
75+#define WS2812_DMA_CHANNEL 6
76diff --git a/keyboards/cipulot/ec_65x/halconf.h b/keyboards/cipulot/ec_65x/halconf.h
77new file mode 100644
78index 0000000000000000000000000000000000000000..fb0f77d82f9340651ef5fe0eeabc5079da56d09f
79--- /dev/null
80+++ b/keyboards/cipulot/ec_65x/halconf.h
81@@ -0,0 +1,23 @@
82+/* Copyright 2024 Cipulot
83+ *
84+ * This program is free software: you can redistribute it and/or modify
85+ * it under the terms of the GNU General Public License as published by
86+ * the Free Software Foundation, either version 3 of the License, or
87+ * (at your option) any later version.
88+ *
89+ * This program is distributed in the hope that it will be useful,
90+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
91+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
92+ * GNU General Public License for more details.
93+ *
94+ * You should have received a copy of the GNU General Public License
95+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
96+ */
97+
98+#pragma once
99+
100+#define HAL_USE_ADC TRUE
101+#define HAL_USE_PAL TRUE
102+#define HAL_USE_PWM TRUE
103+
104+#include_next <halconf.h>
105diff --git a/keyboards/cipulot/ec_65x/keyboard.json b/keyboards/cipulot/ec_65x/keyboard.json
106new file mode 100644
107index 0000000000000000000000000000000000000000..2baf3ea5f01766ffcaad81c3080b915e50184600
108--- /dev/null
109+++ b/keyboards/cipulot/ec_65x/keyboard.json
110@@ -0,0 +1,420 @@
111+{
112+ "manufacturer": "Cipulot",
113+ "keyboard_name": "EC 65X",
114+ "maintainer": "Cipulot",
115+ "bootloader": "stm32-dfu",
116+ "build": {
117+ "lto": true
118+ },
119+ "diode_direction": "COL2ROW",
120+ "eeprom": {
121+ "wear_leveling": {
122+ "backing_size": 4096
123+ }
124+ },
125+ "features": {
126+ "bootmagic": false,
127+ "console": true,
128+ "extrakey": true,
129+ "mousekey": true,
130+ "nkro": true,
131+ "rgblight": true
132+ },
133+ "processor": "STM32F411",
134+ "qmk": {
135+ "locking": {
136+ "enabled": true,
137+ "resync": true
138+ }
139+ },
140+ "rgblight": {
141+ "animations": {
142+ "alternating": true,
143+ "breathing": true,
144+ "christmas": true,
145+ "knight": true,
146+ "rainbow_mood": true,
147+ "rainbow_swirl": true,
148+ "rgb_test": true,
149+ "snake": true,
150+ "static_gradient": true,
151+ "twinkle": true
152+ },
153+ "led_count": 19
154+ },
155+ "usb": {
156+ "device_version": "0.0.1",
157+ "pid": "0x6BD1",
158+ "shared_endpoint": {
159+ "keyboard": true
160+ },
161+ "vid": "0x6369"
162+ },
163+ "ws2812": {
164+ "driver": "pwm",
165+ "pin": "B15"
166+ },
167+ "layouts": {
168+ "LAYOUT_65_ansi_blocker": {
169+ "layout": [
170+ {"matrix": [0, 0], "x": 0, "y": 0},
171+ {"matrix": [0, 1], "x": 1, "y": 0},
172+ {"matrix": [0, 2], "x": 2, "y": 0},
173+ {"matrix": [0, 3], "x": 3, "y": 0},
174+ {"matrix": [0, 4], "x": 4, "y": 0},
175+ {"matrix": [0, 5], "x": 5, "y": 0},
176+ {"matrix": [0, 6], "x": 6, "y": 0},
177+ {"matrix": [0, 7], "x": 7, "y": 0},
178+ {"matrix": [0, 8], "x": 8, "y": 0},
179+ {"matrix": [0, 9], "x": 9, "y": 0},
180+ {"matrix": [0, 10], "x": 10, "y": 0},
181+ {"matrix": [0, 11], "x": 11, "y": 0},
182+ {"matrix": [0, 12], "x": 12, "y": 0},
183+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
184+ {"matrix": [0, 15], "x": 15, "y": 0},
185+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
186+ {"matrix": [1, 1], "x": 1.5, "y": 1},
187+ {"matrix": [1, 2], "x": 2.5, "y": 1},
188+ {"matrix": [1, 3], "x": 3.5, "y": 1},
189+ {"matrix": [1, 4], "x": 4.5, "y": 1},
190+ {"matrix": [1, 5], "x": 5.5, "y": 1},
191+ {"matrix": [1, 6], "x": 6.5, "y": 1},
192+ {"matrix": [1, 7], "x": 7.5, "y": 1},
193+ {"matrix": [1, 8], "x": 8.5, "y": 1},
194+ {"matrix": [1, 9], "x": 9.5, "y": 1},
195+ {"matrix": [1, 10], "x": 10.5, "y": 1},
196+ {"matrix": [1, 11], "x": 11.5, "y": 1},
197+ {"matrix": [1, 12], "x": 12.5, "y": 1},
198+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
199+ {"matrix": [1, 15], "x": 15, "y": 1},
200+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
201+ {"matrix": [2, 1], "x": 1.75, "y": 2},
202+ {"matrix": [2, 2], "x": 2.75, "y": 2},
203+ {"matrix": [2, 3], "x": 3.75, "y": 2},
204+ {"matrix": [2, 4], "x": 4.75, "y": 2},
205+ {"matrix": [2, 5], "x": 5.75, "y": 2},
206+ {"matrix": [2, 6], "x": 6.75, "y": 2},
207+ {"matrix": [2, 7], "x": 7.75, "y": 2},
208+ {"matrix": [2, 8], "x": 8.75, "y": 2},
209+ {"matrix": [2, 9], "x": 9.75, "y": 2},
210diff --git a/keyboards/cipulot/ec_65x/keymaps/65_ansi_blocker/keymap.c b/keyboards/cipulot/ec_65x/keymaps/65_ansi_blocker/keymap.c
211new file mode 100644
212index 0000000000000000000000000000000000000000..9af029b2e33b918dc1e428df7ca85887ca52afa5
213--- /dev/null
214+++ b/keyboards/cipulot/ec_65x/keymaps/65_ansi_blocker/keymap.c
215@@ -0,0 +1,42 @@
216+/* Copyright 2024 Cipulot
217+ *
218+ * This program is free software: you can redistribute it and/or modify
219+ * it under the terms of the GNU General Public License as published by
220+ * the Free Software Foundation, either version 3 of the License, or
221+ * (at your option) any later version.
222+ *
223+ * This program is distributed in the hope that it will be useful,
224+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
225+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
226+ * GNU General Public License for more details.
227+ *
228+ * You should have received a copy of the GNU General Public License
229+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
230+ */
231+
232+#include QMK_KEYBOARD_H
233+
234+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
235+ // clang-format off
236+ [0] = LAYOUT_65_ansi_blocker(
237+ 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,
238+ 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_PGUP,
239+ 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_ENTER, KC_PGDN,
240+ 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, MO(1),
241+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
242+
243+ [1] = LAYOUT_65_ansi_blocker(
244+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
245+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
246+ _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
247+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
248+ _______, _______, _______, _______, _______, MO(2), _______, _______, _______),
249+
250+ [2] = LAYOUT_65_ansi_blocker(
251+ QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
252+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
253+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
254+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
255+ _______, _______, _______, _______, _______, _______, _______, _______, _______)
256+ // clang-format on
257+};
258diff --git a/keyboards/cipulot/ec_65x/keymaps/65_ansi_blocker_tsangan/keymap.c b/keyboards/cipulot/ec_65x/keymaps/65_ansi_blocker_tsangan/keymap.c
259new file mode 100644
260index 0000000000000000000000000000000000000000..69f17a0ae47c35dcd419f2aec39b85fb6ff4acf5
261--- /dev/null
262+++ b/keyboards/cipulot/ec_65x/keymaps/65_ansi_blocker_tsangan/keymap.c
263@@ -0,0 +1,42 @@
264+/* Copyright 2024 Cipulot
265+ *
266+ * This program is free software: you can redistribute it and/or modify
267+ * it under the terms of the GNU General Public License as published by
268+ * the Free Software Foundation, either version 3 of the License, or
269+ * (at your option) any later version.
270+ *
271+ * This program is distributed in the hope that it will be useful,
272+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
273+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
274+ * GNU General Public License for more details.
275+ *
276+ * You should have received a copy of the GNU General Public License
277+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
278+ */
279+
280+#include QMK_KEYBOARD_H
281+
282+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
283+ // clang-format off
284+ [0] = LAYOUT_65_ansi_blocker_tsangan(
285+ 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,
286+ 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_PGUP,
287+ 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_ENTER, KC_PGDN,
288+ 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, MO(1),
289+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
290+
291+ [1] = LAYOUT_65_ansi_blocker_tsangan(
292+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
293+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
294+ _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
295+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
296+ _______, _______, _______, _______, MO(2), _______, _______, _______),
297+
298+ [2] = LAYOUT_65_ansi_blocker_tsangan(
299+ QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
300+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
301+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
302+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
303+ _______, _______, _______, _______, _______, _______, _______, _______)
304+ // clang-format on
305+};
306diff --git a/keyboards/cipulot/ec_65x/keymaps/65_iso_blocker/keymap.c b/keyboards/cipulot/ec_65x/keymaps/65_iso_blocker/keymap.c
307new file mode 100644
308index 0000000000000000000000000000000000000000..0d695c2978c45c0eb9341aae2a8530e0c9206c68
309--- /dev/null
310+++ b/keyboards/cipulot/ec_65x/keymaps/65_iso_blocker/keymap.c
311@@ -0,0 +1,42 @@
312+/* Copyright 2024 Cipulot
313+ *
314+ * This program is free software: you can redistribute it and/or modify
315+ * it under the terms of the GNU General Public License as published by
316+ * the Free Software Foundation, either version 3 of the License, or
317+ * (at your option) any later version.
318+ *
319+ * This program is distributed in the hope that it will be useful,
320+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
321+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
322+ * GNU General Public License for more details.
323+ *
324+ * You should have received a copy of the GNU General Public License
325+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
326+ */
327+
328+#include QMK_KEYBOARD_H
329+
330+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
331+ // clang-format off
332+ [0] = LAYOUT_65_iso_blocker(
333+ 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,
334+ 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_ENTER, KC_PGUP,
335+ 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_NUHS, KC_PGDN,
336+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1),
337+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
338+
339+ [1] = LAYOUT_65_iso_blocker(
340+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
341+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
342+ _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
343+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
344+ _______, _______, _______, _______, _______, MO(2), _______, _______, _______),
345+
346+ [2] = LAYOUT_65_iso_blocker(
347+ QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
348+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
349+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
350+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
351+ _______, _______, _______, _______, _______, _______, _______, _______, _______)
352+ // clang-format on
353+};
354diff --git a/keyboards/cipulot/ec_65x/keymaps/65_iso_blocker_tsangan/keymap.c b/keyboards/cipulot/ec_65x/keymaps/65_iso_blocker_tsangan/keymap.c
355new file mode 100644
356index 0000000000000000000000000000000000000000..867167cdea6cd992e6aaee113ffbc99708f2f5ec
357--- /dev/null
358+++ b/keyboards/cipulot/ec_65x/keymaps/65_iso_blocker_tsangan/keymap.c
359@@ -0,0 +1,42 @@
360+/* Copyright 2024 Cipulot
361+ *
362+ * This program is free software: you can redistribute it and/or modify
363+ * it under the terms of the GNU General Public License as published by
364+ * the Free Software Foundation, either version 3 of the License, or
365+ * (at your option) any later version.
366+ *
367+ * This program is distributed in the hope that it will be useful,
368+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
369+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
370+ * GNU General Public License for more details.
371+ *
372+ * You should have received a copy of the GNU General Public License
373+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
374+ */
375+
376+#include QMK_KEYBOARD_H
377+
378+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
379+ // clang-format off
380+ [0] = LAYOUT_65_iso_blocker_tsangan(
381+ 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,
382+ 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_ENTER, KC_PGUP,
383+ 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_NUHS, KC_PGDN,
384+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1),
385+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
386+
387+ [1] = LAYOUT_65_iso_blocker_tsangan(
388+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
389+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
390+ _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
391+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
392+ _______, _______, _______, _______, MO(2), _______, _______, _______),
393+
394+ [2] = LAYOUT_65_iso_blocker_tsangan(
395+ QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
396+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
397+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
398+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
399+ _______, _______, _______, _______, _______, _______, _______, _______)
400+ // clang-format on
401+};
402diff --git a/keyboards/cipulot/ec_65x/keymaps/default/keymap.c b/keyboards/cipulot/ec_65x/keymaps/default/keymap.c
403new file mode 100644
404index 0000000000000000000000000000000000000000..e7fb368b0c7dcded469eca1a12ced4422729975b
405--- /dev/null
406+++ b/keyboards/cipulot/ec_65x/keymaps/default/keymap.c
407@@ -0,0 +1,42 @@
408+/* Copyright 2024 Cipulot
409+ *
410+ * This program is free software: you can redistribute it and/or modify
411+ * it under the terms of the GNU General Public License as published by
412+ * the Free Software Foundation, either version 3 of the License, or
413+ * (at your option) any later version.
414+ *
415+ * This program is distributed in the hope that it will be useful,
416+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
417+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
418+ * GNU General Public License for more details.
419+ *
420+ * You should have received a copy of the GNU General Public License
421+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
422+ */
423+
424+#include QMK_KEYBOARD_H
425+
426+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
427+ // clang-format off
428+ [0] = LAYOUT_all(
429+ 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_BSPC, KC_DEL,
430+ 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_ENTER, KC_PGUP,
431+ 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_NUHS, KC_ENTER, KC_PGDN,
432+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1),
433+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
434+
435+ [1] = LAYOUT_all(
436+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
437+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
438+ _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
439+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
440+ _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______),
441+
442+ [2] = LAYOUT_all(
443+ QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
444+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
445+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
446+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
447+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
448+ // clang-format on
449+};
450diff --git a/keyboards/cipulot/ec_65x/mcuconf.h b/keyboards/cipulot/ec_65x/mcuconf.h
451new file mode 100644
452index 0000000000000000000000000000000000000000..88185d8e9dac455102351b2a8f495cfb45cc906e
453--- /dev/null
454+++ b/keyboards/cipulot/ec_65x/mcuconf.h
455@@ -0,0 +1,25 @@
456+/* Copyright 2024 Cipulot
457+ *
458+ * This program is free software: you can redistribute it and/or modify
459+ * it under the terms of the GNU General Public License as published by
460+ * the Free Software Foundation, either version 3 of the License, or
461+ * (at your option) any later version.
462+ *
463+ * This program is distributed in the hope that it will be useful,
464+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
465+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
466+ * GNU General Public License for more details.
467+ *
468+ * You should have received a copy of the GNU General Public License
469+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
470+ */
471+
472+#pragma once
473+
474+#include_next <mcuconf.h>
475+
476+#undef STM32_ADC_USE_ADC1
477+#define STM32_ADC_USE_ADC1 TRUE
478+
479+#undef STM32_PWM_USE_TIM1
480+#define STM32_PWM_USE_TIM1 TRUE
481diff --git a/keyboards/cipulot/ec_65x/post_rules.mk b/keyboards/cipulot/ec_65x/post_rules.mk
482new file mode 100644
483index 0000000000000000000000000000000000000000..5dba48cc5fd61a291a6f48fa4f9f916e96275ff4
484--- /dev/null
485+++ b/keyboards/cipulot/ec_65x/post_rules.mk
486@@ -0,0 +1 @@
487+include keyboards/cipulot/common/common_cipulot.mk
488diff --git a/keyboards/cipulot/ec_65x/readme.md b/keyboards/cipulot/ec_65x/readme.md
489new file mode 100644
490index 0000000000000000000000000000000000000000..786d2b450424e2a5809164606e3b427a9e7e53c5
491--- /dev/null
492+++ b/keyboards/cipulot/ec_65x/readme.md
493@@ -0,0 +1,26 @@
494+# EC 65X
495+
496+
497+
498+Universal 65% Electrostatic Capacitive PCB, with multi-layout support.
499+
500+* Keyboard Maintainer: [cipulot](https://github.com/cipulot)
501+* Hardware Supported: EC 65X
502+* Hardware Availability: TBD
503+
504+Make example for this keyboard (after setting up your build environment):
505+
506+ make cipulot/ec_66x:default
507+
508+Flashing example for this keyboard:
509+
510+ make cipulot/ec_66x:default:flash
511+
512diff --git a/keyboards/cipulot/ec_65x/rules.mk b/keyboards/cipulot/ec_65x/rules.mk
513new file mode 100644
514index 0000000000000000000000000000000000000000..3aa0e2bf06154316e6315ba7742f3ce96bee8e31
515--- /dev/null
516+++ b/keyboards/cipulot/ec_65x/rules.mk
517@@ -0,0 +1 @@
518+OPT = 2