diff --git a/keyboards/helix/config.h b/keyboards/helix/config.h
index fbfbd32804..875312f0c3 100644
--- a/keyboards/helix/config.h
+++ b/keyboards/helix/config.h
@@ -16,8 +16,7 @@ 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"
@@ -27,8 +26,6 @@ along with this program. If not, see .
// -include keyboards/helix/rev?/keymaps/MAPNAME/config.h
// XXXX.c
-#include
-
// GCC include search path in qmk_firmare/keyboards/helix/
// #include "..." search starts here:
// #include <...> search starts here:
@@ -38,14 +35,3 @@ along with this program. If not, see .
// .
// ./tmk_core
// ......
-
-#ifdef USE_Link_Time_Optimization
- // LTO has issues with macros (action_get_macro) and "functions" (fn_actions),
- // so just disable them
- #define NO_ACTION_MACRO
- #define NO_ACTION_FUNCTION
-
- #define DISABLE_LEADER
-#endif // USE_Link_Time_Optimization
-
-#endif /* CONFIG_H */
diff --git a/keyboards/helix/helix.h b/keyboards/helix/helix.h
index d73feb6bbf..7dac2455de 100644
--- a/keyboards/helix/helix.h
+++ b/keyboards/helix/helix.h
@@ -1,5 +1,4 @@
-#ifndef HELIX_H
-#define HELIX_H
+#pragma once
#ifdef KEYBOARD_helix_rev1
#include "rev1.h"
@@ -12,5 +11,3 @@
#endif
#include "quantum.h"
-
-#endif
diff --git a/keyboards/helix/i2c.c b/keyboards/helix/local_drivers/i2c.c
similarity index 100%
rename from keyboards/helix/i2c.c
rename to keyboards/helix/local_drivers/i2c.c
diff --git a/keyboards/helix/i2c.h b/keyboards/helix/local_drivers/i2c.h
similarity index 100%
rename from keyboards/helix/i2c.h
rename to keyboards/helix/local_drivers/i2c.h
diff --git a/keyboards/helix/serial.c b/keyboards/helix/local_drivers/serial.c
similarity index 100%
rename from keyboards/helix/serial.c
rename to keyboards/helix/local_drivers/serial.c
diff --git a/keyboards/helix/serial.h b/keyboards/helix/local_drivers/serial.h
similarity index 100%
rename from keyboards/helix/serial.h
rename to keyboards/helix/local_drivers/serial.h
diff --git a/keyboards/helix/ssd1306.c b/keyboards/helix/local_drivers/ssd1306.c
similarity index 100%
rename from keyboards/helix/ssd1306.c
rename to keyboards/helix/local_drivers/ssd1306.c
diff --git a/keyboards/helix/ssd1306.h b/keyboards/helix/local_drivers/ssd1306.h
similarity index 100%
rename from keyboards/helix/ssd1306.h
rename to keyboards/helix/local_drivers/ssd1306.h
diff --git a/keyboards/helix/pico/back/rules.mk b/keyboards/helix/pico/back/rules.mk
new file mode 100644
index 0000000000..066fffb74a
--- /dev/null
+++ b/keyboards/helix/pico/back/rules.mk
@@ -0,0 +1 @@
+LED_BACK_ENABLE = yes
diff --git a/keyboards/helix/pico/config.h b/keyboards/helix/pico/config.h
index b377332efa..260560f556 100644
--- a/keyboards/helix/pico/config.h
+++ b/keyboards/helix/pico/config.h
@@ -16,8 +16,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
-#ifndef PICO_CONFIG_H
-#define PICO_CONFIG_H
+#pragma once
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
@@ -35,6 +34,11 @@ along with this program. If not, see .
#define USE_SERIAL
//#define USE_MATRIX_I2C
+/* Soft Serial defines */
+#define SOFT_SERIAL_PIN D2
+#define SERIAL_SLAVE_BUFFER_LENGTH ((MATRIX_ROWS)/2)
+#define SERIAL_MASTER_BUFFER_LENGTH ((MATRIX_ROWS)/2)
+
/* Select hand configuration */
#define MASTER_LEFT
// #define MASTER_RIGHT
@@ -138,5 +142,3 @@ along with this program. If not, see .
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
-
-#endif
diff --git a/keyboards/helix/pico/keymaps/biacco/rules.mk b/keyboards/helix/pico/keymaps/biacco/rules.mk
index d6b36580e1..0c60c40f64 100644
--- a/keyboards/helix/pico/keymaps/biacco/rules.mk
+++ b/keyboards/helix/pico/keymaps/biacco/rules.mk
@@ -1,125 +1,24 @@
-
-# Build Options
+# QMK Standard Build Options
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
+# See TOP/keyboards/helix/rules.mk for a list of options that can be set.
+# See TOP/docs/config_options.md for more information.
+#
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = yes # Audio output on port B5
-UNICODE_ENABLE = no # Unicode
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
-SWAP_HANDS_ENABLE = no # Enable one-hand typing
+LINK_TIME_OPTIMIZATION_ENABLE = no # if firmware size over limit, try this option
-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 Spacific Build Options
+# you can uncomment and edit follows 6 Variables
+# jp: 以下の6つの変数を必要に応じて編集し、コメントアウトをはずします。
+# 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.)
+# LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
+LED_ANIMATIONS = no # LED animations
+# IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
-# Helix keyboard customize
-# you can edit follows 6 Variables
-# jp: 以下の6つの変数を必要に応じて編集します。
-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.)
-LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
-LED_ANIMATIONS = no # LED animations
-IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
-Link_Time_Optimization = no # if firmware size over limit, try this option
-
-#### 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 )
-
-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 += -DLED_ANIMATIONS
-endif
-
-ifeq ($(strip $(OLED_ENABLE)), yes)
- OPT_DEFS += -DOLED_ENABLE
-endif
-
-ifeq ($(strip $(LOCAL_GLCDFONT)), yes)
- OPT_DEFS += -DLOCAL_GLCDFONT
-endif
-
-ifeq ($(strip $(AUDIO_ENABLE)),yes)
- ifeq ($(strip $(RGBLIGHT_ENABLE)),yes)
- Link_Time_Optimization = yes
- endif
- ifeq ($(strip $(OLED_ENABLE)),yes)
- Link_Time_Optimization = yes
- endif
-endif
-
-ifeq ($(strip $(Link_Time_Optimization)),yes)
- EXTRAFLAGS += -flto -DUSE_Link_Time_Optimization
-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
-
-# Uncomment these for debugging
-# $(info -- RGBLIGHT_ENABLE=$(RGBLIGHT_ENABLE))
-# $(info -- OPT_DEFS=$(OPT_DEFS))
-# $(info )
+# convert Helix-specific options (that represent combinations of standard options)
+# into QMK standard options.
+include $(strip $(KEYBOARD_LOCAL_FEATURES_MK))
diff --git a/keyboards/helix/pico/keymaps/default/readme.md b/keyboards/helix/pico/keymaps/default/readme.md
index 13948cf620..9013e31287 100644
--- a/keyboards/helix/pico/keymaps/default/readme.md
+++ b/keyboards/helix/pico/keymaps/default/readme.md
@@ -95,16 +95,15 @@
see `qmk_firmware/keyboards/helix/pico/keymaps/default/rules.mk`
```
-# Helix keyboard customize
-# you can edit follows 6 Variables
-# jp: 以下の6つの変数を必要に応じて編集します。
-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.)
-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)
-
+# Helix Spacific Build Options
+# you can uncomment and edit follows 6 Variables
+# jp: 以下の6つの変数を必要に応じて編集し、コメントアウトをはずします。
+# 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.)
+# 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)
```
## Compile
@@ -116,11 +115,18 @@ $ cd qmk_firmware
build
```
$ make helix/pico:default
+$ make helix/pico/back:default # with backlight
+$ make HELIX=no_ani helix/pico/back:default # with backlight without animation
+$ make helix/pico/under:default # with underglow
```
flash to keyboard
```
-$ make helix/pico:default:avrdude
+$ make helix/pico:default:flash
+$ make helix/pico/back:default:flash # with backlight
+$ make HELIX=no_ani helix/pico/back:default:flash # with backlight without animation
+$ make helix/pico/under:default:flash # with underglow
+
```
## Link
diff --git a/keyboards/helix/pico/keymaps/default/readme_jp.md b/keyboards/helix/pico/keymaps/default/readme_jp.md
index 1e272f9e6a..28594dafcb 100644
--- a/keyboards/helix/pico/keymaps/default/readme_jp.md
+++ b/keyboards/helix/pico/keymaps/default/readme_jp.md
@@ -56,31 +56,6 @@
他の配列(Colemak,Dvorak)は、[readme.md](readme.md) を参照
-## コンパイルの仕方
-
-コンパイルは、qmk_firmware のトップディレクトリで行います。
-
-```
-$ cd qmk_firmware
-```
-qmk_firmwareでは各キーボードのコンパイルは、`<キーボード名>:<キーマップ名>`という指定で行います。
-
-```
-$ make helix/pico:default
-```
-
-キーボードへの書き込みまで同時に行うには下記のように`:avrdude`を付けます。
-
-```
-$ make helix/pico:default:avrdude
-```
-
-コンパイル結果と中間生成物を消去したい場合は以下のようにします。
-
-```
-$ make helix/pico:default:clean
-```
-
## カスタマイズ
オプションの OLED をつけたり、
@@ -88,16 +63,15 @@ RGB バックライトまたは、RGB Underglow をつけた場合は、
`qmk_firmware/keyboards/helix/pico/keymaps/default/rules.mk` の以下の部分を編集して機能を有効化してください。
```
-# Helix keyboard customize
-# you can edit follows 6 Variables
-# jp: 以下の6つの変数を必要に応じて編集します。
-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.)
-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)
-
+# Helix Spacific Build Options
+# you can uncomment and edit follows 6 Variables
+# jp: 以下の6つの変数を必要に応じて編集し、コメントアウトをはずします。
+# 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.)
+# 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)
```
## RGB バックライトを有効にする
@@ -131,6 +105,43 @@ RBG Underglow や RGBバックライトの輝度を抑えて、iPad, iPhone に
IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
```
+## コンパイルの仕方
+
+コンパイルは、qmk_firmware のトップディレクトリで行います。
+
+```
+$ cd qmk_firmware
+```
+qmk_firmwareでは各キーボードのコンパイルは、`<キーボード名>:<キーマップ名>`という指定で行います。
+
+```
+$ make helix/pico:default
+```
+
+キーボードへの書き込みまで同時に行うには下記のように`:flash`を付けます。
+
+```
+$ make helix/pico:default:flash
+```
+
+コンパイル結果と中間生成物を消去したい場合は以下のようにします。
+
+```
+$ make helix/pico:default:clean
+```
+
+上記の、rules.mk によるカスタマイズ項目の一部は下記のようにコマンド上で直接指定することも可能です。
+
+RGB バックライトを有効にしてコンパイルしてキーボードへ書き込む。
+```
+$ make helix/pico/back:default:flash
+```
+
+RGB Underglow を有効にしてコンパイルしてキーボードへ書き込む。
+```
+$ make helix/pico/under:default:flash
+```
+
## リンク
* さらに詳細は、[こちら helix/Doc/firmware_jp.md](https://github.com/MakotoKurauchi/helix/blob/master/Doc/firmware_jp.md)をご覧ください。
diff --git a/keyboards/helix/pico/keymaps/default/rules.mk b/keyboards/helix/pico/keymaps/default/rules.mk
index 3b518ff881..764b073007 100644
--- a/keyboards/helix/pico/keymaps/default/rules.mk
+++ b/keyboards/helix/pico/keymaps/default/rules.mk
@@ -1,125 +1,24 @@
-
-# Build Options
+# QMK Standard Build Options
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
+# See TOP/keyboards/helix/rules.mk for a list of options that can be set.
+# See TOP/docs/config_options.md for more information.
+#
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI controls
-AUDIO_ENABLE = yes # Audio output on port B5
-UNICODE_ENABLE = no # Unicode
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
-SWAP_HANDS_ENABLE = no # Enable one-hand typing
+AUDIO_ENABLE = yes # Audio output on port B5
+LINK_TIME_OPTIMIZATION_ENABLE = no # if firmware size over limit, try this option
-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 Spacific Build Options
+# you can uncomment and edit follows 6 Variables
+# jp: 以下の6つの変数を必要に応じて編集し、コメントアウトをはずします。
+# 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.)
+# 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)
-# Helix keyboard customize
-# you can edit follows 6 Variables
-# jp: 以下の6つの変数を必要に応じて編集します。
-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.)
-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)
-Link_Time_Optimization = no # if firmware size over limit, try this option
-
-#### 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 )
-
-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 += -DLED_ANIMATIONS
-endif
-
-ifeq ($(strip $(OLED_ENABLE)), yes)
- OPT_DEFS += -DOLED_ENABLE
-endif
-
-ifeq ($(strip $(LOCAL_GLCDFONT)), yes)
- OPT_DEFS += -DLOCAL_GLCDFONT
-endif
-
-ifeq ($(strip $(AUDIO_ENABLE)),yes)
- ifeq ($(strip $(RGBLIGHT_ENABLE)),yes)
- Link_Time_Optimization = yes
- endif
- ifeq ($(strip $(OLED_ENABLE)),yes)
- Link_Time_Optimization = yes
- endif
-endif
-
-ifeq ($(strip $(Link_Time_Optimization)),yes)
- EXTRAFLAGS += -flto -DUSE_Link_Time_Optimization
-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
-
-# Uncomment these for debugging
-# $(info -- RGBLIGHT_ENABLE=$(RGBLIGHT_ENABLE))
-# $(info -- OPT_DEFS=$(OPT_DEFS))
-# $(info )
+# convert Helix-specific options (that represent combinations of standard options)
+# into QMK standard options.
+include $(strip $(KEYBOARD_LOCAL_FEATURES_MK))
diff --git a/keyboards/helix/pico/keymaps/mtei/rules.mk b/keyboards/helix/pico/keymaps/mtei/rules.mk
index 3b518ff881..764b073007 100644
--- a/keyboards/helix/pico/keymaps/mtei/rules.mk
+++ b/keyboards/helix/pico/keymaps/mtei/rules.mk
@@ -1,125 +1,24 @@
-
-# Build Options
+# QMK Standard Build Options
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
+# See TOP/keyboards/helix/rules.mk for a list of options that can be set.
+# See TOP/docs/config_options.md for more information.
+#
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI controls
-AUDIO_ENABLE = yes # Audio output on port B5
-UNICODE_ENABLE = no # Unicode
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
-SWAP_HANDS_ENABLE = no # Enable one-hand typing
+AUDIO_ENABLE = yes # Audio output on port B5
+LINK_TIME_OPTIMIZATION_ENABLE = no # if firmware size over limit, try this option
-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 Spacific Build Options
+# you can uncomment and edit follows 6 Variables
+# jp: 以下の6つの変数を必要に応じて編集し、コメントアウトをはずします。
+# 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.)
+# 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)
-# Helix keyboard customize
-# you can edit follows 6 Variables
-# jp: 以下の6つの変数を必要に応じて編集します。
-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.)
-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)
-Link_Time_Optimization = no # if firmware size over limit, try this option
-
-#### 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 )
-
-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 += -DLED_ANIMATIONS
-endif
-
-ifeq ($(strip $(OLED_ENABLE)), yes)
- OPT_DEFS += -DOLED_ENABLE
-endif
-
-ifeq ($(strip $(LOCAL_GLCDFONT)), yes)
- OPT_DEFS += -DLOCAL_GLCDFONT
-endif
-
-ifeq ($(strip $(AUDIO_ENABLE)),yes)
- ifeq ($(strip $(RGBLIGHT_ENABLE)),yes)
- Link_Time_Optimization = yes
- endif
- ifeq ($(strip $(OLED_ENABLE)),yes)
- Link_Time_Optimization = yes
- endif
-endif
-
-ifeq ($(strip $(Link_Time_Optimization)),yes)
- EXTRAFLAGS += -flto -DUSE_Link_Time_Optimization
-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
-
-# Uncomment these for debugging
-# $(info -- RGBLIGHT_ENABLE=$(RGBLIGHT_ENABLE))
-# $(info -- OPT_DEFS=$(OPT_DEFS))
-# $(info )
+# convert Helix-specific options (that represent combinations of standard options)
+# into QMK standard options.
+include $(strip $(KEYBOARD_LOCAL_FEATURES_MK))
diff --git a/keyboards/helix/pico/local_features.mk b/keyboards/helix/pico/local_features.mk
new file mode 100644
index 0000000000..47b928647b
--- /dev/null
+++ b/keyboards/helix/pico/local_features.mk
@@ -0,0 +1,100 @@
+#
+# local_features.mk contains post-processing rules for the Helix keyboard.
+#
+# Post-processing rules convert keyboard-specific shortcuts (that represent
+# combinations of standard options) into QMK standard options.
+#
+
+define HELIX_CUSTOMISE_MSG
+ $(info Helix Spacific Build Options)
+ $(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))
+ $(info )
+endef
+
+ ifneq ($(strip $(HELIX)),)
+ ### Helix keyboard keymap: convenient command line option
+ ## make HELIX= helix/pico:
+ ## option= oled | back | under | no_ani | na | ios | verbose
+ ## ex.
+ ## make HELIX=oled helix/pico:
+ ## make HELIX=oled,back helix/pico:
+ ## make HELIX=oled,under helix/pico:
+ ## make HELIX=oled,back,na helix/pico:
+ ## make HELIX=oled,back,ios helix/pico:
+ ##
+ 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 no_ani,$(HELIX)), no_ani)
+ LED_ANIMATIONS = no
+ endif
+ ifeq ($(findstring ios,$(HELIX)), ios)
+ IOS_DEVICE_ENABLE = yes
+ endif
+ ifeq ($(findstring verbose,$(HELIX)), verbose)
+ SHOW_VERBOSE_INFO = yes
+ endif
+ SHOW_HELIX_OPTIONS = yes
+ endif
+
+########
+# convert Helix-specific options (that represent combinations of standard options)
+# into QMK standard options.
+
+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
+endif
+
+ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes)
+ OPT_DEFS += -DIOS_DEVICE_ENABLE
+endif
+
+ifeq ($(strip $(LED_ANIMATIONS)), yes)
+ OPT_DEFS += -DLED_ANIMATIONS
+endif
+
+ifeq ($(strip $(OLED_ENABLE)), yes)
+ OPT_DEFS += -DOLED_ENABLE
+endif
+
+ifeq ($(strip $(LOCAL_GLCDFONT)), yes)
+ OPT_DEFS += -DLOCAL_GLCDFONT
+endif
+
+ifeq ($(strip $(AUDIO_ENABLE)),yes)
+ ifeq ($(strip $(RGBLIGHT_ENABLE)),yes)
+ LINK_TIME_OPTIMIZATION_ENABLE = yes
+ endif
+ ifeq ($(strip $(OLED_ENABLE)),yes)
+ LINK_TIME_OPTIMIZATION_ENABLE = yes
+ endif
+endif
+
+ifneq ($(strip $(SHOW_HELIX_OPTIONS)),)
+ $(eval $(call HELIX_CUSTOMISE_MSG))
+ ifneq ($(strip $(SHOW_VERBOSE_INFO)),)
+ $(info -- RGBLIGHT_ENABLE = $(RGBLIGHT_ENABLE))
+ $(info -- OPT_DEFS = $(OPT_DEFS))
+ $(info -- LINK_TIME_OPTIMIZATION_ENABLE = $(LINK_TIME_OPTIMIZATION_ENABLE))
+ $(info )
+ endif
+endif
diff --git a/keyboards/helix/pico/pico.h b/keyboards/helix/pico/pico.h
index d9c57206c6..4360be2a9c 100644
--- a/keyboards/helix/pico/pico.h
+++ b/keyboards/helix/pico/pico.h
@@ -1,5 +1,4 @@
-#ifndef PICO_H
-#define PICO_CONFIG_H
+#pragma once
#include "../helix.h"
@@ -70,6 +69,3 @@
KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, \
KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##L36, KC_##R36, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35 \
)
-
-
-#endif
diff --git a/keyboards/helix/pico/rules.mk b/keyboards/helix/pico/rules.mk
index 75bf0a5ef8..e916f25f45 100644
--- a/keyboards/helix/pico/rules.mk
+++ b/keyboards/helix/pico/rules.mk
@@ -1,2 +1,19 @@
+KEYBOARD_LOCAL_FEATURES_MK := $(dir $(lastword $(MAKEFILE_LIST)))local_features.mk
+
+SRC += local_drivers/i2c.c
+SRC += local_drivers/serial.c
+SRC += local_drivers/ssd1306.c
+KEYBOARD_PATHS += $(HELIX_TOP_DIR)/local_drivers
+
+CUSTOM_MATRIX = yes
+
SRC += pico/matrix.c
SRC += pico/split_util.c
+
+# Helix Spacific Build Options default values
+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.)
+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)
diff --git a/keyboards/helix/pico/serial_config.h b/keyboards/helix/pico/serial_config.h
deleted file mode 100644
index fc8736d472..0000000000
--- a/keyboards/helix/pico/serial_config.h
+++ /dev/null
@@ -1,9 +0,0 @@
-//// #error rev2 serial config
-
-#ifndef SOFT_SERIAL_PIN
-/* Soft Serial defines */
-#define SOFT_SERIAL_PIN D2
-
-#define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2
-#define SERIAL_MASTER_BUFFER_LENGTH MATRIX_ROWS/2
-#endif
diff --git a/keyboards/helix/pico/under/rules.mk b/keyboards/helix/pico/under/rules.mk
new file mode 100644
index 0000000000..a37aa6fab3
--- /dev/null
+++ b/keyboards/helix/pico/under/rules.mk
@@ -0,0 +1 @@
+LED_UNDERGLOW_ENABLE = yes
diff --git a/keyboards/helix/pro_micro.h b/keyboards/helix/pro_micro.h
deleted file mode 100644
index f9e7ed75d9..0000000000
--- a/keyboards/helix/pro_micro.h
+++ /dev/null
@@ -1,362 +0,0 @@
-/*
- pins_arduino.h - Pin definition functions for Arduino
- Part of Arduino - http://www.arduino.cc/
-
- Copyright (c) 2007 David A. Mellis
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General
- Public License along with this library; if not, write to the
- Free Software Foundation, Inc., 59 Temple Place, Suite 330,
- Boston, MA 02111-1307 USA
-
- $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $
-*/
-
-#ifndef Pins_Arduino_h
-#define Pins_Arduino_h
-
-#include
-
-// Workaround for wrong definitions in "iom32u4.h".
-// This should be fixed in the AVR toolchain.
-#undef UHCON
-#undef UHINT
-#undef UHIEN
-#undef UHADDR
-#undef UHFNUM
-#undef UHFNUML
-#undef UHFNUMH
-#undef UHFLEN
-#undef UPINRQX
-#undef UPINTX
-#undef UPNUM
-#undef UPRST
-#undef UPCONX
-#undef UPCFG0X
-#undef UPCFG1X
-#undef UPSTAX
-#undef UPCFG2X
-#undef UPIENX
-#undef UPDATX
-#undef TCCR2A
-#undef WGM20
-#undef WGM21
-#undef COM2B0
-#undef COM2B1
-#undef COM2A0
-#undef COM2A1
-#undef TCCR2B
-#undef CS20
-#undef CS21
-#undef CS22
-#undef WGM22
-#undef FOC2B
-#undef FOC2A
-#undef TCNT2
-#undef TCNT2_0
-#undef TCNT2_1
-#undef TCNT2_2
-#undef TCNT2_3
-#undef TCNT2_4
-#undef TCNT2_5
-#undef TCNT2_6
-#undef TCNT2_7
-#undef OCR2A
-#undef OCR2_0
-#undef OCR2_1
-#undef OCR2_2
-#undef OCR2_3
-#undef OCR2_4
-#undef OCR2_5
-#undef OCR2_6
-#undef OCR2_7
-#undef OCR2B
-#undef OCR2_0
-#undef OCR2_1
-#undef OCR2_2
-#undef OCR2_3
-#undef OCR2_4
-#undef OCR2_5
-#undef OCR2_6
-#undef OCR2_7
-
-#define NUM_DIGITAL_PINS 30
-#define NUM_ANALOG_INPUTS 12
-
-#define TX_RX_LED_INIT DDRD |= (1<<5), DDRB |= (1<<0)
-#define TXLED0 PORTD |= (1<<5)
-#define TXLED1 PORTD &= ~(1<<5)
-#define RXLED0 PORTB |= (1<<0)
-#define RXLED1 PORTB &= ~(1<<0)
-
-static const uint8_t SDA = 2;
-static const uint8_t SCL = 3;
-#define LED_BUILTIN 13
-
-// Map SPI port to 'new' pins D14..D17
-static const uint8_t SS = 17;
-static const uint8_t MOSI = 16;
-static const uint8_t MISO = 14;
-static const uint8_t SCK = 15;
-
-// Mapping of analog pins as digital I/O
-// A6-A11 share with digital pins
-static const uint8_t ADC0 = 18;
-static const uint8_t ADC1 = 19;
-static const uint8_t ADC2 = 20;
-static const uint8_t ADC3 = 21;
-static const uint8_t ADC4 = 22;
-static const uint8_t ADC5 = 23;
-static const uint8_t ADC6 = 24; // D4
-static const uint8_t ADC7 = 25; // D6
-static const uint8_t ADC8 = 26; // D8
-static const uint8_t ADC9 = 27; // D9
-static const uint8_t ADC10 = 28; // D10
-static const uint8_t ADC11 = 29; // D12
-
-#define digitalPinToPCICR(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCICR) : ((uint8_t *)0))
-#define digitalPinToPCICRbit(p) 0
-#define digitalPinToPCMSK(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCMSK0) : ((uint8_t *)0))
-#define digitalPinToPCMSKbit(p) ( ((p) >= 8 && (p) <= 11) ? (p) - 4 : ((p) == 14 ? 3 : ((p) == 15 ? 1 : ((p) == 16 ? 2 : ((p) == 17 ? 0 : (p - A8 + 4))))))
-
-// __AVR_ATmega32U4__ has an unusual mapping of pins to channels
-extern const uint8_t PROGMEM analog_pin_to_channel_PGM[];
-#define analogPinToChannel(P) ( pgm_read_byte( analog_pin_to_channel_PGM + (P) ) )
-
-#define digitalPinToInterrupt(p) ((p) == 0 ? 2 : ((p) == 1 ? 3 : ((p) == 2 ? 1 : ((p) == 3 ? 0 : ((p) == 7 ? 4 : NOT_AN_INTERRUPT)))))
-
-#ifdef ARDUINO_MAIN
-
-// On the Arduino board, digital pins are also used
-// for the analog output (software PWM). Analog input
-// pins are a separate set.
-
-// ATMEL ATMEGA32U4 / ARDUINO LEONARDO
-//
-// D0 PD2 RXD1/INT2
-// D1 PD3 TXD1/INT3
-// D2 PD1 SDA SDA/INT1
-// D3# PD0 PWM8/SCL OC0B/SCL/INT0
-// D4 A6 PD4 ADC8
-// D5# PC6 ??? OC3A/#OC4A
-// D6# A7 PD7 FastPWM #OC4D/ADC10
-// D7 PE6 INT6/AIN0
-//
-// D8 A8 PB4 ADC11/PCINT4
-// D9# A9 PB5 PWM16 OC1A/#OC4B/ADC12/PCINT5
-// D10# A10 PB6 PWM16 OC1B/0c4B/ADC13/PCINT6
-// D11# PB7 PWM8/16 0C0A/OC1C/#RTS/PCINT7
-// D12 A11 PD6 T1/#OC4D/ADC9
-// D13# PC7 PWM10 CLK0/OC4A
-//
-// A0 D18 PF7 ADC7
-// A1 D19 PF6 ADC6
-// A2 D20 PF5 ADC5
-// A3 D21 PF4 ADC4
-// A4 D22 PF1 ADC1
-// A5 D23 PF0 ADC0
-//
-// New pins D14..D17 to map SPI port to digital pins
-//
-// MISO D14 PB3 MISO,PCINT3
-// SCK D15 PB1 SCK,PCINT1
-// MOSI D16 PB2 MOSI,PCINT2
-// SS D17 PB0 RXLED,SS/PCINT0
-//
-// Connected LEDs on board for TX and RX
-// TXLED D24 PD5 XCK1
-// RXLED D17 PB0
-// HWB PE2 HWB
-
-// these arrays map port names (e.g. port B) to the
-// appropriate addresses for various functions (e.g. reading
-// and writing)
-const uint16_t PROGMEM port_to_mode_PGM[] = {
- NOT_A_PORT,
- NOT_A_PORT,
- (uint16_t) &DDRB,
- (uint16_t) &DDRC,
- (uint16_t) &DDRD,
- (uint16_t) &DDRE,
- (uint16_t) &DDRF,
-};
-
-const uint16_t PROGMEM port_to_output_PGM[] = {
- NOT_A_PORT,
- NOT_A_PORT,
- (uint16_t) &PORTB,
- (uint16_t) &PORTC,
- (uint16_t) &PORTD,
- (uint16_t) &PORTE,
- (uint16_t) &PORTF,
-};
-
-const uint16_t PROGMEM port_to_input_PGM[] = {
- NOT_A_PORT,
- NOT_A_PORT,
- (uint16_t) &PINB,
- (uint16_t) &PINC,
- (uint16_t) &PIND,
- (uint16_t) &PINE,
- (uint16_t) &PINF,
-};
-
-const uint8_t PROGMEM digital_pin_to_port_PGM[] = {
- PD, // D0 - PD2
- PD, // D1 - PD3
- PD, // D2 - PD1
- PD, // D3 - PD0
- PD, // D4 - PD4
- PC, // D5 - PC6
- PD, // D6 - PD7
- PE, // D7 - PE6
-
- PB, // D8 - PB4
- PB, // D9 - PB5
- PB, // D10 - PB6
- PB, // D11 - PB7
- PD, // D12 - PD6
- PC, // D13 - PC7
-
- PB, // D14 - MISO - PB3
- PB, // D15 - SCK - PB1
- PB, // D16 - MOSI - PB2
- PB, // D17 - SS - PB0
-
- PF, // D18 - A0 - PF7
- PF, // D19 - A1 - PF6
- PF, // D20 - A2 - PF5
- PF, // D21 - A3 - PF4
- PF, // D22 - A4 - PF1
- PF, // D23 - A5 - PF0
-
- PD, // D24 - PD5
- PD, // D25 / D6 - A7 - PD7
- PB, // D26 / D8 - A8 - PB4
- PB, // D27 / D9 - A9 - PB5
- PB, // D28 / D10 - A10 - PB6
- PD, // D29 / D12 - A11 - PD6
-};
-
-const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = {
- _BV(2), // D0 - PD2
- _BV(3), // D1 - PD3
- _BV(1), // D2 - PD1
- _BV(0), // D3 - PD0
- _BV(4), // D4 - PD4
- _BV(6), // D5 - PC6
- _BV(7), // D6 - PD7
- _BV(6), // D7 - PE6
-
- _BV(4), // D8 - PB4
- _BV(5), // D9 - PB5
- _BV(6), // D10 - PB6
- _BV(7), // D11 - PB7
- _BV(6), // D12 - PD6
- _BV(7), // D13 - PC7
-
- _BV(3), // D14 - MISO - PB3
- _BV(1), // D15 - SCK - PB1
- _BV(2), // D16 - MOSI - PB2
- _BV(0), // D17 - SS - PB0
-
- _BV(7), // D18 - A0 - PF7
- _BV(6), // D19 - A1 - PF6
- _BV(5), // D20 - A2 - PF5
- _BV(4), // D21 - A3 - PF4
- _BV(1), // D22 - A4 - PF1
- _BV(0), // D23 - A5 - PF0
-
- _BV(5), // D24 - PD5
- _BV(7), // D25 / D6 - A7 - PD7
- _BV(4), // D26 / D8 - A8 - PB4
- _BV(5), // D27 / D9 - A9 - PB5
- _BV(6), // D28 / D10 - A10 - PB6
- _BV(6), // D29 / D12 - A11 - PD6
-};
-
-const uint8_t PROGMEM digital_pin_to_timer_PGM[] = {
- NOT_ON_TIMER,
- NOT_ON_TIMER,
- NOT_ON_TIMER,
- TIMER0B, /* 3 */
- NOT_ON_TIMER,
- TIMER3A, /* 5 */
- TIMER4D, /* 6 */
- NOT_ON_TIMER,
-
- NOT_ON_TIMER,
- TIMER1A, /* 9 */
- TIMER1B, /* 10 */
- TIMER0A, /* 11 */
-
- NOT_ON_TIMER,
- TIMER4A, /* 13 */
-
- NOT_ON_TIMER,
- NOT_ON_TIMER,
- NOT_ON_TIMER,
- NOT_ON_TIMER,
- NOT_ON_TIMER,
- NOT_ON_TIMER,
-
- NOT_ON_TIMER,
- NOT_ON_TIMER,
- NOT_ON_TIMER,
- NOT_ON_TIMER,
- NOT_ON_TIMER,
- NOT_ON_TIMER,
- NOT_ON_TIMER,
- NOT_ON_TIMER,
- NOT_ON_TIMER,
- NOT_ON_TIMER,
-};
-
-const uint8_t PROGMEM analog_pin_to_channel_PGM[] = {
- 7, // A0 PF7 ADC7
- 6, // A1 PF6 ADC6
- 5, // A2 PF5 ADC5
- 4, // A3 PF4 ADC4
- 1, // A4 PF1 ADC1
- 0, // A5 PF0 ADC0
- 8, // A6 D4 PD4 ADC8
- 10, // A7 D6 PD7 ADC10
- 11, // A8 D8 PB4 ADC11
- 12, // A9 D9 PB5 ADC12
- 13, // A10 D10 PB6 ADC13
- 9 // A11 D12 PD6 ADC9
-};
-
-#endif /* ARDUINO_MAIN */
-
-// These serial port names are intended to allow libraries and architecture-neutral
-// sketches to automatically default to the correct port name for a particular type
-// of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN,
-// the first hardware serial port whose RX/TX pins are not dedicated to another use.
-//
-// SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor
-//
-// SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial
-//
-// SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library
-//
-// SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins.
-//
-// SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX
-// pins are NOT connected to anything by default.
-#define SERIAL_PORT_MONITOR Serial
-#define SERIAL_PORT_USBVIRTUAL Serial
-#define SERIAL_PORT_HARDWARE Serial1
-#define SERIAL_PORT_HARDWARE_OPEN Serial1
-
-#endif /* Pins_Arduino_h */
diff --git a/keyboards/helix/rev1/config.h b/keyboards/helix/rev1/config.h
index 61fe744728..1a5a266641 100644
--- a/keyboards/helix/rev1/config.h
+++ b/keyboards/helix/rev1/config.h
@@ -16,8 +16,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
-#ifndef REV1_CONFIG_H
-#define REV1_CONFIG_H
+#pragma once
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
@@ -27,25 +26,25 @@ along with this program. If not, see .
#define PRODUCT Helix Alpha
#define DESCRIPTION A split keyboard for the cheap makers
+#include
+
#define HELIX_ROWS 5
/* key matrix size */
// Rows are doubled-up
#if HELIX_ROWS == 3
#define MATRIX_ROWS 6
- #define MATRIX_COLS 6
#define MATRIX_ROW_PINS { D7, E6, B4 }
#elif HELIX_ROWS == 4
#define MATRIX_ROWS 8
- #define MATRIX_COLS 6
#define MATRIX_ROW_PINS { D7, E6, B4, B5 }
#elif HELIX_ROWS == 5
#define MATRIX_ROWS 10
- #define MATRIX_COLS 6
#define MATRIX_ROW_PINS { D7, E6, B4, B5, D4 }
#else
#error "expected HELIX_ROWS 3 or 4 or 5"
#endif
+#define MATRIX_COLS 6
// wiring of each half
#define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6 }
@@ -86,5 +85,3 @@ along with this program. If not, see .
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
-
-#endif
diff --git a/keyboards/helix/rev1/keymaps/OLED_sample/keymap.c b/keyboards/helix/rev1/keymaps/OLED_sample/keymap.c
index 6bee91786c..cc73e36fb6 100644
--- a/keyboards/helix/rev1/keymaps/OLED_sample/keymap.c
+++ b/keyboards/helix/rev1/keymaps/OLED_sample/keymap.c
@@ -44,7 +44,7 @@ enum custom_keycodes {
M_SAMPLE
};
-#if HELIX_ROWS == 5
+#if MATRIX_ROWS == 10 // HELIX_ROWS == 5
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
@@ -174,7 +174,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
)
};
-#elif HELIX_ROWS == 4
+#elif MATRIX_ROWS == 8 // HELIX_ROWS == 4
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
diff --git a/keyboards/helix/rev1/keymaps/default/keymap.c b/keyboards/helix/rev1/keymaps/default/keymap.c
index 43928a4185..299840e3db 100644
--- a/keyboards/helix/rev1/keymaps/default/keymap.c
+++ b/keyboards/helix/rev1/keymaps/default/keymap.c
@@ -22,7 +22,7 @@ enum custom_keycodes {
ADJUST,
};
-#if HELIX_ROWS == 5
+#if MATRIX_ROWS == 10 // HELIX_ROWS == 5
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
@@ -152,7 +152,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
)
};
-#elif HELIX_ROWS == 4
+#elif MATRIX_ROWS == 8 // HELIX_ROWS == 4
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
diff --git a/keyboards/helix/rev1/rev1.h b/keyboards/helix/rev1/rev1.h
index a8d6ff0507..b505845ada 100644
--- a/keyboards/helix/rev1/rev1.h
+++ b/keyboards/helix/rev1/rev1.h
@@ -1,5 +1,4 @@
-#ifndef REV1_H
-#define REV1_CONFIG_H
+#pragma once
#include "../helix.h"
@@ -13,7 +12,7 @@
#endif
#endif
-#if HELIX_ROWS == 3
+#if MATRIX_ROWS == 6 // HELIX_ROWS == 3
#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)
@@ -47,7 +46,7 @@
{ R20, R21, R22, R23, R24, R25 }, \
}
#endif
-#elif HELIX_ROWS == 4
+#elif MATRIX_ROWS == 8 // HELIX_ROWS == 4
#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)
@@ -87,7 +86,7 @@
{ R30, R31, R32, R33, R34, R35 } \
}
#endif
-#elif HELIX_ROWS == 5
+#elif MATRIX_ROWS == 10 // HELIX_ROWS == 5
#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)
@@ -138,7 +137,7 @@
#endif
// Used to create a keymap using only KC_ prefixed keys
-#if HELIX_ROWS == 3
+#if MATRIX_ROWS == 6 // HELIX_ROWS == 3
#define LAYOUT_kc( \
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
@@ -149,7 +148,7 @@
KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, \
KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25 \
)
-#elif HELIX_ROWS == 4
+#elif MATRIX_ROWS == 8 // HELIX_ROWS == 4
#define LAYOUT_kc( \
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
@@ -179,4 +178,3 @@
)
#endif
-#endif
diff --git a/keyboards/helix/rev1/rules.mk b/keyboards/helix/rev1/rules.mk
index 13834f5da1..1418f01786 100644
--- a/keyboards/helix/rev1/rules.mk
+++ b/keyboards/helix/rev1/rules.mk
@@ -1,3 +1,10 @@
+SRC += local_drivers/i2c.c
+SRC += local_drivers/serial.c
+SRC += local_drivers/ssd1306.c
+KEYBOARD_PATHS += $(HELIX_TOP_DIR)/local_drivers
+
+CUSTOM_MATRIX = yes
+
SRC += rev1/matrix.c
SRC += rev1/split_util.c
diff --git a/keyboards/helix/rev2/back/oled/rules.mk b/keyboards/helix/rev2/back/oled/rules.mk
new file mode 100644
index 0000000000..dd68e9d3b0
--- /dev/null
+++ b/keyboards/helix/rev2/back/oled/rules.mk
@@ -0,0 +1 @@
+OLED_ENABLE = yes
diff --git a/keyboards/helix/rev2/back/rules.mk b/keyboards/helix/rev2/back/rules.mk
new file mode 100644
index 0000000000..066fffb74a
--- /dev/null
+++ b/keyboards/helix/rev2/back/rules.mk
@@ -0,0 +1 @@
+LED_BACK_ENABLE = yes
diff --git a/keyboards/helix/rev2/config.h b/keyboards/helix/rev2/config.h
index ec74458594..fe82ce140f 100644
--- a/keyboards/helix/rev2/config.h
+++ b/keyboards/helix/rev2/config.h
@@ -16,8 +16,7 @@ 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
+#pragma once
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
@@ -35,6 +34,10 @@ along with this program. If not, see .
#define USE_SERIAL
//#define USE_MATRIX_I2C
+/* Soft Serial defines */
+#define SOFT_SERIAL_PIN D2
+#define SERIAL_USE_MULTI_TRANSACTION
+
/* Select hand configuration */
#define MASTER_LEFT
// #define MASTER_RIGHT
@@ -88,7 +91,7 @@ along with this program. If not, see .
//#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
+ #if MATRIX_ROWS == 8 // HELIX_ROWS == 4
#define RGBLED_NUM 25
#else
#define RGBLED_NUM 32
@@ -101,7 +104,7 @@ along with this program. If not, see .
#if RGBLED_NUM <= 6
#define RGBLIGHT_LIMIT_VAL 255
#else
- #if HELIX_ROWS == 4
+ #if MATRIX_ROWS == 8 // HELIX_ROWS == 4
#define RGBLIGHT_LIMIT_VAL 130
#else
#define RGBLIGHT_LIMIT_VAL 120
@@ -112,7 +115,7 @@ along with this program. If not, see .
#if RGBLED_NUM <= 6
#define RGBLIGHT_LIMIT_VAL 90
#else
- #if HELIX_ROWS == 4
+ #if MATRIX_ROWS == 8 // HELIX_ROWS == 4
#define RGBLIGHT_LIMIT_VAL 45
#else
#define RGBLIGHT_LIMIT_VAL 35
@@ -155,4 +158,3 @@ along with this program. If not, see .
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
-#endif
diff --git a/keyboards/helix/rev2/keymaps/default/keymap.c b/keyboards/helix/rev2/keymaps/default/keymap.c
index a64eed3e72..2f4736add8 100644
--- a/keyboards/helix/rev2/keymaps/default/keymap.c
+++ b/keyboards/helix/rev2/keymaps/default/keymap.c
@@ -53,7 +53,7 @@ enum macro_keycodes {
//Macros
#define M_SAMPLE M(KC_SAMPLEMACRO)
-#if HELIX_ROWS == 5
+#if MATRIX_ROWS == 10 // HELIX_ROWS == 5
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
@@ -183,7 +183,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
)
};
-#elif HELIX_ROWS == 4
+#elif MATRIX_ROWS == 8 // HELIX_ROWS == 4
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
diff --git a/keyboards/helix/rev2/keymaps/default/readme.md b/keyboards/helix/rev2/keymaps/default/readme.md
index 2cdc5506ca..c618c47525 100644
--- a/keyboards/helix/rev2/keymaps/default/readme.md
+++ b/keyboards/helix/rev2/keymaps/default/readme.md
@@ -108,17 +108,16 @@
see `qmk_firmware/keyboards/helix/rev2/keymaps/default/rules.mk`
```
-# Helix keyboard customize
-# 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.)
-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)
-
+# Helix Spacific Build Options
+# you can uncomment and 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.)
+# 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)
```
## Compile
@@ -130,11 +129,24 @@ $ cd qmk_firmware
build
```
$ make helix:default
+$ make helix/rev2/back:default # with backlight
+$ make HELIX=no_ani helix/rev2/back:default # with backlight without animation
+$ make helix/rev2/under:default # with underglow
+$ make helix/rev2/oled:default # with oled
+$ make helix/rev2/oled/back:default # with oled and backlight
+$ make helix/rev2/oled/under:default # with oled and underglow
```
flash to keyboard
```
-$ make helix:default:avrdude
+$ make helix:default:flash
+$ make helix/rev2/back:default:flash # with backlight
+$ make HELIX=no_ani helix/rev2/back:default:flash # with backlight without animation
+$ make helix/rev2/under:default:flash # with underglow
+$ make helix/rev2/oled:default:flash # with oled
+$ make helix/rev2/oled/back:default:flash # with oled and backlight
+$ make helix/rev2/oled/under:default:flash # with oled and underglow
+
```
## Link
diff --git a/keyboards/helix/rev2/keymaps/default/readme_jp.md b/keyboards/helix/rev2/keymaps/default/readme_jp.md
index 3eaeab48ec..2dfab351b0 100644
--- a/keyboards/helix/rev2/keymaps/default/readme_jp.md
+++ b/keyboards/helix/rev2/keymaps/default/readme_jp.md
@@ -19,31 +19,6 @@
他の配列(Colemak,Dvorak)は、[readme.md](readme.md) を参照
-## コンパイルの仕方
-
-コンパイルは、qmk_firmware のトップディレクトリで行います。
-
-```
-$ cd qmk_firmware
-```
-qmk_firmwareでは各キーボードのコンパイルは、`<キーボード名>:<キーマップ名>`という指定で行います。
-
-```
-$ make helix:default
-```
-
-キーボードへの書き込みまで同時に行うには下記のように`:avrdude`を付けます。
-
-```
-$ make helix:default:avrdude
-```
-
-コンパイル結果と中間生成物を消去したい場合は以下のようにします。
-
-```
-$ make helix:default:clean
-```
-
## カスタマイズ
Helix キーボードを4行版として製作したり、オプションの OLED をつけたり、
@@ -51,17 +26,16 @@ RGB バックライトまたは、RGB Underglow をつけた場合は、
`qmk_firmware/keyboards/helix/rev2/keymaps/default/rules.mk` の以下の部分を編集して機能を有効化してください。
```
-# Helix keyboard customize
-# 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.)
-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)
-
+# Helix Spacific Build Options
+# you can uncomment and 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.)
+# 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)
```
## 4行版Helix に対応する
@@ -103,6 +77,58 @@ RBG Underglow や RGBバックライトの輝度を抑えて、iPad, iPhone に
IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
```
+## コンパイルの仕方
+
+コンパイルは、qmk_firmware のトップディレクトリで行います。
+
+```
+$ cd qmk_firmware
+```
+qmk_firmwareでは各キーボードのコンパイルは、`<キーボード名>:<キーマップ名>`という指定で行います。
+
+```
+$ make helix:default
+```
+
+キーボードへの書き込みまで同時に行うには下記のように`:flash`を付けます。
+
+```
+$ make helix:default:flash
+```
+
+コンパイル結果と中間生成物を消去したい場合は以下のようにします。
+
+```
+$ make helix:default:clean
+```
+
+上記の、rules.mk によるカスタマイズ項目の一部は下記のようにコマンド上で直接指定することも可能です。
+
+OLED を有効にしてコンパイルしてキーボードへの書き込む。
+```
+$ make helix/rev2/oled:default:flash
+```
+
+RGB バックライトを有効にしてコンパイルしてキーボードへ書き込む。
+```
+$ make helix/rev2/back:default:flash
+```
+
+RGB Underglow を有効にしてコンパイルしてキーボードへ書き込む。
+```
+$ make helix/rev2/under:default:flash
+```
+
+OLED とRGB バックライトを有効にしてコンパイルしてキーボードへ書き込む。
+```
+$ make helix/rev2/oled/back:default:flash
+```
+
+OLED とRGB Underglowを有効にしてコンパイルしてキーボードへ書き込む。
+```
+$ make helix/rev2/oled/under:default:flash
+```
+
## リンク
* さらに詳細は、[こちら helix/Doc/firmware_jp.md](https://github.com/MakotoKurauchi/helix/blob/master/Doc/firmware_jp.md)をご覧ください。
diff --git a/keyboards/helix/rev2/keymaps/default/rules.mk b/keyboards/helix/rev2/keymaps/default/rules.mk
index 37ef8632de..6a42fcf73f 100644
--- a/keyboards/helix/rev2/keymaps/default/rules.mk
+++ b/keyboards/helix/rev2/keymaps/default/rules.mk
@@ -1,124 +1,23 @@
-
-# Build Options
+# QMK Standard Build Options
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-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
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
-SWAP_HANDS_ENABLE = no # Enable one-hand typing
+# See TOP/keyboards/helix/rules.mk for a list of options that can be set.
+# See TOP/docs/config_options.md for more information.
+#
+LINK_TIME_OPTIMIZATION_ENABLE = no # if firmware size over limit, try this option
-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 Spacific Build Options
+# you can uncomment and 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.)
+# 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)
-# Helix keyboard customize
-# 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.)
-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)
-Link_Time_Optimization = no # if firmware size over limit, try this option
-
-#### 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 += -DLED_ANIMATIONS
-endif
-
-ifeq ($(strip $(OLED_ENABLE)), yes)
- OPT_DEFS += -DOLED_ENABLE
-endif
-
-ifeq ($(strip $(LOCAL_GLCDFONT)), yes)
- OPT_DEFS += -DLOCAL_GLCDFONT
-endif
-
-ifeq ($(strip $(Link_Time_Optimization)),yes)
- EXTRAFLAGS += -flto -DUSE_Link_Time_Optimization
-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
-
-# Uncomment these for debugging
-# $(info -- RGBLIGHT_ENABLE=$(RGBLIGHT_ENABLE))
-# $(info -- OPT_DEFS=$(OPT_DEFS))
-# $(info )
+# convert Helix-specific options (that represent combinations of standard options)
+# into QMK standard options.
+include $(strip $(KEYBOARD_LOCAL_FEATURES_MK))
diff --git a/keyboards/helix/rev2/keymaps/edvorakjp/rules.mk b/keyboards/helix/rev2/keymaps/edvorakjp/rules.mk
index 4a96517eb9..e30690029b 100644
--- a/keyboards/helix/rev2/keymaps/edvorakjp/rules.mk
+++ b/keyboards/helix/rev2/keymaps/edvorakjp/rules.mk
@@ -1,128 +1,38 @@
-# Build Options
+# QMK Standard Build Options
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-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
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
-SWAP_HANDS_ENABLE = no # Enable one-hand typing
+# See TOP/keyboards/helix/rules.mk for a list of options that can be set.
+# See TOP/docs/config_options.md for more information.
+#
+LINK_TIME_OPTIMIZATION_ENABLE = no # if firmware size over limit, try this option
TAP_DANCE_ENABLE = yes
-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 Spacific Build Options
+# you can uncomment and 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" instead of "common/glcdfont.c"
+# 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
+# IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
-# Helix keyboard customize
-# 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" instead of "common/glcdfont.c"
-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
-IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
-Link_Time_Optimization = no # if firmware size over limit, try this option
-
-#### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE.
-#### Do not enable these with audio at the same time.
-
-### Helix keyboard 'edvorakjp' keymap: convenient command line option
-## make HELIX= helix:edvorakjp
-## option= oled | back | under | na | ios
-## ex.
-## make HELIX=oled helix:edvorakjp
-## make HELIX=oled,back helix:edvorakjp
-## make HELIX=oled,under helix:edvorakjp
-## make HELIX=oled,back,na helix:edvorakjp
-## make HELIX=oled,back,ios helix:edvorakjp
-##
-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 )
+# convert Helix-specific options (that represent combinations of standard options)
+# into QMK standard options.
+include $(strip $(KEYBOARD_LOCAL_FEATURES_MK))
ifeq ($(strip $(HELIX_ROWS)), 4)
SRC += keymap_4rows.c
else ifeq ($(strip $(HELIX_ROWS)), 5)
SRC += keymap_5rows.c
-else
- $(error HELIX_ROWS = $(strip $(HELIX_ROWS)) is unexpected value)
endif
-OPT_DEFS += -DHELIX_ROWS=$(strip $(HELIX_ROWS))
-ifeq ($(strip $(LED_BACK_ENABLE)), yes)
- RGBLIGHT_ENABLE = yes
+ifeq ($(strip $(LED_UNDERGLOW_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
- OPT_DEFS += -DRGBLED_BACK
-else
- RGBLIGHT_ENABLE = no
-endif
-
-ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes)
- OPT_DEFS += -DIOS_DEVICE_ENABLE
-endif
-
-ifeq ($(strip $(LED_ANIMATIONS)), yes)
- OPT_DEFS += -DLED_ANIMATIONS
endif
ifeq ($(strip $(OLED_ENABLE)), yes)
- OPT_DEFS += -DOLED_ENABLE
SRC += oled.c
endif
-
-ifeq ($(strip $(LOCAL_GLCDFONT)), yes)
- OPT_DEFS += -DLOCAL_GLCDFONT
-endif
-
-ifeq ($(strip $(Link_Time_Optimization)),yes)
- EXTRAFLAGS += -flto -DUSE_Link_Time_Optimization
-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
-
-# Uncomment these for debugging
-# $(info -- RGBLIGHT_ENABLE=$(RGBLIGHT_ENABLE))
-# $(info -- OPT_DEFS=$(OPT_DEFS))
-# $(info )
diff --git a/keyboards/helix/rev2/keymaps/five_rows/keymap.c b/keyboards/helix/rev2/keymaps/five_rows/keymap.c
index 7b7d573d6a..eb73881c6b 100644
--- a/keyboards/helix/rev2/keymaps/five_rows/keymap.c
+++ b/keyboards/helix/rev2/keymaps/five_rows/keymap.c
@@ -67,7 +67,7 @@ enum custom_keycodes {
#define KC_LSLB LSFT(KC_LBRC)
#define ___ _______
-#if HELIX_ROWS == 5
+#if MATRIX_ROWS == 10 // HELIX_ROWS == 5
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
diff --git a/keyboards/helix/rev2/keymaps/five_rows/rules.mk b/keyboards/helix/rev2/keymaps/five_rows/rules.mk
index a0bf21917b..fb564b6e04 100644
--- a/keyboards/helix/rev2/keymaps/five_rows/rules.mk
+++ b/keyboards/helix/rev2/keymaps/five_rows/rules.mk
@@ -1,131 +1,35 @@
-
-# Build Options
+# QMK Standard Build Options
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-# CONSOLE_ENABLE and COMMAND_ENABLE
-# yes, no +1500
-# yes, yes +3200
-# no, yes +400
-NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-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
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
-SWAP_HANDS_ENABLE = no # Enable one-hand typing
+# See TOP/keyboards/helix/rules.mk for a list of options that can be set.
+# See TOP/docs/config_options.md for more information.
+#
+ CONSOLE_ENABLE = no # Console for debug
+ COMMAND_ENABLE = no # Commands for debug and configuration
+ # CONSOLE_ENABLE and COMMAND_ENABLE
+ # yes, no +1500
+ # yes, yes +3200
+ # no, yes +400
+LINK_TIME_OPTIMIZATION_ENABLE = no # if firmware size over limit, try this option
-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 Spacific Build Options
+# you can uncomment and 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.)
-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)
-Link_Time_Optimization = no # if firmware size over limit, try this option
+# 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.)
+# 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 'five_rows' keymap: convenient command line option
-## make HELIX= helix:five_rows
-## option= oled | back | under | na | ios
-## ex.
-## make HELIX=oled helix:five_rows
-## make HELIX=oled,back helix:five_rows
-## make HELIX=oled,under helix:five_rows
-## make HELIX=oled,back,na helix:five_rows
-## make HELIX=oled,back,ios helix:five_rows
-##
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
ifeq ($(findstring console,$(HELIX)), console)
CONSOLE_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 += -DLED_ANIMATIONS
-endif
-
-ifeq ($(strip $(OLED_ENABLE)), yes)
- OPT_DEFS += -DOLED_ENABLE
-endif
-
-ifeq ($(strip $(LOCAL_GLCDFONT)), yes)
- OPT_DEFS += -DLOCAL_GLCDFONT
-endif
-
-ifeq ($(strip $(Link_Time_Optimization)),yes)
- EXTRAFLAGS += -flto -DUSE_Link_Time_Optimization
-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
-
-# Uncomment these for debugging
-# $(info -- RGBLIGHT_ENABLE=$(RGBLIGHT_ENABLE))
-# $(info -- OPT_DEFS=$(OPT_DEFS))
-# $(info )
+# convert Helix-specific options (that represent combinations of standard options)
+# into QMK standard options.
+include $(strip $(KEYBOARD_LOCAL_FEATURES_MK))
diff --git a/keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c b/keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c
index be76dffbe4..0dae2524d8 100644
--- a/keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c
+++ b/keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c
@@ -55,7 +55,7 @@ enum custom_keycodes {
#define ML_RAIE MO(_RAI_E)
#define ML_ADJ MO(_ADJUST)
-#if HELIX_ROWS == 5
+#if MATRIX_ROWS == 10 // HELIX_ROWS == 5
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty JIS Normal
* ,-----------------------------------------. ,-----------------------------------------.
diff --git a/keyboards/helix/rev2/keymaps/five_rows_jis/rules.mk b/keyboards/helix/rev2/keymaps/five_rows_jis/rules.mk
index 37ef8632de..6c2057cfd6 100644
--- a/keyboards/helix/rev2/keymaps/five_rows_jis/rules.mk
+++ b/keyboards/helix/rev2/keymaps/five_rows_jis/rules.mk
@@ -1,124 +1,23 @@
-
-# Build Options
+# QMK Standard Build Options
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-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
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
-SWAP_HANDS_ENABLE = no # Enable one-hand typing
+# See TOP/keyboards/helix/rules.mk for a list of options that can be set.
+# See TOP/docs/config_options.md for more information.
+#
+LINK_TIME_OPTIMIZATION_ENABLE = no # if firmware size over limit, try this option
-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 Spacific Build Options
+# you can uncomment and 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.)
-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)
-Link_Time_Optimization = no # if firmware size over limit, try this option
+# 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.)
+# 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 += -DLED_ANIMATIONS
-endif
-
-ifeq ($(strip $(OLED_ENABLE)), yes)
- OPT_DEFS += -DOLED_ENABLE
-endif
-
-ifeq ($(strip $(LOCAL_GLCDFONT)), yes)
- OPT_DEFS += -DLOCAL_GLCDFONT
-endif
-
-ifeq ($(strip $(Link_Time_Optimization)),yes)
- EXTRAFLAGS += -flto -DUSE_Link_Time_Optimization
-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
-
-# Uncomment these for debugging
-# $(info -- RGBLIGHT_ENABLE=$(RGBLIGHT_ENABLE))
-# $(info -- OPT_DEFS=$(OPT_DEFS))
-# $(info )
+# convert Helix-specific options (that represent combinations of standard options)
+# into QMK standard options.
+include $(strip $(KEYBOARD_LOCAL_FEATURES_MK))
diff --git a/keyboards/helix/rev2/keymaps/froggy/keymap.c b/keyboards/helix/rev2/keymaps/froggy/keymap.c
index c27c1320c4..15fe1afb0c 100644
--- a/keyboards/helix/rev2/keymaps/froggy/keymap.c
+++ b/keyboards/helix/rev2/keymaps/froggy/keymap.c
@@ -64,7 +64,7 @@ enum macro_keycodes {
//Macros
#define M_SAMPLE M(KC_SAMPLEMACRO)
-#if HELIX_ROWS == 5
+#if MATRIX_ROWS == 10 // HELIX_ROWS == 5
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base
diff --git a/keyboards/helix/rev2/keymaps/froggy/rules.mk b/keyboards/helix/rev2/keymaps/froggy/rules.mk
index 8cd0efdd4d..bea059ca16 100644
--- a/keyboards/helix/rev2/keymaps/froggy/rules.mk
+++ b/keyboards/helix/rev2/keymaps/froggy/rules.mk
@@ -1,124 +1,23 @@
-
-# Build Options
+# QMK Standard Build Options
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-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
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
-SWAP_HANDS_ENABLE = no # Enable one-hand typing
+# See TOP/keyboards/helix/rules.mk for a list of options that can be set.
+# See TOP/docs/config_options.md for more information.
+#
+LINK_TIME_OPTIMIZATION_ENABLE = no # if firmware size over limit, try this option
-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 Spacific Build Options
+# you can uncomment and edit follows 7 Variables
+# jp: 以下の7つの変数を必要に応じて編集し、コメントアウトをはずします。
HELIX_ROWS = 5 # Helix Rows is 4 or 5
-OLED_ENABLE = yes # OLED_ENABLE
-LOCAL_GLCDFONT = yes # use each keymaps "helixfont.h" insted of "common/glcdfont.c"
-LED_BACK_ENABLE = yes # LED backlight (Enable WS2812 RGB underlight.)
+OLED_ENABLE = yes # OLED_ENABLE
+LOCAL_GLCDFONT = yes # 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)
-Link_Time_Optimization = no # if firmware size over limit, try this option
+# 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 += -DLED_ANIMATIONS
-endif
-
-ifeq ($(strip $(OLED_ENABLE)), yes)
- OPT_DEFS += -DOLED_ENABLE
-endif
-
-ifeq ($(strip $(LOCAL_GLCDFONT)), yes)
- OPT_DEFS += -DLOCAL_GLCDFONT
-endif
-
-ifeq ($(strip $(Link_Time_Optimization)),yes)
- EXTRAFLAGS += -flto -DUSE_Link_Time_Optimization
-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
-
-# Uncomment these for debugging
-# $(info -- RGBLIGHT_ENABLE=$(RGBLIGHT_ENABLE))
-# $(info -- OPT_DEFS=$(OPT_DEFS))
-# $(info )
+# convert Helix-specific options (that represent combinations of standard options)
+# into QMK standard options.
+include $(strip $(KEYBOARD_LOCAL_FEATURES_MK))
diff --git a/keyboards/helix/rev2/keymaps/led_test/README.md b/keyboards/helix/rev2/keymaps/led_test/README.md
index a25f3f36fe..2fe6706452 100644
--- a/keyboards/helix/rev2/keymaps/led_test/README.md
+++ b/keyboards/helix/rev2/keymaps/led_test/README.md
@@ -23,5 +23,5 @@ $ make helix:led_test
Execute the 'make' command and press the reset switch on the keyboard.
```
-$ make helix:led_test:avrdude
+$ make helix:led_test:flash
```
diff --git a/keyboards/helix/rev2/keymaps/led_test/rules.mk b/keyboards/helix/rev2/keymaps/led_test/rules.mk
index 2062d348d1..fb0b5a5476 100644
--- a/keyboards/helix/rev2/keymaps/led_test/rules.mk
+++ b/keyboards/helix/rev2/keymaps/led_test/rules.mk
@@ -1,126 +1,25 @@
-
-# Build Options
+# QMK Standard Build Options
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-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
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
-SWAP_HANDS_ENABLE = no # Enable one-hand typing
+# See TOP/keyboards/helix/rules.mk for a list of options that can be set.
+# See TOP/docs/config_options.md for more information.
+#
+LINK_TIME_OPTIMIZATION_ENABLE = no # if firmware size over limit, try this option
-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
+# Helix Spacific Build Options
+# you can uncomment and 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"
+# 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_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
LED_ANIMATIONS = yes # LED animations
-IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
-Link_Time_Optimization = no # if firmware size over limit, try this option
-
-#### 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 += -DLED_ANIMATIONS
-endif
-
-ifeq ($(strip $(OLED_ENABLE)), yes)
- OPT_DEFS += -DOLED_ENABLE
-endif
-
-ifeq ($(strip $(LOCAL_GLCDFONT)), yes)
- OPT_DEFS += -DLOCAL_GLCDFONT
-endif
-
-ifeq ($(strip $(Link_Time_Optimization)),yes)
- EXTRAFLAGS += -flto -DUSE_Link_Time_Optimization
-endif
+# IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
SRC += led_test_init.c
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-
-# Uncomment these for debugging
-# $(info -- RGBLIGHT_ENABLE=$(RGBLIGHT_ENABLE))
-# $(info -- OPT_DEFS=$(OPT_DEFS))
-# $(info )
+# convert Helix-specific options (that represent combinations of standard options)
+# into QMK standard options.
+include $(strip $(KEYBOARD_LOCAL_FEATURES_MK))
diff --git a/keyboards/helix/rev2/keymaps/yshrsmz/keymap.c b/keyboards/helix/rev2/keymaps/yshrsmz/keymap.c
index 5240ac800c..e5b5f57d97 100644
--- a/keyboards/helix/rev2/keymaps/yshrsmz/keymap.c
+++ b/keyboards/helix/rev2/keymaps/yshrsmz/keymap.c
@@ -49,7 +49,7 @@ enum macro_keycodes {
//Macros
#define M_SAMPLE M(KC_SAMPLEMACRO)
-#if HELIX_ROWS == 5
+#if MATRIX_ROWS == 10 // HELIX_ROWS == 5
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
@@ -158,7 +158,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
)
};
-#elif HELIX_ROWS == 4
+#elif MATRIX_ROWS == 8 // HELIX_ROWS == 4
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
diff --git a/keyboards/helix/rev2/keymaps/yshrsmz/rules.mk b/keyboards/helix/rev2/keymaps/yshrsmz/rules.mk
index 3f390b48f8..bc823e5e12 100644
--- a/keyboards/helix/rev2/keymaps/yshrsmz/rules.mk
+++ b/keyboards/helix/rev2/keymaps/yshrsmz/rules.mk
@@ -1,121 +1,24 @@
-
-# Build Options
+# QMK Standard Build Options
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-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
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
-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 = 4 # 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 = no # LED backlight (Enable WS2812 RGB underlight.)
-LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
-LED_ANIMATIONS = no # 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 += -DLED_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
-
+# See TOP/keyboards/helix/rules.mk for a list of options that can be set.
+# See TOP/docs/config_options.md for more information.
+#
+LINK_TIME_OPTIMIZATION_ENABLE = no # if firmware size over limit, try this option
AUTO_SHIFT_ENABLE = yes
-# Uncomment these for debugging
-# $(info -- RGBLIGHT_ENABLE=$(RGBLIGHT_ENABLE))
-# $(info -- OPT_DEFS=$(OPT_DEFS))
-# $(info )
+# Helix Spacific Build Options
+# you can uncomment and edit follows 7 Variables
+# jp: 以下の7つの変数を必要に応じて編集し、コメントアウトをはずします。
+HELIX_ROWS = 4 # 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 = no # LED backlight (Enable WS2812 RGB underlight.)
+# LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
+LED_ANIMATIONS = no # LED animations
+# IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
+
+# convert Helix-specific options (that represent combinations of standard options)
+# into QMK standard options.
+include $(strip $(KEYBOARD_LOCAL_FEATURES_MK))
diff --git a/keyboards/helix/rev2/local_features.mk b/keyboards/helix/rev2/local_features.mk
new file mode 100644
index 0000000000..0f4285eea9
--- /dev/null
+++ b/keyboards/helix/rev2/local_features.mk
@@ -0,0 +1,98 @@
+#
+# local_features.mk contains post-processing rules for the Helix keyboard.
+#
+# Post-processing rules convert keyboard-specific shortcuts (that represent
+# combinations of standard options) into QMK standard options.
+#
+
+define HELIX_CUSTOMISE_MSG
+ $(info Helix Spacific Build Options)
+ $(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))
+ $(info )
+endef
+
+ ifneq ($(strip $(HELIX)),)
+ ### Helix keyboard keymap: convenient command line option
+ ## make HELIX= helix:
+ ## option= oled | back | under | na | ios
+ ## ex.
+ ## make HELIX=oled helix:
+ ## make HELIX=oled,back helix:
+ ## make HELIX=oled,under helix:
+ ## make HELIX=oled,back,na helix:
+ ## make HELIX=oled,back,ios 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 no_ani,$(HELIX)), no_ani)
+ LED_ANIMATIONS = no
+ endif
+ ifeq ($(findstring ios,$(HELIX)), ios)
+ IOS_DEVICE_ENABLE = yes
+ endif
+ ifeq ($(findstring verbose,$(HELIX)), verbose)
+ SHOW_VERBOSE_INFO = yes
+ endif
+ SHOW_HELIX_OPTIONS = yes
+ endif
+
+########
+# convert Helix-specific options (that represent combinations of standard options)
+# into QMK standard options.
+
+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
+endif
+
+ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes)
+ OPT_DEFS += -DIOS_DEVICE_ENABLE
+endif
+
+ifeq ($(strip $(LED_ANIMATIONS)), yes)
+ OPT_DEFS += -DLED_ANIMATIONS
+endif
+
+ifeq ($(strip $(OLED_ENABLE)), yes)
+ OPT_DEFS += -DOLED_ENABLE
+endif
+
+ifeq ($(strip $(LOCAL_GLCDFONT)), yes)
+ OPT_DEFS += -DLOCAL_GLCDFONT
+endif
+
+ifneq ($(strip $(SHOW_HELIX_OPTIONS)),)
+ $(eval $(call HELIX_CUSTOMISE_MSG))
+ ifneq ($(strip $(SHOW_VERBOSE_INFO)),)
+ $(info -- RGBLIGHT_ENABLE = $(RGBLIGHT_ENABLE))
+ $(info -- OPT_DEFS = $(OPT_DEFS))
+ $(info -- LINK_TIME_OPTIMIZATION_ENABLE = $(LINK_TIME_OPTIMIZATION_ENABLE))
+ $(info )
+ endif
+endif
diff --git a/keyboards/helix/rev2/oled/back/rules.mk b/keyboards/helix/rev2/oled/back/rules.mk
new file mode 100644
index 0000000000..066fffb74a
--- /dev/null
+++ b/keyboards/helix/rev2/oled/back/rules.mk
@@ -0,0 +1 @@
+LED_BACK_ENABLE = yes
diff --git a/keyboards/helix/rev2/oled/rules.mk b/keyboards/helix/rev2/oled/rules.mk
new file mode 100644
index 0000000000..dd68e9d3b0
--- /dev/null
+++ b/keyboards/helix/rev2/oled/rules.mk
@@ -0,0 +1 @@
+OLED_ENABLE = yes
diff --git a/keyboards/helix/rev2/oled/under/rules.mk b/keyboards/helix/rev2/oled/under/rules.mk
new file mode 100644
index 0000000000..a37aa6fab3
--- /dev/null
+++ b/keyboards/helix/rev2/oled/under/rules.mk
@@ -0,0 +1 @@
+LED_UNDERGLOW_ENABLE = yes
diff --git a/keyboards/helix/rev2/rev2.h b/keyboards/helix/rev2/rev2.h
index f492999838..4e69daef50 100644
--- a/keyboards/helix/rev2/rev2.h
+++ b/keyboards/helix/rev2/rev2.h
@@ -1,5 +1,4 @@
-#ifndef REV2_H
-#define REV2_CONFIG_H
+#pragma once
#include "../helix.h"
@@ -18,7 +17,7 @@
#endif
#endif
-#if HELIX_ROWS == 4
+#if MATRIX_ROWS == 8 // HELIX_ROWS == 4
#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)
@@ -107,7 +106,7 @@
#endif
// Used to create a keymap using only KC_ prefixed keys
-#if HELIX_ROWS == 4
+#if MATRIX_ROWS == 8 // HELIX_ROWS == 4
#define LAYOUT_kc( \
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
@@ -136,5 +135,3 @@
KC_##L40, KC_##L41, KC_##L42, KC_##L43, KC_##L44, KC_##L45, KC_##L46, KC_##R46, KC_##R40, KC_##R41, KC_##R42, KC_##R43, KC_##R44, KC_##R45 \
)
#endif
-
-#endif
diff --git a/keyboards/helix/rev2/rules.mk b/keyboards/helix/rev2/rules.mk
index 5582a0f9c4..4db8f7da94 100644
--- a/keyboards/helix/rev2/rules.mk
+++ b/keyboards/helix/rev2/rules.mk
@@ -1,3 +1,21 @@
+KEYBOARD_LOCAL_FEATURES_MK := $(dir $(lastword $(MAKEFILE_LIST)))local_features.mk
+
+SRC += local_drivers/i2c.c
+SRC += local_drivers/serial.c
+SRC += local_drivers/ssd1306.c
+KEYBOARD_PATHS += $(HELIX_TOP_DIR)/local_drivers
+
+CUSTOM_MATRIX = yes
+
SRC += rev2/matrix.c
SRC += rev2/split_util.c
SRC += rev2/split_scomm.c
+
+# Helix Spacific Build Options default values
+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.)
+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)
diff --git a/keyboards/helix/rev2/serial_config.h b/keyboards/helix/rev2/serial_config.h
deleted file mode 100644
index 37135213d5..0000000000
--- a/keyboards/helix/rev2/serial_config.h
+++ /dev/null
@@ -1,8 +0,0 @@
-//// #error rev2 serial config
-
-#ifndef SOFT_SERIAL_PIN
-/* Soft Serial defines */
-#define SOFT_SERIAL_PIN D2
-
-#define SERIAL_USE_MULTI_TRANSACTION
-#endif
diff --git a/keyboards/helix/rev2/under/oled/rules.mk b/keyboards/helix/rev2/under/oled/rules.mk
new file mode 100644
index 0000000000..dd68e9d3b0
--- /dev/null
+++ b/keyboards/helix/rev2/under/oled/rules.mk
@@ -0,0 +1 @@
+OLED_ENABLE = yes
diff --git a/keyboards/helix/rev2/under/rules.mk b/keyboards/helix/rev2/under/rules.mk
new file mode 100644
index 0000000000..a37aa6fab3
--- /dev/null
+++ b/keyboards/helix/rev2/under/rules.mk
@@ -0,0 +1 @@
+LED_UNDERGLOW_ENABLE = yes
diff --git a/keyboards/helix/rules.mk b/keyboards/helix/rules.mk
index 245bff70fa..cf23434d80 100644
--- a/keyboards/helix/rules.mk
+++ b/keyboards/helix/rules.mk
@@ -1,75 +1,37 @@
-SRC += i2c.c
-SRC += serial.c
-SRC += ssd1306.c
-
# 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)
-
# 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 = caterina
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+HELIX_TOP_DIR := $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST))))
-# Build Options
+# QMK Standard Build Options
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-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
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
-SUBPROJECT_rev1 = no
-USE_I2C = yes
+# See TOP/docs/config_options.md for more information.
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = no # Mouse keys(+4700)
+EXTRAKEY_ENABLE = no # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+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
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-
-CUSTOM_MATRIX = yes
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
DEFAULT_FOLDER = helix/rev2