Reduce Helix keyboard build variation (#8669)

* modify helix config. 'helix/rev2' always OLED on

* reduce helix build variation pattern

* helix/rev2/keymaps/xulkal/rules.mk: Explicitly disable helix standard post-processing

**Compilation result does not change**

* helix readmes update

* add temporary test script

* test end. -- Revert "add temporary test script"

This reverts commit 6229ed41f2ff8bac52015150837eaa51d9815e13.

* rename rev2/split_common/rules.mk -> rev2/sc/rules.mk

* rename pico/split_common/rules.mk -> pico/sc/rules.mk

* update keymaps/default/reademe.md

* add 'helix/pico/qmk_conf' and 'helix/rev2/qmk_conf' target

* add ChangeLog for Helix: PR 8669

* fix helix/pico/qmk_conf compile error

Co-authored-by: mtei <2170248+mtei@users.noreply.github.com>
This commit is contained in:
MakotoKurauchi 2020-10-25 16:54:41 +09:00 committed by James Young
parent f22a61e7e9
commit 3ede17e729
No known key found for this signature in database
GPG key ID: 8E1085BF6FCFBD74
27 changed files with 255 additions and 91 deletions

View file

@ -0,0 +1,33 @@
# Reduce Helix keyboard build variation
The build commands for the Helix keyboard are:
```
make <helix_build_name>:<keymap_name>
```
For `<helix_build_name>`, specify the one in the rightmost column of the table below, such as `helix`,` helix/pico`.
| before Oct 17 2019 | Oct 17 2019 | Mar 10 2020 | Nov 29 2020 |
| ---------------------|-------------------------|-------------------------| ------------------------|
| helix/rev1 | helix/rev1 | helix/rev1 | helix/rev1 |
| helix/pico | helix/pico | helix/pico | helix/pico |
| | helix/pico/back | helix/pico/back | helix/pico/back |
| | helix/pico/under | helix/pico/under | helix/pico/under |
| | | helix/pico/sc | -- |
| | | helix/pico/sc/back | helix/pico/sc |
| | | helix/pico/sc/under | -- |
| helix/rev2 (=helix) | helix/rev2 (=helix) | helix/rev2 (=helix) | -- |
| | helix/rev2/back | helix/rev2/back | -- |
| | helix/rev2/back/oled | helix/rev2/back/oled | ( --> helix/rev2/back) |
| | helix/rev2/oled | helix/rev2/oled | helix/rev2 (=helix) |
| | helix/rev2/oled/back | helix/rev2/oled/back | helix/rev2/back |
| | helix/rev2/oled/under | helix/rev2/oled/under | helix/rev2/under |
| | | helix/rev2/sc | -- |
| | | helix/rev2/sc/back | -- |
| | | helix/rev2/sc/oled | -- |
| | | helix/rev2/sc/oledback | helix/rev2/sc |
| | | helix/rev2/sc/oledunder | -- |
| | | helix/rev2/sc/under | -- |
| | helix/rev2/under | helix/rev2/under | -- |
| | helix/rev2/under/oled | helix/rev2/under/oled | ( --> helix/rev2/under) |

View file

@ -116,15 +116,13 @@ 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=no-ani helix/pico/back:default # with backlight without animation
$ make helix/pico/under:default # with underglow
```
build (experimental use of split_common)
build (experimental use of split_common with backlight)
```
$ make helix/pico/sc:default
$ make helix/pico/sc/back:default
$ make helix/pico/sc/under:default
```
flash to keyboard

View file

@ -5,6 +5,8 @@
# combinations of standard options) into QMK standard options.
#
KEYBOARD_LOCAL_FEATURES_MK :=
define HELIX_CUSTOMISE_MSG
$(info Helix Spacific Build Options)
$(info - OLED_ENABLE = $(OLED_ENABLE))
@ -15,42 +17,61 @@ define HELIX_CUSTOMISE_MSG
$(info )
endef
define HELIX_HELP_MSG
$(info Helix keyboard convenient command line option)
$(info - make HELIX=<options> helix/pico:<keymap>)
$(info - option= oled | back | under | na | no-ani)
$(info - ios | sc | split-common | scan | verbose)
$(info - ex.)
$(info - make HELIX=oled helix/pico:<keymap>)
$(info - make HELIX=back helix/pico:<keymap>)
$(info - make HELIX=under helix/pico:<keymap>)
$(info - make HELIX=back,na helix/pico:<keymap>)
$(info - make HELIX=back,ios helix/pico:<keymap>)
$(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)
COMMA=,
helix_option := $(subst $(COMMA), , $(HELIX))
ifneq ($(filter help,$(helix_option)),)
$(eval $(call HELIX_HELP_MSG))
$(error )
endif
ifneq ($(filter oled,$(helix_option)),)
OLED_ENABLE = yes
endif
ifeq ($(findstring back,$(HELIX)), back)
ifneq ($(filter back,$(helix_option)),)
LED_BACK_ENABLE = yes
else ifeq ($(findstring under,$(HELIX)), under)
else ifneq ($(filter under,$(helix_option)),)
LED_UNDERGLOW_ENABLE = yes
endif
ifeq ($(findstring na,$(HELIX)), na)
ifneq ($(filter na,$(helix_option)),)
LED_ANIMATIONS = no
endif
ifeq ($(findstring no_ani,$(HELIX)), no_ani)
ifneq ($(filter no_ani,$(helix_option)),)
LED_ANIMATIONS = no
endif
ifeq ($(findstring ios,$(HELIX)), ios)
ifneq ($(filter no-ani,$(helix_option)),)
LED_ANIMATIONS = no
endif
ifneq ($(filter ios,$(helix_option)),)
IOS_DEVICE_ENABLE = yes
endif
ifeq ($(findstring scan,$(HELIX)), scan)
ifneq ($(filter sc,$(helix_option)),)
SPLIT_KEYBOARD = yes
endif
ifneq ($(filter split-common,$(helix_option)),)
SPLIT_KEYBOARD = yes
endif
ifneq ($(filter scan,$(helix_option)),)
# use DEBUG_MATRIX_SCAN_RATE
# see docs/newbs_testing_debugging.md
OPT_DEFS += -DDEBUG_MATRIX_SCAN_RATE
CONSOLE_ENABLE = yes
SHOW_VERBOSE_INFO = yes
endif
ifeq ($(findstring verbose,$(HELIX)), verbose)
ifneq ($(filter verbose,$(helix_option)),)
SHOW_VERBOSE_INFO = yes
endif
SHOW_HELIX_OPTIONS = yes
@ -120,7 +141,8 @@ ifneq ($(strip $(SHOW_HELIX_OPTIONS)),)
$(info -- OLED_DRIVER_ENABLE = $(OLED_DRIVER_ENABLE))
$(info -- CONSOLE_ENABLE = $(CONSOLE_ENABLE))
$(info -- OPT_DEFS = $(OPT_DEFS))
$(info -- LTO_ENABLE = $(LTO_ENABLE))
$(info -- SPLIT_KEYBOARD = $(SPLIT_KEYBOARD))
$(info -- LTO_ENABLE = $(LTO_ENABLE))
$(info )
endif
endif

View file

@ -0,0 +1,43 @@
/*
This is the c configuration file for the keymap
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
// place overrides here
#ifdef AUDIO_ENABLE
#define STARTUP_SONG SONG(STARTUP_SOUND)
#define AUDIO_CLICKY
#endif
// If you need more program area, try select and reduce rgblight modes to use.
// Selection of RGBLIGHT MODE to use.
#if defined(LED_ANIMATIONS)
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
#define RGBLIGHT_EFFECT_SNAKE
#define RGBLIGHT_EFFECT_KNIGHT
#define RGBLIGHT_EFFECT_CHRISTMAS
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
//#define RGBLIGHT_EFFECT_RGB_TEST
//#define RGBLIGHT_EFFECT_ALTERNATING
#endif

View file

@ -0,0 +1,4 @@
EXTRAKEY_ENABLE = yes # Audio control and System control
AUDIO_ENABLE = yes # Audio output on port B5
include $(strip $(KEYBOARD_LOCAL_FEATURES_MK))

View file

@ -1 +0,0 @@
LED_BACK_ENABLE = yes

View file

@ -1 +1,2 @@
SPLIT_KEYBOARD = yes
LED_BACK_ENABLE = yes

View file

@ -1 +0,0 @@
LED_UNDERGLOW_ENABLE = yes

View file

@ -1 +0,0 @@
OLED_ENABLE = yes

View file

@ -112,7 +112,7 @@ see `qmk_firmware/keyboards/helix/rev2/keymaps/default/rules.mk`
# you can uncomment and edit follows 7 Variables
# jp: 以下の7つの変数を必要に応じて編集し、コメントアウトをはずします。
# HELIX_ROWS = 5 # Helix Rows is 4 or 5
# OLED_ENABLE = no # OLED_ENABLE
# 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.)
@ -128,35 +128,25 @@ $ 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
$ make helix:default # with oled
$ make helix/rev2/back:default # with oled and backlight
$ make HELIX=no-ani helix/rev2/back:default # with oled and backlight without animation
$ make helix/rev2/under:default # with oled and underglow
$ make HELIX=no-oled helix:default # without oled
```
build (experimental use of split_common)
build (experimental use of split_common with backlight and oled)
```
$ make helix/rev2/sc:default
$ make helix/rev2/sc/back:default
$ make helix/rev2/sc/under:default
$ make helix/rev2/sc/oled:default
$ make helix/rev2/sc/oledback:default
$ make helix/rev2/sc/oledunder:default
```
flash to keyboard
```
$ 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
$ make helix:default:flash # with oled
$ make helix/rev2/back:default:flash # with oled and backlight
$ make HELIX=no-ani helix/rev2/back:default:flash # with oled and backlight without animation
$ make helix/rev2/under:default:flash # with oled and underglow
$ make HELIX=no-oled helix:default:flash # without oled
```
## Link

View file

@ -30,7 +30,7 @@ RGB バックライトまたは、RGB Underglow をつけた場合は、
# you can uncomment and edit follows 7 Variables
# jp: 以下の7つの変数を必要に応じて編集し、コメントアウトをはずします。
# HELIX_ROWS = 5 # Helix Rows is 4 or 5
# OLED_ENABLE = no # OLED_ENABLE
# 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.)
@ -61,11 +61,12 @@ rules.mk の下記の部分を編集して no を yes に変更してくださ
LED_UNDERGLOW_ENABLE = yes # LED underglow (Enable WS2812 RGB underlight.)
```
## OLEDを効にする
## OLEDを効にする
rules.mk の下記の部分を編集して no を yes に変更してください。
OLED はデフォルトで有効になっています。
無効にしたいときは rules.mk の下記の部分を編集して yes を no に変更してください。
```
OLED_ENABLE = yes # OLED_ENABLE
OLED_ENABLE = no # OLED_ENABLE
```
## iPad/iPhoneサポートを有効にする。
@ -104,9 +105,9 @@ $ make helix:default:clean
上記の、rules.mk によるカスタマイズ項目の一部は下記のようにコマンド上で直接指定することも可能です。
OLED を効にしてコンパイルしてキーボードへの書き込む。
OLED を効にしてコンパイルしてキーボードへの書き込む。
```
$ make helix/rev2/oled:default:flash
$ make HELIX=no-oled helix/rev2:default:flash
```
RGB バックライトを有効にしてコンパイルしてキーボードへ書き込む。
@ -119,14 +120,14 @@ RGB Underglow を有効にしてコンパイルしてキーボードへ書き込
$ make helix/rev2/under:default:flash
```
OLED RGB バックライトを有効にしてコンパイルしてキーボードへ書き込む。
OLED を無効にして、RGB バックライトを有効にしてコンパイルしてキーボードへ書き込む。
```
$ make helix/rev2/oled/back:default:flash
$ make HELIX=no-oled helix/rev2/back:default:flash
```
OLED RGB Underglowを有効にしてコンパイルしてキーボードへ書き込む。
OLED を無効にして、RGB Underglowを有効にしてコンパイルしてキーボードへ書き込む。
```
$ make helix/rev2/oled/under:default:flash
$ make HELIX=no-oled helix/rev2/under:default:flash
```
## リンク

View file

@ -14,8 +14,8 @@ LTO_ENABLE = no # if firmware size over limit, try this option
OLED_ENABLE = yes # OLED_ENABLE
# LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" insted of "common/glcdfont.c"
LED_BACK_ENABLE = yes # LED backlight (Enable WS2812 RGB underlight.)
# LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
LED_ANIMATIONS = yes # LED animations
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)
SRC += led_test_init.c

