From 155375ea3267c90e006fa04fe78106ce3c5e7c9f Mon Sep 17 00:00:00 2001 From: MakotoKurauchi Date: Sun, 1 Jul 2018 05:12:17 +0900 Subject: [PATCH 1/2] Helix shrink config (#3268) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add some comment about Helix customize and auto-setup RGBLIGHT_LIMIT_VAL * add define USB_MAX_POWER_CONSUMPTION * Helix keyboard OLED, RGBLIGHT enable/disable control integrate into rules.mk rules.mk: add 4 Variables for compile control. # Helix keyboard customize # you can edit follows 4 Variables # jp: 以下の4つの変数を必要に応じて編集します。 OLED_ENABLE = no # OLED_ENABLE LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.) LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.) LED_ANIMATIONS = yes # LED animations config.h: auto set RGBLED_NUM by HELIX_ROWS and rules.mk's define * HELIX_ROWS define move from config.h to rules.mk * add readme.md * rename readme.md to readme_jp.md * add readme.md and modify readme_jp.md * change helix/ssd1306.c for select glcdfont.c position * add variable LOCAL_GLCDFONT into each keymaps rules.mk * Add iPhone/iPad LED support to Helix default keymap * renumber _ADJUST for shrink program size * Fix Helix i2c wrong bit rate * add helix serial debug code * serial debug macro move from config.h to serial.h * helix serial.c debugging... * refine debug macros * add some comments * add SELECT_SERIAL_SPEED * add comments * debugging sync_send/sync_recv * add very high speed * fix sync_send/sync_recv * fix com. start and switch send/recv * debug mode off * remove debug codes * Shrinked config.h --- keyboards/helix/rev2/config.h | 91 ++++++++++++++ keyboards/helix/rev2/keymaps/default/config.h | 95 +-------------- .../helix/rev2/keymaps/five_rows/config.h | 96 +-------------- .../helix/rev2/keymaps/five_rows/rules.mk | 12 +- keyboards/helix/rev2/keymaps/froggy/config.h | 98 +-------------- .../helix/rev2/keymaps/led_test/config.h | 73 +---------- .../helix/rev2/keymaps/led_test/rules.mk | 113 +++++++++++++++--- 7 files changed, 207 insertions(+), 371 deletions(-) diff --git a/keyboards/helix/rev2/config.h b/keyboards/helix/rev2/config.h index e8ad1b9bed..bb8e566b86 100644 --- a/keyboards/helix/rev2/config.h +++ b/keyboards/helix/rev2/config.h @@ -30,7 +30,45 @@ along with this program. If not, see . #define DESCRIPTION A split keyboard for the cheap makers +#define PREVENT_STUCK_MODIFIERS +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 100 + +/* Use I2C or Serial */ +#define USE_I2C +#define USE_SERIAL +#define USE_SERIAL_PD2 +//#define USE_MATRIX_I2C + +/* Select hand configuration */ +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +// Helix keyboard OLED support +// see ./rules.mk: OLED_ENABLE=yes or no +#ifdef OLED_ENABLE + #define SSD1306OLED +#endif + +/* Select rows configuration */ +// Rows are 4 or 5 +// #define HELIX_ROWS 5 see ./rules.mk + +/* key matrix size */ +// Rows are doubled-up +#if HELIX_ROWS == 4 + #define MATRIX_ROWS 8 + #define MATRIX_ROW_PINS { D4, C6, D7, E6 } +#elif HELIX_ROWS == 5 + #define MATRIX_ROWS 10 + #define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 } +#else + #error "expected HELIX_ROWS 4 or 5" +#endif + // wiring of each half +#define MATRIX_COLS 7 #define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 } // #define MATRIX_COL_PINS { B2, B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order @@ -60,6 +98,59 @@ along with this program. If not, see . #define ws2812_PORTREG PORTD #define ws2812_DDRREG DDRD +// Helix keyboard RGB LED support +//#define RGBLIGHT_ANIMATIONS : see ./rules.mk: LED_ANIMATIONS = yes or no +// see ./rules.mk: LED_BACK_ENABLE or LED_UNDERGLOW_ENABLE set yes +#ifdef RGBLED_BACK + #if HELIX_ROWS == 4 + #define RGBLED_NUM 25 + #elif HELIX_ROWS == 5 + #define RGBLED_NUM 32 + #endif +#else + #define RGBLED_NUM 6 +#endif + +#ifndef IOS_DEVICE_ENABLE + #if RGBLED_NUM <= 6 + #define RGBLIGHT_LIMIT_VAL 255 + #else + #if HELIX_ROWS == 5 + #define RGBLIGHT_LIMIT_VAL 120 + #else + #define RGBLIGHT_LIMIT_VAL 130 + #endif + #endif + #define RGBLIGHT_VAL_STEP 17 +#else + #if RGBLED_NUM <= 6 + #define RGBLIGHT_LIMIT_VAL 90 + #else + #if HELIX_ROWS == 5 + #define RGBLIGHT_LIMIT_VAL 35 + #else + #define RGBLIGHT_LIMIT_VAL 45 + #endif + #endif + #define RGBLIGHT_VAL_STEP 4 +#endif +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 + +#if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) +// USB_MAX_POWER_CONSUMPTION value for Helix keyboard +// 120 RGBoff, OLEDoff +// 120 OLED +// 330 RGB 6 +// 300 RGB 32 +// 310 OLED & RGB 32 + #define USB_MAX_POWER_CONSUMPTION 400 +#else + // fix iPhone and iPad power adapter issue + // iOS device need lessthan 100 + #define USB_MAX_POWER_CONSUMPTION 100 +#endif + /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/helix/rev2/keymaps/default/config.h b/keyboards/helix/rev2/keymaps/default/config.h index 17c4a30b34..0e7967c73b 100644 --- a/keyboards/helix/rev2/keymaps/default/config.h +++ b/keyboards/helix/rev2/keymaps/default/config.h @@ -23,99 +23,6 @@ along with this program. If not, see . #include "../../config.h" -/* Use I2C or Serial */ - -#define USE_I2C -#define USE_SERIAL -//#define USE_MATRIX_I2C - -/* Select hand configuration */ - -#define MASTER_LEFT -// #define MASTER_RIGHT -// #define EE_HANDS - -// Helix keyboard OLED support -// see ./rules.mk: OLED_ENABLE=yes or no -#ifdef OLED_ENABLE - #define SSD1306OLED -#endif - -/* Select rows configuration */ -// Rows are 4 or 5 -// #define HELIX_ROWS 5 see ./rules.mk - -/* key matrix size */ -// Rows are doubled-up -#if HELIX_ROWS == 4 - #define MATRIX_ROWS 8 - #define MATRIX_COLS 7 - #define MATRIX_ROW_PINS { D4, C6, D7, E6 } -#elif HELIX_ROWS == 5 - #define MATRIX_ROWS 10 - #define MATRIX_COLS 7 - #define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 } -#else - #error "expected HELIX_ROWS 4 or 5" -#endif - -#define USE_SERIAL_PD2 - -#define PREVENT_STUCK_MODIFIERS -#define TAPPING_FORCE_HOLD -#define TAPPING_TERM 100 - -// Helix keyboard RGB LED support -//#define RGBLIGHT_ANIMATIONS : see ./rules.mk: LED_ANIMATIONS = yes or no -// see ./rules.mk: LED_BACK_ENABLE or LED_UNDERGLOW_ENABLE set yes -#ifdef RGBLED_BACK - #if HELIX_ROWS == 4 - #define RGBLED_NUM 25 - #elif HELIX_ROWS == 5 - #define RGBLED_NUM 32 - #endif -#else - #define RGBLED_NUM 6 -#endif - -#ifndef IOS_DEVICE_ENABLE - #if RGBLED_NUM <= 6 - #define RGBLIGHT_LIMIT_VAL 255 - #else - #if HELIX_ROWS == 5 - #define RGBLIGHT_LIMIT_VAL 120 - #else - #define RGBLIGHT_LIMIT_VAL 130 - #endif - #endif - #define RGBLIGHT_VAL_STEP 17 -#else - #if RGBLED_NUM <= 6 - #define RGBLIGHT_LIMIT_VAL 90 - #else - #if HELIX_ROWS == 5 - #define RGBLIGHT_LIMIT_VAL 35 - #else - #define RGBLIGHT_LIMIT_VAL 45 - #endif - #endif - #define RGBLIGHT_VAL_STEP 4 -#endif -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 - -#if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) -// USB_MAX_POWER_CONSUMPTION value for Helix keyboard -// 120 RGBoff, OLEDoff -// 120 OLED -// 330 RGB 6 -// 300 RGB 32 -// 310 OLED & RGB 32 - #define USB_MAX_POWER_CONSUMPTION 400 -#else - // fix iPhone and iPad power adapter issue - // iOS device need lessthan 100 - #define USB_MAX_POWER_CONSUMPTION 100 -#endif +// place overrides here #endif /* CONFIG_USER_H */ diff --git a/keyboards/helix/rev2/keymaps/five_rows/config.h b/keyboards/helix/rev2/keymaps/five_rows/config.h index 10d9fc1c4b..0e7967c73b 100644 --- a/keyboards/helix/rev2/keymaps/five_rows/config.h +++ b/keyboards/helix/rev2/keymaps/five_rows/config.h @@ -23,100 +23,6 @@ along with this program. If not, see . #include "../../config.h" -/* Use I2C or Serial */ - -#define USE_I2C -#define USE_SERIAL -//#define USE_MATRIX_I2C - -/* Select hand configuration */ - -#define MASTER_LEFT -// #define MASTER_RIGHT -// #define EE_HANDS - -// Helix keyboard OLED support -// see ./rules.mk: OLED_ENABLE=yes or no -#ifdef OLED_ENABLE - #define SSD1306OLED -#endif - -/* Select rows configuration */ -#define HELIX_ROWS 5 - -/* key matrix size */ -// Rows are doubled-up -#if HELIX_ROWS == 4 - #define MATRIX_ROWS 8 - #define MATRIX_COLS 7 - #define MATRIX_ROW_PINS { D4, C6, D7, E6 } -#elif HELIX_ROWS == 5 - #define MATRIX_ROWS 10 - #define MATRIX_COLS 7 - #define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 } -#else - #error "expected HELIX_ROWS 4 or 5" -#endif - -#define USE_SERIAL_PD2 - -#define PREVENT_STUCK_MODIFIERS -#define TAPPING_FORCE_HOLD -#define TAPPING_TERM 100 - -#undef RGBLED_NUM -// Helix keyboard RGB LED support -//#define RGBLIGHT_ANIMATIONS : see ./rules.mk: LED_ANIMATIONS = yes or no -// see ./rules.mk: LED_BACK_ENABLE or LED_UNDERGLOW_ENABLE set yes -#ifdef RGBLED_BACK - #if HELIX_ROWS == 4 - #define RGBLED_NUM 25 - #elif HELIX_ROWS == 5 - #define RGBLED_NUM 32 - #endif -#else - #define RGBLED_NUM 6 -#endif - -#ifndef IOS_DEVICE_ENABLE - #if RGBLED_NUM <= 6 - #define RGBLIGHT_LIMIT_VAL 255 - #else - #if HELIX_ROWS == 5 - #define RGBLIGHT_LIMIT_VAL 120 - #else - #define RGBLIGHT_LIMIT_VAL 130 - #endif - #endif - #define RGBLIGHT_VAL_STEP 17 -#else - #if RGBLED_NUM <= 6 - #define RGBLIGHT_LIMIT_VAL 90 - #else - #if HELIX_ROWS == 5 - #define RGBLIGHT_LIMIT_VAL 35 - #else - #define RGBLIGHT_LIMIT_VAL 45 - #endif - #endif - #define RGBLIGHT_VAL_STEP 4 -#endif -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 - - -#if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) -// USB_MAX_POWER_CONSUMPTION value for Helix keyboard -// 120 RGBoff, OLEDoff -// 120 OLED -// 330 RGB 6 -// 300 RGB 32 -// 310 OLED & RGB 32 - #define USB_MAX_POWER_CONSUMPTION 400 -#else - // fix iPhone and iPad power adapter issue - // iOS device need lessthan 100 - #define USB_MAX_POWER_CONSUMPTION 100 -#endif +// place overrides here #endif /* CONFIG_USER_H */ diff --git a/keyboards/helix/rev2/keymaps/five_rows/rules.mk b/keyboards/helix/rev2/keymaps/five_rows/rules.mk index 53a581ec25..53a00d8d4d 100644 --- a/keyboards/helix/rev2/keymaps/five_rows/rules.mk +++ b/keyboards/helix/rev2/keymaps/five_rows/rules.mk @@ -27,8 +27,9 @@ define HELIX_CUSTOMISE_MSG endef # Helix keyboard customize -# you can edit follows 6 Variables -# jp: 以下の6つの変数を必要に応じて編集します。 +# you can edit follows 7 Variables +# jp: 以下の7つの変数を必要に応じて編集します。 +HELIX_ROWS = 5 # Helix Rows is 4 or 5 OLED_ENABLE = no # OLED_ENABLE LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" insted of "common/glcdfont.c" LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.) @@ -73,6 +74,13 @@ endif # $(eval $(call HELIX_CUSTOMISE_MSG)) # $(info ) +ifneq ($(strip $(HELIX_ROWS)), 4) +ifneq ($(strip $(HELIX_ROWS)), 5) +$(error HELIX_ROWS = $(strip $(HELIX_ROWS)) is unexpected value) +endif +endif +OPT_DEFS += -DHELIX_ROWS=$(strip $(HELIX_ROWS)) + ifeq ($(strip $(LED_BACK_ENABLE)), yes) RGBLIGHT_ENABLE = yes OPT_DEFS += -DRGBLED_BACK diff --git a/keyboards/helix/rev2/keymaps/froggy/config.h b/keyboards/helix/rev2/keymaps/froggy/config.h index 19718a458d..8161d4a25d 100644 --- a/keyboards/helix/rev2/keymaps/froggy/config.h +++ b/keyboards/helix/rev2/keymaps/froggy/config.h @@ -23,101 +23,9 @@ along with this program. If not, see . #include "../../config.h" -/* Use I2C or Serial */ - -#define USE_I2C -#define USE_SERIAL -//#define USE_MATRIX_I2C - -/* Select hand configuration */ - -#define MASTER_LEFT -// #define MASTER_RIGHT -// #define EE_HANDS - -// Helix keyboard OLED support -// see ./rules.mk: OLED_ENABLE=yes or no -#ifdef OLED_ENABLE - #define SSD1306OLED -#endif - -/* Select rows configuration */ -// Rows are 4 or 5 -// #define HELIX_ROWS 5 see ./rules.mk - -/* key matrix size */ -// Rows are doubled-up -#if HELIX_ROWS == 4 - #define MATRIX_ROWS 8 - #define MATRIX_COLS 7 - #define MATRIX_ROW_PINS { D4, C6, D7, E6 } -#elif HELIX_ROWS == 5 - #define MATRIX_ROWS 10 - #define MATRIX_COLS 7 - #define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 } -#else - #error "expected HELIX_ROWS 4 or 5" -#endif - -#define USE_SERIAL_PD2 - -#define PREVENT_STUCK_MODIFIERS -#define TAPPING_FORCE_HOLD +#undef TAPPING_TERM #define TAPPING_TERM 200 -#define ONESHOT_TAP_TOGGLE 5 /* Tapping this number of times holds the key until tapped this number of times again. */ -#define ONESHOT_TIMEOUT 5000 /* Time (in ms) before the one shot key is released */ - -// Helix keyboard RGB LED support -//#define RGBLIGHT_ANIMATIONS : see ./rules.mk: LED_ANIMATIONS = yes or no -// see ./rules.mk: LED_BACK_ENABLE or LED_UNDERGLOW_ENABLE set yes -#ifdef RGBLED_BACK - #if HELIX_ROWS == 4 - #define RGBLED_NUM 25 - #elif HELIX_ROWS == 5 - #define RGBLED_NUM 32 - #endif -#else - #define RGBLED_NUM 6 -#endif - -#ifndef IOS_DEVICE_ENABLE - #if RGBLED_NUM <= 6 - #define RGBLIGHT_LIMIT_VAL 255 - #else - #if HELIX_ROWS == 5 - #define RGBLIGHT_LIMIT_VAL 120 - #else - #define RGBLIGHT_LIMIT_VAL 130 - #endif - #endif - #define RGBLIGHT_VAL_STEP 17 -#else - #if RGBLED_NUM <= 6 - #define RGBLIGHT_LIMIT_VAL 90 - #else - #if HELIX_ROWS == 5 - #define RGBLIGHT_LIMIT_VAL 35 - #else - #define RGBLIGHT_LIMIT_VAL 45 - #endif - #endif - #define RGBLIGHT_VAL_STEP 4 -#endif -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 - -#if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) -// USB_MAX_POWER_CONSUMPTION value for Helix keyboard -// 120 RGBoff, OLEDoff -// 120 OLED -// 330 RGB 6 -// 300 RGB 32 -// 310 OLED & RGB 32 - #define USB_MAX_POWER_CONSUMPTION 400 -#else - // fix iPhone and iPad power adapter issue - // iOS device need lessthan 100 - #define USB_MAX_POWER_CONSUMPTION 100 -#endif +#define ONESHOT_TAP_TOGGLE 5 /* Tapping this number of times holds the key until tapped this number of times again. */ +#define ONESHOT_TIMEOUT 5000 /* Time (in ms) before the one shot key is released */ #endif /* CONFIG_USER_H */ diff --git a/keyboards/helix/rev2/keymaps/led_test/config.h b/keyboards/helix/rev2/keymaps/led_test/config.h index fa16b87f0f..0e7967c73b 100644 --- a/keyboards/helix/rev2/keymaps/led_test/config.h +++ b/keyboards/helix/rev2/keymaps/led_test/config.h @@ -23,75 +23,6 @@ along with this program. If not, see . #include "../../config.h" -/* Use I2C or Serial */ +// place overrides here -#define USE_I2C -#define USE_SERIAL -//#define USE_MATRIX_I2C - -/* Select hand configuration */ - -#define MASTER_LEFT -// #define MASTER_RIGHT -// #define EE_HANDS - -// Helix keyboard OLED support -#define SSD1306OLED - -/* Select rows configuration */ -// Rows are 4 or 5 -#define HELIX_ROWS 5 - -/* key matrix size */ -// Rows are doubled-up -#if HELIX_ROWS == 4 - #define MATRIX_ROWS 8 - #define MATRIX_COLS 7 - #define MATRIX_ROW_PINS { D4, C6, D7, E6 } -#elif HELIX_ROWS == 5 - #define MATRIX_ROWS 10 - #define MATRIX_COLS 7 - #define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 } -#else - #error "expected HELIX_ROWS 4 or 5" -#endif - -#define USE_SERIAL_PD2 - -#define PREVENT_STUCK_MODIFIERS -#define TAPPING_FORCE_HOLD -#define TAPPING_TERM 100 - - -#undef RGBLED_NUM -#define RGBLIGHT_ANIMATIONS -// Helix keyboard : see ./rules.mk: RGBLIGHT_ENABLE = yes or no -// Helix keyboard : RGBLED_NUM 6 or 32 -#define RGBLED_NUM 32 -#if RGBLED_NUM <= 6 - #define RGBLIGHT_LIMIT_VAL 255 -#else - #if HELIX_ROWS == 5 - #define RGBLIGHT_LIMIT_VAL 120 - #else - #define RGBLIGHT_LIMIT_VAL 130 - #endif -#endif -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 -#endif - -#ifdef RGBLIGHT_ENABLE -// USB_MAX_POWER_CONSUMPTION value for Helix keyboard -// 120 RGBoff, OLEDoff -// 120 OLED -// 330 RGB 6 -// 300 RGB 32 -// 310 OLED & RGB 32 - #define USB_MAX_POWER_CONSUMPTION 330 -#else - // fix iPhone and iPad power adapter issue - // iOS device need lessthan 100 - #define USB_MAX_POWER_CONSUMPTION 100 -#endif +#endif /* CONFIG_USER_H */ diff --git a/keyboards/helix/rev2/keymaps/led_test/rules.mk b/keyboards/helix/rev2/keymaps/led_test/rules.mk index 71323916b4..f5b4605951 100644 --- a/keyboards/helix/rev2/keymaps/led_test/rules.mk +++ b/keyboards/helix/rev2/keymaps/led_test/rules.mk @@ -14,10 +14,101 @@ MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -# Helix keyboard : see ./config.h: RGBLED_NUM 6 or 32 -# Helix keyboard : RGBLIGHT_ENABLE = no or yes -RGBLIGHT_ENABLE = yes-but-local # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. -ONEHAND_ENABLE = no # Enable one-hand typing +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SWAP_HANDS_ENABLE = no # Enable one-hand typing + +define HELIX_CUSTOMISE_MSG + $(info Helix customize) + $(info - OLED_ENABLE=$(OLED_ENABLE)) + $(info - LED_BACK_ENABLE=$(LED_BACK_ENABLE)) + $(info - LED_UNDERGLOW_ENABLE=$(LED_UNDERGLOW_ENABLE)) + $(info - LED_ANIMATION=$(LED_ANIMATIONS)) + $(info - IOS_DEVICE_ENABLE=$(IOS_DEVICE_ENABLE)) +endef + +# Helix keyboard customize +# you can edit follows 7 Variables +# jp: 以下の7つの変数を必要に応じて編集します。 +HELIX_ROWS = 5 # Helix Rows is 4 or 5 +OLED_ENABLE = yes # OLED_ENABLE +LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" insted of "common/glcdfont.c" +LED_BACK_ENABLE = yes # LED backlight (Enable WS2812 RGB underlight.) +LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.) +LED_ANIMATIONS = yes # LED animations +IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) + +#### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE. +#### Do not enable these with audio at the same time. + +### Helix keyboard 'default' keymap: convenient command line option +## make HELIX= helix:defualt +## option= oled | back | under | na | ios +## ex. +## make HELIX=oled helix:defualt +## make HELIX=oled,back helix:defualt +## make HELIX=oled,under helix:defualt +## make HELIX=oled,back,na helix:defualt +## make HELIX=oled,back,ios helix:defualt +## +ifneq ($(strip $(HELIX)),) + ifeq ($(findstring oled,$(HELIX)), oled) + OLED_ENABLE = yes + endif + ifeq ($(findstring back,$(HELIX)), back) + LED_BACK_ENABLE = yes + else ifeq ($(findstring under,$(HELIX)), under) + LED_UNDERGLOW_ENABLE = yes + endif + ifeq ($(findstring na,$(HELIX)), na) + LED_ANIMATIONS = no + endif + ifeq ($(findstring ios,$(HELIX)), ios) + IOS_DEVICE_ENABLE = yes + endif + $(eval $(call HELIX_CUSTOMISE_MSG)) + $(info ) +endif + +# Uncomment these for checking +# jp: コンパイル時にカスタマイズの状態を表示したい時はコメントをはずします。 +# $(eval $(call HELIX_CUSTOMISE_MSG)) +# $(info ) + +ifneq ($(strip $(HELIX_ROWS)), 4) + ifneq ($(strip $(HELIX_ROWS)), 5) + $(error HELIX_ROWS = $(strip $(HELIX_ROWS)) is unexpected value) + endif +endif +OPT_DEFS += -DHELIX_ROWS=$(strip $(HELIX_ROWS)) + +ifeq ($(strip $(LED_BACK_ENABLE)), yes) + RGBLIGHT_ENABLE = yes + OPT_DEFS += -DRGBLED_BACK + ifeq ($(strip $(LED_UNDERGLOW_ENABLE)), yes) + $(eval $(call HELIX_CUSTOMISE_MSG)) + $(error LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE both 'yes') + endif +else ifeq ($(strip $(LED_UNDERGLOW_ENABLE)), yes) + RGBLIGHT_ENABLE = yes +else + RGBLIGHT_ENABLE = no +endif + +ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes) + OPT_DEFS += -DIOS_DEVICE_ENABLE +endif + +ifeq ($(strip $(LED_ANIMATIONS)), yes) + OPT_DEFS += -DRGBLIGHT_ANIMATIONS +endif + +ifeq ($(strip $(OLED_ENABLE)), yes) + OPT_DEFS += -DOLED_ENABLE +endif + +ifeq ($(strip $(LOCAL_GLCDFONT)), yes) + OPT_DEFS += -DLOCAL_GLCDFONT +endif # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend @@ -26,13 +117,7 @@ ifndef QUANTUM_DIR include ../../../../Makefile endif -#copy from common_features.mk and modify rgblight.c - OPT_DEFS += -DRGBLIGHT_ENABLE - SRC += rgblight.c - CIE1931_CURVE = yes - LED_BREATHING_TABLE = yes - ifeq ($(strip $(RGBLIGHT_CUSTOM_DRIVER)), yes) - OPT_DEFS += -DRGBLIGHT_CUSTOM_DRIVER - else - SRC += ws2812.c - endif +# Uncomment these for debugging +# $(info -- RGBLIGHT_ENABLE=$(RGBLIGHT_ENABLE)) +# $(info -- OPT_DEFS=$(OPT_DEFS)) +# $(info ) From 87d9bb461ba65edf74b95a29617ff96389f223cc Mon Sep 17 00:00:00 2001 From: omkbd Date: Sun, 1 Jul 2018 05:13:34 +0900 Subject: [PATCH 2/2] ErgoDash Hardware Update (#3269) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Hardware update Backlight enable Change pin Add 2keys (68→70) * change readme * support rev1 change keymap path * move ergodash.h --- keyboards/ergodash/readme.md | 11 +- keyboards/ergodash/{ => rev1}/ergodash.h | 1 - .../{ => rev1}/keymaps/default/config.h | 0 .../{ => rev1}/keymaps/default/keymap.c | 0 .../{ => rev1}/keymaps/default/rules.mk | 0 keyboards/ergodash/rev2/config.h | 95 +++++++++++ keyboards/ergodash/rev2/ergodash.h | 26 +++ .../ergodash/rev2/keymaps/default/config.h | 44 +++++ .../ergodash/rev2/keymaps/default/keymap.c | 159 ++++++++++++++++++ .../ergodash/rev2/keymaps/default/rules.mk | 0 keyboards/ergodash/rev2/rev2.c | 39 +++++ keyboards/ergodash/rev2/rev2.h | 66 ++++++++ keyboards/ergodash/rev2/rules.mk | 1 + keyboards/ergodash/rules.mk | 2 +- 14 files changed, 439 insertions(+), 5 deletions(-) rename keyboards/ergodash/{ => rev1}/ergodash.h (99%) rename keyboards/ergodash/{ => rev1}/keymaps/default/config.h (100%) rename keyboards/ergodash/{ => rev1}/keymaps/default/keymap.c (100%) rename keyboards/ergodash/{ => rev1}/keymaps/default/rules.mk (100%) create mode 100644 keyboards/ergodash/rev2/config.h create mode 100644 keyboards/ergodash/rev2/ergodash.h create mode 100644 keyboards/ergodash/rev2/keymaps/default/config.h create mode 100644 keyboards/ergodash/rev2/keymaps/default/keymap.c create mode 100644 keyboards/ergodash/rev2/keymaps/default/rules.mk create mode 100644 keyboards/ergodash/rev2/rev2.c create mode 100644 keyboards/ergodash/rev2/rev2.h create mode 100644 keyboards/ergodash/rev2/rules.mk diff --git a/keyboards/ergodash/readme.md b/keyboards/ergodash/readme.md index 4b84b4802c..d0d1dcb569 100644 --- a/keyboards/ergodash/readme.md +++ b/keyboards/ergodash/readme.md @@ -1,13 +1,18 @@ # ErgoDash -![ErgoDash](https://i.imgur.com/ZyI592o.jpg) +![ErgoDash](https://github.com/omkbd/picture/blob/master/IMG_20180630_1702141.jpg) Keyboard Maintainer: [omkbd](https://github.com/omkbd) [@omkbd](https://twitter.com/omkbd) Hardware Supported: ErgoDash PCB, Pro Micro ATmega32u4 -Hardware Availability: In preparation +Hardware Availability: Order your own [yourself](https://github.com/omkbd/ErgoDash) + Make example for this keyboard (after setting up your build environment): - make ergodash/rev1:default + make ergodash/rev2:default See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. + +# Layout +![layout](https://github.com/omkbd/picture/blob/master/ergodash-layout.png) +![PCB](https://github.com/omkbd/picture/blob/master/IMG_20180630_2022231.jpg) diff --git a/keyboards/ergodash/ergodash.h b/keyboards/ergodash/rev1/ergodash.h similarity index 99% rename from keyboards/ergodash/ergodash.h rename to keyboards/ergodash/rev1/ergodash.h index ebb6b614ec..b9489d5775 100644 --- a/keyboards/ergodash/ergodash.h +++ b/keyboards/ergodash/rev1/ergodash.h @@ -7,7 +7,6 @@ #include "rev1.h" #endif - // Used to create a keymap using only KC_ prefixed keys #define LAYOUT_kc( \ L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ diff --git a/keyboards/ergodash/keymaps/default/config.h b/keyboards/ergodash/rev1/keymaps/default/config.h similarity index 100% rename from keyboards/ergodash/keymaps/default/config.h rename to keyboards/ergodash/rev1/keymaps/default/config.h diff --git a/keyboards/ergodash/keymaps/default/keymap.c b/keyboards/ergodash/rev1/keymaps/default/keymap.c similarity index 100% rename from keyboards/ergodash/keymaps/default/keymap.c rename to keyboards/ergodash/rev1/keymaps/default/keymap.c diff --git a/keyboards/ergodash/keymaps/default/rules.mk b/keyboards/ergodash/rev1/keymaps/default/rules.mk similarity index 100% rename from keyboards/ergodash/keymaps/default/rules.mk rename to keyboards/ergodash/rev1/keymaps/default/rules.mk diff --git a/keyboards/ergodash/rev2/config.h b/keyboards/ergodash/rev2/config.h new file mode 100644 index 0000000000..c84d76e14c --- /dev/null +++ b/keyboards/ergodash/rev2/config.h @@ -0,0 +1,95 @@ +/* +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +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 . +*/ + +#ifndef REV2_CONFIG_H +#define REV2_CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0100 +#define MANUFACTURER Omkbd +#define PRODUCT ErgoDash +#define DESCRIPTION Power + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 10 +#define MATRIX_COLS 7 + +// wiring of each half +#define MATRIX_ROW_PINS { D4, D7, E6, B4, B5 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 } +// #define MATRIX_COL_PINS { B2, B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order + +/* define tapping term */ +#define TAPPING_TERM 120 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#ifdef BACKLIGHT_ENABLE + #define BACKLIGHT_PIN B6 + #define BACKLIGHT_LEVELS 7 + #define BACKLIGHT_BREATHING + #define BREATHING_PERIOD 4 +#endif + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* 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 + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* ws2812 RGB LED */ +#define RGB_DI_PIN D3 +#define RGBLIGHT_TIMER +#define RGBLED_NUM 24 // Number of LEDs +#define ws2812_PORTREG PORTD +#define ws2812_DDRREG DDRD + +/* + * 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 + + +#endif diff --git a/keyboards/ergodash/rev2/ergodash.h b/keyboards/ergodash/rev2/ergodash.h new file mode 100644 index 0000000000..0a96d5eb39 --- /dev/null +++ b/keyboards/ergodash/rev2/ergodash.h @@ -0,0 +1,26 @@ +#ifndef ERGODASH_H +#define ERGODASH_H + +#include "quantum.h" + +#ifdef KEYBOARD_ergodash_rev2 + #include "rev2.h" +#endif + +// Used to create a keymap using only KC_ prefixed keys +#define LAYOUT_kc( \ + L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ + L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \ + L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \ + L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, \ + L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \ + ) \ + LAYOUT( \ + KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##L06, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, KC_##R06, \ + KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##L16, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, KC_##R16, \ + KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##L26, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, KC_##R26, \ + KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##L36, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35, KC_##R36, \ + KC_##L40, KC_##L41, KC_##L42, KC_##L43, KC_##L44, KC_##L45, KC_##L46, KC_##R40, KC_##R41, KC_##R42, KC_##R43, KC_##R44, KC_##R45, KC_##R46 \ + ) + +#endif diff --git a/keyboards/ergodash/rev2/keymaps/default/config.h b/keyboards/ergodash/rev2/keymaps/default/config.h new file mode 100644 index 0000000000..7e7fe4f69a --- /dev/null +++ b/keyboards/ergodash/rev2/keymaps/default/config.h @@ -0,0 +1,44 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +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 . +*/ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +/* Use I2C or Serial, not both */ + +#define USE_SERIAL +// #define USE_I2C + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#endif + +#undef RGBLED_NUM +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 24 +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 diff --git a/keyboards/ergodash/rev2/keymaps/default/keymap.c b/keyboards/ergodash/rev2/keymaps/default/keymap.c new file mode 100644 index 0000000000..dc1f6eedd0 --- /dev/null +++ b/keyboards/ergodash/rev2/keymaps/default/keymap.c @@ -0,0 +1,159 @@ +#include QMK_KEYBOARD_H +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +#define _QWERTY 0 +#define _LOWER 1 +#define _RAISE 2 +#define _ADJUST 16 + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE, + ADJUST, +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO +#define KC_JPN LALT(KC_GRV) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ,----------------------------------------------------------------------------------------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | [ | | ] | 6 | 7 | 8 | 9 | 0 | Caps | + * |------+------+------+------+------+------+------+--------------------+------+------+------+------+------+------+------| + * | ` | Q | W | E | R | T | - | | = | Y | U | I | O | P | \ | + * |------+------+------+------+------+------+------+--------------------+------+------+------+------+------+------+------| + * | Tab | A | S | D | F | G | Del | | Bksp | H | J | K | L | ; | " | + * |------+------+------+------+------+------+---------------------------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | JPN | | Enter| N | M | , | . | / | Shift| + * |-------------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------------| + * | Ctrl | GUI | ALt |Adjust|||||||| Lower| Space| |||||||| | Enter| Raise|||||||| Left | Down | Up | Right| + * ,----------------------------------------------------------------------------------------------------------------------. + */ + [_QWERTY] = LAYOUT( \ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LBRC, KC_RBRC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_CAPS, \ + KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MINS, KC_EQL , KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, \ + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_DEL , KC_BSPC, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_JPN , KC_ENT , KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ + KC_LCTL, KC_LGUI, KC_LALT, ADJUST, LOWER, KC_SPC ,_______, _______,KC_ENT , RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ + ), + + /* Lower + * ,----------------------------------------------------------------------------------------------------------------------. + * | F11 | F1 | F2 | F3 | F4 | F5 | { | | } | F6 | F7 | F8 | F9 | F10 | F12 | + * |------+------+------+------+------+------+------+--------------------+------+------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | _ | | + | ^ | & | * | ( | ) | | | + * |------+------+------+------+------+------+------+--------------------+------+------+------+------+------+------+------| + * | Tab | 1 | 2 | 3 | 4 | 5 | Del | | Bksp | H | J | K | L | : | " | + * |------+------+------+------+------+------+---------------------------+------+------+------+------+------+------+------| + * | Shift| 6 | 7 | 8 | 9 | 0 | JPN | | Enter| N | M | < | > | ? | Shift| + * |-------------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------------| + * | Ctrl | GUI | ALt |Adjust|||||||| Lower| Space| |||||||| | Enter| Raise|||||||| Home |PageDn|PageUp| End | + * ,----------------------------------------------------------------------------------------------------------------------. + */ + [_LOWER] = LAYOUT( + KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_LCBR, KC_RCBR, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_UNDS, KC_PLUS, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE, \ + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_DEL , KC_BSPC, KC_H, KC_J, KC_K, KC_L, KC_COLN, KC_DQT , \ + KC_LSFT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_JPN , KC_ENT , KC_N, KC_M, KC_LT, KC_GT, KC_QUES, KC_RSFT, \ + KC_LCTL, KC_LGUI, KC_LALT, ADJUST, LOWER, KC_SPC ,_______, _______,KC_ENT , RAISE, KC_HOME, KC_PGDN, KC_PGUP, KC_END \ + ), + + /* Raise + * ,----------------------------------------------------------------------------------------------------------------------. + * | F11 | F1 | F2 | F3 | F4 | F5 | { | | } | F6 | F7 | F8 | F9 | F10 | F12 | + * |------+------+------+------+------+------+------+--------------------+------+------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | _ | | + | ^ | & | * | ( | ) | | | + * |------+------+------+------+------+------+------+--------------------+------+------+------+------+------+------+------| + * | Tab | 1 | 2 | 3 | 4 | 5 | Del | | Bksp | H | J | K | L | : | " | + * |------+------+------+------+------+------+---------------------------+------+------+------+------+------+------+------| + * | Shift| 6 | 7 | 8 | 9 | 0 | JPN | | Enter| N | M | < | > | ? | Shift| + * |-------------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------------| + * | Ctrl | GUI | ALt |Adjust|||||||| Lower| Space| |||||||| | Enter| Raise|||||||| Home |PageDn|PageUp| End | + * ,----------------------------------------------------------------------------------------------------------------------. + */ + [_RAISE] = LAYOUT( + KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_LCBR, KC_RCBR, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_UNDS, KC_PLUS, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE, \ + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_DEL , KC_BSPC, KC_H, KC_J, KC_K, KC_L, KC_COLN, KC_DQT , \ + KC_LSFT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_JPN , KC_ENT , KC_N, KC_M, KC_LT, KC_GT, KC_QUES, KC_RSFT, \ + KC_LCTL, KC_LGUI, KC_LALT, ADJUST, LOWER, KC_SPC ,_______, _______,KC_ENT , RAISE, KC_HOME, KC_PGDN, KC_PGUP, KC_END \ + ), + + /* Adjust + * ,----------------------------------------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |------+------+------+------+------+------+---------------------------+------+------+------+------+------+------+------| + * | | Reset|RGB ON| MODE| HUE-| HUE+| | | | SAT-| SAT+| VAL-| VAL+| | | + * |------+------+------+------+------+------+---------------------------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | | | | + * |------+------+------+------+------+------+---------------------------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | | | | + * |-------------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------------| + * | | | | |||||||| | | |||||||| | | |||||||| | | | | + * ,----------------------------------------------------------------------------------------------------------------------. + */ + [_ADJUST] = LAYOUT( + _______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, \ + _______, RESET , RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI,_______, _______, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, _______, \ + _______, _______, BL_TOGG, BL_BRTG, BL_INC , BL_DEC ,_______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______,_______,_______, _______,_______, _______, _______, _______, _______, _______ \ + ) +}; + +#ifdef AUDIO_ENABLE +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +#endif + +void persistent_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case ADJUST: + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; + break; + } + return true; +} diff --git a/keyboards/ergodash/rev2/keymaps/default/rules.mk b/keyboards/ergodash/rev2/keymaps/default/rules.mk new file mode 100644 index 0000000000..e69de29bb2 diff --git a/keyboards/ergodash/rev2/rev2.c b/keyboards/ergodash/rev2/rev2.c new file mode 100644 index 0000000000..5e787921cb --- /dev/null +++ b/keyboards/ergodash/rev2/rev2.c @@ -0,0 +1,39 @@ +#include "ergodash.h" + +#ifdef AUDIO_ENABLE + float tone_startup[][2] = SONG(STARTUP_SOUND); + float tone_goodbye[][2] = SONG(GOODBYE_SOUND); +#endif + +#ifdef SSD1306OLED +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + led_set_user(usb_led); +} +#endif + +void matrix_init_kb(void) { + + #ifdef AUDIO_ENABLE + _delay_ms(20); // gets rid of tick + PLAY_SONG(tone_startup); + #endif + + // // green led on + // DDRD |= (1<<5); + // PORTD &= ~(1<<5); + + // // orange led on + // DDRB |= (1<<0); + // PORTB &= ~(1<<0); + + matrix_init_user(); +}; + +void shutdown_user(void) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_goodbye); + _delay_ms(150); + stop_all_notes(); + #endif +} diff --git a/keyboards/ergodash/rev2/rev2.h b/keyboards/ergodash/rev2/rev2.h new file mode 100644 index 0000000000..55135adca6 --- /dev/null +++ b/keyboards/ergodash/rev2/rev2.h @@ -0,0 +1,66 @@ +#ifndef REV1_H +#define REV1_H + +#include "ergodash.h" + +//void promicro_bootloader_jmp(bool program); +#include "quantum.h" + + +#ifdef USE_I2C +#include +#ifdef __AVR__ + #include + #include +#endif +#endif + +//void promicro_bootloader_jmp(bool program); + +#ifndef FLIP_HALF +// Standard Keymap +// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left) +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ + L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \ + L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \ + L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, \ + L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05, L06 }, \ + { L10, L11, L12, L13, L14, L15, L16 }, \ + { L20, L21, L22, L23, L24, L25, L26 }, \ + { L30, L31, L32, L33, L34, L35, L36 }, \ + { L40, L41, L42, L43, L44, L45, L46 }, \ + { R06, R05, R04, R03, R02, R01, R00 }, \ + { R16, R15, R14, R13, R12, R11, R10 }, \ + { R26, R25, R24, R23, R22, R21, R20 }, \ + { R36, R35, R34, R33, R32, R31, R30 }, \ + { R46, R45, R44, R43, R42, R41, R40 } \ + } +#else +// Keymap with right side flipped +// (TRRS jack on both halves are to the right) +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \ + L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \ + L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \ + L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, \ + L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05, L06 }, \ + { L10, L11, L12, L13, L14, L15, L16 }, \ + { L20, L21, L22, L23, L24, L25, L26 }, \ + { L30, L31, L32, L33, L34, L35, L36 }, \ + { L40, L41, L42, L43, L44, L45, L46 }, \ + { R00, R01, R02, R03, R04, R05, R06 }, \ + { R10, R11, R12, R13, R14, R15, R16 }, \ + { R20, R21, R22, R23, R24, R25, R26 }, \ + { R30, R31, R32, R33, R34, R35, R36 }, \ + { R40, R41, R42, R43, R44, R45, R46 } \ + } +#endif + +#endif diff --git a/keyboards/ergodash/rev2/rules.mk b/keyboards/ergodash/rev2/rules.mk new file mode 100644 index 0000000000..bd518d8f27 --- /dev/null +++ b/keyboards/ergodash/rev2/rules.mk @@ -0,0 +1 @@ +BACKLIGHT_ENABLE = yes diff --git a/keyboards/ergodash/rules.mk b/keyboards/ergodash/rules.mk index d81fa98a9e..fc06d60e28 100644 --- a/keyboards/ergodash/rules.mk +++ b/keyboards/ergodash/rules.mk @@ -72,4 +72,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend CUSTOM_MATRIX = yes -DEFAULT_FOLDER = ergodash/rev1 +DEFAULT_FOLDER = ergodash/rev2