Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reduce Helix keyboard build variation #8669

Merged
merged 16 commits into from
Oct 25, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions docs/ChangeLog/20201128/PR8669.md
Original file line number Diff line number Diff line change
@@ -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) |
6 changes: 2 additions & 4 deletions keyboards/helix/pico/keymaps/default/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
60 changes: 41 additions & 19 deletions keyboards/helix/pico/local_features.mk
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand All @@ -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
Expand Down Expand Up @@ -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
43 changes: 43 additions & 0 deletions keyboards/helix/pico/qmk_conf/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
/*
This is the c configuration file for the keymap

Copyright 2012 Jun Wako <[email protected]>
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
4 changes: 4 additions & 0 deletions keyboards/helix/pico/qmk_conf/rules.mk
Original file line number Diff line number Diff line change
@@ -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))
1 change: 0 additions & 1 deletion keyboards/helix/pico/sc/back/rules.mk

This file was deleted.

1 change: 1 addition & 0 deletions keyboards/helix/pico/sc/rules.mk
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
SPLIT_KEYBOARD = yes
LED_BACK_ENABLE = yes
1 change: 0 additions & 1 deletion keyboards/helix/pico/sc/under/rules.mk

This file was deleted.

1 change: 0 additions & 1 deletion keyboards/helix/rev2/back/oled/rules.mk

This file was deleted.

34 changes: 12 additions & 22 deletions keyboards/helix/rev2/keymaps/default/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.)
Expand All @@ -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
Expand Down
21 changes: 11 additions & 10 deletions keyboards/helix/rev2/keymaps/default/readme_jp.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.)
Expand Down Expand Up @@ -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サポートを有効にする。
Expand Down Expand Up @@ -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 バックライトを有効にしてコンパイルしてキーボードへ書き込む。
Expand All @@ -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
```

## リンク
Expand Down
4 changes: 2 additions & 2 deletions keyboards/helix/rev2/keymaps/led_test/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 3 additions & 0 deletions keyboards/helix/rev2/keymaps/xulkal/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -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 :=
mtei marked this conversation as resolved.
Show resolved Hide resolved
Loading