View file

@ -11,3 +11,6 @@ OPT_DEFS += -DOLED_FONT_H=\"common/glcdfont.c\"
OPT_DEFS += -DOLED_90ROTATION
SPLIT_KEYBOARD = yes
# Explicitly disable helix standard post-processing
KEYBOARD_LOCAL_FEATURES_MK :=

View file

@ -5,6 +5,8 @@
# combinations of standard options) into QMK standard options.
#
KEYBOARD_LOCAL_FEATURES_MK :=
define HELIX_CUSTOMISE_MSG
$(info Helix Spacific Build Options)
$(info - OLED_ENABLE = $(OLED_ENABLE))
@ -15,42 +17,79 @@ define HELIX_CUSTOMISE_MSG
$(info )
endef
define HELIX_HELP_MSG
$(info Helix keyboard convenient command line option)
$(info - make HELIX=<options> helix:<keymap>)
$(info - option= oled | no-oled | back | no-back | under | na | no-ani)
$(info - ios | sc | split-common | scan | verbose)
$(info - ex.)
$(info - make HELIX=no-oled helix:<keymap>)
$(info - make HELIX=oled,no-back helix:<keymap>)
$(info - make HELIX=oled,under helix:<keymap>)
$(info - make HELIX=oled,back,na helix:<keymap>)
$(info - make HELIX=oled,back,ios helix:<keymap>)
$(info )
endef
ifneq ($(strip $(HELIX)),)
### Helix keyboard keymap: convenient command line option
## make HELIX=<options> helix:<keymap>
## option= oled | back | under | na | ios
## ex.
## make HELIX=oled helix:<keymap>
## make HELIX=oled,back helix:<keymap>
## make HELIX=oled,under helix:<keymap>
## make HELIX=oled,back,na helix:<keymap>
## make HELIX=oled,back,ios helix:<keymap>
##
ifeq ($(findstring oled,$(HELIX)), oled)
COMMA=,
helix_option := $(subst $(COMMA), , $(HELIX))
ifneq ($(filter help,$(helix_option)),)
$(eval $(call HELIX_HELP_MSG))
$(error )
endif
ifneq ($(filter nooled,$(helix_option)),)
OLED_ENABLE = no
else ifneq ($(filter no-oled,$(helix_option)),)
OLED_ENABLE = no
else ifneq ($(filter oled,$(helix_option)),)
OLED_ENABLE = yes
endif
ifeq ($(findstring back,$(HELIX)), back)
ifneq ($(filter noback,$(helix_option)),)
LED_BACK_ENABLE = no
LED_UNDERGLOW_ENABLE = no
else ifneq ($(filter no-back,$(helix_option)),)
LED_BACK_ENABLE = no
LED_UNDERGLOW_ENABLE = no
else ifneq ($(filter nounder,$(helix_option)),)
LED_BACK_ENABLE = no
LED_UNDERGLOW_ENABLE = no
else ifneq ($(filter no-under,$(helix_option)),)
LED_BACK_ENABLE = no
LED_UNDERGLOW_ENABLE = no
else ifneq ($(filter back,$(helix_option)),)
LED_BACK_ENABLE = yes
else ifeq ($(findstring under,$(HELIX)), under)
LED_UNDERGLOW_ENABLE = no
else ifneq ($(filter under,$(helix_option)),)
LED_BACK_ENABLE = no
LED_UNDERGLOW_ENABLE = yes
endif
ifeq ($(findstring na,$(HELIX)), na)
ifneq ($(filter na,$(helix_option)),)
LED_ANIMATIONS = no
endif
ifeq ($(findstring no_ani,$(HELIX)), no_ani)
ifneq ($(filter no_ani,$(helix_option)),)
LED_ANIMATIONS = no
endif
ifeq ($(findstring ios,$(HELIX)), ios)
ifneq ($(filter no-ani,$(helix_option)),)
LED_ANIMATIONS = no
endif
ifneq ($(filter ios,$(helix_option)),)
IOS_DEVICE_ENABLE = yes
endif
ifeq ($(findstring scan,$(HELIX)), scan)
ifneq ($(filter sc,$(helix_option)),)
SPLIT_KEYBOARD = yes
endif
ifneq ($(filter split-common,$(helix_option)),)
SPLIT_KEYBOARD = yes
endif
ifneq ($(filter scan,$(helix_option)),)
# use DEBUG_MATRIX_SCAN_RATE
# see docs/newbs_testing_debugging.md
OPT_DEFS += -DDEBUG_MATRIX_SCAN_RATE
CONSOLE_ENABLE = yes
SHOW_VERBOSE_INFO = yes
endif
ifeq ($(findstring verbose,$(HELIX)), verbose)
ifeq ($(filter verbose,$(helix_option)), verbose)
SHOW_VERBOSE_INFO = yes
endif
SHOW_HELIX_OPTIONS = yes
@ -119,7 +158,8 @@ ifneq ($(strip $(SHOW_HELIX_OPTIONS)),)
$(info -- OLED_DRIVER_ENABLE = $(OLED_DRIVER_ENABLE))
$(info -- CONSOLE_ENABLE = $(CONSOLE_ENABLE))
$(info -- OPT_DEFS = $(OPT_DEFS))
$(info -- LTO_ENABLE = $(LTO_ENABLE))
$(info -- SPLIT_KEYBOARD = $(SPLIT_KEYBOARD))
$(info -- LTO_ENABLE = $(LTO_ENABLE))
$(info )
endif
endif

