aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/underscore33/config.h42
-rw-r--r--keyboards/underscore33/info.json16
-rw-r--r--keyboards/underscore33/keymaps/default/keymap.c44
-rw-r--r--keyboards/underscore33/keymaps/default/readme.md5
-rw-r--r--keyboards/underscore33/readme.md15
-rw-r--r--keyboards/underscore33/rules.mk25
-rw-r--r--keyboards/underscore33/underscore33.c1
-rw-r--r--keyboards/underscore33/underscore33.h31
8 files changed, 179 insertions, 0 deletions
diff --git a/keyboards/underscore33/config.h b/keyboards/underscore33/config.h
new file mode 100644
index 000000000..5733f30d0
--- /dev/null
+++ b/keyboards/underscore33/config.h
@@ -0,0 +1,42 @@
1#pragma once
2
3#include "config_common.h"
4
5/* USB Device descriptor parameter */
6#define VENDOR_ID 0xFEED
7#define PRODUCT_ID 0x6A50
8#define DEVICE_VER 0x0001
9#define MANUFACTURER tominabox1
10#define PRODUCT underscore33
11
12/* key matrix size */
13#define MATRIX_ROWS 4
14#define MATRIX_COLS 10
15
16/*
17 * Keyboard Matrix Assignments
18 *
19 * Change this to how you wired your keyboard
20 * COLS: AVR pins used for columns, left to right
21 * ROWS: AVR pins used for rows, top to bottom
22 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
23 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
24 *
25 */
26#define MATRIX_ROW_PINS { F5, F6, C6, D0 }
27#define MATRIX_COL_PINS { B4, B5, D5, F7, B1, F4, B3, D7, B0, B2 }
28#define UNUSED_PINS
29
30/* COL2ROW, ROW2COL*/
31#define DIODE_DIRECTION ROW2COL
32
33/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
34#define DEBOUNCE 5
35
36/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
37#define LOCKING_SUPPORT_ENABLE
38/* Locking resynchronize hack */
39#define LOCKING_RESYNC_ENABLE
40
41/* #define RGB_DI_PIN B6
42 #define RGBLED_NUM 1 */
diff --git a/keyboards/underscore33/info.json b/keyboards/underscore33/info.json
new file mode 100644
index 000000000..4e97a6380
--- /dev/null
+++ b/keyboards/underscore33/info.json
@@ -0,0 +1,16 @@
1{
2 "keyboard_name": "underscore33",
3 "url": "",
4 "maintainer": "tominabox1",
5 "width": 10,
6 "height": 4,
7 "layouts": {
8 "LAYOUT_33_big_space": {
9 "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Y", "x":5, "y":0}, {"label":"U", "x":6, "y":0}, {"label":"I", "x":7, "y":0}, {"label":"O", "x":8, "y":0}, {"label":"P", "x":9, "y":0},{"label":"A", "x":0, "y":1}, {"label":"S", "x":1, "y":1}, {"label":"D", "x":2, "y":1}, {"label":"F", "x":3, "y":1}, {"label":"G", "x":4, "y":1}, {"label":"H", "x":5, "y":1}, {"label":"J", "x":6, "y":1}, {"label":"K", "x":7, "y":1}, {"label":"L", "x":8, "y":1}, {"label":";", "x":9, "y":1}, {"label":"Z", "x":0, "y":2}, {"label":"X", "x":1, "y":2}, {"label":"C", "x":2, "y":2}, {"label":"V", "x":3, "y":2}, {"label":"B", "x":4, "y":2}, {"label":"N", "x":5, "y":2}, {"label":"M", "x":6, "y":2}, {"label":"<", "x":7, "y":2}, {"label":">", "x":8, "y":2}, {"label":"?", "x":9, "y":2}, {"label":"", "x":0.65, "y":3, "w":1.25}, {"label":"", "x":1.9, "y":3, "w":6.25}, {"label":"", "x":8.15, "y":3, "w":1.25}]
10 },
11
12 "LAYOUT_33_split_space": {
13 "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Y", "x":5, "y":0}, {"label":"U", "x":6, "y":0}, {"label":"I", "x":7, "y":0}, {"label":"O", "x":8, "y":0}, {"label":"P", "x":9, "y":0},{"label":"A", "x":0, "y":1}, {"label":"S", "x":1, "y":1}, {"label":"D", "x":2, "y":1}, {"label":"F", "x":3, "y":1}, {"label":"G", "x":4, "y":1}, {"label":"H", "x":5, "y":1}, {"label":"J", "x":6, "y":1}, {"label":"K", "x":7, "y":1}, {"label":"L", "x":8, "y":1}, {"label":";", "x":9, "y":1}, {"label":"Z", "x":0, "y":2}, {"label":"X", "x":1, "y":2}, {"label":"C", "x":2, "y":2}, {"label":"V", "x":3, "y":2}, {"label":"B", "x":4, "y":2}, {"label":"N", "x":5, "y":2}, {"label":"M", "x":6, "y":2}, {"label":"<", "x":7, "y":2}, {"label":">", "x":8, "y":2}, {"label":"?", "x":9, "y":2}, {"label":"", "x":0.65, "y":3, "w":1.25}, {"label":"", "x":1.9, "y":3, "w":2.25}, {"label":"", "x":4.15, "y":3, "w":1.75}, {"label":"", "x":5.9, "y":3, "w":2.25}, {"label":"", "x":8.15, "y":3, "w":1.25}]
14 }
15 }
16}
diff --git a/keyboards/underscore33/keymaps/default/keymap.c b/keyboards/underscore33/keymaps/default/keymap.c
new file mode 100644
index 000000000..8fab8623a
--- /dev/null
+++ b/keyboards/underscore33/keymaps/default/keymap.c
@@ -0,0 +1,44 @@
1#include QMK_KEYBOARD_H
2
3enum layers{
4 _BASE,
5 _NUM_SYM,
6 _NAV
7};
8
9enum custom_keycodes{
10 RGBRST = SAFE_RANGE,
11};
12
13#define KC_NUM_SPC LT(_NUM_SYM, KC_SPC)
14#define KC_GA LGUI_T(KC_A)
15#define KC_AS LALT_T(KC_S)
16#define KC_CD LCTL_T(KC_D)
17#define KC_SF LSFT_T(KC_F)
18#define KC_SJ RSFT_T(KC_J)
19#define KC_CK RCTL_T(KC_K)
20#define KC_AL RALT_T(KC_L)
21#define KC_GSCLN RGUI_T(KC_SCLN)
22
23const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
24 [_BASE] = LAYOUT_33_split_space(
25 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
26 KC_GA, KC_AS, KC_CD, KC_SF, KC_G, KC_H, KC_SJ, KC_CK, KC_AL, KC_GSCLN,
27 KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
28 KC_LCTL, KC_LALT, KC_NUM_SPC, MO(_NAV), KC_RGUI
29 ),
30
31 [_NUM_SYM] = LAYOUT_33_split_space(
32 KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
33 KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS,
34 KC_BSLS, KC_LCBR, KC_LBRC, KC_LPRN, KC_UNDS, KC_RPRN, KC_RBRC, KC_RCBR, KC_DOT, KC_GRV,
35 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
36 ),
37
38 [_NAV] = LAYOUT_33_split_space(
39 RESET, RGBRST, AG_NORM, AG_SWAP, DEBUG, KC_GRV, KC_PGDN, KC_UP, KC_PGUP, KC_SCLN,
40 RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END,
41 RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_NO, KC_MINS, KC_RO, KC_COMM, KC_DOT, KC_BSLS,
42 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
43 ),
44};
diff --git a/keyboards/underscore33/keymaps/default/readme.md b/keyboards/underscore33/keymaps/default/readme.md
new file mode 100644
index 000000000..7ef72915e
--- /dev/null
+++ b/keyboards/underscore33/keymaps/default/readme.md
@@ -0,0 +1,5 @@
1![_33 layout Image](https://i.imgur.com/1vxmk0F.png)
2
3# Default _33 Layout
4
5This is the recommended default layout. It is not a fully functional layout without backspace, tab, esc and so on. It is recommended to use combos to access the additional modifiers when using the large spacebar layout option, however combos are not enabled in the default firmware.
diff --git a/keyboards/underscore33/readme.md b/keyboards/underscore33/readme.md
new file mode 100644
index 000000000..153329d84
--- /dev/null
+++ b/keyboards/underscore33/readme.md
@@ -0,0 +1,15 @@
1# underscore33 (stylized as "_33")
2
3![_33](https://i.imgur.com/0Wuf8aT.png)
4
5A little bitty 30% (10x4) ortholinear keyboard designed by tominabox1. The board supports an RGB LED strip with DI on port B6. There is an error on the initial 25 PCBs that incorrectly indicates PF0 for the RGB. The appropriate port is commented out in config.h for proper LED support.
6
7* Keyboard Maintainer: [TJ Campie](https://github.com/tominabox1)
8* Hardware Supported: _33 PCB and Plate limited buy (Open source available ca. Apirl 2020)
9* Hardware Availability: [3D printed open sourced](https://github.com/tominabox1/_33-Keyboard)
10
11Make example for this keyboard (after setting up your build environment):
12
13 make underscore33:default
14
15See 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/underscore33/rules.mk b/keyboards/underscore33/rules.mk
new file mode 100644
index 000000000..a5c12fdad
--- /dev/null
+++ b/keyboards/underscore33/rules.mk
@@ -0,0 +1,25 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5# Teensy halfkay
6# Pro Micro caterina
7# Atmel DFU atmel-dfu
8# LUFA DFU lufa-dfu
9# QMK DFU qmk-dfu
10# ATmega32A bootloadHID
11# ATmega328P USBasp
12BOOTLOADER = atmel-dfu
13
14BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
15MOUSEKEY_ENABLE = yes # Mouse keys
16EXTRAKEY_ENABLE = yes # Audio control and System control
17CONSOLE_ENABLE = no # Console for debug
18COMMAND_ENABLE = no # Commands for debug and configuration
19# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
20SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
21# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
22NKRO_ENABLE = yes # USB Nkey Rollover
23BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
24RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
25TAP_DANCE_ENABLE = no
diff --git a/keyboards/underscore33/underscore33.c b/keyboards/underscore33/underscore33.c
new file mode 100644
index 000000000..9d690be9a
--- /dev/null
+++ b/keyboards/underscore33/underscore33.c
@@ -0,0 +1 @@
#include "underscore33.h"
diff --git a/keyboards/underscore33/underscore33.h b/keyboards/underscore33/underscore33.h
new file mode 100644
index 000000000..5c774cfa8
--- /dev/null
+++ b/keyboards/underscore33/underscore33.h
@@ -0,0 +1,31 @@
1#pragma once
2
3#include "quantum.h"
4
5#define XXX KC_NO
6
7#define LAYOUT_33_big_space( \
8 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \
9 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \
10 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \
11 K31, K34, K38 \
12) \
13{ \
14 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09 }, \
15 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19 }, \
16 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29 }, \
17 { XXX, K31, XXX, XXX, K34, XXX, XXX, XXX, K38, XXX } \
18}
19
20#define LAYOUT_33_split_space( \
21 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \
22 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \
23 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \
24 K31, K32, K34, K36, K38 \
25) \
26{ \
27 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09 }, \
28 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19 }, \
29 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29 }, \
30 { XXX, K31, K32, XXX, K34, XXX, K36, XXX, K38, XXX } \
31}