aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWill McGloughlin <3410869+wymcg@users.noreply.github.com>2021-12-14 21:52:10 -0500
committerGitHub <noreply@github.com>2021-12-14 18:52:10 -0800
commit605de079583db1f1106ebfd239b948170d929a58 (patch)
tree2bb14939d0ad36ffe93c1b93a8b9076ba5061795
parente9731c19c70c8411b99775bf12303a1b2baf585c (diff)
downloadqmk_firmware-605de079583db1f1106ebfd239b948170d929a58.tar.gz
qmk_firmware-605de079583db1f1106ebfd239b948170d929a58.zip
[Keyboard] Add pluto12 (#15369)
Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: Ryan <fauxpark@gmail.com>
-rw-r--r--keyboards/psuieee/pluto12/config.h138
-rw-r--r--keyboards/psuieee/pluto12/info.json23
-rw-r--r--keyboards/psuieee/pluto12/keymaps/default/keymap.c23
-rw-r--r--keyboards/psuieee/pluto12/keymaps/default/readme.md1
-rw-r--r--keyboards/psuieee/pluto12/pluto12.c4
-rw-r--r--keyboards/psuieee/pluto12/pluto12.h24
-rw-r--r--keyboards/psuieee/pluto12/readme.md27
-rw-r--r--keyboards/psuieee/pluto12/rules.mk18
8 files changed, 258 insertions, 0 deletions
diff --git a/keyboards/psuieee/pluto12/config.h b/keyboards/psuieee/pluto12/config.h
new file mode 100644
index 000000000..60d3f0a50
--- /dev/null
+++ b/keyboards/psuieee/pluto12/config.h
@@ -0,0 +1,138 @@
1// Copyright 2021 Willem McGloughlin (wymcg)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#pragma once
5
6#include "config_common.h"
7
8/* USB Device descriptor parameter */
9#define VENDOR_ID 0x4747
10#define PRODUCT_ID 0x7012
11#define DEVICE_VER 0x0001
12#define MANUFACTURER psuieee
13#define PRODUCT pluto12
14
15/* key matrix size */
16#define MATRIX_ROWS 3
17#define MATRIX_COLS 4
18
19/*
20 * Keyboard Matrix Assignments
21 *
22 * Change this to how you wired your keyboard
23 * COLS: AVR pins used for columns, left to right
24 * ROWS: AVR pins used for rows, top to bottom
25 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
26 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
27 *
28 */
29#define MATRIX_ROW_PINS { D0, D4, C6 }
30#define MATRIX_COL_PINS { D7, E6, B4, B5 }
31#define UNUSED_PINS
32
33/* COL2ROW, ROW2COL */
34#define DIODE_DIRECTION COL2ROW
35
36/*
37 * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
38 */
39//#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
40
41//#define LED_NUM_LOCK_PIN B0
42//#define LED_CAPS_LOCK_PIN B1
43//#define LED_SCROLL_LOCK_PIN B2
44//#define LED_COMPOSE_PIN B3
45//#define LED_KANA_PIN B4
46
47//#define BACKLIGHT_PIN B7
48//#define BACKLIGHT_LEVELS 3
49//#define BACKLIGHT_BREATHING
50
51//#define RGB_DI_PIN E2
52//#ifdef RGB_DI_PIN
53//# define RGBLED_NUM 16
54//# define RGBLIGHT_HUE_STEP 8
55//# define RGBLIGHT_SAT_STEP 8
56//# define RGBLIGHT_VAL_STEP 8
57//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
58//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
59/*== all animations enable ==*/
60//# define RGBLIGHT_ANIMATIONS
61/*== or choose animations ==*/
62//# define RGBLIGHT_EFFECT_BREATHING
63//# define RGBLIGHT_EFFECT_RAINBOW_MOOD
64//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
65//# define RGBLIGHT_EFFECT_SNAKE
66//# define RGBLIGHT_EFFECT_KNIGHT
67//# define RGBLIGHT_EFFECT_CHRISTMAS
68//# define RGBLIGHT_EFFECT_STATIC_GRADIENT
69//# define RGBLIGHT_EFFECT_RGB_TEST
70//# define RGBLIGHT_EFFECT_ALTERNATING
71/*== customize breathing effect ==*/
72/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
73//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
74/*==== use exp() and sin() ====*/
75//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
76//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
77//#endif
78
79/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
80#define DEBOUNCE 5
81
82/* define if matrix has ghost (lacks anti-ghosting diodes) */
83//#define MATRIX_HAS_GHOST
84
85/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
86#define LOCKING_SUPPORT_ENABLE
87/* Locking resynchronize hack */
88#define LOCKING_RESYNC_ENABLE
89
90/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
91 * This is useful for the Windows task manager shortcut (ctrl+shift+esc).
92 */
93//#define GRAVE_ESC_CTRL_OVERRIDE
94
95/*
96 * Force NKRO
97 *
98 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
99 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
100 * makefile for this to work.)
101 *
102 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
103 * until the next keyboard reset.
104 *
105 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
106 * fully operational during normal computer usage.
107 *
108 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
109 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
110 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
111 * power-up.
112 *
113 */
114//#define FORCE_NKRO
115
116/*
117 * Feature disable options
118 * These options are also useful to firmware size reduction.
119 */
120
121/* disable debug print */
122//#define NO_DEBUG
123
124/* disable print */
125//#define NO_PRINT
126
127/* disable action features */
128//#define NO_ACTION_LAYER
129//#define NO_ACTION_TAPPING
130//#define NO_ACTION_ONESHOT
131
132/* disable these deprecated features by default */
133#define NO_ACTION_MACRO
134#define NO_ACTION_FUNCTION
135
136/* Bootmagic Lite key configuration */
137//#define BOOTMAGIC_LITE_ROW 0
138//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/psuieee/pluto12/info.json b/keyboards/psuieee/pluto12/info.json
new file mode 100644
index 000000000..a48b687fb
--- /dev/null
+++ b/keyboards/psuieee/pluto12/info.json
@@ -0,0 +1,23 @@
1{
2 "keyboard_name": "pluto12",
3 "url": "https://github.com/psuieee/pluto12",
4 "maintainer": "wymcg",
5 "layouts": {
6 "LAYOUT": {
7 "layout": [
8 { "label": "M1", "x": 0, "y": 0 },
9 { "label": "M2", "x": 1, "y": 0 },
10 { "label": "M3", "x": 2, "y": 0 },
11 { "label": "M4", "x": 3, "y": 0 },
12 { "label": "M5", "x": 0, "y": 1 },
13 { "label": "M6", "x": 1, "y": 1 },
14 { "label": "M7", "x": 2, "y": 1 },
15 { "label": "M8", "x": 3, "y": 1 },
16 { "label": "M9", "x": 0, "y": 2 },
17 { "label": "M10", "x": 1, "y": 2 },
18 { "label": "M11", "x": 2, "y": 2 },
19 { "label": "M12", "x": 3, "y": 2 }
20 ]
21 }
22 }
23}
diff --git a/keyboards/psuieee/pluto12/keymaps/default/keymap.c b/keyboards/psuieee/pluto12/keymaps/default/keymap.c
new file mode 100644
index 000000000..1c09c4fc8
--- /dev/null
+++ b/keyboards/psuieee/pluto12/keymaps/default/keymap.c
@@ -0,0 +1,23 @@
1// Copyright 2021 Will McGLoughlin (wymcg)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#include QMK_KEYBOARD_H
5
6// Defines names for use in layer keycodes and the keymap
7enum layer_names {
8 _BASE,
9 _FN
10};
11
12const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
13 [_BASE] = LAYOUT(
14 KC_PGUP, KC_MUTE, KC_VOLD, KC_VOLU,
15 KC_PGDN, KC_MPLY, KC_MPRV, KC_MNXT,
16 KC_NO, KC_HOME, KC_END, OSL(_FN)
17 ),
18 [_FN] = LAYOUT(
19 KC_F1, KC_F2, KC_F3, KC_F4,
20 KC_F5, KC_F6, KC_F7, KC_F8,
21 KC_F9, KC_F10, KC_F11, KC_F12
22 )
23};
diff --git a/keyboards/psuieee/pluto12/keymaps/default/readme.md b/keyboards/psuieee/pluto12/keymaps/default/readme.md
new file mode 100644
index 000000000..8416c0fe6
--- /dev/null
+++ b/keyboards/psuieee/pluto12/keymaps/default/readme.md
@@ -0,0 +1 @@
# The default keymap for pluto12
diff --git a/keyboards/psuieee/pluto12/pluto12.c b/keyboards/psuieee/pluto12/pluto12.c
new file mode 100644
index 000000000..c08911493
--- /dev/null
+++ b/keyboards/psuieee/pluto12/pluto12.c
@@ -0,0 +1,4 @@
1// Copyright 2021 Will McGloughlin (@wymcg)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#include "pluto12.h"
diff --git a/keyboards/psuieee/pluto12/pluto12.h b/keyboards/psuieee/pluto12/pluto12.h
new file mode 100644
index 000000000..7a01de10f
--- /dev/null
+++ b/keyboards/psuieee/pluto12/pluto12.h
@@ -0,0 +1,24 @@
1// Copyright 2021 Will McGloughlin (@wymcg)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#pragma once
5
6#include "quantum.h"
7
8/* This is a shortcut to help you visually see your layout.
9 *
10 * The first section contains all of the arguments representing the physical
11 * layout of the board and position of the keys.
12 *
13 * The second converts the arguments into a two-dimensional array which
14 * represents the switch matrix.
15 */
16#define LAYOUT( \
17 K00, K01, K02, K03, \
18 K10, K11, K12, K13, \
19 K20, K21, K22, K23 \
20) { \
21 {K00, K01, K02, K03}, \
22 {K10, K11, K12, K13}, \
23 {K20, K21, K22, K23} \
24}
diff --git a/keyboards/psuieee/pluto12/readme.md b/keyboards/psuieee/pluto12/readme.md
new file mode 100644
index 000000000..bfdafb3b2
--- /dev/null
+++ b/keyboards/psuieee/pluto12/readme.md
@@ -0,0 +1,27 @@
1# pluto12
2
3![pluto12](https://i.imgur.com/XYtwexoh.jpg)
4
5The pluto12 is a 4x3 macropad designed for use in the Penn State IEEE Student Chapter's [2021-22 workshop series](https://github.com/psuieee/projects2021). Designed by the 2021-22 Penn State IEEE Projects Committee.
6
7* Keyboard Maintainer: [Will McGloughlin](https://github.com/wymcg)
8* Hardware Supported: Pro Micro and derivatives
9* Hardware Availability: [PCB and case files](https://github.com/psuieee/pluto12)
10
11Make example for this keyboard (after setting up your build environment):
12
13 make psuieee/pluto12:default
14
15Flashing example for this keyboard:
16
17 make psuieee/pluto12:default:flash
18
19See 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).
20
21## Bootloader
22
23Enter the bootloader in 3 ways:
24
25* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
26* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead.
27* **Keycode in layout**: Press the key mapped to `RESET` if it is available
diff --git a/keyboards/psuieee/pluto12/rules.mk b/keyboards/psuieee/pluto12/rules.mk
new file mode 100644
index 000000000..515ca5621
--- /dev/null
+++ b/keyboards/psuieee/pluto12/rules.mk
@@ -0,0 +1,18 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = caterina
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 = no # Enable N-Key Rollover
16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
17RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
18AUDIO_ENABLE = no # Audio output