View file

@ -1 +0,0 @@
LED_BACK_ENABLE = yes

View file

@ -1 +0,0 @@
OLED_ENABLE = yes

View file

@ -1 +0,0 @@
LED_UNDERGLOW_ENABLE = yes

View file

@ -0,0 +1,38 @@
/*
This is the c configuration file for the keymap
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
// place overrides here
// If you need more program area, try select and reduce rgblight modes to use.
// Selection of RGBLIGHT MODE to use.
#if defined(LED_ANIMATIONS)
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
#define RGBLIGHT_EFFECT_SNAKE
#define RGBLIGHT_EFFECT_KNIGHT
#define RGBLIGHT_EFFECT_CHRISTMAS
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
//#define RGBLIGHT_EFFECT_RGB_TEST
//#define RGBLIGHT_EFFECT_ALTERNATING
#endif

View file

@ -0,0 +1,4 @@
LED_BACK_ENABLE = yes # LED backlight (Enable WS2812 RGB underlight.)
LED_ANIMATIONS = yes # LED animations
include $(strip $(KEYBOARD_LOCAL_FEATURES_MK))

View file

@ -2,7 +2,7 @@ KEYBOARD_LOCAL_FEATURES_MK := $(dir $(lastword $(MAKEFILE_LIST)))local_features.
# Helix Spacific Build Options default values
HELIX_ROWS = 5 # Helix Rows is 4 or 5
OLED_ENABLE = no # OLED_ENABLE
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.)

View file

@ -1 +0,0 @@
LED_BACK_ENABLE = yes

View file

@ -1 +0,0 @@
OLED_ENABLE = yes

View file

@ -1,2 +0,0 @@
OLED_ENABLE = yes
LED_BACK_ENABLE = yes

View file

@ -1,2 +0,0 @@
OLED_ENABLE = yes
LED_UNDERGLOW_ENABLE = yes

View file

@ -1 +1,2 @@
SPLIT_KEYBOARD = yes
LED_BACK_ENABLE = yes

View file

@ -1 +0,0 @@
LED_UNDERGLOW_ENABLE = yes

View file

@ -1 +0,0 @@
OLED_ENABLE = yes