···11+/* Copyright 2021 knaruo
22+ *
33+ * This program is free software: you can redistribute it and/or modify
44+ * it under the terms of the GNU General Public License as published by
55+ * the Free Software Foundation, either version 2 of the License, or
66+ * (at your option) any later version.
77+ *
88+ * This program is distributed in the hope that it will be useful,
99+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
1010+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1111+ * GNU General Public License for more details.
1212+ *
1313+ * You should have received a copy of the GNU General Public License
1414+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
1515+ */
1616+1717+#include "barracuda.h"
+41
keyboards/barracuda/barracuda.h
···11+/* Copyright 2021 knaruo
22+ *
33+ * This program is free software: you can redistribute it and/or modify
44+ * it under the terms of the GNU General Public License as published by
55+ * the Free Software Foundation, either version 2 of the License, or
66+ * (at your option) any later version.
77+ *
88+ * This program is distributed in the hope that it will be useful,
99+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
1010+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1111+ * GNU General Public License for more details.
1212+ *
1313+ * You should have received a copy of the GNU General Public License
1414+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
1515+ */
1616+1717+#pragma once
1818+1919+#include "quantum.h"
2020+2121+/* This is a shortcut to help you visually see your layout.
2222+ *
2323+ * The first section contains all of the arguments representing the physical
2424+ * layout of the board and position of the keys.
2525+ *
2626+ * The second converts the arguments into a two-dimensional array which
2727+ * represents the switch matrix.
2828+ */
2929+3030+#define LAYOUT_ortho_3x11( \
3131+ L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, \
3232+ L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, \
3333+ L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24 \
3434+) { \
3535+ { L00, L01, L02, L03, L04, L05 }, \
3636+ { L10, L11, L12, L13, L14, L15 }, \
3737+ { L20, L21, L22, L23, L24, L25 }, \
3838+ { KC_NO, R00, R01, R02, R03, R04 }, \
3939+ { KC_NO, R10, R11, R12, R13, R14 }, \
4040+ { KC_NO, R20, R21, R22, R23, R24 } \
4141+}
+59
keyboards/barracuda/config.h
···11+/* Copyright 2021 knaruo
22+ *
33+ * This program is free software: you can redistribute it and/or modify
44+ * it under the terms of the GNU General Public License as published by
55+ * the Free Software Foundation, either version 2 of the License, or
66+ * (at your option) any later version.
77+ *
88+ * This program is distributed in the hope that it will be useful,
99+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
1010+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1111+ * GNU General Public License for more details.
1212+ *
1313+ * You should have received a copy of the GNU General Public License
1414+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
1515+ */
1616+1717+#pragma once
1818+1919+#include "config_common.h"
2020+2121+/* USB Device descriptor parameter */
2222+#define VENDOR_ID 0x6B6E
2323+#define PRODUCT_ID 0x0001
2424+#define DEVICE_VER 0x0001
2525+#define MANUFACTURER knaruo
2626+#define PRODUCT barracuda
2727+2828+/* key matrix size */
2929+#define MATRIX_ROWS 6
3030+#define MATRIX_COLS 6
3131+3232+/*
3333+ * Keyboard Matrix Assignments
3434+ *
3535+ * Change this to how you wired your keyboard
3636+ * COLS: AVR pins used for columns, left to right
3737+ * ROWS: AVR pins used for rows, top to bottom
3838+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
3939+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
4040+ *
4141+ */
4242+#define MATRIX_ROW_PINS { C4, C5, C6, D1, D2, D3 }
4343+#define MATRIX_COL_PINS { D4, D5, D6, B0, B1, B2 }
4444+#define UNUSED_PINS
4545+4646+/* COL2ROW, ROW2COL */
4747+#define DIODE_DIRECTION COL2ROW
4848+4949+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
5050+#define DEBOUNCE 5
5151+5252+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
5353+#define LOCKING_SUPPORT_ENABLE
5454+/* Locking resynchronize hack */
5555+#define LOCKING_RESYNC_ENABLE
5656+5757+/* disable these deprecated features by default */
5858+#define NO_ACTION_MACRO
5959+#define NO_ACTION_FUNCTION
···11+/* Copyright 2021 knaruo
22+ *
33+ * This program is free software: you can redistribute it and/or modify
44+ * it under the terms of the GNU General Public License as published by
55+ * the Free Software Foundation, either version 2 of the License, or
66+ * (at your option) any later version.
77+ *
88+ * This program is distributed in the hope that it will be useful,
99+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
1010+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1111+ * GNU General Public License for more details.
1212+ *
1313+ * You should have received a copy of the GNU General Public License
1414+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
1515+ */
1616+1717+#pragma once
1818+1919+#define TAPPING_TERM 175 // milliseconds
2020+#define IGNORE_MOD_TAP_INTERRUPT
+63
keyboards/barracuda/keymaps/default/keymap.c
···11+/* Copyright 2021 knaruo
22+ *
33+ * This program is free software: you can redistribute it and/or modify
44+ * it under the terms of the GNU General Public License as published by
55+ * the Free Software Foundation, either version 2 of the License, or
66+ * (at your option) any later version.
77+ *
88+ * This program is distributed in the hope that it will be useful,
99+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
1010+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1111+ * GNU General Public License for more details.
1212+ *
1313+ * You should have received a copy of the GNU General Public License
1414+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
1515+ */
1616+1717+#include QMK_KEYBOARD_H
1818+#include "keymap_jp.h"
1919+2020+/* keymap layers */
2121+enum _layers {
2222+ _BASE = 0,
2323+ _NUM,
2424+ _FN,
2525+ _RESERVED, // reserved for VIA
2626+ _END, // end of supported layers
2727+};
2828+2929+/* Keycode alias */
3030+#define KC_CTBS RCTL_T(KC_BSPC) // Backspace + Ctrl
3131+#define KC_XWIN LWIN_T(KC_X)
3232+#define KC_SPF1 LT(_NUM, KC_SPC) // Space + NUM layer
3333+#define KC_DLF2 LT(_FN, KC_DEL) // Del + FN key layer
3434+#define KC_SFEN RSFT_T(KC_ENT) // Enter + Shift
3535+#define KC_CAD LALT(LCTL(KC_DEL)) // ctrl + alt + delete
3636+3737+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
3838+3939+ /* Base QWERTY key map */
4040+ [_BASE] = LAYOUT_ortho_3x11(
4141+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, /*_____*/ KC_Y, KC_U, KC_I, KC_O, KC_P,
4242+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, /*_____*/ KC_H, KC_J, KC_K, KC_L, KC_CTBS,
4343+ KC_LSFT, KC_Z, KC_XWIN, KC_C, KC_V, KC_SPF1, /*_____*/ KC_DLF2, KC_B, KC_N, KC_M, KC_SFEN
4444+ ),
4545+4646+ [_NUM] = LAYOUT_ortho_3x11(
4747+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, /*_____*/ KC_6, KC_7, KC_8, KC_9, KC_0,
4848+ _______, KC_TAB, JP_MINS, JP_CIRC, JP_YEN, JP_AT, /*_____*/ JP_SCLN, JP_COLN, JP_LBRC, JP_RBRC, _______,
4949+ _______, _______, JP_ZKHK, KC_LALT, JP_COMM, _______, /*_____*/ _______, JP_DOT, JP_SLSH, JP_BSLS, _______
5050+ ),
5151+5252+ [_FN] = LAYOUT_ortho_3x11(
5353+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, /*_____*/ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
5454+ _______, KC_F11, KC_F12, _______, _______, _______, /*_____*/ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_CAD,
5555+ _______, _______, _______, _______, _______, _______, /*_____*/ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
5656+ ),
5757+5858+ [_RESERVED] = LAYOUT_ortho_3x11(
5959+ _______, _______, _______, _______, _______, _______, /*_____*/ _______, _______, _______, _______, _______,
6060+ _______, _______, _______, _______, _______, _______, /*_____*/ _______, _______, _______, _______, _______,
6161+ _______, _______, _______, _______, _______, _______, /*_____*/ _______, _______, _______, _______, _______
6262+ ),
6363+};
···11+/* Copyright 2021 knaruo
22+ *
33+ * This program is free software: you can redistribute it and/or modify
44+ * it under the terms of the GNU General Public License as published by
55+ * the Free Software Foundation, either version 2 of the License, or
66+ * (at your option) any later version.
77+ *
88+ * This program is distributed in the hope that it will be useful,
99+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
1010+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1111+ * GNU General Public License for more details.
1212+ *
1313+ * You should have received a copy of the GNU General Public License
1414+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
1515+ */
1616+1717+#pragma once
1818+1919+#define TAPPING_TERM 175 // milliseconds
2020+#define IGNORE_MOD_TAP_INTERRUPT
+63
keyboards/barracuda/keymaps/via/keymap.c
···11+/* Copyright 2021 knaruo
22+ *
33+ * This program is free software: you can redistribute it and/or modify
44+ * it under the terms of the GNU General Public License as published by
55+ * the Free Software Foundation, either version 2 of the License, or
66+ * (at your option) any later version.
77+ *
88+ * This program is distributed in the hope that it will be useful,
99+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
1010+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1111+ * GNU General Public License for more details.
1212+ *
1313+ * You should have received a copy of the GNU General Public License
1414+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
1515+ */
1616+1717+#include QMK_KEYBOARD_H
1818+#include "keymap_jp.h"
1919+2020+/* keymap layers */
2121+enum _layers {
2222+ _BASE = 0,
2323+ _NUM,
2424+ _FN,
2525+ _RESERVED, // reserved for VIA
2626+ _END, // end of supported layers
2727+};
2828+2929+/* Keycode alias */
3030+#define KC_CTBS RCTL_T(KC_BSPC) // Backspace + Ctrl
3131+#define KC_XWIN LWIN_T(KC_X)
3232+#define KC_SPF1 LT(_NUM, KC_SPC) // Space + NUM layer
3333+#define KC_DLF2 LT(_FN, KC_DEL) // Del + FN key layer
3434+#define KC_SFEN RSFT_T(KC_ENT) // Enter + Shift
3535+#define KC_CAD LALT(LCTL(KC_DEL)) // ctrl + alt + delete
3636+3737+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
3838+3939+ /* Base QWERTY key map */
4040+ [_BASE] = LAYOUT_ortho_3x11(
4141+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, /*_____*/ KC_Y, KC_U, KC_I, KC_O, KC_P,
4242+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, /*_____*/ KC_H, KC_J, KC_K, KC_L, KC_CTBS,
4343+ KC_LSFT, KC_Z, KC_XWIN, KC_C, KC_V, KC_SPF1, /*_____*/ KC_DLF2, KC_B, KC_N, KC_M, KC_SFEN
4444+ ),
4545+4646+ [_NUM] = LAYOUT_ortho_3x11(
4747+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, /*_____*/ KC_6, KC_7, KC_8, KC_9, KC_0,
4848+ _______, KC_TAB, JP_MINS, JP_CIRC, JP_YEN, JP_AT, /*_____*/ JP_SCLN, JP_COLN, JP_LBRC, JP_RBRC, _______,
4949+ _______, _______, JP_ZKHK, KC_LALT, JP_COMM, _______, /*_____*/ _______, JP_DOT, JP_SLSH, JP_BSLS, _______
5050+ ),
5151+5252+ [_FN] = LAYOUT_ortho_3x11(
5353+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, /*_____*/ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
5454+ _______, KC_F11, KC_F12, _______, _______, _______, /*_____*/ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_CAD,
5555+ _______, _______, _______, _______, _______, _______, /*_____*/ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
5656+ ),
5757+5858+ [_RESERVED] = LAYOUT_ortho_3x11(
5959+ _______, _______, _______, _______, _______, _______, /*_____*/ _______, _______, _______, _______, _______,
6060+ _______, _______, _______, _______, _______, _______, /*_____*/ _______, _______, _______, _______, _______,
6161+ _______, _______, _______, _______, _______, _______, /*_____*/ _______, _______, _______, _______, _______
6262+ ),
6363+};
···11+# barracuda
22+33+
44+55+30% Ortholinear keyboard with low profile switches
66+77+* Keyboard Maintainer: [knaruo](https://github.com/knaruo)
88+* Hardware Supported: barracuda PCB, ATmega32U2
99+* Hardware Availability: [PCB and Plate](https://github.com/knaruo/barracuda)
1010+1111+Getting the board into bootloader mode:
1212+1313+To 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.
1414+1515+1616+Make example for this keyboard (after setting up your build environment):
1717+1818+ make barracuda:default
1919+2020+Flashing example for this keyboard:
2121+2222+ make barracuda:default:flash
2323+2424+See 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).
+24
keyboards/barracuda/rules.mk
···11+# MCU name
22+MCU = atmega32u2
33+44+# Bootloader selection
55+BOOTLOADER = atmel-dfu
66+77+# Build Options
88+# change yes to no to disable
99+#
1010+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
1111+MOUSEKEY_ENABLE = yes # Mouse keys
1212+EXTRAKEY_ENABLE = yes # Audio control and System control
1313+CONSOLE_ENABLE = no # Console for debug
1414+COMMAND_ENABLE = no # Commands for debug and configuration
1515+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
1616+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
1717+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
1818+NKRO_ENABLE = yes # USB Nkey Rollover
1919+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
2020+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
2121+BLUETOOTH_ENABLE = no # Enable Bluetooth
2222+AUDIO_ENABLE = no # Audio output
2323+2424+LAYOUTS = ortho_3x11