summaryrefslogtreecommitdiff
path: root/keyboards/helix/pico
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/helix/pico')
-rw-r--r--keyboards/helix/pico/back/rules.mk1
-rw-r--r--keyboards/helix/pico/config.h10
-rw-r--r--keyboards/helix/pico/keymaps/biacco/rules.mk139
-rw-r--r--keyboards/helix/pico/keymaps/default/readme.md28
-rw-r--r--keyboards/helix/pico/keymaps/default/readme_jp.md81
-rw-r--r--keyboards/helix/pico/keymaps/default/rules.mk141
-rw-r--r--keyboards/helix/pico/keymaps/mtei/rules.mk141
-rw-r--r--keyboards/helix/pico/local_features.mk100
-rw-r--r--keyboards/helix/pico/pico.h6
-rw-r--r--keyboards/helix/pico/rules.mk17
-rw-r--r--keyboards/helix/pico/serial_config.h9
-rw-r--r--keyboards/helix/pico/under/rules.mk1
12 files changed, 248 insertions, 426 deletions
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 <http://www.gnu.org/licenses/>.
*/
-#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 <http://www.gnu.org/licenses/>.
#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 <http://www.gnu.org/licenses/>.
//#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
-
-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 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=<options> 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 )
+LINK_TIME_OPTIMIZATION_ENABLE = no # if firmware size over limit, try this option
+
+# 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)
+
+# 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
-
-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 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=<options> 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 )
+AUDIO_ENABLE = yes # Audio output on port B5
+LINK_TIME_OPTIMIZATION_ENABLE = no # if firmware size over limit, try this option
+
+# 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)
+
+# 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
-
-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 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=<options> 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 )
+AUDIO_ENABLE = yes # Audio output on port B5
+LINK_TIME_OPTIMIZATION_ENABLE = no # if firmware size over limit, try this option
+
+# 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)
+
+# 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=<options> helix/pico:<keymap>
+ ## option= oled | back | under | no_ani | na | ios | verbose
+ ## ex.
+ ## make HELIX=oled helix/pico:<keymap>
+ ## make HELIX=oled,back helix/pico:<keymap>
+ ## make HELIX=oled,under helix/pico:<keymap>
+ ## make HELIX=oled,back,na helix/pico:<keymap>
+ ## make HELIX=oled,back,ios helix/pico:<keymap>
+ ##
+ 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