* Better handle LTO_ENABLE
Especially when calling from command line
* Replace LINK_TIME_OPTIMIZATION_ENABLE with LTO_ENABLE
* Remove long for LTO from show_options.mk
* Add `st-flash` flash target
Add support for flashing the firmware via the `st-flash` utility from
the STLink Tools package (https://github.com/stlink-org/stlink).
* Add `st-flash` to the `qmk flash -b` output
* Tweak the Christmas animation effect to be less harsh on the eyes
* Further improve the tweaked Christmas animation code
- Use constants where it makes sense
- Instead of complicated math, use a static variable to keep track if it's animating from or to red
- Don't use pow (but a simple macro instead)
- Using floating point math is necessary for the fraction in the cubic bezier function to work
* Update docs for the tweaked Christmas animation effect
* Further improve memory usage
- Don't use floats, but 32 bit ints instead (where needed)
- Replace limits.h with constant
* Fix typo
* add support for hid gamepad interface
add documentation for HID joystick
Add joystick_task to read analog axes values even when no key is pressed or release. update doc
Update docs/feature_joystick.md
Manage pin setup and read to maintain matrix scan after analog read
* Incorporates patches and changes to HID reporting
There are some patches provided by @a-chol incorporated on this commit,
and also some changes I made to the HID Report structure.
The most interesting is the one dealing with number of buttons: Linux
doesn't seem to care, but Windows requires the HID structure to be byte
aligned (that's in the spec). So if one declares 8/16/32... buttons they
should not have any issues, but this is what happens when you have 9
buttons:
```
bits |0|1|2|3|4|5|6|7|
|*|*|*|*|*|*|*|*| axis 0 (report size 8)
|*|*|*|*|*|*|*|*| ...
|*|*|*|*|*|*|*|*|
|*|*|*|*|*|*|*|*|
|*|*|*|*|*|*|*|*|
|*|*|*|*|*|*|*|*|
|*|*|*|*|*|*|*|*| axis 6
|*|*|*|*|*|*|*|*| first 8 buttons (report size 1)
|*| | | | | | | | last of 9 buttons, not aligned
```
So for that I added a conditonal that will add a number of reports with
size 1 to make sure it aligns to the next multiple of 8. Those reports
send dummy inputs that don't do anything aside from aligning the data.
Tested on Linux, Windows 10 and Street Fighter (where the joystick is
recognized as direct-input)
* Add save and restore of each pin used in reading joystick (AVR).
Allow output pin to be JS_VIRTUAL_AXIS if the axis is connected to Vcc
instead of an output pin from the MCU.
Fix joystick report id
Fix broken v-usb hid joystick interface. Make it more resilient to unusual settings (none multiple of eight button count, 0 buttons or 0 axes)
Correct adc reading for multiple axes. Piecewise range conversion for uncentered raw value range. Input, output and ground pin configuration per axis.
Documentation fixes
* Fix port addressing for joystick analog read
* The other required set of changes
As per the PR, the changes still holding it up.
Add onekey for testing.
Fix ARM builds.
Fix device descriptor when either axes or buttons is zero.
Add compile-time check for at least one axis or button.
Move definition to try to fix conflict.
PR review comments.
qmk cformat
* avoid float functions to compute range mapping for axis adc reading
* Remove V-USB support for now. Updated docs accordingly.
* Update tmk_core/protocol/lufa/lufa.c
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Update tmk_core/protocol/usb_descriptor.c
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Update tmk_core/protocol/usb_descriptor.c
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Update tmk_core/protocol/usb_descriptor.c
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Add support for joystick adc reading for stm32 MCUs. Fix joystick hid report sending for chibios
* Fix HID joystick report sending for ChibiOS.
Add one analog axis to the onekey:joystick keymap.
Fix pin state save and restore during joystick analog read for STM32
MCUs.
* Update tmk_core/protocol/chibios/usb_main.c
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Update tmk_core/protocol/lufa/lufa.c
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Add missing mcuconf.h and halconf.h to onekey:joystick keymap.
Add suggested fixes from PR.
* Switch saveState and restoreState signature to use pin_t type.
onekey:joystick : add a second axis, virtual and programmatically animated.
* Update docs/feature_joystick.md
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Update docs/feature_joystick.md
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Add PR corrections
* Remove halconf.h and mcuconf.h from onekey keymaps
* Change ADC_PIN to A0
Co-authored-by: achol <allecooll@hotmail.com>
Co-authored-by: José Júnior <jose.junior@gmail.com>
Co-authored-by: a-chol <achol@notamail.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update Space Cadet to use Custom Tapping Term functionality
* Detect correct keycode for space cadet tapping term
* Update tap dancing to use global custom tapping term
* Update documentation for Tap Dances
* formatting pass
* Apply suggestions from code review
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Update docs/feature_tap_dance.md
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update for future
* Update user keymaps for space cadet
* Fix typos
* Clean up tapping term stuff
* Fix compiler issue if NO_ACTION_TAPPING is enabled
Co-authored-by: fauxpark <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Issue 9942: Add Quantum defines
Add codes to quantum_keycodes for LSA, RSA, RCS, and their corresponding _T macros
* 9942: Add documentation for new defines
Add documentation for new defines in feature request 9942. Also define SAGR and SAGR_T as aliases for RSA and RSA_T.
* Update quantum/quantum_keycodes.h
* Update docs/keycodes.md
* Update docs/keycodes.md
* Update docs/keycodes.md
* Update docs/keycodes.md
* Add PR checklist document.
* Update docs/pr_checklist.md
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Ryan <fauxpark@gmail.com>
* Reword the lower/raise/adjust suggestion somewhat for clarity.
* Add suggestion from @Didel for coding conventions.
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add Indicator flag for RGB Matrix
This adds a new flag for the RGB Matrix feature that lets you specify if the LED is an indicator LED, to be used to indicate the system state of the keyboard (eg caps/num/etc lock status, layer indication, modifer status, etc).
* Better formatting of table
* small text and formatting fixes in vscode manual
fix double opening <kbd> tags for correct formatting
expand two points for better understanding
* restored <kbd>, clarified how to open the terminal
restored <kbd> tags that were deleted with the last commit; they are correct as they were to have the whole menu "breadcrumb" nested inside a box
clarified how to open the terminal
escaped backtick for shortcut Ctrl+` as I’ve added backticks for code on the same line
* Update docs/other_vscode.md
* Update Japanese translation of feature_mouse_keys.md.
* fix original document version.
* Update docs/ja/feature_mouse_keys.md
* update based on comment
* Add IS_LAYER_ON_STATE()/IS_LAYER_OFF_STATE() macros
* Add docs for IS_LAYER_ON/OFF(_STATE) macros
* Remove IS_LAYER_ON/OFF_STATE redefinition in userspace
* Run clang-format on quantum/quantum.h
* Redefine IS_LAYER_ON/OFF(_STATE) as aliases of existing layer functions
Also update relevant doc entries.
Needs testing to check if this breaks existing IS_LAYER_ON/OFF usage in certain
edge cases (namely calling the macros with 0).
* Reformat layer check function docs
* Add a function to set individual pixels
* Add documentation for oled_write_pixel
* use smaller data type for oled_write_pixel
* Fix boundary check edge case
* Update oled_write_pixel doc
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* dipsw test on helix/rev2/sc/back:five_rows
* add peek_matrix() to matrix_common.c
* add DIP_SWITCH_MATRIX_GRID support to quantum/dip_switch.c
* update docs/feature_dip_switch.md about DIP_SWITCH_MATRIX_GRID
* Test end. remove test code. Revert "dipsw test on helix/rev2/sc/back:five_rows"
This reverts commit 6d4304c74557597c9fb4d324f79c3ae4793ae874.
Process mouse movement in the keymap before it is sent to the host. Example uses
include filtering noise, adding acceleration, and automatically activating a
layer. To use, define the following function in your keymap:
void ps2_mouse_moved_user(report_mouse_t *mouse_report);
* Add Hebrew keymap aliases
* Use NBSP for internal space in box drawings
* Apply suggestions from code review
* More whitespace fixes
* IL_DVAV, IL_DYOD and IL_VYOD were incorrect
* Add IL_DEG, IL_MUL, IL_DIV
* Hebrew is now ISO (no more BAE)
* Use ISO left shift
* Apply suggestions from code review
* DYOD and VYOD were reversed in diagram.
Oops!
* The TAGs of the original document has been updated to facilitate future verification.
* docs/ja/driver_installation_zadig.md
* docs/ja/feature_audio.md
* docs/ja/feature_auto_shift.md
* docs/ja/feature_bluetooth.md
* docs/ja/hardware_avr.md
* docs/ja/hardware_drivers.md
* docs/ja/getting_started_make_guide.md
* The TAG of the original document has been updated to facilitate future verification.
* The TAG of the original document has been updated to facilitate future verification.
* update docs/ja/feature_tap_dance.md
* The TAG of the original document has been updated to facilitate future verification.
* The TAG of the original document has been updated to facilitate future verification.
* The TAG of the original document has been updated to facilitate future verification.
* Fix incorrect delay when setting WS2812 (and similar) leds
* Add documentation for WS2812_DELAY_MICROSECONDS
* Remove improper cast to uint8_t
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
* Remove unneeded cast to uint8_t and correct math
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
* microseconds -> µs
Co-authored-by: Ryan <fauxpark@gmail.com>
* Make documentation better match the spec sheet.
Co-authored-by: Ryan <fauxpark@gmail.com>
* Rename macro to match spec sheet
* Further correction to the delay maths for the SPI case.
Co-authored-by: Joel Challis <git@zvecr.com>
* Move ws2812_common.h to the drivers directory
* Revert "Further correction to the delay maths for the SPI case."
This reverts commit e61b56a2cfc7dfec9992a7a3af92afa50e5b8ec0.
* Remove ws2812_setleds_pin(); consolidate ws2812.h
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
PR #9307 fixed the immediately visible problem (the command that was
added to $HOME/.bashrc was incorrect because of missing quotes around
paths with spaces). However, the modified command is still wrong - it
captures the value of $PATH at the setup time, and the resulting command
written out to $HOME/.bashrc will overwrite $PATH with that captured
value, ignoring any changes in the environment. This may be especially
important for WSL, where the initial value of $PATH in Linux includes
everything which has been added to %PATH% on the Windows side; after
adding that command to $HOME/.bashrc the WSL environment will no longer
pick up any changes made by newly installed Windows software.
Instead of that, use single quotes around the command, so that the
environment variables are not expanded at the setup time, and the
command that is added to $HOME/.bashrc becomes exactly this:
PATH="$HOME/.local/bin:$PATH"
This command will use the $HOME and $PATH environment variable values at
the time the command is executed, not at the time the QMK setup is
performed, so any further updates to $PATH are taken into account.
Double quotes also ensure that the command is safe even if the values of
those environment variables contain spaces.
* Change `echo` to `export`
* Add `export` as a note under the `echo` command
* Remove note from last commit
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update docs/newbs_getting_started.md
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update docs/newbs_getting_started.md
Add 1 line of whitespace under note
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Initial doco write-up.
* Update docs/platformdev_selecting_arm_mcu.md
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Updated the Japanese translation of newbs_learn_more_resources.md
Updated the Japanese translation of newbs_learn_more_resources.md to 0.9.0.
* update docs/ja/newbs_learn_more_resources.md
* update ja/newbs_learn_more_resources.md
* add feature_mouse_keys.md translation
* update based on comment
* update based on comment
* update based on comment
* update based on comment
* update based on comment
* Branch point for 2020 May 30 Breaking Change
* Migrate `ACTION_LAYER_TOGGLE` to `TG()` (#8954)
* Migrate `ACTION_MODS_ONESHOT` to `OSM()` (#8957)
* Migrate `ACTION_DEFAULT_LAYER_SET` to `DF()` (#8958)
* Migrate `ACTION_LAYER_MODS` to `LM()` (#8959)
* Migrate `ACTION_MODS_TAP_KEY` to `MT()` (#8968)
* Convert V-USB usbdrv to a submodule (#8321)
* Unify Tap Hold functions and documentation (#8348)
* Changing board names to prevent confusion (#8412)
* Move the Keyboardio Model01 to a keyboardio/ subdir (#8499)
* Move spaceman keyboards (#8830)
* Migrate miscellaneous `fn_actions` entries (#8977)
* Migrate `ACTION_MODS_KEY` to chained mod keycodes (#8979)
* Organizing my keyboards (plaid, tartan, ergoinu) (#8537)
* Refactor Lily58 to use split_common (#6260)
* Refactor zinc to use split_common (#7114)
* Add a message if bin/qmk doesn't work (#9000)
* Fix conflicting types for 'tfp_printf' (#8269)
* Fixed RGB_DISABLE_AFTER_TIMEOUT to be seconds based & small internals cleanup (#6480)
* Refactor and updates to TKC1800 code (#8472)
* Switch to qmk forks for everything (#9019)
* audio refactor: replace deprecated PLAY_NOTE_ARRAY (#8484)
* Audio enable corrections (2/3) (#8903)
* Split HHKB to ANSI and JP layouts and Add VIA support for each (#8582)
* Audio enable corrections (Part 4) (#8974)
* Fix typo from PR7114 (#9171)
* Augment future branch Changelogs (#8978)
* Revert "Branch point for 2020 May 30 Breaking Change"
* Fixed the indentation of the sample code in docs/feature_pointing_device.md sample.
* Update docs/feature_pointing_device.md
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Joel Challis <git@zvecr.com>
* ARM split - Add uart half duplex transport support
* Fix for f103
* initial full duplex pass
* partially remove full duplex
* Correct speeds within driver docs
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: Nick Brassel <nick@tzarc.org>
* newbs_flashing.md: place bootloader instructions before Toolbox intro
* Update docs/newbs_flashing.md
* More wordsmithing, point ARM users at Discord if all else fails
* Link Discord
* CLI: Improve experience when running `qmk setup` on FreeBSD.
* Install the `avrdude` package as well.
* Switch to installing python packages w/ `--user` flag.
* Basic getting started sections for FreeBSD.
* Update `util/freebsd_install.sh` for root/non-root branches.
* Add ID to doc section.
Co-Authored-By: skullydazed <skullydazed@users.noreply.github.com>
* Add ID to another docs section.
Co-Authored-By: skullydazed <skullydazed@users.noreply.github.com>
* Use `; then` in script for consistency.
Co-Authored-By: skullydazed <skullydazed@users.noreply.github.com>
* Updated to use sudo in one shot if available.
* Apply suggestions from code review
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
* Style fixes for latest version in master.
* Apply suggestions from code review
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: skullydazed <skullydazed@users.noreply.github.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* add feature_leader_key.md translation
* update based on comment
* set link as lang dir
* update based on comment
* update based on comment
* update based on comment
* Improve stock bootloader list
* Switch version numbers on USB64/128 bootloaders
* Unix line endings for PS2AVRGB bootloader
* Update PS2AVRGB bootloader to 1.0.1
* Also mention bootloader rule
* Didn't need to change the links
This commits add the SH_OS keycode, which works similarly to one shot
layers:
* while pressed, the keyboard is swapped
* if no keys were pressed while it was pressed, the next key press is
swapped
SH_OS also supports chaining with one shot layers:
OSL(x) + SH_OS + key interprets the key press on the oneshot layer.
The ONESHOT_TIMEOUT setting used by one shot keys and layers is also
used by oneshot swap hands. In the above chaining scenario the timeout
of the oneshot layer is reset when swap hands is activated.
Resolves#2682
* Allow 16 lighting layers
* Require #define RGBLIGHT_LAYERS_16 to enable 16 layers
* Override RGBLIGHT_MAX_LAYERS to set maximum number of lighting layers
* Enforce lower bound on RGBLIGHT_MAX_LAYERS
Co-Authored-By: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
* Fix an error in the check for valid RGBLIGHT_MAX_LAYERS
* Don't use bitfield / PACKED, as it causes bloat
* Update documentation re: up to 32 lighting layers
* Run cformat
* Add note about increasing FW size in docs/config_options.md
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Remove no-longer-valid comment
* Add doc note that split sync will be slower
Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Implement momentarily blink of lighting layers
* Refactor spidey3 userspace to use rgb layer blink
* Remove un-necessary line from example in documentation
* Revert "Refactor spidey3 userspace to use rgb layer blink"
This reverts commit 831649bb680c41c6d663ae6fa86d13f4f8bebdd8.
* Adds a missing bit of documentation about lighting layer blink
* Update docs/feature_rgblight.md per suggestions
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update docs/feature_rgblight.md per suggestions
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update docs/feature_rgblight.md per suggestions
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* cformat, as suggested
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Added raw hid feature documentation page
* Update docs/feature_rawhid.md
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Update docs/feature_rawhid.md
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Update docs/feature_rawhid.md
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Update docs/features.md
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* added feature_rawhid.md to _summary.md in docs
* fixed _summary.md order
* Update docs/feature_rawhid.md
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Update feature_rawhid.md
Removed the useless bit about finding usage page and usage.
* Update feature_rawhid.md
* Update docs/feature_rawhid.md
Co-Authored-By: Nick Brassel <nick@tzarc.org>
* Update docs/feature_rawhid.md
Co-Authored-By: Nick Brassel <nick@tzarc.org>
* Update docs/feature_rawhid.md
Co-Authored-By: Nick Brassel <nick@tzarc.org>
* Update docs/feature_rawhid.md
Co-Authored-By: Nick Brassel <nick@tzarc.org>
* Remove teensy client, small origanization fixes
* Fixed merge conflicts
Removed features.md
Updated _summary.md with new format and added RAW HID entry under Software Features
* Added rawhid feature page
Messy is what you get when you don't do things right the first time
Co-authored-by: fauxpark <fauxpark@gmail.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
* add 'togglePin' conveniance function
for AVR and chibios
* drop outmost parantheses
Co-Authored-By: Konstantin Đorđević <vomindoraan@gmail.com>
* toggle pin on avrs
toggle a pin configured as output by writing the corresponding bit to the PIN register
Co-Authored-By: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
* togglepin: add documentation for newly added function
* Update docs/internals_gpio_control.md
Co-Authored-By: Konstantin Đorđević <vomindoraan@gmail.com>
* on AVR: use PORTD to toggle the output
... since not all MCUs support toggling through writing to PIN
Co-Authored-By: Ryan <fauxpark@gmail.com>
Co-authored-by: Johannes <you@example.com>
Co-authored-by: Konstantin Đorđević <vomindoraan@gmail.com>
Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update and try to clarify the CLI installation on Linux
* Update commands, add note for Debian/Ubuntu
* Update docs/newbs_getting_started.md
Co-Authored-By: Joel Challis <git@zvecr.com>
Co-authored-by: Joel Challis <git@zvecr.com>
* add feature_grave_esc.md translation
* update based on comment
* update based on comment
* update based on comment
* update based on comment
* update based on comment
Using just qmk setup <github_username> would fail w/ "Could not find repo github.com/<username>, whereas the repo is actually after another slash after the user name. Can consider changing code to add the default forked repo name if slash is not detected in the arg.
* Add support for hardware and board initialisation overrides.
* qmk cformat.
* Add some documentation.
* Docs clarity.
* Make early_hardware_init_pre a no-op for now, until migrations occur.
* Doco update
* Make distinction between keyboard and ChibiOS board in docs
* Doc anchors.
* Update tmk_core/protocol/chibios/main.c
Co-Authored-By: Joel Challis <git@zvecr.com>
* Rework bootloader entry to be off by default, allow opting-in.
Co-authored-by: Joel Challis <git@zvecr.com>
* quantum/debounce: Added sym_pk debounce algorithm
* Apply suggestions from code review
Co-Authored-By: Ryan <fauxpark@gmail.com>
* quantum/debounce/sym_pk: delete comments and rename functions following code review
* quantum/debounce/sym_pk: Modifications for code readability according to code review
* quantum/debounce/sym_pk: Modifications for code readability according to code review (2)
* quantum/debounce/sym_pk: code review: cleaner code
Co-Authored-By: Nick Brassel <nick@tzarc.org>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
* Add PS2_MOUSE_ROTATE to compensate for device orientation
* fixup! Add PS2_MOUSE_ROTATE to compensate for device orientation
* Reformat with IndentPPDirectives: AfterHash as per #6316
* Define NO_ACTION_MACRO/FUNCTION in header instead of makefile when LTO is enabled
Currently, boards and keymaps that define NO_ACTION_MACRO/FUNCTION unconditionally
will not compile with LTO_ENABLE (#8604). This fixes the issue by moving the
definitions from common.mk to action.h, which enables us to check for previous
definitions of those macros (this cannot be done in a makefile).
* Remove LTO checks in templates
Since now NO_ACTION_MACRO/FUNCTION are defined as needed in action.h (which is
included by quantum.h), checking for LTO in keyboard and user code is no
longer required.
* Update LTO_ENABLE docs
The list of hidden subcommands were approved by @skullydazed ;)
Currently hidden if 'user.developer' is not True:
- cformat
- docs
- kle2json
- pyformat
- pytest
* Change _delay_ms/us() to wait_ms/us()
* Switch to platform-agnostic GPIO macros
* Add AVR spi_master and migrate Adafruit BLE code
* Set verbose back to false
* Add clock divisor, bit order and SPI mode configuration for init
* Add start and stop functions
* Move configuration of mode, endianness and speed to `spi_start()`
* Some breaks here would be good
* Default Adafruit BLE clock divisor to 4 (2MHz on the Feather 32U4)
* Remove mode and divisor enums
* Add some docs
* No hr at EOF
* Add links in sidebar
* add feature part 01
* update sentences
* update sentences
* update sentences
* update file based on comment
* leave ctrl, shift, alt key name as alphabet
* update file based on comment
* update file based on comment
* update file based on comment
* update file based on comment
* remove unnecessary space on define line
* update sentence based on pull request's comment
* translate 'breathing' in document
* change expression in table
* update file based on comment
* change the word 'brightness', and update based on comment
* update based on comment
* update based on comment
* add language directory name to each internal link
* update based on comment
* update based on comment
* Rename UC_OSX (and related constants) to UC_MAC
* Update UNICODE_SONG_OSX references to UNICODE_SONG_MAC
* Update UC_M_OS references to UC_M_MA
* Add UC_OSX alias for backwards compatibility
* Add deprecation warning for UC_OSX to Unicode docs
* Add UC_M_OS alias for backwards compatibility
* Update newly found UC_M_OS and UNICODE_SONG_OSX references
* Add legacy UNICODE_MODE_OSX alias, revert changes to user keymaps
* Add legacy UNICODE_SONG_OSX alias, revert changes to user keymaps
* Replace removed sounds in Unicode song doc examples