Replace serial.c of quantum/split_common/ (#4669)
* Add provisional Helix implementation to test the quantum/split_common.
* copy keyboards/helix/serial.[ch] to quantum/split_common/
* Make serial.c a pure driver.
Remove buffer name and buffer size from serial.c. They should be placed in the caller(matrix.c, split_utils.c).
* remove quantum/split_common/serial_backward_compatibility.h
* Changed array serial_master_buffer to structure serial_m2s_buffer.
* Changed array serial_slave_buffer to structure serial_s2m_buffer.
* Change keyboards/miniaxe/matrix.c
I also made changes to quantum/split_comon/matrix.c to keyboards/miniaxe/matrix.c.
Note: I contacted @ka2hiro, creator of miniaxe, and I got permission to change keyboards/miniaxe/matrix.c.
* update history comment in quantum/split_common/serial.c
* Revert "Add provisional Helix implementation to test the quantum/split_common."
This reverts commit 168c82ef82c88e79979d9796bab9cc819cc2f685.
* fix keyboards/miniaxe/matrix.c, quantum/split_common/matrix.c
avr-gcc 4.9.[23] report error.
avr-gcc 5.4.0, avr-gcc 7.3.0 pass.
It is funny.
* update comment quantum/split_common/serial.c
* Reserve RGBLIGHT_SPLIT macro in quantum/split_common
Toad Configurator support and readme update (#4718)
* Toad: Configurator support
* Toad: update Docs links in readme
Keymap: fix userspace compile error with planck grid (#4719)
First PR for KBD6x HHKB layout keymap (#4704)
* initial commit for Othi's HHKB layout keymap,
covering multiple modifiers hold and vim-like support and german characters. If there's
any suggestion i can be reached via mnpqraven on github or Othi#6661 on
discord
* added readme.md. TODO: update readme.md
* changed to default quantum keycode for `KC_TRNS`,
removed `PREVENT_STUCK_MODIFIERS`,
fixed tap dance using one shots
TODO: unicode implementation at https://docs.qmk.fm/#/feature_unicode
* keymap documentaion(readme) added
* unicode init
TODO: figure out what made the compose sequence not running
* update unicode and readme
[Miuni32] Update the # of LEDs to match the final version of PCB (#4714)
* [Miuni32] Update the # of LEDs to match the final version of PCB
* [Miuni32] Update link to website
Noxary x268: refactor and Configurator bugfix (#4713)
- renamed layout macro LAYOUT_65_ansi to LAYOUT
- rebuilt info.json to match LAYOUT macro
shell.nix: Packages relocated in upstream cleanup
JD40 refactor and readme update (#4710)
* JD40: default keymap refactor
- Removed redundant action_layer.h include
- Refactored to use LAYOUT macro (from LAYOUT_kc)
- Refactored to use QMK-native keycodes
- Removed superseded TMK code blocks
* JD40: readme cleanup
Fixed and updated the links in the readme file
Keyboard: Infinity60 refactor, Configurator support and readme update (#4707)
* Infinity60: refactor
- infinity60.h / keymap.c
- renamed layout macro to LAYOUT_60_ansi_split_bs_rshift; removed layout macro alias
- updated to #pragma once
- keymaps now use #include QMK_KEYBOARD_H
- keymaps/jpetermans/config.h updated to #pragma once
- keymaps/jpetermans/rules.mk deleted (complete contents were deprecated make instructions)
* Infinity 60%: Configurator support
* Infinity60: readme update
Updated the Docs links.
* Infinity60: bugfix depariel keymap
Had a typo.
* Infinity60: edit matrix.c
per @drashna
- https://github.com/qmk/qmk_firmware/pull/4707#issuecomment-449540676
Update Vinta (#4705)
* add support for configurator
* add more layouts
* fix default keymap
Add crd's XD60 ANSI keymap (#4702)
Update keymap for planck/rev6 (#4701)
* Update keymap.c
* Update rules and keymap
* Update keymap rules
handwired/not_so_minidox: Configurator support (#4699)
Feature Unicode example code fixed.
Fix up process_leader to be a bit more optimized (#4662)
* Fix up process_leader to be a bit more optimized
* Process dual function keys better
* Make leader start a callable function
* Fix per key timer call location
* Add escape if already leading
* Return false for KC_LEAD
* Add documentation
Keymap: Add Helix/pico keymap 'mtei' (#4696)
* add pico keymap 'mtei'
* num layer key change
Docs: Add additional clarification to Leader Key documention (#4660)
* Add clarification for Leader Timeout
* Add additional documentatin to config_options.md
* Add leader_start() and leader_end() documentation
* Add Examples
* Clarify timout
* Remove customization
* Improve docs based on feedback
* Better clarification of features
* Fix example
* Spelling/grammar issue
* Spelling and clarification
Enable RGB animations in Atom47
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