aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/barracuda/barracuda.c17
-rw-r--r--keyboards/barracuda/barracuda.h41
-rw-r--r--keyboards/barracuda/config.h59
-rw-r--r--keyboards/barracuda/info.json48
-rw-r--r--keyboards/barracuda/keymaps/default/config.h20
-rw-r--r--keyboards/barracuda/keymaps/default/keymap.c63
-rw-r--r--keyboards/barracuda/keymaps/default/readme.md1
-rw-r--r--keyboards/barracuda/keymaps/via/config.h20
-rw-r--r--keyboards/barracuda/keymaps/via/keymap.c63
-rw-r--r--keyboards/barracuda/keymaps/via/readme.md1
-rw-r--r--keyboards/barracuda/keymaps/via/rules.mk1
-rw-r--r--keyboards/barracuda/readme.md24
-rw-r--r--keyboards/barracuda/rules.mk24
13 files changed, 382 insertions, 0 deletions
diff --git a/keyboards/barracuda/barracuda.c b/keyboards/barracuda/barracuda.c
new file mode 100644
index 000000000..f863b1917
--- /dev/null
+++ b/keyboards/barracuda/barracuda.c
@@ -0,0 +1,17 @@
1/* Copyright 2021 knaruo
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 "barracuda.h"
diff --git a/keyboards/barracuda/barracuda.h b/keyboards/barracuda/barracuda.h
new file mode 100644
index 000000000..c6389d778
--- /dev/null
+++ b/keyboards/barracuda/barracuda.h
@@ -0,0 +1,41 @@
1/* Copyright 2021 knaruo
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 LAYOUT_ortho_3x11( \
31 L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, \
32 L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, \
33 L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24 \
34) { \
35 { L00, L01, L02, L03, L04, L05 }, \
36 { L10, L11, L12, L13, L14, L15 }, \
37 { L20, L21, L22, L23, L24, L25 }, \
38 { KC_NO, R00, R01, R02, R03, R04 }, \
39 { KC_NO, R10, R11, R12, R13, R14 }, \
40 { KC_NO, R20, R21, R22, R23, R24 } \
41}
diff --git a/keyboards/barracuda/config.h b/keyboards/barracuda/config.h
new file mode 100644
index 000000000..97eee0bd6
--- /dev/null
+++ b/keyboards/barracuda/config.h
@@ -0,0 +1,59 @@
1/* Copyright 2021 knaruo
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 "config_common.h"
20
21/* USB Device descriptor parameter */
22#define VENDOR_ID 0x6B6E
23#define PRODUCT_ID 0x0001
24#define DEVICE_VER 0x0001
25#define MANUFACTURER knaruo
26#define PRODUCT barracuda
27
28/* key matrix size */
29#define MATRIX_ROWS 6
30#define MATRIX_COLS 6
31
32/*
33 * Keyboard Matrix Assignments
34 *
35 * Change this to how you wired your keyboard
36 * COLS: AVR pins used for columns, left to right
37 * ROWS: AVR pins used for rows, top to bottom
38 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
39 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
40 *
41 */
42#define MATRIX_ROW_PINS { C4, C5, C6, D1, D2, D3 }
43#define MATRIX_COL_PINS { D4, D5, D6, B0, B1, B2 }
44#define UNUSED_PINS
45
46/* COL2ROW, ROW2COL */
47#define DIODE_DIRECTION COL2ROW
48
49/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
50#define DEBOUNCE 5
51
52/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
53#define LOCKING_SUPPORT_ENABLE
54/* Locking resynchronize hack */
55#define LOCKING_RESYNC_ENABLE
56
57/* disable these deprecated features by default */
58#define NO_ACTION_MACRO
59#define NO_ACTION_FUNCTION
diff --git a/keyboards/barracuda/info.json b/keyboards/barracuda/info.json
new file mode 100644
index 000000000..ac43850da
--- /dev/null
+++ b/keyboards/barracuda/info.json
@@ -0,0 +1,48 @@
1{
2 "keyboard_name": "barracuda",
3 "url": "https://github.com/knaruo/barracuda",
4 "maintainer": "knaruo",
5 "width": 14,
6 "height": 3,
7 "layouts": {
8 "LAYOUT": {
9 "layout": [
10 {"x": 0, "y": 0},
11 {"x": 1, "y": 0},
12 {"x": 2, "y": 0},
13 {"x": 3, "y": 0},
14 {"x": 4, "y": 0},
15 {"x": 5, "y": 0},
16 {"x": 9, "y": 0},
17 {"x": 10, "y": 0},
18 {"x": 11, "y": 0},
19 {"x": 12, "y": 0},
20 {"x": 13, "y": 0},
21
22 {"x": 0, "y": 1},
23 {"x": 1, "y": 1},
24 {"x": 2, "y": 1},
25 {"x": 3, "y": 1},
26 {"x": 4, "y": 1},
27 {"x": 5, "y": 1},
28 {"x": 9, "y": 1},
29 {"x": 10, "y": 1},
30 {"x": 11, "y": 1},
31 {"x": 12, "y": 1},
32 {"x": 13, "y": 1},
33
34 {"x": 0, "y": 2},
35 {"x": 1, "y": 2},
36 {"x": 2, "y": 2},
37 {"x": 3, "y": 2},
38 {"x": 4, "y": 2},
39 {"x": 5, "y": 2},
40 {"x": 9, "y": 2},
41 {"x": 10, "y": 2},
42 {"x": 11, "y": 2},
43 {"x": 12, "y": 2},
44 {"x": 13, "y": 2}
45 ]
46 }
47 }
48}
diff --git a/keyboards/barracuda/keymaps/default/config.h b/keyboards/barracuda/keymaps/default/config.h
new file mode 100644
index 000000000..810b6546d
--- /dev/null
+++ b/keyboards/barracuda/keymaps/default/config.h
@@ -0,0 +1,20 @@
1/* Copyright 2021 knaruo
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 TAPPING_TERM 175 // milliseconds
20#define IGNORE_MOD_TAP_INTERRUPT
diff --git a/keyboards/barracuda/keymaps/default/keymap.c b/keyboards/barracuda/keymaps/default/keymap.c
new file mode 100644
index 000000000..ebe2e8b4a
--- /dev/null
+++ b/keyboards/barracuda/keymaps/default/keymap.c
@@ -0,0 +1,63 @@
1/* Copyright 2021 knaruo
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 QMK_KEYBOARD_H
18#include "keymap_jp.h"
19
20/* keymap layers */
21enum _layers {
22 _BASE = 0,
23 _NUM,
24 _FN,
25 _RESERVED, // reserved for VIA
26 _END, // end of supported layers
27};
28
29/* Keycode alias */
30#define KC_CTBS RCTL_T(KC_BSPC) // Backspace + Ctrl
31#define KC_XWIN LWIN_T(KC_X)
32#define KC_SPF1 LT(_NUM, KC_SPC) // Space + NUM layer
33#define KC_DLF2 LT(_FN, KC_DEL) // Del + FN key layer
34#define KC_SFEN RSFT_T(KC_ENT) // Enter + Shift
35#define KC_CAD LALT(LCTL(KC_DEL)) // ctrl + alt + delete
36
37const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
38
39 /* Base QWERTY key map */
40 [_BASE] = LAYOUT_ortho_3x11(
41 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, /*_____*/ KC_Y, KC_U, KC_I, KC_O, KC_P,
42 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, /*_____*/ KC_H, KC_J, KC_K, KC_L, KC_CTBS,
43 KC_LSFT, KC_Z, KC_XWIN, KC_C, KC_V, KC_SPF1, /*_____*/ KC_DLF2, KC_B, KC_N, KC_M, KC_SFEN
44 ),
45
46 [_NUM] = LAYOUT_ortho_3x11(
47 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, /*_____*/ KC_6, KC_7, KC_8, KC_9, KC_0,
48 _______, KC_TAB, JP_MINS, JP_CIRC, JP_YEN, JP_AT, /*_____*/ JP_SCLN, JP_COLN, JP_LBRC, JP_RBRC, _______,
49 _______, _______, JP_ZKHK, KC_LALT, JP_COMM, _______, /*_____*/ _______, JP_DOT, JP_SLSH, JP_BSLS, _______
50 ),
51
52 [_FN] = LAYOUT_ortho_3x11(
53 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, /*_____*/ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
54 _______, KC_F11, KC_F12, _______, _______, _______, /*_____*/ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_CAD,
55 _______, _______, _______, _______, _______, _______, /*_____*/ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
56 ),
57
58 [_RESERVED] = LAYOUT_ortho_3x11(
59 _______, _______, _______, _______, _______, _______, /*_____*/ _______, _______, _______, _______, _______,
60 _______, _______, _______, _______, _______, _______, /*_____*/ _______, _______, _______, _______, _______,
61 _______, _______, _______, _______, _______, _______, /*_____*/ _______, _______, _______, _______, _______
62 ),
63};
diff --git a/keyboards/barracuda/keymaps/default/readme.md b/keyboards/barracuda/keymaps/default/readme.md
new file mode 100644
index 000000000..4a55a35e4
--- /dev/null
+++ b/keyboards/barracuda/keymaps/default/readme.md
@@ -0,0 +1 @@
# The default keymap
diff --git a/keyboards/barracuda/keymaps/via/config.h b/keyboards/barracuda/keymaps/via/config.h
new file mode 100644
index 000000000..810b6546d
--- /dev/null
+++ b/keyboards/barracuda/keymaps/via/config.h
@@ -0,0 +1,20 @@
1/* Copyright 2021 knaruo
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 TAPPING_TERM 175 // milliseconds
20#define IGNORE_MOD_TAP_INTERRUPT
diff --git a/keyboards/barracuda/keymaps/via/keymap.c b/keyboards/barracuda/keymaps/via/keymap.c
new file mode 100644
index 000000000..ebe2e8b4a
--- /dev/null
+++ b/keyboards/barracuda/keymaps/via/keymap.c
@@ -0,0 +1,63 @@
1/* Copyright 2021 knaruo
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 QMK_KEYBOARD_H
18#include "keymap_jp.h"
19
20/* keymap layers */
21enum _layers {
22 _BASE = 0,
23 _NUM,
24 _FN,
25 _RESERVED, // reserved for VIA
26 _END, // end of supported layers
27};
28
29/* Keycode alias */
30#define KC_CTBS RCTL_T(KC_BSPC) // Backspace + Ctrl
31#define KC_XWIN LWIN_T(KC_X)
32#define KC_SPF1 LT(_NUM, KC_SPC) // Space + NUM layer
33#define KC_DLF2 LT(_FN, KC_DEL) // Del + FN key layer
34#define KC_SFEN RSFT_T(KC_ENT) // Enter + Shift
35#define KC_CAD LALT(LCTL(KC_DEL)) // ctrl + alt + delete
36
37const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
38
39 /* Base QWERTY key map */
40 [_BASE] = LAYOUT_ortho_3x11(
41 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, /*_____*/ KC_Y, KC_U, KC_I, KC_O, KC_P,
42 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, /*_____*/ KC_H, KC_J, KC_K, KC_L, KC_CTBS,
43 KC_LSFT, KC_Z, KC_XWIN, KC_C, KC_V, KC_SPF1, /*_____*/ KC_DLF2, KC_B, KC_N, KC_M, KC_SFEN
44 ),
45
46 [_NUM] = LAYOUT_ortho_3x11(
47 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, /*_____*/ KC_6, KC_7, KC_8, KC_9, KC_0,
48 _______, KC_TAB, JP_MINS, JP_CIRC, JP_YEN, JP_AT, /*_____*/ JP_SCLN, JP_COLN, JP_LBRC, JP_RBRC, _______,
49 _______, _______, JP_ZKHK, KC_LALT, JP_COMM, _______, /*_____*/ _______, JP_DOT, JP_SLSH, JP_BSLS, _______
50 ),
51
52 [_FN] = LAYOUT_ortho_3x11(
53 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, /*_____*/ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
54 _______, KC_F11, KC_F12, _______, _______, _______, /*_____*/ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_CAD,
55 _______, _______, _______, _______, _______, _______, /*_____*/ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
56 ),
57
58 [_RESERVED] = LAYOUT_ortho_3x11(
59 _______, _______, _______, _______, _______, _______, /*_____*/ _______, _______, _______, _______, _______,
60 _______, _______, _______, _______, _______, _______, /*_____*/ _______, _______, _______, _______, _______,
61 _______, _______, _______, _______, _______, _______, /*_____*/ _______, _______, _______, _______, _______
62 ),
63};
diff --git a/keyboards/barracuda/keymaps/via/readme.md b/keyboards/barracuda/keymaps/via/readme.md
new file mode 100644
index 000000000..5b3ff232e
--- /dev/null
+++ b/keyboards/barracuda/keymaps/via/readme.md
@@ -0,0 +1 @@
# VIA enabled keymap
diff --git a/keyboards/barracuda/keymaps/via/rules.mk b/keyboards/barracuda/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/barracuda/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes
diff --git a/keyboards/barracuda/readme.md b/keyboards/barracuda/readme.md
new file mode 100644
index 000000000..a8020b7a1
--- /dev/null
+++ b/keyboards/barracuda/readme.md
@@ -0,0 +1,24 @@
1# barracuda
2
3![barracuda](https://imgur.com/pTyxOtv.jpg)
4
530% Ortholinear keyboard with low profile switches
6
7* Keyboard Maintainer: [knaruo](https://github.com/knaruo)
8* Hardware Supported: barracuda PCB, ATmega32U2
9* Hardware Availability: [PCB and Plate](https://github.com/knaruo/barracuda)
10
11Getting the board into bootloader mode:
12
13To be able to flash firmware onto this board, you'll need to bring the micro controller into bootloader mode. Press the reset button (RSTSW1) on the bottom side of the PCB to enable the bootloader mode.
14
15
16Make example for this keyboard (after setting up your build environment):
17
18 make barracuda:default
19
20Flashing example for this keyboard:
21
22 make barracuda:default:flash
23
24See 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).
diff --git a/keyboards/barracuda/rules.mk b/keyboards/barracuda/rules.mk
new file mode 100644
index 000000000..7233e7c00
--- /dev/null
+++ b/keyboards/barracuda/rules.mk
@@ -0,0 +1,24 @@
1# MCU name
2MCU = atmega32u2
3
4# Bootloader selection
5BOOTLOADER = atmel-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
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
15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
18NKRO_ENABLE = yes # USB Nkey Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
21BLUETOOTH_ENABLE = no # Enable Bluetooth
22AUDIO_ENABLE = no # Audio output
23
24LAYOUTS = ortho_3x11