-
Notifications
You must be signed in to change notification settings - Fork 3
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
Helix serial improvement #16
Helix serial improvement #16
Conversation
* add SCREEN_NAV layer for copy/pasting within screen * working readreg/paste macros * working read reg / paste macros * write log and tran patterns, and expand * add ls -la shortcut, add tab on combined layer * put delete word on the right pinky key on shell_nav layer * add TAB on the right side, add reset key * added Cloud9 macros * add cloud9 shortcuts to atreus layout * added BROWSER_CONTROL layer * finalized browser control layer * adding comment * add browser control layer to atreus * add flashing command line * remove the tab on combined layer * remove the tomouse * remove mouse layer, change log/tran expand patterns, cleanups * add dumptlog macro * add "delete to home" shortcut * fix conflict * remove unneeded mouse layer * add meh shortcuts on the browser_control layer * add/modify some macros * explain the various layers
* jennetters fourier keymap, tapdance declarations and reformatted keymap file for readbility * Update rules and keymap to follow new makefile setup. * Add #pragma once to config.h
* jennetters iris keymap, re-write for improved readability. * Update rules/config/keymap to follow correct makefile structure
To prevent people from picking the wrong version for their MCU
I couldn't understand this sentence at first owing to the confusion between right meaning "correct," and right meaning "right-handed."
* Fixed pin for RGB * Implemented drashnas fixes for filesize
* added alternating led pattern * added alternating with rgblight_config values * removed my comments
* Make Bootmagic and Command docs a little easier to read * Sometimes Bootmagic/Command is default on * "Escape" pipe character so it renders correctly
* Add HHKB keymap * Add hhkb layout to info.json
* add caps lock led support to DZ60 * changes from drashna's code review comments * call led_set_user at the end of led_set_kb
…mk#3521) * holefully correct error in mtdjr userspace for layer_state_set_user * return state and wrap rgb actions in their own conditional
* Some words about backlighting * Link to RGB feature pages
* Keyboard: Added support for HID Liberation Device * Keymap: Custom (bakageta) layout for HID Liberation Device * Updated with requested changes
* Add Rorschach keyboard * Add info.json * Replace header guards with pragma once
* modifications to add mouse buttons 1-4 and misc * Add khord chocopad keymap * fix merge message * Add unagi keymap * Add readme for unagi planck keymap * Replace boilerplate for unagi keymap
* Fix some minor errors in tap dance example Fix for qmk#3529 Fix minor errors in the code examples for __Example 4: 'Quad Function Tap-Dance'__ and relevant documentation. Clarified the need to include the header file in `keymap.c`. * Use #pragma once in header guard Fix for qmk#3529 Implement change requested in qmk#3530
* Add image * Improvements to my Contra layout * Quick fix for Level3 layer
This is a change to improve readability.
This is a change to reduce object size.
A little, object size reduction. A little, speedup.
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 4 bits transaction-type field at packet top. Select Transaction Descriptor Table entry by transaction-type.
Using multi-type transaction feature of serial.c, communication contents between master slaves were optimized.
…ial.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
serial.c の改良して、スキャンサイクル毎の master/slave 通信を少なくできる 新API を追加しました。 残念ながら、新API を使うとファームウエアサイズが 340バイトほど大きくなってしまいます。
を使うようになっています。 また、qmk に直接出した2つの PullRequest qmk#3546 と qmk#3582 でファームサイズの削減がさらに可能になります。 qmk#3546 では、Link_Time_Optimization というMakefile変数を rules.mk に追加して、これを yes にすることで、ファームサイズを小さくすることができます。 qmk#3582 では、rgblight.c のアニメーションエフェクトを選択的にコンパイルすることができるようになります。 |
ないんさんがチェックして OK で、qmk に PR 出すときは、ぜひ上の長〜い description をコピペしてくださいませ。 |
ありがとうございます! |
* [keyboard] Initial support for Anne Pro 2 * [keyboard][AnnePro2] Keymap:update to a reasonable keymap with caps+hjkl => arrow * :( * changed to use HSI * support for annepro2 c18 * keyboard/annepro2: Very stupid matrix scan bug fix. * typo * swap COL14/13 * keyboard/annepro2: startup secondary LED MCU * keyboard/annepro2: typo fix * Add IO Values * Disable Combo feature * Update default keymap to Anne Pro 2 Official Keymap * keyboard/annepro2: keymap layer name changes * keyboard/annepro2 BLE Support * Fix keymap comment FN1 ESC was listed as ~ instead of ` * keyboard/annepro2: Bluetooth path * Keyboard annepro2 bidir led comms (#5) * Added bidirectional shine comms and moved led functionality to new file * Added bidirectional shine comms and moved led functionality to new file * Restore original functionality to existing keymaps using new shine commands * Fix dangling bracketless if statements * PR cleanup * add custom keycodes to switch led profiles * Optimize code * switch to prev profile before turning leds off * Add persistent led support with eeprom (#9) * adding HT32 support to chibios SPI master driver * add support for W25X20CL SPI eeprom * add makefile flag for eeprom feature * add spi support to keyboard startup and config * example keymap using eeprom profile loading * Cleanup to fix C15 eeprom/spi build errors (#11) * Cleanup to fix C15 eeprom/spi build errors * add newline at eof * LED Masking support for Shine Introduce companion update to ledSetMask and ledClearMask. In keymap `codetector` there is example of how to map caps_lock to the caps_lock key light on the keyboard. * [AnnePro2]: update bluetooth connection * Merge the custom keys enums on annepro2.h (#13) * Keyboard annepro2 ble caps lock (#12) * Move matrix_scan_kb out of board.c to annepro2.c * add buffer clear after init and caplock polling * Add support for LED intensity (#15) * Improve logic for switching off and on of LEDs (#16) * Implement animation speed (#17) * Include logic to send solid colors as foreground to shine and add sample profiles (#14) Include the logic to send a solid color from qmk to shine. That solid color will act as a foreground (will override the current profile) until reset (witch will reactivate the current profile). This functionality depends on changes made for shine as well. Include 3 new profiles: default-full-caps -> same as default, but with the logic of using the red foreground color on caps lock. default-layer-indicators -> same as default, but with the logic of red foreground on caps lock, green foreground on FN1 and blue foreground on FN2. thomazmoura -> my own profile as a sample of an over-engineered advanced case scenario. * Implement reactive lighting effects (#18) * Added multiarrow keymap (#19) * Add LED documentation (#26) * add LED documentation * add LED documentation to other default profiles * Implement QMK's IAP default keybind (#29) * Add keymap for going into IAP * switch to default QMK keybind for IAP mode * implement bluetooth IAP mode * Make default config more like Obins stock default (#30) * Add new message type for resetting foreground color (#31) * annepro2(bluetooth): add media keys support (qmk#41) * Asynchronous, robust serial protocol. (qmk#39) * bla personal ap2-c18 keymap. * Bidirectional, asynchronous message-based communication with Shine. - Requires a matching Shine version. - Protocol is resiliant to loosing bytes during communication, chips won't lock waiting for bytes that aren't coming. - Chips resynchronize in event of loosing a byte using a AA0D header. Regressions: - Key masking/locking doesn't work right now. (did it work before?) - Not all user keymaps build against it. * Clang-format + code to ease reducing speed of LED UART. - Did clang-format --style=file -i on multiple files according to coding_conventions_c.md - Added separate serial speed for IAP boot and Led communication, it's possible that reducing this to 9600 helped someone with faulty HW. With this code they can do it with simple replacing of a value. * Main chip can set/clear foreground using a mask mechanism. - Some preparations for selective colouring. * Selective mask works - tested on capslock. - Migrated personal keymaps to new status API. * Clear the foreground colors to show profile when it's modified. - Show example of achieving selective caps-lock painting + foreground painting for layers. - annepro2LedMaskSetRow is implemented, but still requires testing. * Implement the QMK side of led blinking to indicate the command was received. - This stupidly blinks the key when user presses one of the bluetooth commands to let the user know that the command was received and forwarded to the BT chip. - TODO: Row/col key positions are hardcoded and not taken from the keymap. * Reduce memory footprint. Applying code review suggestions. Moved msgId to globals - preparing for transmission without copying payload when no retries are necessary. Added empty readme.md files - required by QMK lint. Co-authored-by: Tomasz bla Fortuna <[email protected]> * Let the LED chip settle a bit before waking it from the bootloader. (qmk#42) At least for one person that helps to reliably get the LEDs working without disconnecting/reconnecting the power to the board multiple times. Co-authored-by: Tomasz bla Fortuna <[email protected]> * annepro2: rename KEYMAP to LAYOUT, as required by new version of QMK * annepro2: update ChibiOS configuration files * annepro2: fix undefined reference to dprint and timer_read32 * annepro2: update ChibiOS MCU name * update spi driver, fix bad merging with master * annepro2: add readme and info.json * annepro2: make code compatible with QMK coding conventions * tmk_core: temporary fix to allow HT32 based keyboards to work without patched ChibiOS-contrib (AnnePro2) * AnnePro2: removed core changes * AnnePro2: Leave only default keymaps Missing keymaps will be restored in another PR * annepro2: add licence information * annepro2: satisfy qmk lint * annepro2: fix drashna's suggestions * annepro2: fix matrix * annepro2: apply code review suggestions * annepro2: apply remaining code review suggestions * annepro2: update info.json * annepro2: remove include * annepro2: rename keymap to layout * annepro2: fix typing * annepro2: apply suggestions from tzarc's code review Co-authored-by: Nick Brassel <[email protected]> * annepro2: more fixes * annepro2: apply suggestions from code review Co-authored-by: Joel Challis <[email protected]> * annepro2: rename file * more fixes * Apply suggestions from @tzarc code review Co-authored-by: Nick Brassel <[email protected]> * Update keyboards/annepro2/protocol.h Co-authored-by: Nick Brassel <[email protected]> * Update keyboards/annepro2/chconf.h Co-authored-by: Nick Brassel <[email protected]> * apply CR suggestions * upgrade readme * IAP * update IAP comments, defines * led fix * init fix * annepro2: GPIO cleanup * annepro2: ioline * change waiting time * Start develop for 2022q2 * [Core] Squeeze AVR some more with `-mrelax` and `-mcall-prologues` (qmk#16269) * Rework generate-api CLI command to use .build directory (qmk#16441) * Remove `send_unicode_hex_string()` (qmk#16518) * Change data driven "str" type to represent a quoted string literal (qmk#16516) * Change data driven "str" type to represent a quoted string literal * Update docs * Map data driven `DESCRIPTION` as string literal (qmk#16523) * update bootloader * Revert "Merge pull request #2 from qmk/develop" This reverts commit 9c76065, reversing changes made to 240745d. * Revert "update bootloader" This reverts commit 240745d. * fix rules.mk * change PROGRAM_CMD Co-authored-by: codetector <[email protected]> Co-authored-by: Fagl4 <[email protected]> Co-authored-by: Jakob Gillich <[email protected]> Co-authored-by: tech2077 <[email protected]> Co-authored-by: jcdeA <[email protected]> Co-authored-by: Thomaz Moura <[email protected]> Co-authored-by: Darkhan <[email protected]> Co-authored-by: Paco <[email protected]> Co-authored-by: jmarmstrong1207 <[email protected]> Co-authored-by: 1Conan <[email protected]> Co-authored-by: Tomasz bla Fortuna <[email protected]> Co-authored-by: Tomasz bla Fortuna <[email protected]> Co-authored-by: Nick Brassel <[email protected]> Co-authored-by: Joel Challis <[email protected]> Co-authored-by: QMK Bot <[email protected]> Co-authored-by: Stefan Kerkmann <[email protected]> Co-authored-by: Ryan <[email protected]>
Improved serial.c.
The difference with the original let's split's serial.c
USE OLD Simple APIs (compatible with let's split serial.c)
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.
To use the NEW API, specify #define SERIAL_USE_MULTI_TRANSACTION