From f14629ed1cd7c7ec9089604d64f29a99981558e8 Mon Sep 17 00:00:00 2001 From: fauxpark Date: Tue, 16 Jul 2019 16:04:02 +1000 Subject: Remove/migrate action_get_macro()s from default keymaps (#5625) * Remove/migrate action_get_macro()s from default keymaps * Leave these breaks alone --- keyboards/gray_studio/cod67/keymaps/default/keymap.c | 16 ---------------- 1 file changed, 16 deletions(-) (limited to 'keyboards/gray_studio') diff --git a/keyboards/gray_studio/cod67/keymaps/default/keymap.c b/keyboards/gray_studio/cod67/keymaps/default/keymap.c index 9e1273a189..245d7eee6f 100644 --- a/keyboards/gray_studio/cod67/keymaps/default/keymap.c +++ b/keyboards/gray_studio/cod67/keymaps/default/keymap.c @@ -26,22 +26,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; - - void matrix_init_user(void) { } -- cgit v1.2.3 From ba42a5ae68a59ad514027d819c6b58ee86944e75 Mon Sep 17 00:00:00 2001 From: fauxpark Date: Tue, 16 Jul 2019 17:26:38 +1000 Subject: Remove commented out MCUs in rules.mk (#5884) --- keyboards/gray_studio/cod67/rules.mk | 1 - 1 file changed, 1 deletion(-) (limited to 'keyboards/gray_studio') diff --git a/keyboards/gray_studio/cod67/rules.mk b/keyboards/gray_studio/cod67/rules.mk index 45eb6ee376..6cba6b6b86 100644 --- a/keyboards/gray_studio/cod67/rules.mk +++ b/keyboards/gray_studio/cod67/rules.mk @@ -1,5 +1,4 @@ # MCU name -#MCU = at90usb1286 MCU = atmega32u4 # Processor frequency. -- cgit v1.2.3 From b3cdc7ef70dd4bbf7d458a90c75c4d72f97e340e Mon Sep 17 00:00:00 2001 From: trinity1561 <47289299+trinity1561@users.noreply.github.com> Date: Sat, 20 Jul 2019 16:37:42 -0400 Subject: [Keyboard] Update space65.c to fix caps lock LED (#6375) --- keyboards/gray_studio/space65/space65.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'keyboards/gray_studio') diff --git a/keyboards/gray_studio/space65/space65.c b/keyboards/gray_studio/space65/space65.c index f9f2224ab8..74a86a202d 100644 --- a/keyboards/gray_studio/space65/space65.c +++ b/keyboards/gray_studio/space65/space65.c @@ -19,6 +19,7 @@ void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up + setPinOutput(E6); matrix_init_user(); } @@ -39,9 +40,9 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { void led_set_kb(uint8_t usb_led) { // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { - writePinHigh(E6); - } else { writePinLow(E6); + } else { + writePinHigh(E6); } led_set_user(usb_led); -- cgit v1.2.3 From de4a47f1cc28c4ef66e7560eac2a50f717070ae2 Mon Sep 17 00:00:00 2001 From: fauxpark Date: Sat, 21 Sep 2019 15:06:32 +1000 Subject: Cleanup rules.mk for 32A and 328P keyboards (#6767) --- keyboards/gray_studio/hb85/rules.mk | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) (limited to 'keyboards/gray_studio') diff --git a/keyboards/gray_studio/hb85/rules.mk b/keyboards/gray_studio/hb85/rules.mk index c3e17e4932..5339aad89c 100644 --- a/keyboards/gray_studio/hb85/rules.mk +++ b/keyboards/gray_studio/hb85/rules.mk @@ -15,19 +15,15 @@ # MCU name MCU = atmega32a -PROTOCOL = VUSB -# unsupported features for now -NO_UART = yes -NO_SUSPEND_POWER_DOWN = yes - -# processor frequency -F_CPU = 12000000 - -# Bootloader -# This definition is optional, and if your keyboard supports multiple bootloaders of -# different sizes, comment this out, and the correct address will be loaded -# automatically (+60). See bootloader.mk for all options. +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp BOOTLOADER = bootloadHID # build options @@ -43,6 +39,3 @@ RGBLIGHT_CUSTOM_DRIVER = yes OPT_DEFS = -DDEBUG_LEVEL=0 SRC += i2c_master.c - -# programming options -PROGRAM_CMD = ./util/atmega32a_program.py $(TARGET).hex -- cgit v1.2.3 From 0850a8cb634febb92314af5a65a11e58b123e86f Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Wed, 25 Sep 2019 12:55:27 -0700 Subject: 65 ansi blocker everywhere (everywhere I can find) (#6805) * e6.5 actually already had a 65_ansi_blocker LAYOUT macro, so just had to enable in rules. * Add the 65_ansi_blocker LAYOUT macro and enable in rules.mk * rename LAYOUT macro in .h and in the keymap.c as it was only a default keymap. Also enable in rules.mk * rename but also had to define the existing LAYOUT macro as the new one to prevent breakage of existing keymaps * add 65_ansi_blocker support for vinta * forgot to update the info.json on these * add new default layout 65_ansi_blocker support to alt * add 65_ansi_blocker support * undo changes --- keyboards/gray_studio/space65/info.json | 2 +- keyboards/gray_studio/space65/rules.mk | 2 ++ keyboards/gray_studio/space65/space65.h | 15 +++++++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) (limited to 'keyboards/gray_studio') diff --git a/keyboards/gray_studio/space65/info.json b/keyboards/gray_studio/space65/info.json index 9c1d439b41..c45491fecb 100644 --- a/keyboards/gray_studio/space65/info.json +++ b/keyboards/gray_studio/space65/info.json @@ -5,7 +5,7 @@ "width": 16, "height": 5, "layouts": { - "LAYOUT": { + "LAYOUT_65_ansi_blocker": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] } } diff --git a/keyboards/gray_studio/space65/rules.mk b/keyboards/gray_studio/space65/rules.mk index 10bd7cf035..261569206a 100644 --- a/keyboards/gray_studio/space65/rules.mk +++ b/keyboards/gray_studio/space65/rules.mk @@ -78,3 +78,5 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400) + +LAYOUTS = 65_ansi_blocker \ No newline at end of file diff --git a/keyboards/gray_studio/space65/space65.h b/keyboards/gray_studio/space65/space65.h index b7d8580c06..15aa89935b 100644 --- a/keyboards/gray_studio/space65/space65.h +++ b/keyboards/gray_studio/space65/space65.h @@ -40,3 +40,18 @@ { k40, k41, KC_NO, k43, KC_NO, k45, KC_NO, k47, k48, KC_NO, k4A, k4B, KC_NO, k4D, k4E, k4F }, \ } +#define LAYOUT_65_ansi_blocker( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0E, k0F, \ + k10, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, \ + k20, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2F, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D, k3E, k3F, \ + k40, k41, k43, k47, k4A, k4B, k4D, k4E, k4F \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, KC_NO, k0E, k0F }, \ + { k10, KC_NO, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F }, \ + { k20, KC_NO, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, KC_NO, k2F }, \ + { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, KC_NO, k3D, k3E, k3F }, \ + { k40, k41, KC_NO, k43, KC_NO, KC_NO, KC_NO, k47, KC_NO, KC_NO, k4A, k4B, KC_NO, k4D, k4E, k4F }, \ +} + -- cgit v1.2.3 From 1f2ad80c169f407ce56df97a31c480255636ce96 Mon Sep 17 00:00:00 2001 From: noroadsleft <18669334+noroadsleft@users.noreply.github.com> Date: Wed, 9 Oct 2019 07:09:57 -0700 Subject: Gray Studio Space65 Configurator Layout fix (#6987) - LAYOUT_65_ansi_blocker data was actually LAYOUT's data. - added actual LAYOUT_65_ansi_blocker data --- keyboards/gray_studio/space65/info.json | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'keyboards/gray_studio') diff --git a/keyboards/gray_studio/space65/info.json b/keyboards/gray_studio/space65/info.json index c45491fecb..72674bdef6 100644 --- a/keyboards/gray_studio/space65/info.json +++ b/keyboards/gray_studio/space65/info.json @@ -5,8 +5,12 @@ "width": 16, "height": 5, "layouts": { - "LAYOUT_65_ansi_blocker": { + "LAYOUT": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] + }, + + "LAYOUT_65_ansi_blocker": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] } } -} \ No newline at end of file +} -- cgit v1.2.3 From 2e7cd98c0644dc0f7f2a5cab5da7b0e019bd0810 Mon Sep 17 00:00:00 2001 From: fauxpark Date: Sun, 13 Oct 2019 09:57:57 +1100 Subject: Cleanup rules.mk for 32U4 keyboards, G (#6971) * Cleanup rules.mk for 32U4 keyboards, G * Update keyboards/gray_studio/cod67/rules.mk --- keyboards/gray_studio/cod67/rules.mk | 54 ++++++---------------------------- keyboards/gray_studio/space65/rules.mk | 53 ++------------------------------- 2 files changed, 12 insertions(+), 95 deletions(-) (limited to 'keyboards/gray_studio') diff --git a/keyboards/gray_studio/cod67/rules.mk b/keyboards/gray_studio/cod67/rules.mk index 6cba6b6b86..1df4615eb9 100644 --- a/keyboards/gray_studio/cod67/rules.mk +++ b/keyboards/gray_studio/cod67/rules.mk @@ -1,51 +1,15 @@ # MCU name MCU = atmega32u4 -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - - -# -# LUFA specific -# -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - -# Input clock frequency. -# This will define a symbol, F_USB, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_USB = $(F_CPU) - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - - -# Boot Section Size in *bytes* -# Teensy halfKay 512 -# Teensy++ halfKay 1024 -# Atmel DFU loader 4096 -# LUFA bootloader 4096 -# USBaspLoader 2048 -OPT_DEFS += -DBOOTLOADER_SIZE=4096 - +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = lufa-ms # Build Options # change yes to no to disable diff --git a/keyboards/gray_studio/space65/rules.mk b/keyboards/gray_studio/space65/rules.mk index 261569206a..ced89eac04 100644 --- a/keyboards/gray_studio/space65/rules.mk +++ b/keyboards/gray_studio/space65/rules.mk @@ -1,63 +1,16 @@ # MCU name MCU = atmega32u4 -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - - -# -# LUFA specific -# -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - -# Input clock frequency. -# This will define a symbol, F_USB, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_USB = $(F_CPU) - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - - # Bootloader selection # Teensy halfkay # Pro Micro caterina # Atmel DFU atmel-dfu # LUFA DFU lufa-dfu # QMK DFU qmk-dfu -# atmega32a bootloadHID +# ATmega32A bootloadHID +# ATmega328P USBasp BOOTLOADER = atmel-dfu - -# If you don't know the bootloader type, then you can specify the -# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line -# Teensy halfKay 512 -# Teensy++ halfKay 1024 -# Atmel DFU loader 4096 -# LUFA bootloader 4096 -# USBaspLoader 2048 -# OPT_DEFS += -DBOOTLOADER_SIZE=4096 - - # Build Options # change yes to no to disable # @@ -79,4 +32,4 @@ AUDIO_ENABLE = no # Audio output on port C6 FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400) -LAYOUTS = 65_ansi_blocker \ No newline at end of file +LAYOUTS = 65_ansi_blocker -- cgit v1.2.3 From b47c10bf6f152d7a5c35fc4f7478aa69e91fb081 Mon Sep 17 00:00:00 2001 From: fauxpark Date: Wed, 30 Oct 2019 15:27:25 +1100 Subject: Cleanup rules.mk for 32U4 keyboards, T-Z (#7190) * Cleanup rules.mk for 32U4 keyboards, T-Z * Use atmel-dfu in place of lufa-ms until it exists --- keyboards/gray_studio/cod67/rules.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboards/gray_studio') diff --git a/keyboards/gray_studio/cod67/rules.mk b/keyboards/gray_studio/cod67/rules.mk index 1df4615eb9..196dfb8c48 100644 --- a/keyboards/gray_studio/cod67/rules.mk +++ b/keyboards/gray_studio/cod67/rules.mk @@ -9,7 +9,7 @@ MCU = atmega32u4 # QMK DFU qmk-dfu # ATmega32A bootloadHID # ATmega328P USBasp -BOOTLOADER = lufa-ms +BOOTLOADER = atmel-dfu # actually lufa-ms # Build Options # change yes to no to disable -- cgit v1.2.3 From b1c2bf071bcfd0d5badf79656f523dd8f5146f25 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Tue, 29 Oct 2019 22:33:46 -0700 Subject: [Keyboard] Think 6.5 (#7199) * generated files * create the physical and electrical matrix, thanks noroadsleft * add an appropriate keymap * add qmk configurator support * add readme * add keyboard configuration and rules * move over the think6.5 to the gray_studio directory * move to hotswap in anticipation of non hotswap pcb support * update readme to have the correct make path * rename to hotswap * add community layout support by using the LAYOUT_65_ansi_blocker LAYOUT macro name * thanks to cygnus for pointing out the solder json file to me. This commit is pretty much the same as the hotswap as it uses the same pins and switch matrix. * update readme to state that LAYOUT_65_ansi_blocker works for both hotswap and solder. * wrong pound include * add LED support. Soldered PCB only supports caps lock LED * add readme notes for indicator led * Update keyboards/gray_studio/think65/hotswap/keymaps/default/keymap.c Co-Authored-By: fauxpark * Update keyboards/gray_studio/think65/hotswap/rules.mk Co-Authored-By: fauxpark * Update keyboards/gray_studio/think65/hotswap/rules.mk Co-Authored-By: fauxpark * Update keyboards/gray_studio/think65/solder/keymaps/default/keymap.c Co-Authored-By: fauxpark * Update keyboards/gray_studio/think65/solder/rules.mk Co-Authored-By: fauxpark * Update keyboards/gray_studio/think65/solder/rules.mk Co-Authored-By: fauxpark --- keyboards/gray_studio/think65/hotswap/config.h | 72 ++++++++++ keyboards/gray_studio/think65/hotswap/hotswap.c | 71 ++++++++++ keyboards/gray_studio/think65/hotswap/hotswap.h | 35 +++++ keyboards/gray_studio/think65/hotswap/info.json | 82 +++++++++++ .../think65/hotswap/keymaps/default/config.h | 19 +++ .../think65/hotswap/keymaps/default/keymap.c | 34 +++++ .../think65/hotswap/keymaps/default/readme.md | 1 + keyboards/gray_studio/think65/hotswap/readme.md | 15 ++ keyboards/gray_studio/think65/hotswap/rules.mk | 40 ++++++ keyboards/gray_studio/think65/solder/config.h | 73 ++++++++++ keyboards/gray_studio/think65/solder/info.json | 157 +++++++++++++++++++++ .../think65/solder/keymaps/default/config.h | 19 +++ .../think65/solder/keymaps/default/keymap.c | 34 +++++ .../think65/solder/keymaps/default/readme.md | 1 + keyboards/gray_studio/think65/solder/readme.md | 17 +++ keyboards/gray_studio/think65/solder/rules.mk | 40 ++++++ keyboards/gray_studio/think65/solder/solder.c | 57 ++++++++ keyboards/gray_studio/think65/solder/solder.h | 49 +++++++ 18 files changed, 816 insertions(+) create mode 100644 keyboards/gray_studio/think65/hotswap/config.h create mode 100644 keyboards/gray_studio/think65/hotswap/hotswap.c create mode 100644 keyboards/gray_studio/think65/hotswap/hotswap.h create mode 100644 keyboards/gray_studio/think65/hotswap/info.json create mode 100644 keyboards/gray_studio/think65/hotswap/keymaps/default/config.h create mode 100644 keyboards/gray_studio/think65/hotswap/keymaps/default/keymap.c create mode 100644 keyboards/gray_studio/think65/hotswap/keymaps/default/readme.md create mode 100644 keyboards/gray_studio/think65/hotswap/readme.md create mode 100644 keyboards/gray_studio/think65/hotswap/rules.mk create mode 100644 keyboards/gray_studio/think65/solder/config.h create mode 100644 keyboards/gray_studio/think65/solder/info.json create mode 100644 keyboards/gray_studio/think65/solder/keymaps/default/config.h create mode 100644 keyboards/gray_studio/think65/solder/keymaps/default/keymap.c create mode 100644 keyboards/gray_studio/think65/solder/keymaps/default/readme.md create mode 100644 keyboards/gray_studio/think65/solder/readme.md create mode 100644 keyboards/gray_studio/think65/solder/rules.mk create mode 100644 keyboards/gray_studio/think65/solder/solder.c create mode 100644 keyboards/gray_studio/think65/solder/solder.h (limited to 'keyboards/gray_studio') diff --git a/keyboards/gray_studio/think65/hotswap/config.h b/keyboards/gray_studio/think65/hotswap/config.h new file mode 100644 index 0000000000..fc1734146d --- /dev/null +++ b/keyboards/gray_studio/think65/hotswap/config.h @@ -0,0 +1,72 @@ +/* +Copyright 2019 MechMerlin + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Gray Studio +#define PRODUCT THINK6.5 +#define DESCRIPTION 65% 6.5 degree custom keyboard + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { B0, B1, B2, B3, E6 } +#define MATRIX_COL_PINS { D1, D0, D2, D3, D5, D4, D6, D7, B4, B5, F0, F1, B6, F4, F5, F6 } + +#define DIODE_DIRECTION COL2ROW + +#define RGB_DI_PIN E2 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 22 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ + #define RGBLIGHT_ANIMATIONS +// /*== or choose animations ==*/ +// #define RGBLIGHT_EFFECT_BREATHING +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD +// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE +// #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +#endif + +// generated by KBFirmware JSON to QMK Parser +// https://noroadsleft.github.io/kbf_qmk_converter/ \ No newline at end of file diff --git a/keyboards/gray_studio/think65/hotswap/hotswap.c b/keyboards/gray_studio/think65/hotswap/hotswap.c new file mode 100644 index 0000000000..07cdc8b1f7 --- /dev/null +++ b/keyboards/gray_studio/think65/hotswap/hotswap.c @@ -0,0 +1,71 @@ +/* Copyright 2019 MechMerlin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "hotswap.h" + +// Optional override functions below. +// You can leave any or all of these undefined. +// These are only required if you want to perform custom actions. + + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + setPinOutput(C6); + setPinOutput(C7); + setPinOutput(F7); + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + return process_record_user(keycode, record); +} + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { + writePinLow(C7); + } else { + writePinHigh(C7); + } + + if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) { + writePinLow(C6); + } else { + writePinHigh(C6); + } + + if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) { + writePinLow(F7); + } else { + writePinHigh(F7); + } + + led_set_user(usb_led); +} + diff --git a/keyboards/gray_studio/think65/hotswap/hotswap.h b/keyboards/gray_studio/think65/hotswap/hotswap.h new file mode 100644 index 0000000000..f6087e39e6 --- /dev/null +++ b/keyboards/gray_studio/think65/hotswap/hotswap.h @@ -0,0 +1,35 @@ +/* Copyright 2019 MechMerlin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +#define LAYOUT_65_ansi_blocker( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, \ + K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \ + K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, K3F, \ + K40, K41, K43, K46, K4A, K4B, K4D, K4E, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E, K0F }, \ + { K10, KC_NO, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ + { K20, KC_NO, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, KC_NO, K2F }, \ + { KC_NO, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, K3E, K3F }, \ + { K40, K41, KC_NO, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \ +} + +// generated by KBFirmware JSON to QMK Parser +// https://noroadsleft.github.io/kbf_qmk_converter/ \ No newline at end of file diff --git a/keyboards/gray_studio/think65/hotswap/info.json b/keyboards/gray_studio/think65/hotswap/info.json new file mode 100644 index 0000000000..6047c4f4a2 --- /dev/null +++ b/keyboards/gray_studio/think65/hotswap/info.json @@ -0,0 +1,82 @@ +{ + "keyboard_name": "THINK6.5", + "url": "", + "maintainer": "qmk", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT_65_ansi_blocker": { + "key_count": 67, + "layout": [ + {"label":"K00 (B0,D1)", "x":0, "y":0}, + {"label":"K01 (B0,D0)", "x":1, "y":0}, + {"label":"K02 (B0,D2)", "x":2, "y":0}, + {"label":"K03 (B0,D3)", "x":3, "y":0}, + {"label":"K04 (B0,D5)", "x":4, "y":0}, + {"label":"K05 (B0,D4)", "x":5, "y":0}, + {"label":"K06 (B0,D6)", "x":6, "y":0}, + {"label":"K07 (B0,D7)", "x":7, "y":0}, + {"label":"K08 (B0,B4)", "x":8, "y":0}, + {"label":"K09 (B0,B5)", "x":9, "y":0}, + {"label":"K0A (B0,F0)", "x":10, "y":0}, + {"label":"K0B (B0,F1)", "x":11, "y":0}, + {"label":"K0C (B0,B6)", "x":12, "y":0}, + {"label":"K0E (B0,F5)", "x":13, "y":0, "w":2}, + {"label":"K0F (B0,F6)", "x":15, "y":0}, + {"label":"K10 (B1,D1)", "x":0, "y":1, "w":1.5}, + {"label":"K12 (B1,D2)", "x":1.5, "y":1}, + {"label":"K13 (B1,D3)", "x":2.5, "y":1}, + {"label":"K14 (B1,D5)", "x":3.5, "y":1}, + {"label":"K15 (B1,D4)", "x":4.5, "y":1}, + {"label":"K16 (B1,D6)", "x":5.5, "y":1}, + {"label":"K17 (B1,D7)", "x":6.5, "y":1}, + {"label":"K18 (B1,B4)", "x":7.5, "y":1}, + {"label":"K19 (B1,B5)", "x":8.5, "y":1}, + {"label":"K1A (B1,F0)", "x":9.5, "y":1}, + {"label":"K1B (B1,F1)", "x":10.5, "y":1}, + {"label":"K1C (B1,B6)", "x":11.5, "y":1}, + {"label":"K1D (B1,F4)", "x":12.5, "y":1}, + {"label":"K1E (B1,F5)", "x":13.5, "y":1, "w":1.5}, + {"label":"K1F (B1,F6)", "x":15, "y":1}, + {"label":"K20 (B2,D1)", "x":0, "y":2, "w":1.75}, + {"label":"K22 (B2,D2)", "x":1.75, "y":2}, + {"label":"K23 (B2,D3)", "x":2.75, "y":2}, + {"label":"K24 (B2,D5)", "x":3.75, "y":2}, + {"label":"K25 (B2,D4)", "x":4.75, "y":2}, + {"label":"K26 (B2,D6)", "x":5.75, "y":2}, + {"label":"K27 (B2,D7)", "x":6.75, "y":2}, + {"label":"K28 (B2,B4)", "x":7.75, "y":2}, + {"label":"K29 (B2,B5)", "x":8.75, "y":2}, + {"label":"K2A (B2,F0)", "x":9.75, "y":2}, + {"label":"K2B (B2,F1)", "x":10.75, "y":2}, + {"label":"K2C (B2,B6)", "x":11.75, "y":2}, + {"label":"K2D (B2,F4)", "x":12.75, "y":2, "w":2.25}, + {"label":"K2F (B2,F6)", "x":15, "y":2}, + {"label":"K31 (B3,D0)", "x":0, "y":3, "w":2.25}, + {"label":"K32 (B3,D2)", "x":2.25, "y":3}, + {"label":"K33 (B3,D3)", "x":3.25, "y":3}, + {"label":"K34 (B3,D5)", "x":4.25, "y":3}, + {"label":"K35 (B3,D4)", "x":5.25, "y":3}, + {"label":"K36 (B3,D6)", "x":6.25, "y":3}, + {"label":"K37 (B3,D7)", "x":7.25, "y":3}, + {"label":"K38 (B3,B4)", "x":8.25, "y":3}, + {"label":"K39 (B3,B5)", "x":9.25, "y":3}, + {"label":"K3A (B3,F0)", "x":10.25, "y":3}, + {"label":"K3B (B3,F1)", "x":11.25, "y":3}, + {"label":"K3D (B3,F4)", "x":12.25, "y":3, "w":1.75}, + {"label":"K3E (B3,F5)", "x":14, "y":3}, + {"label":"K3F (B3,F6)", "x":15, "y":3}, + {"label":"K40 (E6,D1)", "x":0, "y":4, "w":1.25}, + {"label":"K41 (E6,D0)", "x":1.25, "y":4, "w":1.25}, + {"label":"K43 (E6,D3)", "x":2.5, "y":4, "w":1.25}, + {"label":"K46 (E6,D6)", "x":3.75, "y":4, "w":6.25}, + {"label":"K4A (E6,F0)", "x":10, "y":4, "w":1.25}, + {"label":"K4B (E6,F1)", "x":11.25, "y":4, "w":1.25}, + {"label":"K4D (E6,F4)", "x":13, "y":4}, + {"label":"K4E (E6,F5)", "x":14, "y":4}, + {"label":"K4F (E6,F6)", "x":15, "y":4} + ] + } + } + ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/" +} \ No newline at end of file diff --git a/keyboards/gray_studio/think65/hotswap/keymaps/default/config.h b/keyboards/gray_studio/think65/hotswap/keymaps/default/config.h new file mode 100644 index 0000000000..26c6d6ade1 --- /dev/null +++ b/keyboards/gray_studio/think65/hotswap/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2019 MechMerlin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +// place overrides here diff --git a/keyboards/gray_studio/think65/hotswap/keymaps/default/keymap.c b/keyboards/gray_studio/think65/hotswap/keymaps/default/keymap.c new file mode 100644 index 0000000000..187f68c5c0 --- /dev/null +++ b/keyboards/gray_studio/think65/hotswap/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2019 MechMerlin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi_blocker( + KC_ESC, 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_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_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_PGUP, + 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_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_ansi_blocker( + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/gray_studio/think65/hotswap/keymaps/default/readme.md b/keyboards/gray_studio/think65/hotswap/keymaps/default/readme.md new file mode 100644 index 0000000000..438e10e291 --- /dev/null +++ b/keyboards/gray_studio/think65/hotswap/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for think65 diff --git a/keyboards/gray_studio/think65/hotswap/readme.md b/keyboards/gray_studio/think65/hotswap/readme.md new file mode 100644 index 0000000000..1dee91509a --- /dev/null +++ b/keyboards/gray_studio/think65/hotswap/readme.md @@ -0,0 +1,15 @@ +# Think6.5 Hotswap + +65% board with 6.5 degree angle ran by Airpotter and Oldcat. PCB Manufactured by DEMO Studio and Keyboard manufactured by Gray Studio. + +Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin) +Hardware Supported: Think6.5 Hotswap PCB +Hardware Availability: [Geekhack GB](https://geekhack.org/index.php?topic=100166.0) + +**Note:** The `LAYOUT_65_ansi_blocker` LAYOUT macro utilizes the same pins and switch matrix as the soldered (compatible) version. Any firmware made with this LAYOUT macro can be flashed on both the Solder (Compatible) version and the Hotswap version of the Think6.5. + +Make example for this keyboard (after setting up your build environment): + + make gray_studio/think65/hotswap:default + +See 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/gray_studio/think65/hotswap/rules.mk b/keyboards/gray_studio/think65/hotswap/rules.mk new file mode 100644 index 0000000000..2d789ff59a --- /dev/null +++ b/keyboards/gray_studio/think65/hotswap/rules.mk @@ -0,0 +1,40 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +HD44780_ENABLE = no # Enable support for HD44780 based LCDs + +LINK_TIME_OPTIMIZATION_ENABLE = yes + +LAYOUTS = 65_ansi_blocker + +# generated by KBFirmware JSON to QMK Parser +# https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/gray_studio/think65/solder/config.h b/keyboards/gray_studio/think65/solder/config.h new file mode 100644 index 0000000000..cc8892a116 --- /dev/null +++ b/keyboards/gray_studio/think65/solder/config.h @@ -0,0 +1,73 @@ +/* +Copyright 2019 MechMerlin + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Gray Studio +#define PRODUCT THINK6.5 +#define DESCRIPTION 65% 6.5 degree custom keyboard + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ + // 0 1 2 3 4 5 6 7 8 9 A B C D E F +#define MATRIX_ROW_PINS { B0, B1, B2, B3, E6 } +#define MATRIX_COL_PINS { D1, D0, D2, D3, D5, D4, D6, D7, B4, B5, F0, F1, B6, F4, F5, F6 } + +#define DIODE_DIRECTION COL2ROW + +#define RGB_DI_PIN E2 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 22 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ + #define RGBLIGHT_ANIMATIONS +// /*== or choose animations ==*/ +// #define RGBLIGHT_EFFECT_BREATHING +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD +// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE +// #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +#endif + +// generated by KBFirmware JSON to QMK Parser +// https://noroadsleft.github.io/kbf_qmk_converter/ \ No newline at end of file diff --git a/keyboards/gray_studio/think65/solder/info.json b/keyboards/gray_studio/think65/solder/info.json new file mode 100644 index 0000000000..0be5042538 --- /dev/null +++ b/keyboards/gray_studio/think65/solder/info.json @@ -0,0 +1,157 @@ +{ + "keyboard_name": "THINK6.5", + "url": "", + "maintainer": "qmk", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT_65_ansi_blocker": { + "key_count": 67, + "layout": [ + {"label":"K00 (B0,D1)", "x":0, "y":0}, + {"label":"K01 (B0,D0)", "x":1, "y":0}, + {"label":"K02 (B0,D2)", "x":2, "y":0}, + {"label":"K03 (B0,D3)", "x":3, "y":0}, + {"label":"K04 (B0,D5)", "x":4, "y":0}, + {"label":"K05 (B0,D4)", "x":5, "y":0}, + {"label":"K06 (B0,D6)", "x":6, "y":0}, + {"label":"K07 (B0,D7)", "x":7, "y":0}, + {"label":"K08 (B0,B4)", "x":8, "y":0}, + {"label":"K09 (B0,B5)", "x":9, "y":0}, + {"label":"K0A (B0,F0)", "x":10, "y":0}, + {"label":"K0B (B0,F1)", "x":11, "y":0}, + {"label":"K0C (B0,B6)", "x":12, "y":0}, + {"label":"K0E (B0,F5)", "x":13, "y":0, "w":2}, + {"label":"K0F (B0,F6)", "x":15, "y":0}, + {"label":"K10 (B1,D1)", "x":0, "y":1, "w":1.5}, + {"label":"K12 (B1,D2)", "x":1.5, "y":1}, + {"label":"K13 (B1,D3)", "x":2.5, "y":1}, + {"label":"K14 (B1,D5)", "x":3.5, "y":1}, + {"label":"K15 (B1,D4)", "x":4.5, "y":1}, + {"label":"K16 (B1,D6)", "x":5.5, "y":1}, + {"label":"K17 (B1,D7)", "x":6.5, "y":1}, + {"label":"K18 (B1,B4)", "x":7.5, "y":1}, + {"label":"K19 (B1,B5)", "x":8.5, "y":1}, + {"label":"K1A (B1,F0)", "x":9.5, "y":1}, + {"label":"K1B (B1,F1)", "x":10.5, "y":1}, + {"label":"K1C (B1,B6)", "x":11.5, "y":1}, + {"label":"K1D (B1,F4)", "x":12.5, "y":1}, + {"label":"K1E (B1,F5)", "x":13.5, "y":1, "w":1.5}, + {"label":"K1F (B1,F6)", "x":15, "y":1}, + {"label":"K20 (B2,D1)", "x":0, "y":2, "w":1.75}, + {"label":"K22 (B2,D2)", "x":1.75, "y":2}, + {"label":"K23 (B2,D3)", "x":2.75, "y":2}, + {"label":"K24 (B2,D5)", "x":3.75, "y":2}, + {"label":"K25 (B2,D4)", "x":4.75, "y":2}, + {"label":"K26 (B2,D6)", "x":5.75, "y":2}, + {"label":"K27 (B2,D7)", "x":6.75, "y":2}, + {"label":"K28 (B2,B4)", "x":7.75, "y":2}, + {"label":"K29 (B2,B5)", "x":8.75, "y":2}, + {"label":"K2A (B2,F0)", "x":9.75, "y":2}, + {"label":"K2B (B2,F1)", "x":10.75, "y":2}, + {"label":"K2C (B2,B6)", "x":11.75, "y":2}, + {"label":"K2D (B2,F4)", "x":12.75, "y":2, "w":2.25}, + {"label":"K2F (B2,F6)", "x":15, "y":2}, + {"label":"K31 (B3,D0)", "x":0, "y":3, "w":2.25}, + {"label":"K32 (B3,D2)", "x":2.25, "y":3}, + {"label":"K33 (B3,D3)", "x":3.25, "y":3}, + {"label":"K34 (B3,D5)", "x":4.25, "y":3}, + {"label":"K35 (B3,D4)", "x":5.25, "y":3}, + {"label":"K36 (B3,D6)", "x":6.25, "y":3}, + {"label":"K37 (B3,D7)", "x":7.25, "y":3}, + {"label":"K38 (B3,B4)", "x":8.25, "y":3}, + {"label":"K39 (B3,B5)", "x":9.25, "y":3}, + {"label":"K3A (B3,F0)", "x":10.25, "y":3}, + {"label":"K3B (B3,F1)", "x":11.25, "y":3}, + {"label":"K3D (B3,F4)", "x":12.25, "y":3, "w":1.75}, + {"label":"K3E (B3,F5)", "x":14, "y":3}, + {"label":"K3F (B3,F6)", "x":15, "y":3}, + {"label":"K40 (E6,D1)", "x":0, "y":4, "w":1.25}, + {"label":"K41 (E6,D0)", "x":1.25, "y":4, "w":1.25}, + {"label":"K43 (E6,D3)", "x":2.5, "y":4, "w":1.25}, + {"label":"K46 (E6,D6)", "x":3.75, "y":4, "w":6.25}, + {"label":"K4A (E6,F0)", "x":10, "y":4, "w":1.25}, + {"label":"K4B (E6,F1)", "x":11.25, "y":4, "w":1.25}, + {"label":"K4D (E6,F4)", "x":13, "y":4}, + {"label":"K4E (E6,F5)", "x":14, "y":4}, + {"label":"K4F (E6,F6)", "x":15, "y":4} + ] + }, + + "LAYOUT_all": { + "key_count": 69, + "layout": [ + {"label":"K00 (B0,D1)", "x":0, "y":0}, + {"label":"K01 (B0,D0)", "x":1, "y":0}, + {"label":"K02 (B0,D2)", "x":2, "y":0}, + {"label":"K03 (B0,D3)", "x":3, "y":0}, + {"label":"K04 (B0,D5)", "x":4, "y":0}, + {"label":"K05 (B0,D4)", "x":5, "y":0}, + {"label":"K06 (B0,D6)", "x":6, "y":0}, + {"label":"K07 (B0,D7)", "x":7, "y":0}, + {"label":"K08 (B0,B4)", "x":8, "y":0}, + {"label":"K09 (B0,B5)", "x":9, "y":0}, + {"label":"K0A (B0,F0)", "x":10, "y":0}, + {"label":"K0B (B0,F1)", "x":11, "y":0}, + {"label":"K0C (B0,B6)", "x":12, "y":0}, + {"label":"K0D (B0,F4)", "x":13, "y":0}, + {"label":"K0E (B0,F5)", "x":14, "y":0}, + {"label":"K0F (B0,F6)", "x":15, "y":0}, + {"label":"K10 (B1,D1)", "x":0, "y":1, "w":1.5}, + {"label":"K12 (B1,D2)", "x":1.5, "y":1}, + {"label":"K13 (B1,D3)", "x":2.5, "y":1}, + {"label":"K14 (B1,D5)", "x":3.5, "y":1}, + {"label":"K15 (B1,D4)", "x":4.5, "y":1}, + {"label":"K16 (B1,D6)", "x":5.5, "y":1}, + {"label":"K17 (B1,D7)", "x":6.5, "y":1}, + {"label":"K18 (B1,B4)", "x":7.5, "y":1}, + {"label":"K19 (B1,B5)", "x":8.5, "y":1}, + {"label":"K1A (B1,F0)", "x":9.5, "y":1}, + {"label":"K1B (B1,F1)", "x":10.5, "y":1}, + {"label":"K1C (B1,B6)", "x":11.5, "y":1}, + {"label":"K1D (B1,F4)", "x":12.5, "y":1}, + {"label":"K1E (B1,F5)", "x":13.5, "y":1, "w":1.5}, + {"label":"K1F (B1,F6)", "x":15, "y":1}, + {"label":"K20 (B2,D1)", "x":0, "y":2, "w":1.75}, + {"label":"K22 (B2,D2)", "x":1.75, "y":2}, + {"label":"K23 (B2,D3)", "x":2.75, "y":2}, + {"label":"K24 (B2,D5)", "x":3.75, "y":2}, + {"label":"K25 (B2,D4)", "x":4.75, "y":2}, + {"label":"K26 (B2,D6)", "x":5.75, "y":2}, + {"label":"K27 (B2,D7)", "x":6.75, "y":2}, + {"label":"K28 (B2,B4)", "x":7.75, "y":2}, + {"label":"K29 (B2,B5)", "x":8.75, "y":2}, + {"label":"K2A (B2,F0)", "x":9.75, "y":2}, + {"label":"K2B (B2,F1)", "x":10.75, "y":2}, + {"label":"K2C (B2,B6)", "x":11.75, "y":2}, + {"label":"K2D (B2,F4)", "x":12.75, "y":2, "w":2.25}, + {"label":"K2F (B2,F6)", "x":15, "y":2}, + {"label":"K30 (B3,D1)", "x":0, "y":3, "w":1.25}, + {"label":"K31 (B3,D0)", "x":1.25, "y":3}, + {"label":"K32 (B3,D2)", "x":2.25, "y":3}, + {"label":"K33 (B3,D3)", "x":3.25, "y":3}, + {"label":"K34 (B3,D5)", "x":4.25, "y":3}, + {"label":"K35 (B3,D4)", "x":5.25, "y":3}, + {"label":"K36 (B3,D6)", "x":6.25, "y":3}, + {"label":"K37 (B3,D7)", "x":7.25, "y":3}, + {"label":"K38 (B3,B4)", "x":8.25, "y":3}, + {"label":"K39 (B3,B5)", "x":9.25, "y":3}, + {"label":"K3A (B3,F0)", "x":10.25, "y":3}, + {"label":"K3B (B3,F1)", "x":11.25, "y":3}, + {"label":"K3D (B3,F4)", "x":12.25, "y":3, "w":1.75}, + {"label":"K3E (B3,F5)", "x":14, "y":3}, + {"label":"K3F (B3,F6)", "x":15, "y":3}, + {"label":"K40 (E6,D1)", "x":0, "y":4, "w":1.25}, + {"label":"K41 (E6,D0)", "x":1.25, "y":4, "w":1.25}, + {"label":"K43 (E6,D3)", "x":2.5, "y":4, "w":1.25}, + {"label":"K46 (E6,D6)", "x":3.75, "y":4, "w":6.25}, + {"label":"K4A (E6,F0)", "x":10, "y":4, "w":1.25}, + {"label":"K4B (E6,F1)", "x":11.25, "y":4, "w":1.25}, + {"label":"K4D (E6,F4)", "x":13, "y":4}, + {"label":"K4E (E6,F5)", "x":14, "y":4}, + {"label":"K4F (E6,F6)", "x":15, "y":4} + ] + } + } + ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/" +} \ No newline at end of file diff --git a/keyboards/gray_studio/think65/solder/keymaps/default/config.h b/keyboards/gray_studio/think65/solder/keymaps/default/config.h new file mode 100644 index 0000000000..26c6d6ade1 --- /dev/null +++ b/keyboards/gray_studio/think65/solder/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2019 MechMerlin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +// place overrides here diff --git a/keyboards/gray_studio/think65/solder/keymaps/default/keymap.c b/keyboards/gray_studio/think65/solder/keymaps/default/keymap.c new file mode 100644 index 0000000000..187f68c5c0 --- /dev/null +++ b/keyboards/gray_studio/think65/solder/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2019 MechMerlin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi_blocker( + KC_ESC, 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_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_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_PGUP, + 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_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_ansi_blocker( + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/gray_studio/think65/solder/keymaps/default/readme.md b/keyboards/gray_studio/think65/solder/keymaps/default/readme.md new file mode 100644 index 0000000000..438e10e291 --- /dev/null +++ b/keyboards/gray_studio/think65/solder/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for think65 diff --git a/keyboards/gray_studio/think65/solder/readme.md b/keyboards/gray_studio/think65/solder/readme.md new file mode 100644 index 0000000000..e8636bf8ae --- /dev/null +++ b/keyboards/gray_studio/think65/solder/readme.md @@ -0,0 +1,17 @@ +# Think6.5 Solder (Compatible) + +65% board with 6.5 degree angle ran by Airpotter and Oldcat. PCB Manufactured by DEMO Studio and Keyboard manufactured by Gray Studio. + +Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin) +Hardware Supported: Think6.5 Compatible PCB +Hardware Availability: [Geekhack GB](https://geekhack.org/index.php?topic=100166.0) + +**Note:** The `LAYOUT_65_ansi_blocker` LAYOUT macro utilizes the same pins and switch matrix as the hotswap version. Any firmware made with this LAYOUT macro can be flashed on both the Solder (Compatible) version and the Hotswap version of the Think6.5. + +**Indicator LEDs:** The solder PCB ONLY supports Caps Lock LEDs unlike the Hotswap version that supports Num Lock, Caps Lock, and Scroll Lock. + +Make example for this keyboard (after setting up your build environment): + + make gray_studio/think65/solder:default + +See 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/gray_studio/think65/solder/rules.mk b/keyboards/gray_studio/think65/solder/rules.mk new file mode 100644 index 0000000000..2d789ff59a --- /dev/null +++ b/keyboards/gray_studio/think65/solder/rules.mk @@ -0,0 +1,40 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +HD44780_ENABLE = no # Enable support for HD44780 based LCDs + +LINK_TIME_OPTIMIZATION_ENABLE = yes + +LAYOUTS = 65_ansi_blocker + +# generated by KBFirmware JSON to QMK Parser +# https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/gray_studio/think65/solder/solder.c b/keyboards/gray_studio/think65/solder/solder.c new file mode 100644 index 0000000000..4f40fb4a92 --- /dev/null +++ b/keyboards/gray_studio/think65/solder/solder.c @@ -0,0 +1,57 @@ +/* Copyright 2019 MechMerlin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "solder.h" + +// Optional override functions below. +// You can leave any or all of these undefined. +// These are only required if you want to perform custom actions. + + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + setPinOutput(C7); + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + return process_record_user(keycode, record); +} + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { + writePinLow(C7); + } else { + writePinHigh(C7); + } + + led_set_user(usb_led); +} + diff --git a/keyboards/gray_studio/think65/solder/solder.h b/keyboards/gray_studio/think65/solder/solder.h new file mode 100644 index 0000000000..b77cc578b1 --- /dev/null +++ b/keyboards/gray_studio/think65/solder/solder.h @@ -0,0 +1,49 @@ +/* Copyright 2019 MechMerlin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, K3F, \ + K40, K41, K43, K46, K4A, K4B, K4D, K4E, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, KC_NO, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ + { K20, KC_NO, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, KC_NO, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, K3E, K3F }, \ + { K40, K41, KC_NO, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \ +} + +#define LAYOUT_65_ansi_blocker( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, \ + K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \ + K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, K3F, \ + K40, K41, K43, K46, K4A, K4B, K4D, K4E, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E, K0F }, \ + { K10, KC_NO, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ + { K20, KC_NO, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, KC_NO, K2F }, \ + { KC_NO, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, K3E, K3F }, \ + { K40, K41, KC_NO, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \ +} + +// generated by KBFirmware JSON to QMK Parser +// https://noroadsleft.github.io/kbf_qmk_converter/ \ No newline at end of file -- cgit v1.2.3 From efa28d0f5cca55b0dfecaddd0860ec3dfeab8bb0 Mon Sep 17 00:00:00 2001 From: fauxpark Date: Tue, 5 Nov 2019 11:05:03 +1100 Subject: Convert some PS2AVRGB boards to I2C WS2812 driver (#7241) * Convert some PS2AVRGB boards to I2C WS2812 driver * Fix Travis failure for bface --- keyboards/gray_studio/hb85/hb85.c | 40 +++++++------------------------------ keyboards/gray_studio/hb85/rules.mk | 19 +----------------- 2 files changed, 8 insertions(+), 51 deletions(-) (limited to 'keyboards/gray_studio') diff --git a/keyboards/gray_studio/hb85/hb85.c b/keyboards/gray_studio/hb85/hb85.c index 3e42023587..21562b9e0f 100644 --- a/keyboards/gray_studio/hb85/hb85.c +++ b/keyboards/gray_studio/hb85/hb85.c @@ -16,33 +16,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include - -#include "rgblight.h" - -#include "i2c_master.h" -#include "quantum.h" - -#ifdef RGBLIGHT_ENABLE -extern rgblight_config_t rgblight_config; - -void rgblight_set(void) { - if (!rgblight_config.enable) { - for (uint8_t i = 0; i < RGBLED_NUM; i++) { - led[i].r = 0; - led[i].g = 0; - led[i].b = 0; - } - } - - i2c_init(); - i2c_transmit(0xb0, (uint8_t*)led, 3 * RGBLED_NUM, 100); -} -#endif - -__attribute__ ((weak)) -void matrix_scan_user(void) { -} +#include "hb85.h" void backlight_init_ports(void) { // initialize pins D0, D1, D4 and D6 as output @@ -51,7 +25,7 @@ void backlight_init_ports(void) { setPinOutput(D4); setPinOutput(D6); - // turn RGB LEDs on + // turn backlight LEDs on writePinHigh(D0); writePinHigh(D1); writePinHigh(D4); @@ -59,17 +33,17 @@ void backlight_init_ports(void) { } void backlight_set(uint8_t level) { - if (level == 0) { - // turn RGB LEDs off + if (level == 0) { + // turn backlight LEDs off writePinLow(D0); writePinLow(D1); writePinLow(D4); writePinLow(D6); - } else { - // turn RGB LEDs on + } else { + // turn backlight LEDs on writePinHigh(D0); writePinHigh(D1); writePinHigh(D4); writePinHigh(D6); - } + } } diff --git a/keyboards/gray_studio/hb85/rules.mk b/keyboards/gray_studio/hb85/rules.mk index 5339aad89c..ec57b03dcb 100644 --- a/keyboards/gray_studio/hb85/rules.mk +++ b/keyboards/gray_studio/hb85/rules.mk @@ -1,18 +1,3 @@ -# Copyright 2019 fcoury -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - # MCU name MCU = atmega32a @@ -34,8 +19,6 @@ CONSOLE_ENABLE = yes COMMAND_ENABLE = yes BACKLIGHT_ENABLE = no RGBLIGHT_ENABLE = yes -RGBLIGHT_CUSTOM_DRIVER = yes +WS2812_DRIVER = i2c OPT_DEFS = -DDEBUG_LEVEL=0 - -SRC += i2c_master.c -- cgit v1.2.3 From 26ce66e30675ebc785ac3e2e6bd1deeb479cb7e1 Mon Sep 17 00:00:00 2001 From: Rys Sommefeldt Date: Sat, 9 Nov 2019 02:30:44 +0000 Subject: [Keyboard] Update COD67 support to complete it and add a personal map (#7291) * Update docs for default keymap * Update COD67 docs with fixes and macOS details * Add a personal COD67 2-layer map with RGB control * Enable RGB, NKRO and change firmware format to bin * Swap k0D and k48 to fix backspace on the top row * Add RGB config and tidy up a bit * Finish default map because merlin was full of bbq * Whoops, rogue tabs * Typo fix in the main COD67 readme * Remove empty function defs in keymap * Swap how the backspace key relocation happens * Fix PRODUCT_ID and add a link to software PWM docs * Disable NKRO and bootmagic and enable mouse keys * Better header guard * Whoops, forgot to remote the #endif --- keyboards/gray_studio/cod67/cod67.h | 4 +- keyboards/gray_studio/cod67/config.h | 147 +++------------------ .../gray_studio/cod67/keymaps/default/keymap.c | 8 +- .../gray_studio/cod67/keymaps/default/readme.md | 6 +- keyboards/gray_studio/cod67/keymaps/rys/keymap.c | 23 ++++ keyboards/gray_studio/cod67/keymaps/rys/readme.md | 5 + keyboards/gray_studio/cod67/readme.md | 35 +++-- keyboards/gray_studio/cod67/rules.mk | 10 +- 8 files changed, 90 insertions(+), 148 deletions(-) create mode 100644 keyboards/gray_studio/cod67/keymaps/rys/keymap.c create mode 100644 keyboards/gray_studio/cod67/keymaps/rys/readme.md (limited to 'keyboards/gray_studio') diff --git a/keyboards/gray_studio/cod67/cod67.h b/keyboards/gray_studio/cod67/cod67.h index 2d3911e69c..ed4a729971 100644 --- a/keyboards/gray_studio/cod67/cod67.h +++ b/keyboards/gray_studio/cod67/cod67.h @@ -19,11 +19,11 @@ #include "quantum.h" #define LAYOUT( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K48, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ - K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D \ + K40, K41, K42, K43, K44, K45, K46, K47, K0D, K49, K4A, K4B, K4C, K4D \ ) \ { \ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ diff --git a/keyboards/gray_studio/cod67/config.h b/keyboards/gray_studio/cod67/config.h index 47b42d8a60..2231827ba6 100644 --- a/keyboards/gray_studio/cod67/config.h +++ b/keyboards/gray_studio/cod67/config.h @@ -15,18 +15,17 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef CONFIG_H -#define CONFIG_H +#pragma once #include "config_common.h" /* USB Device descriptor parameter */ #define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 +#define PRODUCT_ID 0x0C0D #define DEVICE_VER 0x0001 -#define MANUFACTURER Gray -#define PRODUCT cod67 -#define DESCRIPTION 60% Custom Keyboard +#define MANUFACTURER Gray Studio +#define PRODUCT COD67 +#define DESCRIPTION 60% custom keyboard /* key matrix size */ #define MATRIX_ROWS 5 @@ -49,135 +48,27 @@ along with this program. If not, see . /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW +/* D4 is not a PWM pin, but look at timer assisted software PWM if you want something other than toggle + * https://docs.qmk.fm/#/feature_backlight?id=timer-assisted-pwm-implementation + */ #define BACKLIGHT_PIN D4 -#define BACKLIGHT_LEVELS 3 + +#define RGB_DI_PIN B2 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 20 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 255 + #define RGBLIGHT_SLEEP + #define RGBLIGHT_ANIMATIONS +#endif /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - -/* number of backlight levels */ - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. - * This is userful for the Windows task manager shortcut (ctrl+shift+esc). - */ -// #define GRAVE_ESC_CTRL_OVERRIDE - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -//#define FORCE_NKRO - -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -/* - * MIDI options - */ - -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - -/* enable basic MIDI features: - - MIDI notes can be sent when in Music mode is on -*/ -//#define MIDI_BASIC - -/* enable advanced MIDI features: - - MIDI notes can be added to the keymap - - Octave shift and transpose - - Virtual sustain, portamento, and modulation wheel - - etc. -*/ -//#define MIDI_ADVANCED - -/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ -//#define MIDI_TONE_KEYCODE_OCTAVES 1 - -#endif diff --git a/keyboards/gray_studio/cod67/keymaps/default/keymap.c b/keyboards/gray_studio/cod67/keymaps/default/keymap.c index 245d7eee6f..5403bf406f 100644 --- a/keyboards/gray_studio/cod67/keymaps/default/keymap.c +++ b/keyboards/gray_studio/cod67/keymaps/default/keymap.c @@ -19,10 +19,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT( KC_GESC, 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) + 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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_TRNS, KC_ENT, + 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_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT) }; diff --git a/keyboards/gray_studio/cod67/keymaps/default/readme.md b/keyboards/gray_studio/cod67/keymaps/default/readme.md index cfbf846a9a..4b45689de8 100644 --- a/keyboards/gray_studio/cod67/keymaps/default/readme.md +++ b/keyboards/gray_studio/cod67/keymaps/default/readme.md @@ -1 +1,5 @@ -# The default keymap for cod67 +# The default keymap for a COD67 + +The default map only implements the default layer from the map on [ydkb.io](http://ydkb.io). + +If you want an example of a multi-layer map, look at [rys's map](../rys). diff --git a/keyboards/gray_studio/cod67/keymaps/rys/keymap.c b/keyboards/gray_studio/cod67/keymaps/rys/keymap.c new file mode 100644 index 0000000000..9f1d069b73 --- /dev/null +++ b/keyboards/gray_studio/cod67/keymaps/rys/keymap.c @@ -0,0 +1,23 @@ +#include QMK_KEYBOARD_H + +enum layers { + _TOP, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_TOP] = LAYOUT( + KC_ESC, 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_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_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_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_DEL, + KC_LCTL, KC_LALT, KC_LGUI, _______, _______, KC_SPC, _______, _______, _______, KC_RGUI, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT + ), + [_FN] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + _______, RGB_TOG, RGB_MOD,RGB_RMOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_TOGG, + _______, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/gray_studio/cod67/keymaps/rys/readme.md b/keyboards/gray_studio/cod67/keymaps/rys/readme.md new file mode 100644 index 0000000000..8214809bba --- /dev/null +++ b/keyboards/gray_studio/cod67/keymaps/rys/readme.md @@ -0,0 +1,5 @@ +# Rys's keymap for a COD67 + +The COD67 supports really nice RGB underglow which you can see through the mid diffuser. I've put control for that on layer 1, along with reset on `Space`, backlight toggle on `Enter`, and the function row. The board supports all of the QMK RGB effects. + +Look at the excellent [RGB Lighting](https://docs.qmk.fm/#/feature_rgblight) docs on the QMK site for more controls. diff --git a/keyboards/gray_studio/cod67/readme.md b/keyboards/gray_studio/cod67/readme.md index 7f91cf30d1..6e79ffec4a 100644 --- a/keyboards/gray_studio/cod67/readme.md +++ b/keyboards/gray_studio/cod67/readme.md @@ -1,30 +1,45 @@ # Gray COD67 -The Gray COD67 is a 60% keyboard with a modern and bold design. It features 20 RGB Underglow LED lights and a unique diffuser placement. The COD67 has the most stunning RGB light strip for a custom mechanical keyboard. It also features a center mounted USB C port. +The Gray COD67 is a 60% keyboard with a modern and bold design. It features 20 RGB Underglow LED lights and a unique diffuser placement. The COD67 has the most stunning RGB light strip for a custom mechanical keyboard. It also features a center mounted USB C port. -There were only 75 units made worldwide. +There were only 75 units made worldwide. Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin) Hardware Supported: Gray COD67 Hardware Availability: [Zfrontier](https://en.zfrontier.com/products/cod67) -At this time, flashing ONLY works on Windows systems. +## Bootloader mode -To put in bootloader mode, hold the `Esc` key while plugging in the USB cable. +To put in bootloader mode, hold the `Esc` key while plugging in the USB cable. -The COD67 will show up as a drive. +## Making firmware Make example for this keyboard (after setting up your build environment): - make gray_studio/cod67:default:bin + make gray_studio/cod67:default See 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). -Rename the resulting `.bin` file to `cod67.bin`. +## Flashing in Windows -Drag and drop `cod67.bin` to the drive, overwriting the previous `cod67.bin` stored on it. +After putting your COD67 in bootloader mode, it will show up as a drive. -Press the `Esc` key again to reset the board. You are now ready to type! +* Rename the resulting `.bin` file to `COD67.BIN`. +* Drag and drop your new `COD67.BIN` to the drive, overwriting the previous `COD67.BIN` stored on it. +* Wait a few seconds for it to write. The caps lock LED flashes rapidly while writing. +* Press the `Esc` key again to reset the board. You are now ready to type! + +## Flashing in macOS + +After putting your COD67 in bootloader mode, it will show up as a drive. + +* Rename the resulting `.bin` file to `COD67.BIN`. +* Drag the existing `COD67.BIN` file from the drive to the Trash in Finder. +* Empty the Trash in Finder. It's important you do that due to how macOS handles hidden `.Trashes` on removable drives. It needs to be empty to free up flash space. +* Drag and drop your new `COD67.BIN` to the drive. +* Wait a few seconds for it to write. The caps lock LED flashes rapidly while writing. +* Press the `Esc` key or eject the drive in Finder to reset the board. You are now ready to type! ## Notes -The backlight pin is attached to a non PWM pin `D4` so backlight is only on/off. + +The backlight pin is attached to a non PWM pin `D4` so the backlight is only on/off. diff --git a/keyboards/gray_studio/cod67/rules.mk b/keyboards/gray_studio/cod67/rules.mk index 196dfb8c48..0bed09539f 100644 --- a/keyboards/gray_studio/cod67/rules.mk +++ b/keyboards/gray_studio/cod67/rules.mk @@ -11,19 +11,23 @@ MCU = atmega32u4 # ATmega328P USBasp BOOTLOADER = atmel-dfu # actually lufa-ms +# Mass storage bootloader on the COD67 uses bin files +FIRMWARE_FORMAT = bin + # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = yes # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = yes # Console for debug(+400) +CONSOLE_ENABLE = no # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE = no # USB Nkey Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable RGB underglow MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -- cgit v1.2.3 From 30473357290747be06e9200a7d9c751738a3b0a1 Mon Sep 17 00:00:00 2001 From: fauxpark Date: Fri, 15 Nov 2019 10:21:22 +1100 Subject: =?UTF-8?q?Add=20support=20for=20configurable=20polling=20interval?= =?UTF-8?q?=20and=20power=20usage=20o=E2=80=A6=20(#7336)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add support for custom polling interval and power usage on V-USB boards * Use 1ms as default for now --- keyboards/gray_studio/hb85/usbconfig.h | 10 ---------- 1 file changed, 10 deletions(-) (limited to 'keyboards/gray_studio') diff --git a/keyboards/gray_studio/hb85/usbconfig.h b/keyboards/gray_studio/hb85/usbconfig.h index c52c90ce8a..725a47ac33 100644 --- a/keyboards/gray_studio/hb85/usbconfig.h +++ b/keyboards/gray_studio/hb85/usbconfig.h @@ -108,20 +108,10 @@ section at the end of this file). * (e.g. HID), but never want to send any data. This option saves a couple * of bytes in flash memory and the transmit buffers in RAM. */ -#define USB_CFG_INTR_POLL_INTERVAL 1 -/* If you compile a version with endpoint 1 (interrupt-in), this is the poll - * interval. The value is in milliseconds and must not be less than 10 ms for - * low speed devices. - */ #define USB_CFG_IS_SELF_POWERED 0 /* Define this to 1 if the device has its own power supply. Set it to 0 if the * device is powered from the USB bus. */ -#define USB_CFG_MAX_BUS_POWER 500 -/* Set this variable to the maximum USB bus power consumption of your device. - * The value is in milliamperes. [It will be divided by two since USB - * communicates power requirements in units of 2 mA.] - */ #define USB_CFG_IMPLEMENT_FN_WRITE 1 /* Set this to 1 if you want usbFunctionWrite() to be called for control-out * transfers. Set it to 0 if you don't need it and want to save a couple of -- cgit v1.2.3 From 519df78cdbf7211b9e1ac6b961b0e10bb5164914 Mon Sep 17 00:00:00 2001 From: fauxpark Date: Fri, 15 Nov 2019 10:21:53 +1100 Subject: Set device version from config.h for V-USB boards (#7316) --- keyboards/gray_studio/hb85/config.h | 1 + keyboards/gray_studio/hb85/usbconfig.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'keyboards/gray_studio') diff --git a/keyboards/gray_studio/hb85/config.h b/keyboards/gray_studio/hb85/config.h index da230f7e8d..dff360ec6a 100644 --- a/keyboards/gray_studio/hb85/config.h +++ b/keyboards/gray_studio/hb85/config.h @@ -19,6 +19,7 @@ along with this program. If not, see . #define VENDOR_ID 0x20A0 #define PRODUCT_ID 0x422F +#define DEVICE_VER 0x0200 #define MANUFACTURER Gray Studio #define PRODUCT HB85 diff --git a/keyboards/gray_studio/hb85/usbconfig.h b/keyboards/gray_studio/hb85/usbconfig.h index 725a47ac33..186e2dca35 100644 --- a/keyboards/gray_studio/hb85/usbconfig.h +++ b/keyboards/gray_studio/hb85/usbconfig.h @@ -227,7 +227,7 @@ section at the end of this file). * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand * the implications! */ -#define USB_CFG_DEVICE_VERSION 0x00, 0x02 +#define USB_CFG_DEVICE_VERSION (DEVICE_VER & 0xFF), ((DEVICE_VER >> 8) & 0xFF) /* Version number of the device: Minor number first, then major number. */ #define USB_CFG_VENDOR_NAME 'G', 'r', 'a', 'y', ' ', 'S', 't', 'u', 'd', 'i', 'o' -- cgit v1.2.3