Commit Graph

28 Commits (03ed8197175ffe046de050b3c2fd7b70f641cc60)

Author SHA1 Message Date
MakotoKurauchi 2d14d12c74
[Keyboard] Helix add split common option (#7718)
* is_master, has_usb() move to rev2.[hc]

* Do recent helix/rev2 changes to helix/pico as well.

helix/pico/matrix.c: remove 'is_master'
helix/pico/pico.c: add 'is_master'
helix/pico/pico.h: add 'has_usb()' macro
helix/pico/split_util.c: remove 'setup_handedness()' 'has_usb()', add 'is_helix_master()' etc

* add HELIX=scan option into {rev2/pico}/local_features.mk

Made DEBUG_MATRIX_SCAN_RATE easy to use.

* Changed rules.mk to link "helix/local_drivers/ssd1306.c" only when OLED_ENABLE = yes.

* Added option to use split_common for helix/rev2, helix/pico keyboard.

how to build:
 ### build helix/pico (HelixPico) with helix current codes
  $ make helix/pico:KEY_MAP
  $ make helix/pico/back:KEY_MAP

 ### build helix/rev2 (Helix or Helix beta) with helix current codes
  $ make helix:KEY_MAP
  $ make helix/rev2/back:KEY_MAP
  $ make helix/rev2/under:KEY_MAP
  $ make helix/rev2/oled:KEY_MAP
  $ make helix/rev2/oled/back:KEY_MAP
  $ make helix/rev2/oled/under:KEY_MAP

 ### build helix/pico (HelixPico) with split_common codes
  $ make helix/pico/sc:KEY_MAP
  $ make helix/pico/sc/back:KEY_MAP
  $ make helix/pico/sc/under:KEY_MAP

 ### build helix/rev2 (Helix) with split_common codes
  $ make helix/rev2/sc:KEY_MAP
  $ make helix/rev2/sc/back:KEY_MAP
  $ make helix/rev2/sc/under:KEY_MAP
  $ make helix/rev2/sc/oled:KEY_MAP
  $ make helix/rev2/sc/oledback:KEY_MAP
  $ make helix/rev2/sc/oledunder:KEY_MAP

* add matrix_slave_scan_user() to helix/rev2/rev2.c, helix/pico/pico.h

* Changed 'helix:xulkal' to always use split_common and removed ad hoc code.

Added the following line to 'helix/rev2/keymaps/xulkal/rules.mk':

        SPLIT_KEYBOARD = yes

Removed the following ad hoc code from 'users/xulkal/custom_oled.c':

        #if KEYBOARD_helix_rev2
        extern uint8_t is_master;
        bool is_keyboard_master(void) { return is_master; }
        #endif

* add '#define DIODE_DIRECTION COL2ROW' into helix/{rev2|pico}/config.h

This commit does not change the build result.

* update helix readme

* keyboards/helix/readme.md
* keyboards/helix/pico/keymaps/default/readme.md
* keyboards/helix/rev2/keymaps/default/readme.md

Co-authored-by: mtei <2170248+mtei@users.noreply.github.com>
2020-03-10 01:33:46 -07:00
ridingqwerty 0f7d294ac3
Remove filesize changes from default-ish rules.mk files, sans handwired (#8040) 2020-01-30 13:47:48 -05:00
Takeshi ISHII 722c196b08 [Keyboard] Added workaround for serial.c/LTO issue for helix/rev2 and helix/pico. (#7558) 2019-12-07 23:44:54 -08:00
MakotoKurauchi 583be4a5f3 Helix default keymap update (#7465)
* add RGBRST key into helix/pico:default keymap ADJUST layer

* update helix/rev2:default keymap's OLED display contents

 * add RGBRST key to HELIX_ROWS == 4 ADJUST layer
 * add CAPS key to RAISE, LOWER layer
 * add layer status display on slave side oled
 * add RGB LED status display on both side oled
 * save stack memory size
2019-12-03 07:51:18 -08:00
Drashna Jaelre e6b9980bd4 Remove keymap_config extern from default keymaps (#7399)
* Remove keymap_config extern from default keymaps

* Revert unicode

Apparently VSCode does not like unicode, I didn't actually edit these lines, so it must have been automatic... :(

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-11-20 22:31:36 +00:00
fauxpark 363cdb5fc0 Remove duplicate pro_micro.h (#7246) 2019-11-03 22:35:43 +00:00
MakotoKurauchi 881f27b461 [Keyboard] Cleanup helix rules options (#6952)
* add temporary test shell-spript

* Use LINK_TIME_OPTIMIZATION_ENABLE instead of Link_Time_Optimization

No change in build result.

* Helix config.h use '#pragma once'

No change in build result.

* Helix helix.h,rev?/rev?.h,pico/pico.h use '#pragma once'

No change in build result.

* Use drivers/avr/pro_micro.h instead of keyboards/helix/pro_micro.h

No change in build result.

* remove keyboards/helix/{rev2|pico}/serial_config.h

No change in build result.

* 'HELIX_ROWS' macro is now referenced only in rev1/config.h and rev2/config.h.

No change in build result.

* The contents of helix/rules.mk were distributed to subdirectories.

This is a preparation to create a new subdirectory for helix code using split_common.

No change in build result.

remove 'USE_I2C = yes', 'SUBPROJECT_rev1 = no' from keyboards/helix/rules.mk.
follow code move from keyboards/helix/rules.mk to keyboards/helix/{rev1,rev2,pico}/rules.mk.

----
 SRC += i2c.c
 SRC += serial.c
 SRC += ssd1306.c

 CUSTOM_MATRIX = yes
---

* helix/{i2c.[ch], serial.[ch], ssd1306.[ch]} move into helix/local_drivers/

No change in build result.

* Simplified 'helix/pico/keymap/*/rules.mk' using KEYBOARD_LOCAL_FEATURES_MK.

No change in build result.

 * add keyboards/helix/pico/local_features.mk
 * add 'KEYBOARD_LOCAL_FEATURES_MK := $(dir $(lastword $(MAKEFILE_LIST)))local_features.mk' into keyboards/helix/pico/rules.mk
 * remove HELIX_CUSTOMISE_MSG from keyboards/helix/pico/keymaps/*/rules.mk
 * remove HELIX= process from keyboards/helix/pico/keymaps/*/rules.mk
 * remove convert code(helix to standaerd) from keyboards/helix/pico/keymaps/*/rules.mk
 * add 'include $(strip $(KEYBOARD_LOCAL_FEATURES_MK))' into keyboards/helix/pico/keymaps/*/rules.mk

* Simplified 'helix/rev2/keymap/*/rules.mk' using KEYBOARD_LOCAL_FEATURES_MK.

No change in build result.

* add keyboards/helix/rev2/local_features.mk
* add 'KEYBOARD_LOCAL_FEATURES_MK := $(dir $(lastword $(MAKEFILE_LIST)))local_features.mk' into keyboards/helix/rev2/rules.mk
* remove HELIX_CUSTOMISE_MSG from keyboards/helix/rev2/keymaps/*/rules.mk
* remove HELIX= process from keyboards/helix/rev2/keymaps/*/rules.mk
* remove convert code(helix to standaerd) from keyboards/helix/rev2/keymaps/*/rules.mk
* add 'include $(strip $(KEYBOARD_LOCAL_FEATURES_MK))' into keyboards/helix/rev2/keymaps/*/rules.mk

* Added helix keyboard build NEW method.

No change in build result.

 ## Helix build
 $ make helix:default            ## no oled, no backlight, no underglow
 $ make helix/rev2/back:default  ## no oled, with backlight, no underglow
 $ make helix/rev2/under:default ## no oled, no backlight, with underglow
 $ make helix/rev2/oled:default  ## with oled, no backlight, not underglow
 $ make helix/rev2/oled/back:default  ## with oled, with backlight, no underglow
 $ make helix/rev2/back/oled:default  ## with oled, with backlight, no underglow
 $ make helix/rev2/oled/under:default ## with oled, no backlight, with underglow
 $ make helix/rev2/under/oled:default ## with oled, no backlight, with underglow

 ## Helix pico build
 $ make helix/pico:default       ## no oled, no backlight, no underglow
 $ make helix/pico/back:default  ## no oled, with backlight, no underglow
 $ make helix/pico/under:default ## no oled, no backlight, with underglow
 $ make helix/pico/oled:default  ## with oled, no backlight, not underglow

* add temporary test shell-spript

* test end remove test script. Revert "add temporary test shell-spript"

This reverts commit 5dac20cd0f8b4bc192edb2313652c1635f829657.

* test end remove test script. Revert "add temporary test shell-spript"

This reverts commit ec49f63b2dc0f2b3fe8c1c36ffa615cee2f7e3ed.

* Extended the 'HELIX=' option. add keyword 'verbose', 'no_ani'.

No change in build result.

* update keyboards/helix/{rev2,pico}/keymaps/default/readme.md

* rename KEYBOARD_TOP_DIR to HELIX_TOP_DIR in rules.mk

* update keyboards/helix/{rev2,pico}/keymaps/default/readme_jp.md

* rm keyboards/helix/pico/oled/rules.mk

* update helix's readmes. All the ':avrdude' was replaced with ':flash'.

* remove F_CPU, ARCH, F_USB, INTERRUPT_CONTROL_ENDPOINT from helix/rules.mk

No change in build result.
2019-10-16 11:01:49 -07:00
Konstantin Đorđević 267a85c885 Remove KC_DELT alias in favor of KC_DEL (#6327)
* Remove KC_DELT alias in favor of KC_DEL

* Add changelog
2019-08-30 15:01:52 -07:00
fauxpark 9bb4e63a11 Remove old promicro_bootloader_jmp() declarations (#6444) 2019-08-21 02:05:08 +01:00
Drashna Jaelre faaaa134fd Replace DEBOUNCING_DELAY (deprecated) with DEBOUNCE (#5997) 2019-06-06 12:09:56 -07:00
Drashna Jaelre 0072fdd799 Cleanup Default Keymaps (#5442)
* Cleanup Default Keymaps to conform to QMK Firmware standards

* Minor fixes

* Revert some changes
2019-03-19 12:57:40 -07:00
fauxpark 3b2a484a5b Remove redundant KC_TRNS and KC_NO fillers in remaining keymaps (#5154) 2019-02-17 07:38:46 -08:00
fauxpark e2d3c92199 Remove redundant KC_TRNS and KC_NO fillers in default keymaps (#5152) 2019-02-16 21:36:02 -08:00
Drashna Jaelre b05c0e46c6 Adds a default value for IS_COMMAND for COMMAND feature (#4301)
* Add default value for IS_COMMAND for COMMAND feature

* Cleanup and consistency

* Update Templates to reflect change

* Fix IS_COMMAND in template

* Fix IS_COMMAND define

* Use consistent IS_COMMAND block in templates

* Remove unnecessary `#undef IS_COMMAND` directives

* Fix compile issue on orthodox

* Reomve IS_COMMAND option for newer boards

* Remove all existing definitions of IS_COMMAND if they use default LSHIFT and RSHIFT setting

* Remove a couple of additional IS_COMMAND defines

* Remove remaining redundant IS_COMMAND definitions

* Remove #undef IS_COMMAND from orthodox:drashna and whitefox:konstantin

* Remove multiple empty lines in modified config.h files

* Update additional boards

* Reomve IS_COMMAND from newer boards

* Update Alice keyboard

* Remove IS_COMMAND from additional boards

Jan 24th edition
2019-01-26 15:49:45 -08:00
noroadsleft 7f4f0f7685 Remove deprecated QUANTUM_DIR code blocks from makefiles (#4754)
* Remove QUANTUM_DIR code blocks from keyboard rules

This commit removes the deprecated "QUANTUM_DIR" code block from
rules.mk files that affect entire keyboards.

* remove QUANTUM_DIR code blocks from rules for default keymaps

This commit removes the deprecated "QUANTUM_DIR" code block from
rules.mk files that affect default keymaps.

* remove QUANTUM_DIR code blocks from rules for user keymaps

This commit removes the deprecated "QUANTUM_DIR" code block from
rules.mk files that affect "user" keymaps. (It's actually any keymap
that isn't named `default`.)

* remove QUANTUM_DIR code blocks from rules for community layouts

This commit removes the deprecated "QUANTUM_DIR" code block from
rules.mk files for community layouts.

* remove QUANTUM_DIR code blocks from rules for userspaces

This commit removes the deprecated "QUANTUM_DIR" code block from
rules.mk files for userspaces.
2019-01-04 07:25:48 -08:00
Takeshi ISHII 30c3f3b2bd Keymap: Add Helix/pico keymap 'mtei' (#4696)
* add pico keymap 'mtei'

* num layer key change
2018-12-20 09:50:51 -08:00
MakotoKurauchi 29830f306f Keyboard: Pr/helixpico add layout kc (#4686)
* add some comment about Helix customize and auto-setup RGBLIGHT_LIMIT_VAL

* add define USB_MAX_POWER_CONSUMPTION

* Helix keyboard OLED, RGBLIGHT enable/disable control integrate into rules.mk

rules.mk: add 4 Variables for compile control.

   # Helix keyboard customize
   # you can edit follows 4 Variables
   #  jp: 以下の4つの変数を必要に応じて編集します。
   OLED_ENABLE = no            # OLED_ENABLE
   LED_BACK_ENABLE = no        # LED backlight (Enable WS2812 RGB underlight.)
   LED_UNDERGLOW_ENABLE = no   # LED underglow (Enable WS2812 RGB underlight.)
   LED_ANIMATIONS = yes        # LED animations

config.h: auto set RGBLED_NUM by HELIX_ROWS and rules.mk's define

* HELIX_ROWS define move from config.h to rules.mk

* add readme.md

* rename readme.md to readme_jp.md

* add readme.md and modify readme_jp.md

* change helix/ssd1306.c for select glcdfont.c position

* add variable LOCAL_GLCDFONT into each keymaps rules.mk

* Add iPhone/iPad LED support to Helix default keymap

* renumber _ADJUST for shrink program size

* Fix Helix i2c wrong bit rate

* add helix serial debug code

* serial debug macro move from config.h to serial.h

* helix serial.c debugging...

* refine debug macros

* add some comments

* add SELECT_SERIAL_SPEED

* add comments

* debugging sync_send/sync_recv

* add very high speed

* fix sync_send/sync_recv

* fix com. start and switch send/recv

* debug mode off

* remove debug codes

* temporary change, compiling C, C++ and ASM without -g

* helix config.h refine

* Revert "temporary change, compiling C, C++ and ASM without -g"

This reverts commit e9730cbbfd94fbcf792d992e3a1a65ad279b24d6.

* add change_reciver2sender()/change_sender2reciver()

This is a change to improve readability.

* txled, rxled off in matrix_init()

* add serial_send_packet() / serial_recive_packet()

This is a change to reduce object size.

* add serial_low() at ISR() top

* add __attribute__((always_inline)) to some functions

* modify serial_send_packet()/serial_recive_packet()

A little, object size reduction.
A little, speedup.

* add debug code to helix/serial.c

* Adjust sampling timing of serial signal being received

* add split_scomm.c/split_scomm.h and change serial.c/serial.h

serial.c was divided into 2 layers, split_scom.c and serial.c.
The upper layer split_scomm.c is called from matrix.c.
The lower layer serial.c accesses the hardware.

* add split_scomm.c/split_scomm.h into helix/rev1

* reduce object size helix/rev2/matrix.c

* remove checksum check, add parity check

* force occur parity error for test

* parity test ok. remove test code

* change some comment & add skip code when buffer_size == 0

* serial.c: multiple types of transaction support

Add 4 bits transaction-type field at packet top.
Select Transaction Descriptor Table entry by transaction-type.

* helix serial master-slave transaction optimize

Using multi-type transaction feature of serial.c, communication contents between master slaves were optimized.

* add debug code for retry

* add comment into each config.h

* fix ISR status drop

* add a debug macro 'debug_retry_chg()'

* reduce led_test size

* remove debug code from helix/serial.c and etc.

* helix:five_rows change TAPPING_TERM value 140

* Improved compatibility with let's split of serial.c. Finish helix/serial.c improvement.

- The difference with the original let's split's serial.c
  - It's high-speed about 4 times.
  - Stable bi-directional data transfer. (Helix need master to slave transfer)
  - serial.h was divided 2 files, serial_config.h and sereial.h
  - With multiple types of transaction support, communication contents can be optimized. (NEW flexible API)

- USE OLD Simple APIs (compatible with let's split serial.c)
  - files :
    - serial_config.h -- hardware configuration (need include by config.h)
    - serial.c/serial.h -- serial communication

- USE NEW flexible APIs. (Support multi-type transaction function.)
  serial.c was divided into 2 layers, split_scom.c and serial.c.
  The upper layer split_scomm.c is called from matrix.c.
  The lower layer serial.c accesses the hardware.
  - files
    - split_scomm.c -- communication buffer is defined in here. call by matrix.c.
    - split_scomm.h -- buffer size is defined in here. include by matrix.c, split_util.c
    - serial_config.h -- hardware configuration (need include by config.h)
      To use the NEW API, specify #define SERIAL_USE_MULTI_TRANSACTION
    - serial.c/serial.h -- serial communication lower layer

- NEW APIs for serial.c / serial.h (The lower layer)
  // Soft Serial Transaction Descriptor
  typedef struct _SSTD_t  {
      uint8_t *status;
      uint8_t initiator2target_buffer_size;
      uint8_t *initiator2target_buffer;
      uint8_t target2initiator_buffer_size;
      uint8_t *target2initiator_buffer;
  } SSTD_t;

  // initiator is transaction start side
  void soft_serial_initiator_init(SSTD_t *sstd_table);
  // target is interrupt accept side
  void soft_serial_target_init(SSTD_t *sstd_table);
  int soft_serial_transaction(int sstd_index);
  int soft_serial_get_and_clean_target_status(int sstd_index);

- NEW APIs for split_scomm.c / split_scomm.h (The upper layer)
   move from old serial.c the following buffer and functions
     serial_slave_buffer[]
     serial_master_buffer[]
     void serial_master_init(void)
     void serial_slave_init(void)
     int serial_update_buffers(void)
   define SERIAL_xxxxx_BUFFER_LENGTH move from serial_config.h to split_scomm.h

* fix comment typo

* Fix the value of helix:five_rows variable HELIX_ROWS to 5.

* led_test rules.mk some change

* Separate common parts of helix/rev2/keymaps/*/rules.mk into helix/rev2/keymaps_common.mk

* helix/rev2/keymaps/edvorakjp/rules.mk use helix/rev2/keymaps_common.mk

* Separate common parts of helix/pico/keymaps/*/rules.mk into helix/pico/keymaps_common.mk

* Helix each keymap's using rgblight mode symbol instead magic number

No change in build result.

* Helix pico keymaps: make rgblight modes selectable.

No change in build result.

* Helix rev2 keymaps: make rgblight modes selectable.

No change in build result.

* fixed Helix froggy/keymap.c: invalid rgblight mode value 0 to 1 (=RGBLIGHT_MODE_STATIC_LIGHT)

* Deselect RGB_TEST and ALTERNATING in Helix rev2,pico keymaps config.h.

* Merge branch 'master' of https://github.com/qmk/qmk_firmware

* revert 955dcbc

* delete keymaps_common.mk

* add LAYOUT_kc() to keyboards/helix/pico/pico.h
2018-12-20 08:55:03 -08:00
Konstantin Đorđević 1904319745 Remove RGB_SMOD alias and replace uses with RGB_MOD (#4319) 2018-11-27 15:34:06 -08:00
Takeshi ISHII a054b5a06c Fix Helix ws2812.c listed more than once warning. (#4499)
Remove `SRC += ws2812.c` from helix/rev2/rules.mk and helix/pico/rules.mk.
Because it will be added in common_features.mk.
2018-11-27 07:22:47 -08:00
comaid 2b7decbaeb Fix up screen off timer of helix (#4347)
* Fix up screen off timer of helix

* Fix Up ScreenOffInterval exceeded uint16_t

* Fix Up never waking up once screen off if in case of matrix are not dirty

* Changing referenIng incorrect constant name

* OLED_ENABLED => SSD1306OLED

* Improve internal processing of process_record_kb()

* Use the return value of process_record_gfx()

* Move a include statement into #ifdef block

Move   #include "ssd1306.h` statement into #ifdef block

* Move process_record_kbI()

Move process_record_kb() from helix.c to rev1.c/rev2.c/pico.c

* Move process_record_kb()
2018-11-12 12:20:50 -08:00
Drashna Jaelre 7e99d869de Remove all of the deprecated RGB defines
Fixes #3641
2018-10-22 14:55:57 -04:00
Drashna Jaelre 00b6f14821 Replace outdated RGB/Audio information 2018-10-22 14:55:05 -04:00
Takeshi ISHII 4665e4ffff Keyboard: Helix serial.c, split_scom.c bug fix and update (#4191)
* helix/serial.c add support PD1,PD3,PE6 and configuration simplify

* Add comment about ATmega32U4 I2C

* Add compile time check for ATmega32U4 I2C

* change TAB code to 8 SPACE code

* Helix serial.c PORTD,PD0 test. OK

  OK PD0
  -  PD1
  OK PD2
  -  PD3
  -  PE6

* Helix serial.c PORTD,PD1 test. OK

   OK PD0
   OK PD1
   OK PD2
   -  PD3
   -  PE6

* Helix serial.c PORTD,PD3 test. OK

   OK PD0
   OK PD1
   OK PD2
   OK PD3
   -  PE6

* Helix serial.c PORTE,PD6 test. OK

   OK PD0
   OK PD1
   OK PD2
   OK PD3
   OK PE6

* Helix serial.c: PD0,PD1,PD3,PE6 all test end

* Helix serial.c: rename SOFT_SERIAL_PORT to SOFT_SERIAL_PIN

* Helix serial.c add debug code

* Helix serial.c: add transaction ID range check

* Helix serial.c debug code update

* Helix serial.c debug code update

* Helix serial.c: Strict checking of the value of tid.

* adjust the delay of serial.c

* Helix serial.c: remove debug code

* remove EXTRAFLAGS += -DCONSOLE_ENABLE from five_rows/rules.mk

tmk_core/common.mk has
 >ifeq ($(strip $(CONSOLE_ENABLE)), yes)
 >   TMK_COMMON_DEFS += -DCONSOLE_ENABLE

* Fix error handling in split_scomm.c

* add some comment to serial.c

* add some comment about SELECT_SOFT_SERIAL_SPEED
2018-10-22 11:38:05 -07:00
MakotoKurauchi 79bff50247 Keymaps: Helix rgblight mode update (#4091)
* Helix each keymap's using rgblight mode symbol instead magic number

No change in build result.

* Helix pico keymaps: make rgblight modes selectable.

No change in build result.

* Helix rev2 keymaps: make rgblight modes selectable.

No change in build result.

* fixed Helix froggy/keymap.c: invalid rgblight mode value 0 to 1 (=RGBLIGHT_MODE_STATIC_LIGHT)

* Deselect RGB_TEST and ALTERNATING in Helix rev2,pico keymaps config.h.
2018-10-10 12:53:18 -07:00
Joe Wasson 743449472e Make `PREVENT_STUCK_MODIFIERS` the default (#3107)
* Remove chording as it is not documented, not used, and needs work.

* Make Leader Key an optional feature.

* Switch from `PREVENT_STUCK_MODIFIERS` to `STRICT_LAYER_RELEASE`

* Remove `#define PREVENT_STUCK_MODIFIERS` from keymaps.
2018-09-17 13:48:02 -04:00
Biacco42 e5f201edb4 Keymap: Port ergo42/biacco keymap to Helix pico (#3585)
* Port ergo42/biacco keymap to Helix pico

* Fix for review
2018-08-11 13:22:32 -07:00
Takeshi ISHII b29799f887 Keyboard: fixed build break (size overflow) HelixPico with Backlight or Underglow (#3546)
* build break fix for HelixPico

* add customize variable 'Link_Time_Optimization' into rev2 and pico keymaps rules.mk

* "CFLAGS += -flto" change to "EXTRAFLAGS += -flto"

* add USE_Link_Time_Optimization macro
2018-08-02 14:16:17 -07:00
MakotoKurauchi 07e0558e9a Keyboard: Add HelixPico keyboard (#3502) 2018-07-26 14:26:02 -07:00