aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xkeyboards/bigseries/bigseries.c26
-rwxr-xr-xkeyboards/bigseries/bigseries.h28
-rwxr-xr-xkeyboards/bigseries/config.h59
-rwxr-xr-xkeyboards/bigseries/keymaps/default/keymap.c93
-rw-r--r--keyboards/bigseries/keymaps/leddance/config.h23
-rwxr-xr-xkeyboards/bigseries/keymaps/leddance/keymap.c127
-rw-r--r--keyboards/bigseries/keymaps/leddance/rules.mk1
-rw-r--r--keyboards/bigseries/readme.md15
-rwxr-xr-xkeyboards/bigseries/rules.mk59
9 files changed, 431 insertions, 0 deletions
diff --git a/keyboards/bigseries/bigseries.c b/keyboards/bigseries/bigseries.c
new file mode 100755
index 000000000..0ef84478b
--- /dev/null
+++ b/keyboards/bigseries/bigseries.c
@@ -0,0 +1,26 @@
1/*
2Copyright 2018 Cole Markham
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#include "bigseries.h"
18
19void matrix_scan_kb(void) {
20 // Looping keyboard code goes here
21 // This runs every cycle (a lot)
22 matrix_scan_user();
23#ifdef BACKLIGHT_ENABLE
24 backlight_task();
25#endif
26};
diff --git a/keyboards/bigseries/bigseries.h b/keyboards/bigseries/bigseries.h
new file mode 100755
index 000000000..4a8ac1116
--- /dev/null
+++ b/keyboards/bigseries/bigseries.h
@@ -0,0 +1,28 @@
1/*
2Copyright 2018 Cole Markham
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#ifndef BIGSWITCH_H
18#define BIGSWITCH_H
19
20#include "quantum.h"
21
22#define KEYMAP( \
23 K00 \
24) { \
25 { K00 } \
26}
27
28#endif
diff --git a/keyboards/bigseries/config.h b/keyboards/bigseries/config.h
new file mode 100755
index 000000000..3c401f563
--- /dev/null
+++ b/keyboards/bigseries/config.h
@@ -0,0 +1,59 @@
1/*
2Copyright 2018 Cole Markham
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#ifndef CONFIG_H
18#define CONFIG_H
19
20#include "config_common.h"
21
22/* USB Device descriptor parameter */
23#define VENDOR_ID 0xFEED
24#define PRODUCT_ID 0x6071
25#define DEVICE_VER 0x0002
26#define MANUFACTURER WoodKeys.click
27#define PRODUCT BigSeries Single Keyboard
28#define DESCRIPTION Single key board for Novelkeys Big Series Switch
29
30/* key matrix size */
31#define MATRIX_ROWS 1
32#define MATRIX_COLS 1
33
34/* key matrix pins */
35#define MATRIX_ROW_PINS { B0 }
36#define MATRIX_COL_PINS { B4 }
37#define UNUSED_PINS
38
39/* COL2ROW or ROW2COL */
40#define DIODE_DIRECTION ROW2COL
41
42/* Set 0 if debouncing isn't needed */
43#define DEBOUNCING_DELAY 50
44
45/* key combination for command */
46#define IS_COMMAND() ( \
47 false \
48)
49
50/* prevent stuck modifiers */
51#define PREVENT_STUCK_MODIFIERS
52
53#ifdef RGBLIGHT_ENABLE
54#define RGB_DI_PIN D3
55#define RGBLIGHT_ANIMATIONS
56#define RGBLED_NUM 5
57#endif
58
59#endif
diff --git a/keyboards/bigseries/keymaps/default/keymap.c b/keyboards/bigseries/keymaps/default/keymap.c
new file mode 100755
index 000000000..67cfb168c
--- /dev/null
+++ b/keyboards/bigseries/keymaps/default/keymap.c
@@ -0,0 +1,93 @@
1/*
2Copyright 2018 Cole Markham
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#include "../../bigseries.h"
19
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21
22KEYMAP(
23 KC_A),
24
25
26};
27
28
29bool initialized = 0;
30
31const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
32 return MACRO_NONE ;
33}
34
35void matrix_init_user(void) {
36 if (!initialized){
37 dprintf("Initializing in matrix_scan_user");
38 rgblight_enable();
39 rgblight_mode(7);
40 rgblight_sethsv(0,255,255);
41 rgblight_setrgb(0x00, 0x00, 0xFF);
42 initialized = 1;
43 }
44}
45
46void matrix_scan_user(void) {
47}
48
49bool process_record_user(uint16_t keycode, keyrecord_t *record) {
50 switch (keycode) {
51 case KC_A:
52 if (record->event.pressed) {
53 SEND_STRING("Howdy!!\n");
54 rgblight_step();
55 return false;
56 }
57 }
58 return true;
59}
60
61void led_set_user(uint8_t usb_led) {
62
63 if (usb_led & (1 << USB_LED_NUM_LOCK)) {
64
65 } else {
66
67 }
68
69 if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
70
71 } else {
72
73 }
74
75 if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
76
77 } else {
78
79 }
80
81 if (usb_led & (1 << USB_LED_COMPOSE)) {
82
83 } else {
84
85 }
86
87 if (usb_led & (1 << USB_LED_KANA)) {
88
89 } else {
90
91 }
92
93}
diff --git a/keyboards/bigseries/keymaps/leddance/config.h b/keyboards/bigseries/keymaps/leddance/config.h
new file mode 100644
index 000000000..57398fb99
--- /dev/null
+++ b/keyboards/bigseries/keymaps/leddance/config.h
@@ -0,0 +1,23 @@
1/*
2Copyright 2018 Cole Markham
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#ifndef CONFIG_USER_H
19#define CONFIG_USER_H
20
21#define TAPPING_TERM 400
22
23#endif
diff --git a/keyboards/bigseries/keymaps/leddance/keymap.c b/keyboards/bigseries/keymaps/leddance/keymap.c
new file mode 100755
index 000000000..4cb57f437
--- /dev/null
+++ b/keyboards/bigseries/keymaps/leddance/keymap.c
@@ -0,0 +1,127 @@
1/*
2Copyright 2018 Cole Markham
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#include "../../bigseries.h"
19#include "print.h"
20
21extern rgblight_config_t rgblight_config;
22
23enum custom_keycodes {
24 BL = SAFE_RANGE
25};
26
27enum custom_layers {
28 BASE = 0,
29 LED
30};
31
32//Tap Dance Declarations
33enum {
34 TD_TOGGLE = 0
35};
36
37void dance_toggle (qk_tap_dance_state_t *state, void *user_data) {
38 if (state->count >= 2) {
39 println("Double tapped, switching layers");
40 if (layer_state_is(LED)) {
41 layer_off(LED);
42 } else {
43 layer_on(LED);
44 }
45 } else {
46 print("Single tapped: ");
47 if (layer_state_is(LED)) {
48#ifdef RGBLIGHT_ENABLE
49 if (!rgblight_config.enable) {
50 rgblight_enable();
51 }
52 rgblight_step();
53#endif
54 } else {
55 println("Base layer, sending string");
56 SEND_STRING("This thing is BIG!!\n");
57 }
58 }
59}
60
61//Tap Dance Definitions
62qk_tap_dance_action_t tap_dance_actions[] = {
63 [TD_TOGGLE] = ACTION_TAP_DANCE_FN(dance_toggle)
64// Other declarations would go here, separated by commas, if you have them
65};
66
67const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
68
69[BASE] = KEYMAP(
70 TD(TD_TOGGLE)),
71[LED] = KEYMAP(
72 TD(TD_TOGGLE)
73 )
74
75
76};
77
78
79const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
80 return MACRO_NONE ;
81}
82
83
84void matrix_init_user(void) {
85}
86
87void matrix_scan_user(void) {
88}
89
90bool process_record_user(uint16_t keycode, keyrecord_t *record) {
91 // Nothing here, see dance_toggle
92 return true;
93}
94
95void led_set_user(uint8_t usb_led) {
96
97 if (usb_led & (1 << USB_LED_NUM_LOCK)) {
98
99 } else {
100
101 }
102
103 if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
104
105 } else {
106
107 }
108
109 if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
110
111 } else {
112
113 }
114
115 if (usb_led & (1 << USB_LED_COMPOSE)) {
116
117 } else {
118
119 }
120
121 if (usb_led & (1 << USB_LED_KANA)) {
122
123 } else {
124
125 }
126
127}
diff --git a/keyboards/bigseries/keymaps/leddance/rules.mk b/keyboards/bigseries/keymaps/leddance/rules.mk
new file mode 100644
index 000000000..1ba2fa8fb
--- /dev/null
+++ b/keyboards/bigseries/keymaps/leddance/rules.mk
@@ -0,0 +1 @@
TAP_DANCE_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/bigseries/readme.md b/keyboards/bigseries/readme.md
new file mode 100644
index 000000000..dfb415668
--- /dev/null
+++ b/keyboards/bigseries/readme.md
@@ -0,0 +1,15 @@
1# Big Series Keyboard
2
3![Big Series 1-Key](https://woodkeys.click/wp-content/uploads/2017/12/woodkeys_419.jpg)
4
5A PCB for the Big Series Switch by [NovelKeys](https://novelkeys.xyz). Available in 1, 2, 3, and 4 switch versions from [Woodkeys.click](https://woodkeys.click/product-category/big-series/).
6
7Keyboard Maintainer: [Cole Markham](https://github.com/colemarkham) / [Woodkeys.click](https://woodkeys.click)
8Hardware Supported: Big Series PCBs
9Hardware Availability: [Woodkeys.click](https://woodkeys.click), [NovelKeys](https://novelkeys.xyz)
10
11Make example for this keyboard (after setting up your build environment):
12
13 make bigseries:default
14
15See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. \ No newline at end of file
diff --git a/keyboards/bigseries/rules.mk b/keyboards/bigseries/rules.mk
new file mode 100755
index 000000000..4cac07f72
--- /dev/null
+++ b/keyboards/bigseries/rules.mk
@@ -0,0 +1,59 @@
1#SRC += rgb_backlight.c
2
3# MCU name
4MCU = atmega32u2
5
6# Processor frequency.
7# This will define a symbol, F_CPU, in all source code files equal to the
8# processor frequency in Hz. You can then use this symbol in your source code to
9# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
10# automatically to create a 32-bit value in your source code.
11#
12# This will be an integer division of F_USB below, as it is sourced by
13# F_USB after it has run through any CPU prescalers. Note that this value
14# does not *change* the processor frequency - it should merely be updated to
15# reflect the processor speed set externally so that the code can use accurate
16# software delays.
17F_CPU = 16000000
18
19#
20# LUFA specific
21#
22# Target architecture (see library "Board Types" documentation).
23ARCH = AVR8
24
25# Input clock frequency.
26# This will define a symbol, F_USB, in all source code files equal to the
27# input clock frequency (before any prescaling is performed) in Hz. This value may
28# differ from F_CPU if prescaling is used on the latter, and is required as the
29# raw input clock is fed directly to the PLL sections of the AVR for high speed
30# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
31# at the end, this will be done automatically to create a 32-bit value in your
32# source code.
33#
34# If no clock division is performed on the input clock inside the AVR (via the
35# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
36F_USB = $(F_CPU)
37
38# Interrupt driven control endpoint task(+60)
39OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
40
41
42# Boot Section Size in *bytes*
43OPT_DEFS += -DBOOTLOADER_SIZE=4096
44
45
46# Build Options
47# comment out to disable the options.
48#
49BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
50MOUSEKEY_ENABLE = no # Mouse keys(+4700)
51EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
52CONSOLE_ENABLE = yes # Console for debug(+400)
53COMMAND_ENABLE = yes # Commands for debug and configuration
54SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
55NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
56BACKLIGHT_ENABLE = no # Custom backlighting code is used, so this should not be enabled
57AUDIO_ENABLE = no # This can be enabled if a speaker is connected to the expansion port. Not compatible with RGBLIGHT below
58RGBLIGHT_ENABLE = yes # This can be enabled if a ws2812 strip is connected to the expansion port.
59