opensteno_qmk/keyboards/helix/rev2/keymaps/five_rows_jis
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
..
config.h Keyboard: Helix serial improvements (#3608) 2018-08-10 08:22:09 -07:00
keymap.c Keymap: refactoring and modifief to helix five rows jis (#3552) 2018-08-02 14:32:37 -07:00
readme.md Keymap: Modified of 'Helix five rows JIS" keymap (#3425) 2018-07-16 20:08:31 -07:00
readme_jp.md Keymap: Refactor helix keymap based on changes to default keymap (#3469) 2018-07-23 11:44:55 -07:00
rules.mk Keyboard: fixed build break (size overflow) HelixPico with Backlight or Underglow (#3546) 2018-08-02 14:16:17 -07:00

Helix 5 rows JIS layout

This keymap was created with the concept that users using Japanese JIS keyboard layout can operate without difficulty. It has the following features.

  • We are considering to be able to input long Japanese notes without moving the layer
  • We are arranging the relation of symbols that can not fit in the Lower layer keeping the positional relationship
  • The four-way key is in a convex arrangement
  • Ctrl, Shift, Tab, Kanji, Esc, GUI (Win), App keys are arranged keeping positional relationship
  • Lower / Raise keymap is considering easy placement so that it can be used without memorizing

This keymap also includes a "NORMAL" keymap that uses Helix's split keyboard as usual, and an "EXCHANGE" key that exchanges left and right sides of Helix's split keyboard for key position optimization I am trying to switch maps. These have the following additional features.

NORMAL Keymap

  • It is possible to press the N key with the left index finger and the B key with the right index finger

EXCHANGE Keymap

  • By using the 2 key under Pro micro effectively add `[{` `]]`, `/?` Keys to NORMAL's base keymap And make inputs other than the `\ _` key possible with the base map
  • To avoid mistakes in pressing the Kanji key and the Enter key, we are moving to the 2 key.

配列

NORMAL Keymap

Adjust + ModExc key switches to the NORMAL keymap.

Base Layer

 ,-----------------------------------------.             ,-----------------------------------------.
 | Esc  |  1!  |  2"  |  3#  |  4$  |  5%  |             |  6&  |  7'  |  8(  |  9)  |   0  |  -=  |
 |------+------+------+------+------+------|             |------+------+------+------+------+------|
 | KANJI|   Q  |   W  |   E  |   R  |   T  |             |   Y  |   U  |   I  |   O  |   P  |  @`  |
 |------+------+------+------+------+------|             |------+------+------+------+------+------|
 | Tab  |   A  |   S  |   D  |   F  |   G  |             |   H  |   J  |   K  |   L  |  ;+  |  :*  |
 |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
 | Shift|   Z  |   X  |   C  |   V  |   B  |   N  |   B  |   N  |   M  |  ,<  |  .>  |  Up  |Enter |
 |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
 | Ctrl | GUI  | Alt  |Adjust|Lower |Space |Bksp  |Space |Space |Raise | APP  | Left | Down |Right |
 `-------------------------------------------------------------------------------------------------'

Lower Layer

 ,-----------------------------------------.             ,-----------------------------------------.
 |      |      |      |      |      |      |             |      |      |      |  -=  |  ^~  |  \|  |
 |------+------+------+------+------+------|             |------+------+------+------+------+------|
 |      |      |      |      |      |      |             |      |      |      |      |  @`  |  [{  |
 |------+------+------+------+------+------|             |------+------+------+------+------+------|
 |      |      |      |      |      |      |             |      |      |      |  ;+  |  :*  |  ]}  |
 |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
 |      |      |      |      |      |      |      |      |      |      |  ,<  |  .>  |  /?  |  \_  |
 |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
 |      |      |      |      |      |      | Del  |      |      |      |      |      |      |      |
 `-------------------------------------------------------------------------------------------------'

Raise Layer

 ,-----------------------------------------.             ,-----------------------------------------.
 |      |  F1  |  F2  |  F3  |  F4  |  F5  |             |  F6  |  F7  |  F8  |  F9  | F10  | F11  |
 |------+------+------+------+------+------|             |------+------+------+------+------+------|
 |      |      |      |      |      |      |             | F12  |      |      |      | Home |PageUp|
 |------+------+------+------+------+------|             |------+------+------+------+------+------|
 |      |      |      |      |      |      |             |      |      |      |      | End  |PageDn|
 |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
 |      |MsBtn1|MsBtn2|      |      |      |      |      |      |      |      |      | MsUp |      |
 |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
 |      |      |      |      |      |      |      |      |      |      |      |MsLeft|MsDown|MsRght|
 `-------------------------------------------------------------------------------------------------'

EXCHANGE Keymap

Adjust + ModExc key switches to the EXCHANGE keymap.

Base Layer

        ,-----------------------------------------.,-----------------------------------------.
        | Esc  |  1!  |  2"  |  3#  |  4$  |  5%  ||  6&  |  7'  |  8(  |  9)  |   0  |  -=  |
        |------+------+------+------+------+------||------+------+------+------+------+------|
        | Tab  |   Q  |   W  |   E  |   R  |   T  ||   Y  |   U  |   I  |   O  |   P  |  @`  |
        |------+------+------+------+------+------||------+------+------+------+------+------|
        |      |   A  |   S  |   D  |   F  |   G  ||   H  |   J  |   K  |   L  |  ;+  |  :*  |
 ,------+------+------+------+------+------+------||------+------+------+------+------+------+------.
 |KANJI | Shift|   Z  |   X  |   C  |   V  |   B  ||   N  |   M  |  ,<  |  .>  |  /?  |  Up  |Enter |
 |------+------+------+------+------+------+------||------+------+------+------+------+------+------|
 |Adjust| Ctrl | GUI  | Alt  |  [{  |Lower | Bksp ||Space |Raise |  }]  | APP  | Left | Down |Right |
 `------------------------------------------------'`------------------------------------------------'

Lower Layer

        ,-----------------------------------------.,-----------------------------------------.
        |      |      |      |      |      |      ||      |      |      |  -=  |  ^~  |  \|  |
        |------+------+------+------+------+------||------+------+------+------+------+------|
        |      |      |      |      |      |      ||      |      |      |      |  @`  |  [{  |
        |------+------+------+------+------+------||------+------+------+------+------+------|
        |      |      |      |      |      |      ||      |      |      |  ;+  |  :*  |  ]}  |
 ,------+------+------+------+------+------+------||------+------+------+------+------+------+------.
 |      |      |      |      |      |      |      ||      |  ,<  |  .>  |  /?  |  \_  |PageUp|      |
 |------+------+------+------+------+------+------||------+------+------+------+------+------+------|
 |      |      |      |      |      |      | Del  ||      |      |      |      | Home |PageDn| End  |
 `------------------------------------------------'`------------------------------------------------'

Raise Layer

        ,-----------------------------------------.,-----------------------------------------.
        |      |  F1  |  F2  |  F3  |  F4  |  F5  ||  F6  |  F7  |  F8  |  F9  |  F10 |  F11 |
        |------+------+------+------+------+------||------+------+------+------+------+------|
        |      |      |      |      |      |      || F12  |      |      |      |      |      |
        |------+------+------+------+------+------||------+------+------+------+------+------|
        |      |      |      |      |      |      ||      |      |      |      |      |      |
 ,------+------+------+------+------+------+------||------+------+------+------+------+------+------.
 |      |      |MsBtn1|MsBtn2|      |      |      ||      |      |      |      |      | MsUp |      |
 |------+------+------+------+------+------+------||------+------+------+------+------+------+------|
 |      |      |      |      |      |      |      ||      |      |      |      |MsLeft|MsDown|MsRght|
 `------------------------------------------------'`------------------------------------------------'

NORMAL/EXCHANGE common Layer

Adjust Layer

NORMAL / EXCHANGE This layer is used in common. The same items are arranged in the same row on both sides so that they can be used in common.

 ,-----------------------------------------.             ,-----------------------------------------.
 |      | Reset|RGBRST|Aud on|Audoff|      |             |      | Reset|RGBRST|Aud on|Audoff|      |
 |------+------+------+------+------+------|             |------+------+------+------+------+------|
 |      |ModNrm|ModExc| Mac  | Win  |      |             |      |ModNrm|ModExc| Mac  | Win  |      |
 |------+------+------+------+------+------|             |------+------+------+------+------|------+
 |      |RGB ON| HUE+ | SAT+ | VAL+ |      |             |      |RGB ON| HUE+ | SAT+ | VAL+ |      |
 |------+------+------+------+------+------+------+------+------+------+------+------+------|------+
 |      | MODE | HUE- | SAT- | VAL- |      |      |      |      | MODE | HUE- | SAT- | VAL- |      |
 |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
 |      |      |      |      |      |      |      |      |      |      |      |      |      |      |
 `-------------------------------------------------------------------------------------------------'

How to compile these program

See the readme of the Default keymap.