aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorphrygiandesign <77276236+phrygiandesign@users.noreply.github.com>2021-09-24 17:25:33 +1000
committerGitHub <noreply@github.com>2021-09-24 00:25:33 -0700
commitc6f92e37aad673e9f6bc7694d5f8829bbb8b87de (patch)
treecbb74a491344a41a14d67a4395f385ddc7416935
parentc242693ec7c1f99b51026fc6870de6d949054713 (diff)
downloadqmk_firmware-c6f92e37aad673e9f6bc7694d5f8829bbb8b87de.tar.gz
qmk_firmware-c6f92e37aad673e9f6bc7694d5f8829bbb8b87de.zip
[Keyboard] Add phrygian design ph100 (#13738)
Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: Ryan <fauxpark@gmail.com>
-rw-r--r--keyboards/phrygian/ph100/chconf.h61
-rw-r--r--keyboards/phrygian/ph100/config.h43
-rw-r--r--keyboards/phrygian/ph100/halconf.h37
-rw-r--r--keyboards/phrygian/ph100/info.json111
-rw-r--r--keyboards/phrygian/ph100/keymaps/default/keymap.c27
-rw-r--r--keyboards/phrygian/ph100/ph100.c19
-rw-r--r--keyboards/phrygian/ph100/ph100.h44
-rw-r--r--keyboards/phrygian/ph100/readme.md20
-rw-r--r--keyboards/phrygian/ph100/rules.mk25
9 files changed, 387 insertions, 0 deletions
diff --git a/keyboards/phrygian/ph100/chconf.h b/keyboards/phrygian/ph100/chconf.h
new file mode 100644
index 000000000..1c9cc3236
--- /dev/null
+++ b/keyboards/phrygian/ph100/chconf.h
@@ -0,0 +1,61 @@
1/* Copyright 2020 QMK
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/*
18 * This file was auto-generated by:
19 * `qmk chibios-confmigrate -i keyboards/phrygian/ph100/chconf.h -r platforms/chibios/common/configs/chconf.h`
20 */
21
22#pragma once
23
24#define CH_CFG_ST_FREQUENCY 10000
25
26#define CH_CFG_USE_REGISTRY TRUE
27
28#define CH_CFG_USE_WAITEXIT TRUE
29
30#define CH_CFG_USE_CONDVARS TRUE
31
32#define CH_CFG_USE_MESSAGES TRUE
33
34#define CH_CFG_USE_MAILBOXES TRUE
35
36#define CH_CFG_USE_HEAP TRUE
37
38#define CH_CFG_USE_MEMPOOLS TRUE
39
40#define CH_CFG_USE_OBJ_FIFOS TRUE
41
42#define CH_CFG_USE_PIPES TRUE
43
44#define CH_CFG_USE_DYNAMIC TRUE
45
46#define CH_CFG_USE_FACTORY TRUE
47
48#define CH_CFG_FACTORY_OBJECTS_REGISTRY TRUE
49
50#define CH_CFG_FACTORY_GENERIC_BUFFERS TRUE
51
52#define CH_CFG_FACTORY_SEMAPHORES TRUE
53
54#define CH_CFG_FACTORY_MAILBOXES TRUE
55
56#define CH_CFG_FACTORY_OBJ_FIFOS TRUE
57
58#define CH_CFG_FACTORY_PIPES TRUE
59
60#include_next <chconf.h>
61
diff --git a/keyboards/phrygian/ph100/config.h b/keyboards/phrygian/ph100/config.h
new file mode 100644
index 000000000..68bd43073
--- /dev/null
+++ b/keyboards/phrygian/ph100/config.h
@@ -0,0 +1,43 @@
1/* Copyright 2021 Phrygian Design
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 0xFEED
23#define PRODUCT_ID 0x0C61
24#define DEVICE_VER 0x0100
25#define MANUFACTURER PhrygianDesign
26#define PRODUCT ph100
27
28/* key matrix size */
29#define MATRIX_ROWS 10
30#define MATRIX_COLS 10
31
32#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4, B5, B6, B7, B8, B9 }
33#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, A6, A7, A8, A9 }
34
35/* COL2ROW, ROW2COL */
36#define DIODE_DIRECTION COL2ROW
37
38/* Define capslock and numlock */
39#define LED_NUM_LOCK_PIN B14
40#define LED_CAPS_LOCK_PIN B15
41
42/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
43#define DEBOUNCE 10
diff --git a/keyboards/phrygian/ph100/halconf.h b/keyboards/phrygian/ph100/halconf.h
new file mode 100644
index 000000000..f6be8c0ff
--- /dev/null
+++ b/keyboards/phrygian/ph100/halconf.h
@@ -0,0 +1,37 @@
1/* Copyright 2020 QMK
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/*
18 * This file was auto-generated by:
19 * `qmk chibios-confmigrate -i keyboards/phrygian/ph100/halconf.h -r platforms/chibios/common/configs/halconf.h`
20 */
21
22#pragma once
23
24#define HAL_USE_SERIAL_USB TRUE
25
26#define ADC_USE_WAIT FALSE
27
28#define ADC_USE_MUTUAL_EXCLUSION FALSE
29
30#define SERIAL_USB_BUFFERS_SIZE 256
31
32#define SPI_USE_WAIT FALSE
33
34#define SPI_USE_MUTUAL_EXCLUSION FALSE
35
36#include_next <halconf.h>
37
diff --git a/keyboards/phrygian/ph100/info.json b/keyboards/phrygian/ph100/info.json
new file mode 100644
index 000000000..054e3955e
--- /dev/null
+++ b/keyboards/phrygian/ph100/info.json
@@ -0,0 +1,111 @@
1{
2 "keyboard_name": "ph100",
3 "url": "https://phrygiandesign.com/products/ph100-mechanical-keyboard",
4 "maintainer": "phrygiandesign",
5 "layouts": {
6 "LAYOUT": {
7 "layout": [
8 {"label":"ESCAPE", "x":0, "y":0},
9 {"label":"F1", "x":2, "y":0},
10 {"label":"F2", "x":3, "y":0},
11 {"label":"F3", "x":4, "y":0},
12 {"label":"F4", "x":5, "y":0},
13 {"label":"F5", "x":6.5, "y":0},
14 {"label":"F6", "x":7.5, "y":0},
15 {"label":"F7", "x":8.5, "y":0},
16 {"label":"F8", "x":9.5, "y":0},
17 {"label":"F9", "x":11, "y":0},
18 {"label":"F10", "x":12, "y":0},
19 {"label":"F11", "x":13, "y":0},
20 {"label":"F12", "x":14, "y":0},
21 {"label":"HOME", "x":15.25, "y":0},
22 {"label":"PRINT SCREEN", "x":16.25, "y":0},
23 {"label":"BACKTICK", "x":0, "y":1},
24 {"label":"1", "x":1, "y":1},
25 {"label":"2", "x":2, "y":1},
26 {"label":"3", "x":3, "y":1},
27 {"label":"4", "x":4, "y":1},
28 {"label":"5", "x":5, "y":1},
29 {"label":"6", "x":6, "y":1},
30 {"label":"7", "x":7, "y":1},
31 {"label":"8", "x":8, "y":1},
32 {"label":"9", "x":9, "y":1},
33 {"label":"0", "x":10, "y":1},
34 {"label":"MINUS", "x":11, "y":1},
35 {"label":"EQUALS", "x":12, "y":1},
36 {"label":"BACKSPACE", "x":13, "y":1, "w":2},
37 {"label":"END", "x":15.25, "y":1},
38 {"label":"PAGE UP", "x":16.25, "y":1},
39 {"label":"NUM LOCK", "x":17.5, "y":1},
40 {"label":"/", "x":18.5, "y":1},
41 {"label":"*", "x":19.5, "y":1},
42 {"label":"-", "x":20.5, "y":1},
43 {"label":"TAB", "x":0, "y":2, "w":1.5},
44 {"label":"Q", "x":1.5, "y":2},
45 {"label":"W", "x":2.5, "y":2},
46 {"label":"E", "x":3.5, "y":2},
47 {"label":"R", "x":4.5, "y":2},
48 {"label":"T", "x":5.5, "y":2},
49 {"label":"Y", "x":6.5, "y":2},
50 {"label":"U", "x":7.5, "y":2},
51 {"label":"I", "x":8.5, "y":2},
52 {"label":"O", "x":9.5, "y":2},
53 {"label":"P", "x":10.5, "y":2},
54 {"label":"LEFT BRACKET", "x":11.5, "y":2},
55 {"label":"RIGHT BRACKET", "x":12.5, "y":2},
56 {"label":"BACK SLASH", "x":13.5, "y":2, "w":1.5},
57 {"label":"DELETE", "x":15.25, "y":2},
58 {"label":"PAGE DOWN", "x":16.25, "y":2},
59 {"label":"7", "x":17.5, "y":2},
60 {"label":"8", "x":18.5, "y":2},
61 {"label":"9", "x":19.5, "y":2},
62 {"label":"+", "x":20.5, "y":2, "h":2},
63 {"label":"CAPS LOCK", "x":0, "y":3, "w":1.75},
64 {"label":"A", "x":1.75, "y":3},
65 {"label":"S", "x":2.75, "y":3},
66 {"label":"D", "x":3.75, "y":3},
67 {"label":"F", "x":4.75, "y":3},
68 {"label":"G", "x":5.75, "y":3},
69 {"label":"H", "x":6.75, "y":3},
70 {"label":"J", "x":7.75, "y":3},
71 {"label":"K", "x":8.75, "y":3},
72 {"label":"L", "x":9.75, "y":3},
73 {"label":"SEMICOLON", "x":10.75, "y":3},
74 {"label":"SINGLE TICK", "x":11.75, "y":3},
75 {"label":"ENTER", "x":12.75, "y":3, "w":2.25},
76 {"label":"4", "x":17.5, "y":3},
77 {"label":"5", "x":18.5, "y":3},
78 {"label":"6", "x":19.5, "y":3},
79 {"label":"LEFT SHIFT", "x":0, "y":4, "w":2.25},
80 {"label":"Z", "x":2.25, "y":4},
81 {"label":"X", "x":3.25, "y":4},
82 {"label":"C", "x":4.25, "y":4},
83 {"label":"V", "x":5.25, "y":4},
84 {"label":"B", "x":6.25, "y":4},
85 {"label":"N", "x":7.25, "y":4},
86 {"label":"M", "x":8.25, "y":4},
87 {"label":"COMMA", "x":9.25, "y":4},
88 {"label":"PERIOD", "x":10.25, "y":4},
89 {"label":"FORWARD SLASH", "x":11.25, "y":4},
90 {"label":"RIGHT SHIFT", "x":12.25, "y":4, "w":2.25},
91 {"label":"UP ARROW", "x":15.25, "y":4},
92 {"label":"1", "x":17.5, "y":4},
93 {"label":"2", "x":18.5, "y":4},
94 {"label":"3", "x":19.5, "y":4},
95 {"label":"ENTER", "x":20.5, "y":4, "h":2},
96 {"label":"LEFT CTRL", "x":0, "y":5, "w":1.25},
97 {"label":"LEFT WIN", "x":1.25, "y":5, "w":1.25},
98 {"label":"LEFT ALT", "x":2.5, "y":5, "w":1.25},
99 {"label":"SPACEBAR", "x":3.75, "y":5, "w":6.25},
100 {"label":"RIGHT ALT", "x":10, "y":5, "w":1.25},
101 {"label":"RIGHT CTRL", "x":11.25, "y":5, "w":1.25},
102 {"label":"FN", "x":12.5, "y":5},
103 {"label":"LEFT ARROW", "x":14.25, "y":5},
104 {"label":"DOWN ARROW", "x":15.25, "y":5},
105 {"label":"RIGHT ARROW", "x":16.25, "y":5},
106 {"label":"0", "x":17.5, "y":5, "w":2},
107 {"label":".", "x":19.5, "y":5}
108 ]
109 }
110 }
111}
diff --git a/keyboards/phrygian/ph100/keymaps/default/keymap.c b/keyboards/phrygian/ph100/keymaps/default/keymap.c
new file mode 100644
index 000000000..0350aec53
--- /dev/null
+++ b/keyboards/phrygian/ph100/keymaps/default/keymap.c
@@ -0,0 +1,27 @@
1/* Copyright 2021 Phrygian Design
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
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20[0] = LAYOUT(
21 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_PGUP,
22 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_PGDN, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
23 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, KC_END, KC_P7, KC_P8, KC_P9,
24 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS,
25 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3,
26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT)
27}; \ No newline at end of file
diff --git a/keyboards/phrygian/ph100/ph100.c b/keyboards/phrygian/ph100/ph100.c
new file mode 100644
index 000000000..45c242696
--- /dev/null
+++ b/keyboards/phrygian/ph100/ph100.c
@@ -0,0 +1,19 @@
1/* Copyright 2021 Phrygian Design
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 "ph100.h"
18
19//Put software here \ No newline at end of file
diff --git a/keyboards/phrygian/ph100/ph100.h b/keyboards/phrygian/ph100/ph100.h
new file mode 100644
index 000000000..bd18bfd19
--- /dev/null
+++ b/keyboards/phrygian/ph100/ph100.h
@@ -0,0 +1,44 @@
1/* Copyright 2021 Phrygian Design
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 XXX KC_NO
20
21#include "quantum.h"
22
23// This a shortcut to help you visually see your layout.
24
25#define LAYOUT(\
26 K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K61, K62, K63, K64, K65, \
27 K11, K12, K13, K14, K15, K16, K17, K18, K19, K20, K71, K72, K73, K74, K75, K76, K66, K67, K68, K69, \
28 K21, K22, K23, K24, K25, K26, K27, K28, K29, K30, K81, K82, K83, K84, K85, K86, K77, K78, K79, \
29 K31, K32, K33, K34, K35, K36, K37, K38, K39, K40, K91, K93, K95, K87, K88, K80, K70, \
30 K41, K42, K43, K44, K45, K46, K47, K48, K49, K50, K92, K94, K96, K97, K89, K90, \
31 K51, K52, K53, K54, K55, K56, K57, K58, K59, K60, K98, K99, K100\
32){ \
33 { K01, K02, K03, K04, K05, K06, K07, K08, K09, K10 }, \
34 { K11, K12, K13, K14, K15, K16, K17, K18, K19, K20 }, \
35 { K21, K22, K23, K24, K25, K26, K27, K28, K29, K30 }, \
36 { K31, K32, K33, K34, K35, K36, K37, K38, K39, K40 }, \
37 { K41, K42, K43, K44, K45, K46, K47, K48, K49, K50 }, \
38 { K51, K52, K53, K54, K55, K56, K57, K58, K59, K60 }, \
39 { K61, K62, K63, K64, K65, K66, K67, K68, K69, K70 }, \
40 { K71, K72, K73, K74, K75, K76, K77, K78, K79, K80 }, \
41 { K81, K82, K83, K84, K85, K86, K87, K88, K89, K90 }, \
42 { K91, K92, K93, K94, K95, K96, K97, K98, K99, K100 }, \
43}
44
diff --git a/keyboards/phrygian/ph100/readme.md b/keyboards/phrygian/ph100/readme.md
new file mode 100644
index 000000000..f6419880e
--- /dev/null
+++ b/keyboards/phrygian/ph100/readme.md
@@ -0,0 +1,20 @@
1## Phrygian Design ph100
2
3![ph100](https://cdn.shopify.com/s/files/1/0470/8814/0443/products/DSCF0064_1080x.png)
4
5The ph100 is a 100-key modular keyboard from Phrygian Design.
6
7* Keyboard Maintainer: https://github.com/phrygiandesign
8* Hardware Supported: ph100 PCB
9* Hardware Availability: https://phrygiandesign.com/products/ph100-mechanical-keyboard
10* Keyboard support: contact@phrygiandesign.com
11
12Make example for this keyboard:
13
14 make phrygian/ph100:default
15
16See 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).
17
18#### Note: Booting into the STM32 USB Bootloader
19The STM32F042 range of microcontrollers have problems with entering into the USB bootloader with QMK's bootloader key sequence.
20To boot into the bootloader, apply power to the keyboard while holding down "SW0" on the bottom of PCB near the USB port.
diff --git a/keyboards/phrygian/ph100/rules.mk b/keyboards/phrygian/ph100/rules.mk
new file mode 100644
index 000000000..ca4c47452
--- /dev/null
+++ b/keyboards/phrygian/ph100/rules.mk
@@ -0,0 +1,25 @@
1# MCU name
2MCU = STM32F042
3
4# Bootloader selection
5BOOTLOADER = stm32-dfu
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
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
21AUDIO_ENABLE = no # Audio output
22
23
24# Enter lower-power sleep mode when on the ChibiOS idle thread
25OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE