Commit graph

9 commits

Author SHA1 Message Date
Takeshi ISHII
85a0c494ff
[Keymap] Update Helix:five_rows OLED code (#14427)
* Stop using snprintf() in keymaps/five_rows/oled_display.c.

The binary size becomes 1350 bytes smaller.

make HELIX=verbose,core-oled helix/rev2/sc:five_rows
(104 bytes over) -> (95%, 1256 bytes free)

make helix/rev3_5rows:five_rows
(528 bytes over) -> (97%, 830 bytes free)

* add matrix scan rate display to OLED for keymaps/five_rows

* add matrix_output_unselect_delay.c to helix keymaps/five_rows

* add GPLv2 header

* apply review comment
2021-09-16 18:47:47 +09:00
Takeshi ISHII
49dc332a04
[Keymap] cleanup keyboards/helix/{rev2|rev3_5rows}/keymaps/five_rows (#12259)
* cleanup keyboards/helix/{rev2|rev3_5rows}/keymaps/five_rows

* Made the layout data easier to read.
  * helix/rev2/keymaps/five_rows/keymap.c
  * helix/rev3_5rows/keymaps/five_rows/keymap.c

* The following two were made the same.
  * keymaps/five_rows/config.h
  * keymaps/five_rows/oled_display.c

The binary of the compilation result has not changed.

* update keyboards/helix/rev2/keymaps/five_rows/rules.mk

KEYBOARD_LOCAL_FEATURES_MK was moved to the end.

* add '#define DISABLE_SYNC_TIMER' into helix/rev3_5rows/keymaps/five_rows/config.h

The sync timer features worsen the matrix scan rate of the Helix keyboard. I'm not sure if it makes sense to have sync timer features enabled on the Helix keyboard. So in my keymap I disable this.
2021-04-04 04:42:29 +09:00
Takeshi ISHII
5544bf8524
[Keymap] update rules.mk and config.h of helix/rev2:five_rows (#11302)
* update keyboards/helix/rev2/keymaps/five_rows/rules.mk: oled selection, led animation selection

* add OLED_UPDATE_INTERVAL support into keyboards/helix/rev2/keymaps/five_rows/oled_display.c

Support for OLED_UPDATE_INTERVAL, even for older types of OLED tasks.

* Add 'HELIX=debug/no-debug' option into 'helix/rev2/keymaps/five_rows/rules.mk'
2020-12-26 02:38:07 +09:00
Takeshi ISHII
f1003aaccf Keyboard: Helix five_rows keymap reduced size (#4082)
* add PERMISSIVE_HOLD in helix:five_rows/config.h

* add Eucalyn char layout into helix:five_rows

* Helix five_rows keymap: make rgblight modes selectable.

No change in build result.

* fix keymap.c map comment, add console compile option

No change in build result.

* Helix five_rows keymap: reduced the size.
2018-10-05 14:51:34 -07:00
MakotoKurauchi
feb5e4aaeb Keyboard: Helix serial improvements (#3608)
* 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
2018-08-10 08:22:09 -07:00
MakotoKurauchi
f30d6dd785 Helix config refine (#3374)
* helix config.h refine
2018-07-12 10:23:30 -07:00
MakotoKurauchi
155375ea32 Helix shrink config (#3268)
* 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

* Shrinked config.h
2018-06-30 13:12:17 -07:00
Takeshi ISHII
e2fb3079c7 update Helix keymap 'five_rows' (#2635)
* add 'HELIX=' option for build

* add IOS_DEVICE_ENABLE for iPad

* shrink size to helix five_rows keymap.c

* shrink size. _ADJUST number change

* add KEYPAD layer

* modify keypad leyer

* display RGB mode on slave side OLED

* fix Colemak, Dvorak center DEL to BS

* change LEFT BS to LEFT SP and add AUX layer for try old map

* update update_base_layer()

* add right keypad and keypad func layer

* use MO() macro insted of LOWER,RAISE,ADJUST custom key-code

* remove LOWER,RAISE,ADJUST custom key-code
* use MO(_LOWER|_RAISE|_ADJUST)
* relayout ADJUST layer

* modify Function Layer. PGUP,PGDN swap HOME,END

* add Keypad aux layer for '00' send

* update README.md, README_jp.md

* fix README.md

* fix README.md, README_jp.md
2018-04-15 09:54:56 -07:00
Takeshi ISHII
824d584d8c New keymap for The Helix keyboard("five_rows") (#2592)
* duplicate keyboards/helix/rev2/keymaps/default to keyboards/helix/rev2/keymaps/five_rows

* OLED Layer display 'Qwerty','Colemak','Dvorak'

* set Qwerty, Lower, Raise map

* set Colemak map

* set Dvorak map

* OLED Layer display 'Raise','Lower' change to 'Extra char','Function'

* fix ExtraChar Layer Shift-key disable

* Raise,Lower,Adjust layer modify

some key change KC_TRNS to KC_NO
add KANA, EISU key

* refine keymaps/five_rows/{config.h,rules.mk} for easy and safe customize

* modify Adjust layer: all function into left hand, remove F1..F12,DEL

* Add Helix five_rows keymap README.md and README_jp.md

* Raise Layer modify: enable Raise(Extr)+Lower(Func)==Adjust

* fix image file url in README.md,README_jp.md

* change Layer display on OLED

* change OLED display base name position
2018-03-23 16:08:37 -07:00