aboutsummaryrefslogtreecommitdiff
path: root/keyboards/boston_meetup
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/boston_meetup')
-rw-r--r--keyboards/boston_meetup/2019/2019.c98
-rw-r--r--keyboards/boston_meetup/2019/2019.h19
-rw-r--r--keyboards/boston_meetup/2019/config.h167
-rw-r--r--keyboards/boston_meetup/2019/info.json9
-rw-r--r--keyboards/boston_meetup/2019/keymaps/default/keymap.c147
-rw-r--r--keyboards/boston_meetup/2019/keymaps/default/readme.md51
-rw-r--r--keyboards/boston_meetup/2019/readme.md13
-rw-r--r--keyboards/boston_meetup/2019/rules.mk25
-rw-r--r--keyboards/boston_meetup/boston_meetup.c2
-rw-r--r--keyboards/boston_meetup/boston_meetup.h19
-rw-r--r--keyboards/boston_meetup/config.h59
-rw-r--r--keyboards/boston_meetup/readme.md14
-rw-r--r--keyboards/boston_meetup/rules.mk2
13 files changed, 625 insertions, 0 deletions
diff --git a/keyboards/boston_meetup/2019/2019.c b/keyboards/boston_meetup/2019/2019.c
new file mode 100644
index 000000000..e558048f6
--- /dev/null
+++ b/keyboards/boston_meetup/2019/2019.c
@@ -0,0 +1,98 @@
1/* Copyright 2019 ishtob
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 "2019.h"
17
18#ifdef RGB_MATRIX_ENABLE
19#include "rgb_matrix.h"
20
21led_config_t g_led_config = { {
22 { 5, NO_LED, NO_LED, 0 },
23 { NO_LED, NO_LED, NO_LED, NO_LED },
24 { 4, NO_LED, NO_LED, 1 },
25 { 3, NO_LED, NO_LED, 2 }
26}, {
27 { 188, 16 }, { 187, 48 }, { 149, 64 }, { 112, 64 }, { 37, 48 }, { 38, 16 }
28}, {
29 4, 4, 4, 4, 4, 4
30} };
31#endif
32
33#ifdef OLED_ENABLE
34oled_rotation_t oled_init_kb(oled_rotation_t rotation) { return OLED_ROTATION_180; }
35
36bool oled_task_kb(void) {
37 if (!oled_task_user()) {
38 return false;
39 }
40 oled_write_P(PSTR("BOSTON MK LAYER"), false);
41 oled_advance_char();
42 oled_write_char(get_highest_layer(layer_state) + 0x30, true);
43
44 led_t led_state = host_keyboard_led_state();
45 oled_set_cursor(18, 0);
46 oled_write_P(PSTR("NUM"), led_state.num_lock);
47 oled_set_cursor(18, 1);
48 oled_write_P(PSTR("CAP"), led_state.caps_lock);
49 oled_set_cursor(18, 2);
50 oled_write_P(PSTR("SCR"), led_state.scroll_lock);
51
52 uint8_t mod_state = get_mods();
53 oled_set_cursor(10, 3);
54 oled_write_P(PSTR("S"), mod_state & MOD_MASK_SHIFT);
55 oled_advance_char();
56 oled_write_P(PSTR("C"), mod_state & MOD_MASK_CTRL);
57 oled_advance_char();
58 oled_write_P(PSTR("A"), mod_state & MOD_MASK_ALT);
59 oled_advance_char();
60 oled_write_P(PSTR("G"), mod_state & MOD_MASK_GUI);
61 oled_advance_char();
62
63/* Matrix display is 12 x 12 pixels */
64#define MATRIX_DISPLAY_X 8
65#define MATRIX_DISPLAY_Y 16
66
67 // matrix
68 for (uint8_t x = 0; x < MATRIX_ROWS; x++) {
69 for (uint8_t y = 0; y < MATRIX_COLS; y++) {
70 bool on = (matrix_get_row(x) & (1 << y)) > 0;
71
72 // force on for oled location
73 if((x == 0) && (y >= (MATRIX_COLS - 2))) on = 1;
74
75 oled_write_pixel(MATRIX_DISPLAY_X + y + y + 2, MATRIX_DISPLAY_Y + x + x + 2, on);
76 oled_write_pixel(MATRIX_DISPLAY_X + y + y + 3, MATRIX_DISPLAY_Y + x + x + 2, on);
77 oled_write_pixel(MATRIX_DISPLAY_X + y + y + 2, MATRIX_DISPLAY_Y + x + x + 3, on);
78 oled_write_pixel(MATRIX_DISPLAY_X + y + y + 3, MATRIX_DISPLAY_Y + x + x + 3, on);
79 }
80 }
81
82 // outline
83 for (uint8_t x = 0; x < 12; x++) {
84 oled_write_pixel(MATRIX_DISPLAY_X + x, MATRIX_DISPLAY_Y, true);
85 oled_write_pixel(MATRIX_DISPLAY_X + x, MATRIX_DISPLAY_Y + 12, true);
86 }
87 for (uint8_t y = 0; y < 12; y++) {
88 oled_write_pixel(MATRIX_DISPLAY_X, MATRIX_DISPLAY_Y+y, true);
89 oled_write_pixel(MATRIX_DISPLAY_X + 12, MATRIX_DISPLAY_Y+y, true);
90 }
91
92 // bodge for layer number left hand side
93 for (uint8_t y = 0; y < 8; y++) {
94 oled_write_pixel(95, 0 + y, true);
95 }
96 return false;
97}
98#endif
diff --git a/keyboards/boston_meetup/2019/2019.h b/keyboards/boston_meetup/2019/2019.h
new file mode 100644
index 000000000..fbba5c315
--- /dev/null
+++ b/keyboards/boston_meetup/2019/2019.h
@@ -0,0 +1,19 @@
1/* Copyright 2019 ishtob
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#pragma once
17
18#include "boston_meetup.h"
19
diff --git a/keyboards/boston_meetup/2019/config.h b/keyboards/boston_meetup/2019/config.h
new file mode 100644
index 000000000..80896242e
--- /dev/null
+++ b/keyboards/boston_meetup/2019/config.h
@@ -0,0 +1,167 @@
1#pragma once
2
3/* USB Device descriptor parameter */
4#define DEVICE_VER 0x07E3
5
6#undef MATRIX_ROWS
7#undef MATRIX_COLS
8/* key matrix size */
9#define MATRIX_ROWS 4
10#define MATRIX_COLS 4
11
12/*
13 * Keyboard Matrix Assignments
14 *
15 * Change this to how you wired your keyboard
16 * COLS: AVR pins used for columns, left to right
17 * ROWS: AVR pins used for rows, top to bottom
18 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
19 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
20 *
21*/
22
23#undef MATRIX_ROW_PINS
24#undef MATRIX_COL_PINS
25
26#define MATRIX_ROW_PINS { A3, B8, B9, B1 }
27#define MATRIX_COL_PINS { A7, A8, B2, B10 }
28
29#define ENCODERS_PAD_A { B13 }
30#define ENCODERS_PAD_B { B14 }
31
32//Audio
33#undef AUDIO_VOICES
34#undef AUDIO_PIN
35#define AUDIO_PIN A5
36#define AUDIO_PIN_ALT A4
37#define AUDIO_PIN_ALT_AS_NEGATIVE
38
39#ifdef AUDIO_ENABLE
40 #define STARTUP_SONG SONG(ONE_UP_SOUND)
41 // #define STARTUP_SONG SONG(NO_SOUND)
42
43#define AUDIO_CLICKY
44 /* to enable clicky on startup */
45 //#define AUDIO_CLICKY_ON
46#define AUDIO_CLICKY_FREQ_RANDOMNESS 1.5f
47#endif
48
49// configure oled driver for the 128x32 oled
50#define OLED_UPDATE_INTERVAL 33 // ~30fps
51
52/*
53 * Keyboard Matrix Assignments
54 *
55 * Change this to how you wired your keyboard
56 * COLS: AVR pins used for columns, left to right
57 * ROWS: AVR pins used for rows, top to bottom
58 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
59 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
60 *
61*/
62
63/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
64#define DEBOUNCE 6
65
66/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
67//#define LOCKING_SUPPORT_ENABLE
68/* Locking resynchronize hack */
69//#define LOCKING_RESYNC_ENABLE
70
71/*
72 * Force NKRO
73 *
74 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
75 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
76 * makefile for this to work.)
77 *
78 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
79 * until the next keyboard reset.
80 *
81 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
82 * fully operational during normal computer usage.
83 *
84 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
85 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
86 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
87 * power-up.
88 *
89 */
90//#define FORCE_NKRO
91
92/*
93 * Feature disable options
94 * These options are also useful to firmware size reduction.
95 */
96
97/* disable debug print */
98//#define NO_DEBUG
99
100/* disable print */
101//#define NO_PRINT
102
103/* disable action features */
104//#define NO_ACTION_LAYER
105//#define NO_ACTION_TAPPING
106//#define NO_ACTION_ONESHOT
107//#define NO_ACTION_MACRO
108//#define NO_ACTION_FUNCTION
109
110/* Haptic Driver initialization settings
111 * Feedback Control Settings */
112#define FB_ERM_LRA 1 /* For ERM:0 or LRA:1*/
113#define FB_BRAKEFACTOR 6 /* For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 */
114#define FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */
115
116/* default 3V ERM vibration motor voltage and library*/
117#if FB_ERM_LRA == 0
118#define RATED_VOLTAGE 3
119#define V_RMS 2.3
120#define V_PEAK 3.30
121/* Library Selection */
122#define LIB_SELECTION 4 /* For Empty:0' TS2200 library A to D:1-5, LRA Library: 6 */
123
124/* default 2V LRA voltage and library */
125#elif FB_ERM_LRA == 1
126#define RATED_VOLTAGE 2
127#define V_RMS 2.0
128#define V_PEAK 2.85
129#define F_LRA 200
130/* Library Selection */
131#define LIB_SELECTION 6 /* For Empty:0' TS2200 library A to D:1-5, LRA Library: 6 */
132
133#endif
134
135/* Control 1 register settings */
136#define DRIVE_TIME 25
137#define AC_COUPLE 0
138#define STARTUP_BOOST 1
139
140/* Control 2 Settings */
141#define BIDIR_INPUT 1
142#define BRAKE_STAB 1 /* Loopgain is reduced when braking is almost complete to improve stability */
143#define SAMPLE_TIME 3
144#define BLANKING_TIME 1
145#define IDISS_TIME 1
146
147/* Control 3 settings */
148#define NG_THRESH 2
149#define ERM_OPEN_LOOP 1
150#define SUPPLY_COMP_DIS 0
151#define DATA_FORMAT_RTO 0
152#define LRA_DRIVE_MODE 0
153#define N_PWM_ANALOG 0
154#define LRA_OPEN_LOOP 0
155/* Control 4 settings */
156#define ZC_DET_TIME 0
157#define AUTO_CAL_TIME 3
158
159#define RGBLIGHT_ANIMATIONS
160
161#define RGBLED_NUM 10
162#define RGB_DI_PIN B5
163#define DRIVER_LED_TOTAL RGBLED_NUM
164
165#define RGB_MATRIX_KEYPRESSES
166
167#define SOLENOID_PIN A14
diff --git a/keyboards/boston_meetup/2019/info.json b/keyboards/boston_meetup/2019/info.json
new file mode 100644
index 000000000..53beef5a8
--- /dev/null
+++ b/keyboards/boston_meetup/2019/info.json
@@ -0,0 +1,9 @@
1{
2 "keyboard_name": "Boston Meetup 2019",
3 "url": "",
4 "maintainer": "qmk",
5 "layouts": {
6 "LAYOUT": {
7 "layout": [{"label":"K00", "x":0, "y":0}, {"label":"K10", "x":0, "y":1}, {"label":"K11", "x":1, "y":1}, {"label":"K12", "x":2, "y":1}, {"label":"K13", "x":3, "y":1}, {"label":"K20", "x":0, "y":2}, {"label":"K21", "x":1, "y":2}, {"label":"K22", "x":2, "y":2}, {"label":"K23", "x":3, "y":2}, {"label":"K30", "x":0, "y":3}, {"label":"K31", "x":1, "y":3}, {"label":"K32", "x":2, "y":3}, {"label":"K33", "x":3, "y":3}] }
8 }
9}
diff --git a/keyboards/boston_meetup/2019/keymaps/default/keymap.c b/keyboards/boston_meetup/2019/keymaps/default/keymap.c
new file mode 100644
index 000000000..666624b18
--- /dev/null
+++ b/keyboards/boston_meetup/2019/keymaps/default/keymap.c
@@ -0,0 +1,147 @@
1#include QMK_KEYBOARD_H
2
3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
5// Layer names don't all need to be of the same length, obviously, and you can also skip them
6// entirely and just use numbers.
7
8enum custom_layers {
9 _BASE,
10 _LOWER,
11 _RAISE,
12 _ADJUST
13};
14
15enum custom_keycodes {
16 LOWER = SAFE_RANGE,
17 RAISE,
18};
19
20// Custom macros
21#define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl
22#define CTL_TTAB CTL_T(KC_TAB) // Tap for Esc, hold for Ctrl
23#define CTL_ENT CTL_T(KC_ENT) // Tap for Enter, hold for Ctrl
24#define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift
25// Requires KC_TRNS/_______ for the trigger key in the destination layer
26#define LT_MC(kc) LT(_MOUSECURSOR, kc) // L-ayer T-ap M-ouse C-ursor
27#define LT_RAI(kc) LT(_RAISE, kc) // L-ayer T-ap to Raise
28
29
30const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
31
32/* Base
33 * ,------.
34 * | Esc |
35 * |------+------+-------------.
36 * | : | 7 | 8 | 9 |
37 * |------+------+------+------|
38 * | RAISE| 4 | 5 | 6 |
39 * |------+------+------+------|
40 * | LOWER| 1 | 2 | 3 |
41 * `---------------------------'
42 */
43[_BASE] = LAYOUT(
44 KC_ESC,
45 KC_COLN, KC_P7, KC_P8, KC_P9,
46 RAISE, KC_P4, KC_P5, KC_P6,
47 LOWER, KC_P1, KC_P2, KC_P3
48),
49
50/* Lower
51 * ,------.
52 * | Nmlk |
53 * |------+------+-------------.
54 * | : | / | * | - |
55 * |------+------+------+------|
56 * | | | = | + |
57 * |------+------+------+------|
58 * | | 0 | . | ENT |
59 * `---------------------------'
60 */
61[_LOWER] = LAYOUT(
62 KC_NLCK,
63 KC_COLN, KC_PSLS, KC_PAST, KC_PMNS,
64 _______, XXXXXXX, KC_EQL, KC_PPLS,
65 _______, KC_P0, KC_PDOT, KC_PENT
66),
67
68/* Raise
69 * ,------.
70 * | Esc |
71 * |------+------+-------------.
72 * |RGB TG|RGB M+|RGB M-| |
73 * |------+------+------+------|
74 * | |RGB H+|RGB S+|RGB V+|
75 * |------+------+------+------|
76 * | ` |RGB H-|RGB S-|RGB V-|
77 * `---------------------------'
78 */
79[_RAISE] = LAYOUT(
80 KC_NLCK,
81 RGB_TOG, RGB_MOD, RGB_RMOD, XXXXXXX,
82 _______, RGB_HUI, RGB_SAI, RGB_VAI,
83 _______, RGB_HUD, RGB_SAD, RGB_VAD
84
85),
86
87/* Adjust
88 * ,------.
89 * | DFU |
90 * |------+------+-------------.
91 * |HPT TG|HPT FB|HPT RS| BKSP |
92 * |------+------+------+------|
93 * | |HPT M+| | |
94 * |------+------+------+------|
95 * | |HPT M-|Clk TG| Del |
96 * `---------------------------'
97 */
98[_ADJUST] = LAYOUT(
99 RESET,
100 HPT_TOG, HPT_FBK, HPT_RST, KC_BSPC,
101 _______, HPT_MODI, XXXXXXX, XXXXXXX,
102 _______, HPT_MODD, CK_TOGG, KC_DEL
103),
104
105
106};
107
108layer_state_t layer_state_set_user(layer_state_t state) {
109 return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
110}
111
112
113bool process_record_user(uint16_t keycode, keyrecord_t *record) {
114 switch (keycode) {
115 case LOWER:
116 if (record->event.pressed) {
117 //not sure how to have keyboard check mode and set it to a variable, so my work around
118 //uses another variable that would be set to true after the first time a reactive key is pressed.
119 layer_on(_LOWER);
120 } else {
121 layer_off(_LOWER);
122 }
123 return false;
124 break;
125 case RAISE:
126 if (record->event.pressed) {
127 //not sure how to have keyboard check mode and set it to a variable, so my work around
128 //uses another variable that would be set to true after the first time a reactive key is pressed.
129 layer_on(_RAISE);
130 } else {
131 layer_off(_RAISE);
132 }
133 return false;
134 break;
135 }
136 return true;
137}
138
139bool music_mask_user(uint16_t keycode) {
140 switch (keycode) {
141 case RAISE:
142 case LOWER:
143 return false;
144 default:
145 return true;
146 }
147}
diff --git a/keyboards/boston_meetup/2019/keymaps/default/readme.md b/keyboards/boston_meetup/2019/keymaps/default/readme.md
new file mode 100644
index 000000000..75f80b519
--- /dev/null
+++ b/keyboards/boston_meetup/2019/keymaps/default/readme.md
@@ -0,0 +1,51 @@
1# The Default Boston Meetup 2019 board Layout
2
3Keymap:
4```
5Base
6,------.
7| Esc |
8|------+------+-------------.
9| : | 7 | 8 | 9 |
10|------+------+------+------|
11| RAISE| 4 | 5 | 6 |
12|------+------+------+------|
13| LOWER| 1 | 2 | 3 |
14`---------------------------'
15
16Lower
17,------.
18| Nmlk |
19|------+------+-------------.
20| : | / | * | - |
21|------+------+------+------|
22| | | = | + |
23|------+------+------+------|
24| | 0 | . | ENT |
25`---------------------------'
26
27Raise
28,------.
29| Esc |
30|------+------+-------------.
31|RGB TG|RGB M+|RGB M-| |
32|------+------+------+------|
33| |RGB H+|RGB S+|RGB V+|
34|------+------+------+------|
35| |RGB H-|RGB S-|RGB V-|
36`---------------------------'
37
38Adjust:
39,------.
40| DFU |
41|------+------+-------------.
42|HPT TG|HPT FB|HPT RS| BKSP |
43|------+------+------+------|
44| |HPT M+| | |
45|------+------+------+------|
46| |HPT M-|Clk TG| Del |
47`---------------------------'
48
49```
50
51RGB still work in progress \ No newline at end of file
diff --git a/keyboards/boston_meetup/2019/readme.md b/keyboards/boston_meetup/2019/readme.md
new file mode 100644
index 000000000..2bdac9dcd
--- /dev/null
+++ b/keyboards/boston_meetup/2019/readme.md
@@ -0,0 +1,13 @@
1# Boston Meetup 2019 Macropad
2
3![Boston Meetup 2019](https://i.imgur.com/6LgBc4g.jpg)
4
5Limited-run board designed for Boston MK community meetup 2019.
6
7Keyboard Maintainer: [ishtob](https://github.com/ishtob), [QMK](https://github.com/qmk)
8
9Make example for this keyboard (after setting up your build environment):
10
11 make boston_meetup/2019:default
12
13See 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). \ No newline at end of file
diff --git a/keyboards/boston_meetup/2019/rules.mk b/keyboards/boston_meetup/2019/rules.mk
new file mode 100644
index 000000000..69919a16c
--- /dev/null
+++ b/keyboards/boston_meetup/2019/rules.mk
@@ -0,0 +1,25 @@
1# MCU name
2MCU = STM32F303
3BOARD = QMK_PROTON_C
4
5# Bootloader selection
6BOOTLOADER = stm32-dfu
7
8# Build Options
9# change yes to no to disable
10#
11BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
12MOUSEKEY_ENABLE = yes # Mouse keys
13EXTRAKEY_ENABLE = yes # Audio control and System control
14CONSOLE_ENABLE = no # Console for debug
15COMMAND_ENABLE = no # Commands for debug and configuration
16NKRO_ENABLE = yes # Enable N-Key Rollover
17BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
18AUDIO_ENABLE = yes # Audio output
19RGBLIGHT_ENABLE = no
20RGB_MATRIX_ENABLE = no
21RGB_MATRIX_DRIVER = WS2812
22HAPTIC_ENABLE = yes
23HAPTIC_DRIVER = DRV2605L
24OLED_ENABLE = yes
25OLED_DRIVER = SSD1306
diff --git a/keyboards/boston_meetup/boston_meetup.c b/keyboards/boston_meetup/boston_meetup.c
new file mode 100644
index 000000000..a9201ac85
--- /dev/null
+++ b/keyboards/boston_meetup/boston_meetup.c
@@ -0,0 +1,2 @@
1#include "boston_meetup.h"
2
diff --git a/keyboards/boston_meetup/boston_meetup.h b/keyboards/boston_meetup/boston_meetup.h
new file mode 100644
index 000000000..e1d9d9206
--- /dev/null
+++ b/keyboards/boston_meetup/boston_meetup.h
@@ -0,0 +1,19 @@
1#pragma once
2
3#ifdef KEYBOARD_boston_meetup_2019
4 #include "2019.h"
5#define LAYOUT( \
6 K00, \
7 K10, K11, K12, K13, \
8 K20, K21, K22, K23, \
9 K30, K31, K32, K33 \
10 ) \
11{ \
12 { K00, KC_NO, KC_NO, KC_NO }, \
13 { K10, K11, K12, K13 }, \
14 { K20, K21, K22, K23 }, \
15 { K30, K31, K32, K33 } \
16}
17#endif
18
19#include "quantum.h" \ No newline at end of file
diff --git a/keyboards/boston_meetup/config.h b/keyboards/boston_meetup/config.h
new file mode 100644
index 000000000..013b0b148
--- /dev/null
+++ b/keyboards/boston_meetup/config.h
@@ -0,0 +1,59 @@
1/*
2Copyright 2012 Jun Wako <[email protected]>
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 0xFB30
24#define PRODUCT_ID 0x26BE
25#define MANUFACTURER ishtob
26#define PRODUCT Boston Meetup Board
27
28//#define AUDIO_VOICES
29
30//#define BACKLIGHT_PIN B7
31
32/* COL2ROW or ROW2COL */
33#define DIODE_DIRECTION COL2ROW
34
35/* define if matrix has ghost */
36//#define MATRIX_HAS_GHOST
37
38/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
39//#define LOCKING_SUPPORT_ENABLE
40/* Locking resynchronize hack */
41//#define LOCKING_RESYNC_ENABLE
42
43/*
44 * Feature disable options
45 * These options are also useful to firmware size reduction.
46 */
47
48/* disable debug print */
49//#define NO_DEBUG
50
51/* disable print */
52//#define NO_PRINT
53
54/* disable action features */
55//#define NO_ACTION_LAYER
56//#define NO_ACTION_TAPPING
57//#define NO_ACTION_ONESHOT
58//#define NO_ACTION_MACRO
59//#define NO_ACTION_FUNCTION
diff --git a/keyboards/boston_meetup/readme.md b/keyboards/boston_meetup/readme.md
new file mode 100644
index 000000000..2fa1ec958
--- /dev/null
+++ b/keyboards/boston_meetup/readme.md
@@ -0,0 +1,14 @@
1# Boston Meetup Macropads
2
3![Boston Meetup Macropads](https://i.imgur.com/yQcBF8g.jpg)
4
5Limited-run boards designed for Boston MK community meetups.
6
7Keyboard Maintainer: [ishtob](https://github.com/ishtob), [QMK](https://github.com/qmk)
8Hardware Supported: Boston Meetup PCB 2018, 2019
9
10Make example for this keyboard (after setting up your build environment):
11
12 make boston_meetup/YYYY:default
13
14See 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). \ No newline at end of file
diff --git a/keyboards/boston_meetup/rules.mk b/keyboards/boston_meetup/rules.mk
new file mode 100644
index 000000000..6dd899edc
--- /dev/null
+++ b/keyboards/boston_meetup/rules.mk
@@ -0,0 +1,2 @@
1
2DEFAULT_FOLDER = boston_meetup/2019