aboutsummaryrefslogtreecommitdiff
path: root/keyboards/dinofizz
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/dinofizz')
-rw-r--r--keyboards/dinofizz/fnrow/v1/chconf.h35
-rw-r--r--keyboards/dinofizz/fnrow/v1/config.h36
-rw-r--r--keyboards/dinofizz/fnrow/v1/halconf.h51
-rw-r--r--keyboards/dinofizz/fnrow/v1/info.json76
-rw-r--r--keyboards/dinofizz/fnrow/v1/keymaps/default/keymap.c22
-rw-r--r--keyboards/dinofizz/fnrow/v1/keymaps/default/readme.md1
-rw-r--r--keyboards/dinofizz/fnrow/v1/keymaps/via/keymap.c34
-rw-r--r--keyboards/dinofizz/fnrow/v1/keymaps/via/rules.mk1
-rw-r--r--keyboards/dinofizz/fnrow/v1/mcuconf.h28
-rw-r--r--keyboards/dinofizz/fnrow/v1/readme.md28
-rw-r--r--keyboards/dinofizz/fnrow/v1/rules.mk21
-rw-r--r--keyboards/dinofizz/fnrow/v1/v1.c36
-rw-r--r--keyboards/dinofizz/fnrow/v1/v1.h25
13 files changed, 394 insertions, 0 deletions
diff --git a/keyboards/dinofizz/fnrow/v1/chconf.h b/keyboards/dinofizz/fnrow/v1/chconf.h
new file mode 100644
index 000000000..4f26862ff
--- /dev/null
+++ b/keyboards/dinofizz/fnrow/v1/chconf.h
@@ -0,0 +1,35 @@
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-confupdate -i keyboards/dinofizz/fnrow/v1/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_TM FALSE
27
28#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
29
30#define CH_CFG_USE_DYNAMIC FALSE
31
32#define CH_DBG_ENABLE_STACK_CHECK FALSE
33
34#include_next <chconf.h>
35
diff --git a/keyboards/dinofizz/fnrow/v1/config.h b/keyboards/dinofizz/fnrow/v1/config.h
new file mode 100644
index 000000000..fb7e4e91d
--- /dev/null
+++ b/keyboards/dinofizz/fnrow/v1/config.h
@@ -0,0 +1,36 @@
1/*
2Copyright 2021 Dino Fizzotti
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#define VENDOR_ID 0xD1F1
23#define PRODUCT_ID 0x0100
24#define DEVICE_VER 0x0001
25#define MANUFACTURER Dino Fizzotti
26#define PRODUCT FnRow v1
27
28#define MATRIX_ROWS 2
29#define MATRIX_COLS 7
30
31#define MATRIX_ROW_PINS { A0, A1 }
32#define MATRIX_COL_PINS {B0, B1, B3, B4, B5, B6, B7 }
33
34#define DIODE_DIRECTION COL2ROW
35
36#define DEBOUNCE 5
diff --git a/keyboards/dinofizz/fnrow/v1/halconf.h b/keyboards/dinofizz/fnrow/v1/halconf.h
new file mode 100644
index 000000000..68dc2abdf
--- /dev/null
+++ b/keyboards/dinofizz/fnrow/v1/halconf.h
@@ -0,0 +1,51 @@
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-confupdate -i keyboards/dinofizz/fnrow/v1/halconf.h -r platforms/chibios/common/configs/halconf.h`
20 */
21
22#pragma once
23
24#define HAL_USE_DAC FALSE
25
26#define HAL_USE_GPT FALSE
27
28#define HAL_USE_I2C FALSE
29
30#define HAL_USE_PWM FALSE
31
32#define HAL_USE_SERIAL_USB FALSE
33
34#define HAL_USE_SPI FALSE
35
36#define PAL_USE_CALLBACKS FALSE
37
38#define PAL_USE_WAIT FALSE
39
40#define ADC_USE_WAIT FALSE
41
42#define ADC_USE_MUTUAL_EXCLUSION FALSE
43
44#define SERIAL_USB_BUFFERS_SIZE 256
45
46#define SPI_USE_WAIT FALSE
47
48#define SPI_USE_MUTUAL_EXCLUSION FALSE
49
50#include_next <halconf.h>
51
diff --git a/keyboards/dinofizz/fnrow/v1/info.json b/keyboards/dinofizz/fnrow/v1/info.json
new file mode 100644
index 000000000..b0dc34c43
--- /dev/null
+++ b/keyboards/dinofizz/fnrow/v1/info.json
@@ -0,0 +1,76 @@
1{
2 "keyboard_name": "FnRow v1",
3 "maintainer": "dinofizz",
4 "url": "https://github.com/dinofizz/fnrow-pcb",
5 "layouts": {
6 "LAYOUT_fn_row": {
7 "layout": [
8 {
9 "label": "SW1",
10 "x": 0,
11 "y": 0
12 },
13 {
14 "label": "SW3",
15 "x": 2,
16 "y": 0
17 },
18 {
19 "label": "SW5",
20 "x": 3,
21 "y": 0
22 },
23 {
24 "label": "SW7",
25 "x": 4,
26 "y": 0
27 },
28 {
29 "label": "SW9",
30 "x": 5,
31 "y": 0
32 },
33 {
34 "label": "SW11",
35 "x": 6.5,
36 "y": 0
37 },
38 {
39 "label": "SW13",
40 "x": 7.5,
41 "y": 0
42 },
43 {
44 "label": "SW2",
45 "x": 8.5,
46 "y": 0
47 },
48 {
49 "label": "SW4",
50 "x": 9.5,
51 "y": 0
52 },
53 {
54 "label": "SW6",
55 "x": 11,
56 "y": 0
57 },
58 {
59 "label": "SW8",
60 "x": 12,
61 "y": 0
62 },
63 {
64 "label": "SW10",
65 "x": 13,
66 "y": 0
67 },
68 {
69 "label": "SW12",
70 "x": 14,
71 "y": 0
72 }
73 ]
74 }
75 }
76}
diff --git a/keyboards/dinofizz/fnrow/v1/keymaps/default/keymap.c b/keyboards/dinofizz/fnrow/v1/keymaps/default/keymap.c
new file mode 100644
index 000000000..653d03619
--- /dev/null
+++ b/keyboards/dinofizz/fnrow/v1/keymaps/default/keymap.c
@@ -0,0 +1,22 @@
1/* Copyright 2021 Dino Fizzotti
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 QMK_KEYBOARD_H
17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 [0] = LAYOUT_fn_row(
20 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
21 ),
22};
diff --git a/keyboards/dinofizz/fnrow/v1/keymaps/default/readme.md b/keyboards/dinofizz/fnrow/v1/keymaps/default/readme.md
new file mode 100644
index 000000000..465257793
--- /dev/null
+++ b/keyboards/dinofizz/fnrow/v1/keymaps/default/readme.md
@@ -0,0 +1 @@
# The default keymap for FnRow v1
diff --git a/keyboards/dinofizz/fnrow/v1/keymaps/via/keymap.c b/keyboards/dinofizz/fnrow/v1/keymaps/via/keymap.c
new file mode 100644
index 000000000..025b730b4
--- /dev/null
+++ b/keyboards/dinofizz/fnrow/v1/keymaps/via/keymap.c
@@ -0,0 +1,34 @@
1/* Copyright 2021 Dino Fizzotti
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 QMK_KEYBOARD_H
17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 [0] = LAYOUT_fn_row(
20 MO(1), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12
21 ),
22
23 [1] = LAYOUT_fn_row(
24 KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_HOME, KC_END
25 ),
26
27 [2] = LAYOUT_fn_row(
28 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
29 ),
30
31 [3] = LAYOUT_fn_row(
32 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
33 ),
34};
diff --git a/keyboards/dinofizz/fnrow/v1/keymaps/via/rules.mk b/keyboards/dinofizz/fnrow/v1/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/dinofizz/fnrow/v1/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes
diff --git a/keyboards/dinofizz/fnrow/v1/mcuconf.h b/keyboards/dinofizz/fnrow/v1/mcuconf.h
new file mode 100644
index 000000000..6c4685668
--- /dev/null
+++ b/keyboards/dinofizz/fnrow/v1/mcuconf.h
@@ -0,0 +1,28 @@
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-confupdate -i keyboards/dinofizz/fnrow/v1/mcuconf.h -r platforms/chibios/GENERIC_STM32_F042X6/configs/mcuconf.h`
20 */
21
22#pragma once
23
24#include_next <mcuconf.h>
25
26#undef STM32_SERIAL_USE_USART2
27#define STM32_SERIAL_USE_USART2 TRUE
28
diff --git a/keyboards/dinofizz/fnrow/v1/readme.md b/keyboards/dinofizz/fnrow/v1/readme.md
new file mode 100644
index 000000000..707cbdcbf
--- /dev/null
+++ b/keyboards/dinofizz/fnrow/v1/readme.md
@@ -0,0 +1,28 @@
1# FnRow v1
2
3A keyboard featuring a single horizontal row of switches in the style of a "function row" layout.
4
5* Keyboard Maintainer: [Dino Fizzotti](https://www.dinofizzotti.com)
6* [PCB Schematic and layout](https://github.com/dinofizz/fnrow-pcb)
7* [Blog post](https://www.dinofizzotti.com/blog/2021-02-07-fnrow-v1-a-configurable-function-row-layout-mechanical-keyboard/)
8
9## Features
10
11* USB-C
12* USB ESD and overcurrent protection
13* Dedicated reset switch to enable DFU mode
14* Optional status LED
15
16## Compilation
17
18Make compilation example for this keyboard (after setting up your build environment):
19
20 make dinofizz/fnrow/v1:default
21
22# Flashing
23
24The FnRow features a hardware reset push-button to the left of the USB-C port. To flash new firmware you will need to enter the bootloader mode first. Plug the FnRow in to your computer using a USB cable and press the reset button momentarily. The board will then show up as an STM32 flash bootloader device. You can then use the following command to flash new firmware to the board.
25
26 make dinofizz/fnrow/v1:default:flash
27
28See 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/dinofizz/fnrow/v1/rules.mk b/keyboards/dinofizz/fnrow/v1/rules.mk
new file mode 100644
index 000000000..fa45f1096
--- /dev/null
+++ b/keyboards/dinofizz/fnrow/v1/rules.mk
@@ -0,0 +1,21 @@
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 = no # Enable Bootmagic Lite
11MOUSEKEY_ENABLE = no # 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
19
20# Enter lower-power sleep mode when on the ChibiOS idle thread
21OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/dinofizz/fnrow/v1/v1.c b/keyboards/dinofizz/fnrow/v1/v1.c
new file mode 100644
index 000000000..a5c5b21ea
--- /dev/null
+++ b/keyboards/dinofizz/fnrow/v1/v1.c
@@ -0,0 +1,36 @@
1/* Copyright 2021 Dino Fizzotti
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 "v1.h"
17
18void keyboard_pre_init_kb(void) {
19 // Immediately set the LED pin as an output and set it ON
20 setPinOutput(A15);
21 writePinHigh(A15);
22
23 keyboard_pre_init_user();
24}
25
26void keyboard_post_init_kb(void) {
27 // Blink the LED so we know everything is running OK
28 // Finish with LED OFF
29 writePinLow(A15);
30 wait_ms(100);
31 writePinHigh(A15);
32 wait_ms(100);
33 writePinLow(A15);
34
35 keyboard_post_init_user();
36}
diff --git a/keyboards/dinofizz/fnrow/v1/v1.h b/keyboards/dinofizz/fnrow/v1/v1.h
new file mode 100644
index 000000000..ce9209cad
--- /dev/null
+++ b/keyboards/dinofizz/fnrow/v1/v1.h
@@ -0,0 +1,25 @@
1/* Copyright 2021 Dino Fizzotti
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 "quantum.h"
19
20#define LAYOUT_fn_row( \
21 K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012 \
22) { \
23 { K000, K001, K002, K003, K004, K005, K006, }, \
24 { K007, K008, K009, K010, K011, K012, KC_NO }, \
25}