aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÁlvaro A. Volpato <alvaro.volpato@usp.br>2022-01-28 21:19:11 -0300
committerGitHub <noreply@github.com>2022-01-28 16:19:11 -0800
commitbd8e257f842e40f01041706a217be2cf85ae7f92 (patch)
treefd8edb6e8b86ac83d311af009535f23637e7a715
parentdb56db2f798a83a7736fc7681c1fb58070dd7511 (diff)
downloadqmk_firmware-bd8e257f842e40f01041706a217be2cf85ae7f92.tar.gz
qmk_firmware-bd8e257f842e40f01041706a217be2cf85ae7f92.zip
[Keyboard] Adds Elongate Revision Delta PCB support (#15498)
Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Ryan <fauxpark@gmail.com>
-rw-r--r--keyboards/acheron/elongate/beta/beta.c17
-rw-r--r--keyboards/acheron/elongate/beta/beta.h44
-rw-r--r--keyboards/acheron/elongate/beta/config.h (renamed from keyboards/acheron/elongate/config.h)4
-rw-r--r--keyboards/acheron/elongate/beta/info.json (renamed from keyboards/acheron/elongate/info.json)0
-rw-r--r--keyboards/acheron/elongate/beta/keymaps/default/keymap.c (renamed from keyboards/acheron/elongate/keymaps/default/keymap.c)0
-rw-r--r--keyboards/acheron/elongate/beta/keymaps/default/readme.md (renamed from keyboards/acheron/elongate/keymaps/default/readme.md)0
-rw-r--r--keyboards/acheron/elongate/beta/keymaps/via/config.h (renamed from keyboards/acheron/elongate/keymaps/via/config.h)0
-rw-r--r--keyboards/acheron/elongate/beta/keymaps/via/keymap.c (renamed from keyboards/acheron/elongate/keymaps/via/keymap.c)0
-rw-r--r--keyboards/acheron/elongate/beta/keymaps/via/rules.mk (renamed from keyboards/acheron/elongate/keymaps/via/rules.mk)0
-rwxr-xr-xkeyboards/acheron/elongate/beta/readme.md43
-rw-r--r--keyboards/acheron/elongate/beta/rules.mk (renamed from keyboards/acheron/elongate/rules.mk)0
-rwxr-xr-xkeyboards/acheron/elongate/delta/chconf.h25
-rwxr-xr-xkeyboards/acheron/elongate/delta/config.h81
-rwxr-xr-xkeyboards/acheron/elongate/delta/delta.c78
-rwxr-xr-xkeyboards/acheron/elongate/delta/delta.h34
-rwxr-xr-xkeyboards/acheron/elongate/delta/halconf.h23
-rwxr-xr-xkeyboards/acheron/elongate/delta/keymaps/default/keymap.c44
-rwxr-xr-xkeyboards/acheron/elongate/delta/keymaps/via/keymap.c44
-rwxr-xr-xkeyboards/acheron/elongate/delta/keymaps/via/rules.mk1
-rwxr-xr-xkeyboards/acheron/elongate/delta/mcuconf.h25
-rwxr-xr-xkeyboards/acheron/elongate/delta/readme.md43
-rwxr-xr-xkeyboards/acheron/elongate/delta/rules.mk20
-rw-r--r--keyboards/acheron/elongate/elongate.c14
-rw-r--r--keyboards/acheron/elongate/elongate.h31
-rw-r--r--keyboards/acheron/elongate/readme.md25
25 files changed, 533 insertions, 63 deletions
diff --git a/keyboards/acheron/elongate/beta/beta.c b/keyboards/acheron/elongate/beta/beta.c
new file mode 100644
index 000000000..ffa13d4fe
--- /dev/null
+++ b/keyboards/acheron/elongate/beta/beta.c
@@ -0,0 +1,17 @@
1/* Copyright 2020 Gondolindrim
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "beta.h"
diff --git a/keyboards/acheron/elongate/beta/beta.h b/keyboards/acheron/elongate/beta/beta.h
new file mode 100644
index 000000000..6ff32b4f7
--- /dev/null
+++ b/keyboards/acheron/elongate/beta/beta.h
@@ -0,0 +1,44 @@
1/* Copyright 2020 Gondolindrim
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21/* This is a shortcut to help you visually see your layout.
22 *
23 * The first section contains all of the arguments representing the physical
24 * layout of the board and position of the Keys.
25 *
26 * The second converts the arguments into a two-dimensional array which
27 * represents the switch matrix.
28 */
29
30#define KNO KC_NO
31
32#define LAYOUT( \
33 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K49, K41, \
34 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1B, K1C, K4A, K42, \
35 K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K4B, K44, \
36 K30, K31, K32, K34, K37, K3A, K3B, K3C, K3D, K4C, K47 \
37)\
38{\
39 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C }, \
40 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KNO, K1B, K1C }, \
41 { K20, KNO, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C }, \
42 { K30, K31, K32, KNO, K34, KNO, KNO, K37, KNO, K3A, K3B, K3C, K3D }, \
43 { KNO, K41, K42, KNO, K44, KNO, KNO, K47, KNO, K49, K4A, K4B, K4C } \
44}
diff --git a/keyboards/acheron/elongate/config.h b/keyboards/acheron/elongate/beta/config.h
index 434e62cd8..c02cf0897 100644
--- a/keyboards/acheron/elongate/config.h
+++ b/keyboards/acheron/elongate/beta/config.h
@@ -144,3 +144,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
144/* Bootmagic Lite key configuration */ 144/* Bootmagic Lite key configuration */
145// #define BOOTMAGIC_LITE_ROW 0 145// #define BOOTMAGIC_LITE_ROW 0
146// #define BOOTMAGIC_LITE_COLUMN 0 146// #define BOOTMAGIC_LITE_COLUMN 0
147
148#define LED_NUM_LOCK_PIN D2
149#define LED_CAPS_LOCK_PIN D1
150#define LED_SCROLL_LOCK_PIN D0
diff --git a/keyboards/acheron/elongate/info.json b/keyboards/acheron/elongate/beta/info.json
index bfb9db9b3..bfb9db9b3 100644
--- a/keyboards/acheron/elongate/info.json
+++ b/keyboards/acheron/elongate/beta/info.json
diff --git a/keyboards/acheron/elongate/keymaps/default/keymap.c b/keyboards/acheron/elongate/beta/keymaps/default/keymap.c
index c2b809b74..c2b809b74 100644
--- a/keyboards/acheron/elongate/keymaps/default/keymap.c
+++ b/keyboards/acheron/elongate/beta/keymaps/default/keymap.c
diff --git a/keyboards/acheron/elongate/keymaps/default/readme.md b/keyboards/acheron/elongate/beta/keymaps/default/readme.md
index a154ac591..a154ac591 100644
--- a/keyboards/acheron/elongate/keymaps/default/readme.md
+++ b/keyboards/acheron/elongate/beta/keymaps/default/readme.md
diff --git a/keyboards/acheron/elongate/keymaps/via/config.h b/keyboards/acheron/elongate/beta/keymaps/via/config.h
index a3b77a5b4..a3b77a5b4 100644
--- a/keyboards/acheron/elongate/keymaps/via/config.h
+++ b/keyboards/acheron/elongate/beta/keymaps/via/config.h
diff --git a/keyboards/acheron/elongate/keymaps/via/keymap.c b/keyboards/acheron/elongate/beta/keymaps/via/keymap.c
index c2b809b74..c2b809b74 100644
--- a/keyboards/acheron/elongate/keymaps/via/keymap.c
+++ b/keyboards/acheron/elongate/beta/keymaps/via/keymap.c
diff --git a/keyboards/acheron/elongate/keymaps/via/rules.mk b/keyboards/acheron/elongate/beta/keymaps/via/rules.mk
index 1e5b99807..1e5b99807 100644
--- a/keyboards/acheron/elongate/keymaps/via/rules.mk
+++ b/keyboards/acheron/elongate/beta/keymaps/via/rules.mk
diff --git a/keyboards/acheron/elongate/beta/readme.md b/keyboards/acheron/elongate/beta/readme.md
new file mode 100755
index 000000000..8a8949fdf
--- /dev/null
+++ b/keyboards/acheron/elongate/beta/readme.md
@@ -0,0 +1,43 @@
1# Acheron Elongate rev. Beta QMK firmware repository
2
3![](https://i.imgur.com/G9LESkUh.jpg)
4
5* Keyboard Maintainer: [Gondolindrim](https://github.com/Gondolindrim)
6* Hardware Supported: [open-source PCB](https://github.com/AcheronProject/Elongate) powered by STM32F072 microcontroller
7* Hardware Availability: the revision beta of Elongate was never publicly sold.
8
9## Introduction
10
11This is the QMK firmware repository for the Elongate PCB revision Beta and pre-revision Beta versions, which was the initial revision PCB for this keyboard; hence it was never sold publicly.
12
13The Elongate PCB is an Open-Hardware-guideline-compliant PCB which files can be found at [this repository](https://github.com/AcheronProject/Elongate). Its designer and maintainer is [Gondolindrim](https://github.com/Gondolindrim).
14
15## How to flash
16
17### Enter bootloader
18
19The DFU state in the bootloader can be accessed in 3 ways:
20
21* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
22* **Physical reset button**: press the button on the front of the PCB.
23* **Keycode in layout**: Press the key mapped to `RESET` if it is available.
24
25## Compile firmware
26
27You can build the default layout firwmare for Elongate after setting up your build environment by using:
28
29 make acheron/elongate/beta:default
30
31After entering DFU state in your PCB, you can download the binary file generated through `dfu-util` or a GUI like QMK Toolbox.
32
33To directly flash the PCB after it is put into a DFU state, use
34
35 make acheron/elongate/beta:default:flash
36
37See 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).
38
39## PCB Documentation
40
41See the [AcheronDocs](https://acheronproject.com/pcbs/elongate/) page for the ElongatePCB full documentation. You can also check the KiCad PCB files at the [Elongate GitHub repository](https://github.com/AcheronProject/Elongate).
42
43Before using the files for personal or commercial use, please read the [Acheron Open-Hardware License V1.4](https://acheronproject.com/AOHL14/) under which the Elongate PCB is published.
diff --git a/keyboards/acheron/elongate/rules.mk b/keyboards/acheron/elongate/beta/rules.mk
index 976f6aecc..976f6aecc 100644
--- a/keyboards/acheron/elongate/rules.mk
+++ b/keyboards/acheron/elongate/beta/rules.mk
diff --git a/keyboards/acheron/elongate/delta/chconf.h b/keyboards/acheron/elongate/delta/chconf.h
new file mode 100755
index 000000000..cbbae3107
--- /dev/null
+++ b/keyboards/acheron/elongate/delta/chconf.h
@@ -0,0 +1,25 @@
1/* Copyright 2020 QMK
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#define CH_CFG_ST_FREQUENCY 10000
20
21#define CH_CFG_OPTIMIZE_SPEED FALSE
22
23#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE
24
25#include_next <chconf.h>
diff --git a/keyboards/acheron/elongate/delta/config.h b/keyboards/acheron/elongate/delta/config.h
new file mode 100755
index 000000000..957a6e39c
--- /dev/null
+++ b/keyboards/acheron/elongate/delta/config.h
@@ -0,0 +1,81 @@
1/*
2Copyright 2020 Gondolindrim
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20#include "config_common.h"
21
22/* USB Device descriptor parameter */
23#define VENDOR_ID 0x4150 //AP for AcheronProject
24#define PRODUCT_ID 0x454D // EL+1 for Elongate revision Delta
25#define DEVICE_VER 0x0002
26#define MANUFACTURER Acheron Project
27#define PRODUCT Elongate
28
29#define MATRIX_ROWS 5
30#define MATRIX_COLS 15
31
32#define MATRIX_COL_PINS { A10, A9, A8, B14, B12, B11, B10, B2, B1, A7, A5, B9, B8, B7, B6 }
33#define MATRIX_ROW_PINS { B3, A15, B0, B4, B5 }
34
35#define DIODE_DIRECTION COL2ROW
36
37#define BACKLIGHT_PIN A6
38#define BACKLIGHT_PWM_DRIVER PWMD3
39#define BACKLIGHT_PWM_CHANNEL 1
40#define BACKLIGHT_PAL_MODE 1
41#define BACKLIGHT_BREATHING
42#define BACKLIGHT_LEVELS 20
43#define BACKLIGHT_DEFAULT_LEVEL 10
44#define BREATHING_PERIOD 3
45
46#define RGB_DI_PIN B15
47#define RGBLED_NUM 16
48#define RGBLIGHT_LIMIT_VAL 200
49#define RGBLIGHT_SLEEP
50#define RGBLIGHT_EFFECT_BREATHING
51#define RGBLIGHT_EFFECT_RAINBOW_MOOD
52#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
53#define RGBLIGHT_EFFECT_SNAKE
54#define RGBLIGHT_EFFECT_KNIGHT
55#define RGBLIGHT_EFFECT_CHRISTMAS
56#define RGBLIGHT_EFFECT_STATIC_GRADIENT
57#define RGBLIGHT_EFFECT_RGB_TEST
58#define RGBLIGHT_EFFECT_ALTERNATING
59#define RGBLIGHT_EFFECT_TWINKLE
60
61#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 5)
62
63/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
64#define DEBOUNCE 5
65
66/* define if matrix has ghost (lacks anti-ghosting diodes) */
67//#define MATRIX_HAS_GHOST
68
69/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
70#define LOCKING_SUPPORT_ENABLE
71/* Locking resynchronize hack */
72#define LOCKING_RESYNC_ENABLE
73
74// Elongate has six indicator LEDs. These def's are the indicator pin defs. The LEDs are distributed in two clusters: one next to the numpad and another between spacebars; LEDs are numbered top-to-bottom.
75
76#define LED1_PIN A2
77#define LED2_PIN A1
78#define LED3_PIN A0
79#define LED4_PIN A4
80#define LED5_PIN A3
81#define LED6_PIN F1
diff --git a/keyboards/acheron/elongate/delta/delta.c b/keyboards/acheron/elongate/delta/delta.c
new file mode 100755
index 000000000..520dde4e2
--- /dev/null
+++ b/keyboards/acheron/elongate/delta/delta.c
@@ -0,0 +1,78 @@
1/* Copyright 2021 Gondolindrim
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "delta.h"
18
19#define LED_PIN_ON_STATE 1
20// Inits all indicator LEDs as push-pull outputs
21void led_init_ports(void) {
22 palSetLineMode(LED1_PIN, PAL_MODE_OUTPUT_PUSHPULL);
23 palSetLineMode(LED2_PIN, PAL_MODE_OUTPUT_PUSHPULL);
24 palSetLineMode(LED3_PIN, PAL_MODE_OUTPUT_PUSHPULL);
25 palSetLineMode(LED4_PIN, PAL_MODE_OUTPUT_PUSHPULL);
26 palSetLineMode(LED5_PIN, PAL_MODE_OUTPUT_PUSHPULL);
27 palSetLineMode(LED6_PIN, PAL_MODE_OUTPUT_PUSHPULL);
28}
29
30// This function updates LEDs 1, 2 and 3 according to num, caps and scroll lock states
31bool led_update_kb(led_t led_state) {
32 bool res = led_update_user(led_state);
33 if(res) {
34 writePin(LED1_PIN, !led_state.num_lock);
35 writePin(LED2_PIN, !led_state.caps_lock);
36 writePin(LED3_PIN, !led_state.scroll_lock);
37 }
38 return res;
39}
40
41// Turns off all bottom LEDs
42void turn_off_bottom_leds(void){
43 writePin(LED4_PIN, 1);
44 writePin(LED5_PIN, 1);
45 writePin(LED6_PIN, 1);
46}
47
48/*
49Here the bottom LEDs get updated. The idea being that LED4 is lit when the default layer is active, LED5 when layer 1 is active and LED6 when layer 2.
50Before updating, however, all bottom LEDs are turned off.
51*/
52layer_state_t layer_state_set_kb(layer_state_t state) {
53 turn_off_bottom_leds();
54 switch (get_highest_layer(state)) {
55// The base layer, or layer zero, will be handled by the default case.
56 case 1:
57 writePin(LED4_PIN, 1);
58 writePin(LED5_PIN, 0);
59 writePin(LED6_PIN, 1);
60 break;
61 case 2:
62 writePin(LED4_PIN, 1);
63 writePin(LED5_PIN, 1);
64 writePin(LED6_PIN, 0);
65 break;
66 default:
67 writePin(LED4_PIN, 0);
68 writePin(LED5_PIN, 1);
69 writePin(LED6_PIN, 1);
70 break;
71 }
72 return state;
73}
74
75// Since the keyboard starts at layer 0, the init function starts LED4 as lit up.
76void keyboard_post_init_kb(void){
77 writePin(LED4_PIN, 0);
78}
diff --git a/keyboards/acheron/elongate/delta/delta.h b/keyboards/acheron/elongate/delta/delta.h
new file mode 100755
index 000000000..119521215
--- /dev/null
+++ b/keyboards/acheron/elongate/delta/delta.h
@@ -0,0 +1,34 @@
1/* Copyright 2021 Gondolindrim
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21#define ___ KC_NO
22
23#define LAYOUT_all( \
24 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
25 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1B, K1C, K1D, K1E, \
26 K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K4B, K4C, K4D, K4E, \
27 K30, K31, K32, K34, K37, K39, K3A, K3B, K3C, K3D, K3E \
28) { \
29 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
30 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, ___, K1B, K1C, K1D, K1E }, \
31 { K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, ___, ___, ___, ___ }, \
32 { K30, K31, K32, ___, K34, ___, ___, K37, ___, K39, K3A, K3B, K3C, K3D, K3E }, \
33 { ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, K4B, K4C, K4D, K4E } \
34}
diff --git a/keyboards/acheron/elongate/delta/halconf.h b/keyboards/acheron/elongate/delta/halconf.h
new file mode 100755
index 000000000..2a91ab973
--- /dev/null
+++ b/keyboards/acheron/elongate/delta/halconf.h
@@ -0,0 +1,23 @@
1/* Copyright 2020 QMK
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#define HAL_USE_PWM TRUE
20
21#define HAL_USE_SPI TRUE
22
23#include_next <halconf.h>
diff --git a/keyboards/acheron/elongate/delta/keymaps/default/keymap.c b/keyboards/acheron/elongate/delta/keymaps/default/keymap.c
new file mode 100755
index 000000000..a701d9ed9
--- /dev/null
+++ b/keyboards/acheron/elongate/delta/keymaps/default/keymap.c
@@ -0,0 +1,44 @@
1/* Copyright 2020 Gondolindrim
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17#define SPC_L2 LT(2, KC_SPACE)
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20[0] = LAYOUT_all( /* Base */
21 KC_ESC , KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_KP_7, KC_KP_8, KC_KP_9,
22 KC_TAB , KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENTER, KC_KP_4, KC_KP_5, KC_KP_6,
23 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, MO(1) , KC_UP, KC_KP_1, KC_KP_2, KC_KP_3,
24 KC_LCTL, KC_LWIN, KC_LALT, SPC_L2, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_KP_0, KC_DOT
25),
26[1] = LAYOUT_all( /* Base */
27 KC_F1, KC_F2, KC_F2, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_NLCK, KC_SLCK, KC_CAPS,
28 KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_TRNS, KC_TRNS, KC_TRNS,
29 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT, KC_SLSH, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS,
30 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_HOME, KC_PGDN, KC_END , KC_TRNS, KC_TRNS
31),
32[2] = LAYOUT_all( /* Base */
33 RESET , 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,
34 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,
35 KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_M_T, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
36 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
37),
38[3] = LAYOUT_all( /* Base */
39 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,
40 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,
41 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,
42 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
43)
44};
diff --git a/keyboards/acheron/elongate/delta/keymaps/via/keymap.c b/keyboards/acheron/elongate/delta/keymaps/via/keymap.c
new file mode 100755
index 000000000..a701d9ed9
--- /dev/null
+++ b/keyboards/acheron/elongate/delta/keymaps/via/keymap.c
@@ -0,0 +1,44 @@
1/* Copyright 2020 Gondolindrim
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17#define SPC_L2 LT(2, KC_SPACE)
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20[0] = LAYOUT_all( /* Base */
21 KC_ESC , KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_KP_7, KC_KP_8, KC_KP_9,
22 KC_TAB , KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENTER, KC_KP_4, KC_KP_5, KC_KP_6,
23 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, MO(1) , KC_UP, KC_KP_1, KC_KP_2, KC_KP_3,
24 KC_LCTL, KC_LWIN, KC_LALT, SPC_L2, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_KP_0, KC_DOT
25),
26[1] = LAYOUT_all( /* Base */
27 KC_F1, KC_F2, KC_F2, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_NLCK, KC_SLCK, KC_CAPS,
28 KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_TRNS, KC_TRNS, KC_TRNS,
29 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT, KC_SLSH, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS,
30 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_HOME, KC_PGDN, KC_END , KC_TRNS, KC_TRNS
31),
32[2] = LAYOUT_all( /* Base */
33 RESET , 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,
34 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,
35 KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_M_T, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
36 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
37),
38[3] = LAYOUT_all( /* Base */
39 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,
40 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,
41 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,
42 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
43)
44};
diff --git a/keyboards/acheron/elongate/delta/keymaps/via/rules.mk b/keyboards/acheron/elongate/delta/keymaps/via/rules.mk
new file mode 100755
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/acheron/elongate/delta/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes
diff --git a/keyboards/acheron/elongate/delta/mcuconf.h b/keyboards/acheron/elongate/delta/mcuconf.h
new file mode 100755
index 000000000..d712a1e5a
--- /dev/null
+++ b/keyboards/acheron/elongate/delta/mcuconf.h
@@ -0,0 +1,25 @@
1/* Copyright 2020 QMK
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include_next <mcuconf.h>
20
21#undef STM32_PWM_USE_TIM3
22#define STM32_PWM_USE_TIM3 TRUE
23
24#undef STM32_SPI_USE_SPI2
25#define STM32_SPI_USE_SPI2 TRUE
diff --git a/keyboards/acheron/elongate/delta/readme.md b/keyboards/acheron/elongate/delta/readme.md
new file mode 100755
index 000000000..055b02ee0
--- /dev/null
+++ b/keyboards/acheron/elongate/delta/readme.md
@@ -0,0 +1,43 @@
1# Acheron Elongate rev. Delta QMK firmware repository
2
3![](https://i.imgur.com/G9LESkUh.jpg)
4
5* Keyboard Maintainer: [Gondolindrim](https://github.com/Gondolindrim)
6* Hardware Supported: [open-source PCB](https://github.com/AcheronProject/Elongate) powered by STM32F072 microcontroller
7* Hardware Availability: as of december 2021, the group buy for Elongate is already over and extras sales are pending.
8
9## Introduction
10
11This is the QMK firmware repository for the Elongate PCB revision Delta, which was the revision publicly sold at the group buy. Revisions Alpha and Beta were sold in private group buys and never ran publicly.
12
13The Elongate PCB is an Open-Hardware-guideline-compliant PCB which files can be found at [this repository](https://github.com/AcheronProject/Elongate). Its designer and maintainer is [Gondolindrim](https://github.com/Gondolindrim).
14
15## How to flash
16
17### Enter bootloader
18
19The DFU state in the bootloader can be accessed in 3 ways:
20
21* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
22* **Physical reset button**: press the button on the front of the PCB, next to caps lock, for at least five seconds
23* **Keycode in layout**: Press the key mapped to `RESET` if it is available (escape key at layer 2 in the default firmware)
24
25## Compile firmware
26
27You can build the default layout firwmare for Elongate after setting up your build environment by using:
28
29 make acheron/elongate/delta:default
30
31After entering DFU state in your PCB, you can download the binary file generated through `dfu-util` or a GUI like QMK Toolbox.
32
33To directly flash the PCB after it is put into a DFU state, use
34
35 make acheron/elongate/delta:default:flash
36
37See 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).
38
39## PCB Documentation
40
41See the [AcheronDocs](https://acheronproject.com/pcbs/elongate/) page for the ElongatePCB full documentation. You can also check the KiCad PCB files at the [Elongate GitHub repository](https://github.com/AcheronProject/Elongate).
42
43Before using the files for personal or commercial use, please read the [Acheron Open-Hardware License V1.4](https://acheronproject.com/AOHL14/) under which the Elongate PCB is published.
diff --git a/keyboards/acheron/elongate/delta/rules.mk b/keyboards/acheron/elongate/delta/rules.mk
new file mode 100755
index 000000000..20a0bab85
--- /dev/null
+++ b/keyboards/acheron/elongate/delta/rules.mk
@@ -0,0 +1,20 @@
1# MCU name
2MCU = STM32F072
3
4# Bootloader selection
5BOOTLOADER = stm32-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
11MOUSEKEY_ENABLE = yes # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration
15NKRO_ENABLE = yes # Enable N-Key Rollover
16BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
17RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
18AUDIO_ENABLE = no # Audio output
19# Enter lower-power sleep mode when on the ChibiOS idle thread
20OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/acheron/elongate/elongate.c b/keyboards/acheron/elongate/elongate.c
index 31c472036..9bf0d893a 100644
--- a/keyboards/acheron/elongate/elongate.c
+++ b/keyboards/acheron/elongate/elongate.c
@@ -1,4 +1,4 @@
1/* Copyright 2020 Gondolindrim 1/* Copyright 2021 Gondolindrim
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * it under the terms of the GNU General Public License as published by
@@ -9,18 +9,6 @@
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details. 11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 12 */
16 13
17#include "elongate.h" 14#include "elongate.h"
18bool led_update_kb(led_t led_state) {
19 bool res = led_update_user(led_state);
20 if(res) {
21 writePin(D2, led_state.num_lock);
22 writePin(D1, led_state.caps_lock);
23 writePin(D0, led_state.scroll_lock);
24 }
25 return res;
26}
diff --git a/keyboards/acheron/elongate/elongate.h b/keyboards/acheron/elongate/elongate.h
index 6ff32b4f7..2e5887164 100644
--- a/keyboards/acheron/elongate/elongate.h
+++ b/keyboards/acheron/elongate/elongate.h
@@ -1,4 +1,4 @@
1/* Copyright 2020 Gondolindrim 1/* Copyright 2020-2022 Gondolindrim
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * it under the terms of the GNU General Public License as published by
@@ -18,27 +18,8 @@
18 18
19#include "quantum.h" 19#include "quantum.h"
20 20
21/* This is a shortcut to help you visually see your layout. 21#if defined(KEYBOARD_acheron_elongate_beta)
22 * 22 #include "beta.h"
23 * The first section contains all of the arguments representing the physical 23#elif defined(KEYBOARD_acheron_elongate_delta)
24 * layout of the board and position of the Keys. 24 #include "delta.h"
25 * 25#endif
26 * The second converts the arguments into a two-dimensional array which
27 * represents the switch matrix.
28 */
29
30#define KNO KC_NO
31
32#define LAYOUT( \
33 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K49, K41, \
34 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1B, K1C, K4A, K42, \
35 K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K4B, K44, \
36 K30, K31, K32, K34, K37, K3A, K3B, K3C, K3D, K4C, K47 \
37)\
38{\
39 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C }, \
40 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KNO, K1B, K1C }, \
41 { K20, KNO, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C }, \
42 { K30, K31, K32, KNO, K34, KNO, KNO, K37, KNO, K3A, K3B, K3C, K3D }, \
43 { KNO, K41, K42, KNO, K44, KNO, KNO, K47, KNO, K49, K4A, K4B, K4C } \
44}
diff --git a/keyboards/acheron/elongate/readme.md b/keyboards/acheron/elongate/readme.md
deleted file mode 100644
index 83c0eeada..000000000
--- a/keyboards/acheron/elongate/readme.md
+++ /dev/null
@@ -1,25 +0,0 @@
1# Acheron Aχξρων 45-S-ATMEGA-MX-TH-WI (codename "Elongate") QMK firmware
2
3<p align="center">
4 <img align="middle" src="https://raw.githubusercontent.com/Gondolindrim/acheronLibrary/master/graphics/acheronLong.png" width="400">
5</p>
6
7## Introduction
8
9This is the QMK firmware repository for the ElongatePCN, compatible with revisions Beta and pre-Beta.
10
11The ElongatePCB is an Open-Hardware guidelines compliant PCB which files can be found at [this link](https://github.com/Gondolindrim/AElongate). Its designer and maintainer is [Gondolindrim](https://github.com/Gondolindrim).
12
13## PCB Documentation
14
15See the [AcheronDocs](https://gondolindrim.github.io/AcheronDocs/elongate/introduction.html) page for the ElongatePCB full documentation. You can also check the KiCad PCB files at the [Elongate GitHub repository](https://github.com/Gondolindrim/Elongate).
16
17Before using the files for personal or commercial use, please read the [Acheron Open-Hardware License V1.2](https://gondolindrim.github.io/AcheronDocs/license/license.html) under which the Austin PCB is published.
18
19## How to compile
20
21After setting up your build environment, you can compile the Austin default keymap by using:
22
23 make acheron/elongate:default
24
25See 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).