aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | [keyboard] Add kudox rev3 (#8704)x12020-04-1412-7/+341
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add kudox rev3. * Add default keymap for Kudox rev3. * Add JIS keymap for Kudox rev3. * Modified default revision of kudox rev3. * Modified unnecessary codes.
* | | | CLI: Fix doctor error when can't run `bin/qmk --version`. (#8796)Pete Johanson2020-04-141-1/+1
| | | |
* | | | deleted unused keymap (#8797)Øyvind Wilhelmsen2020-04-146-473/+0
| | | |
* | | | Add missing repository name to qmk setup w/ github (#8792)mimkorn2020-04-141-1/+1
| | | | | | | | | | | | 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.
* | | | Configure RGBLIGHT_SPLIT for Mint60 (#8788)eucalyn2020-04-131-0/+1
| | | |
* | | | [Keyboard] Aplx6 (#8727)Aplyard2020-04-136-0/+192
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Create test.txt * aplx6 * Delete test.txt * fff * Delete ffff * test compile * Create README.md * edited * requests * Update keyboards/aplx6/README.md * Update keyboards/aplx6/README.md * Update keyboards/aplx6/README.md * Update keyboards/aplx6/README.md * Update keyboards/aplx6/README.md * Update keyboards/aplx6/README.md * Update keyboards/aplx6/README.md * Update keyboards/aplx6/rules.mk * Update keyboards/aplx6/rules.mk * Update keyboards/aplx6/README.md * Update keyboards/aplx6/README.md * Update keyboards/aplx6/README.md * pins update * update * update pins * Update keyboards/aplx6/README.md * Update keyboards/aplx6/README.md
* | | | update pvinis keymap (#8746)Pavlos Vinieratos2020-04-138-492/+631
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * update a bunch of stuff Better rules, better config, added encoders, lights, audio. * some fmt * more fmt
* | | | CLI: Use `shutil.which` to detect gmake, instead of OS check.Pete Johanson2020-04-131-5/+2
| | | |
* | | | CLI: Invoke gmake on FreeBSD when using `qmk compile`.Pete Johanson2020-04-131-1/+6
| | | | | | | | | | | | | | | | * Current makefiles aren't portable, so invoke gmake on FreeBSD.
* | | | [Docs] Japanese translation of docs/feature_dip_switch.md (#8673)umi2020-04-131-0/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * add git_dip_switch.md translation * update based on comment * update based on comment
* | | | Fix broken KBD8X MKII Hardware link (#8787)Casey Leask2020-04-131-1/+1
| | | |
* | | | Fix AVR SPI parameter configuration, remove timeouts due to sync protocol. ↵Nick Brassel2020-04-134-84/+90
| | | | | | | | | | | | | | | | (#8775)
* | | | VIA Support: Jane V2 (#8735)MechMerlin2020-04-136-2/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * add VIA enabled keymap with some layers taken out for space * get a more sane VID and PID so we don't collide with the other BMC powered boards * small cleanups * Update keyboards/tgr/jane/keymaps/via/keymap.c Co-Authored-By: Ryan <fauxpark@gmail.com> * add tkl_ansi_tsangan LAYOUT * add tkl_iso_tsangan LAYOUT Co-authored-by: Ryan <fauxpark@gmail.com>
* | | | Add a simple custom keymap for Gergo. (#8662)Gautham Yerroju2020-04-134-0/+203
| | | | | | | | | | | | | | | | | | | | * Add a simple custom keymap for Gergo. * update readme, keymap cleanup
* | | | Add via support to keebio/bdn9 (#8620)Joshua Rubin2020-04-132-0/+57
| | | | | | | | | | | | Signed-off-by: Joshua Rubin <me@jawa.dev>
* | | | DP60 VIA cleanups (#8697)MechMerlin2020-04-133-6/+17
| | | | | | | | | | | | | | | | | | | | * some via cleanups for the dp60 firmware * update matrix size
* | | | Adding Niu Mini to VIA (#8702)codecoffeecode2020-04-133-2/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * porting the niu_mini to via * Wrong values in mk * Updating to unique Vendor ID and Product ID * Addressing zvecr comments * Addressing fauxpark comments Co-Authored-By: Ryan <fauxpark@gmail.com> Co-authored-by: Lauren Harris <lauren.y.harris@outlook.com> Co-authored-by: Ryan <fauxpark@gmail.com>
* | | | Allow trailing whitespace in markdown docs, for formatting purposes. (#8774)Nick Brassel2020-04-131-8/+12
| | | |
* | | | Add support for hardware and board initialisation overrides. (#8330)Nick Brassel2020-04-135-5/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* | | | [Keyboard] Add IDOBAO ID80 (#8728)Sergey Vlasov2020-04-128-0/+266
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * id80: New keyboard (IDOBAO ID80) Add initial support for the IDOBAO ID80 keyboard. Most source files were generated by the KBFirmware JSON to QMK Parser (https://noroadsleft.github.io/kbf_qmk_converter/) based on the ID80.json file provided by the keyboard vendor. The only change to rules.mk was to set `COMMAND_ENABLE = no` to make the compiled firmware fit into the available flash space. * id80: Update default keymap to match stock Update the Fn layer in the default keymap to match the stock firmware which was actually flashed into the PCB. * id80: Add Caps Lock indicator support Although the KBFirmware JSON includes information about the MCU pins used for keyboard indicator LEDs, the KBF to QMK converter does not generate the required code automatically. Implement the LED handling code, and at the same time switch from the older `led_set_kb` API to the newer `led_update_kb`. * id80: Remove placeholder functions The provided skeletons for `matrix_scan_kb` and `process_record_kb` did not do anything useful, so remove them. * id80: Use Esc as the Bootmagic Lite activation key The Esc key is not at the (0, 0) position in the ID80 matrix, therefore setting `BOOTMAGIC_LITE_ROW` and `BOOTMAGIC_LITE_COLUMN` is required to use the Esc key for Bootmagic Lite. * id80: Update info.json Replace info.json generated by the KBF to QMK converter with another version generated using http://www.keyboard-layout-editor.com/ and the KLE raw to QMK info.json converter (https://qmk.fm/converter/). The updated info.json has the correct physical layout (the distance between the function key row and the main block is actually 0.25U, but the vendor-provided ID80.json had 0.5U there) and correct key labels (using the stock layout instead of raw matrix locations and pin names). * id80: Enable NKRO The default keymap is updated to have NK_TOGG at Fn+N, like most other keyboards which have NKRO enabled. * id80: Use unique USB vendor/product ID Having an unique USB vendor/product ID is required for VIA support. The vendor ID value is the same as for the `idobo` (ID75) keyboard. * id80: Fix right modifiers in the default keymap For some reason the default keymap converted from the vendor-supplied JSON had the right Shift, Alt and Ctrl keys mapped to the left side modifier keycodes. * id80: Remove empty row 6 (F0) from matrix The matrix layout which was defined in the vendor-supplied ID80.json file had 12 rows which corresponded to the left and right parts of the 6 physical rows. However, the row 6 of the matrix (connected to the F0 pin), which corresponded to the right part of the physical bottom row, was completely empty (all 9 keys of the bottom row were placed in the matrix row for the left part). Keeping this row in the matrix just wastes resources; in particular, when the VIA support is enabled, having a 9×12 matrix with 4 layers leaves only 122 bytes available for dynamic macros, which is less than the recommended minimum of 128 bytes. Removing the unused row reduces the matrix size to 9×11, which leaves 194 bytes of EEPROM space for dynamic macros. * id80: Update row numbers in the LAYOUT macro Update row numbers in the names of the LAYOUT macro parameters after removing a row in the middle. * id80: Set RGBLED_NUM to 20 to match the actual PCB The vendor-supplied ID80.json file specified that the PCB should have 28 RGB LEDs in the chain. However, the actual PCB that was shipped from AliExpress had 20 LEDs in the chain (16 underglow LEDs, and then 4 more LEDs on top of the PCB, to the right of the Enter key location). Update RGBLED_NUM to match the actual PCB.
* | | | [Keyboard] Quefrency Rev2 Caps Lock LED, set lighting defaults (#8729)Danny2020-04-126-17/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add support for Caps Lock LED Currently ignores the fact that led_state is not synced between halves, so caps lock LED doesn't do anything if USB is plugged into right half * Set initial backlight and RGB mode/values on blank EEPROM * Set default VIA layout options * Add backlight/RGB ifdefs * Set bootloaders for each rev
* | | | [Keyboard] Add handwired Fc200rt qmk board (#8726)Derek2020-04-127-0/+306
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Added handwired Leopold fc200rt * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Delete readme.md * Delete config.h * Update readme.md * Update rules.mk * Update keyboards/handwired/fc200rt_qmk/fc200rt_qmk.c Co-Authored-By: Ryan <fauxpark@gmail.com> Co-authored-by: Ryan <fauxpark@gmail.com>
* | | | Bugfix for quantum/dip_switch.c (#8731)Takeshi ISHII2020-04-121-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * dipsw test on helix/rev2/sc/back:five_rows * bug fix quantum/dip_switch.c * test end. remove test code. Revert "dipsw test on helix/rev2/sc/back:five_rows" This reverts commit 4b13ebb996e1c4997e6deb1fa3b3227db5fa9661. * dipsw test on helix/rev2/sc/back:five_rows * update quantum/dip_switch.c * test end. remove test code. Revert "dipsw test on helix/rev2/sc/back:five_rows" This reverts commit bf99ace095528ad65c531229bcf5ece037dda595.
* | | | Add *OPT aliases for *ALT keycodes and macros (#8714)Konstantin Đorđević2020-04-129-19/+28
| | | |
* | | | [Keymap] Add keymap for Nyquist rev3 (#8706)George Petri2020-04-124-0/+188
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * copy nyquist setup * enable i2c * update colors * update readme * Update keyboards/keebio/nyquist/keymaps/georgepetri3/keymap.c Co-Authored-By: Joel Challis <git@zvecr.com> Co-authored-by: Joel Challis <git@zvecr.com>
* | | | format code according to conventions [skip ci]QMK Bot2020-04-121-1/+1
| | | |
* | | | Added Workman ZXCVM variation (#8686)artjomsR2020-04-122-0/+184
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Added Workman ZXCVM variation * Update quantum/keymap_extras/keymap_workman_zxcvm.h Co-Authored-By: Konstantin Đorđević <vomindoraan@gmail.com> * Update quantum/keymap_extras/sendstring_workman_zxcvm.h Co-Authored-By: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_workman_zxcvm.h Co-Authored-By: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/keymap_workman_zxcvm.h Co-Authored-By: Ryan <fauxpark@gmail.com> * Update quantum/keymap_extras/sendstring_workman_zxcvm.h Co-Authored-By: Ryan <fauxpark@gmail.com> Co-authored-by: Konstantin Đorđević <vomindoraan@gmail.com> Co-authored-by: Ryan <fauxpark@gmail.com>
* | | | [Keyboard] jotpad16 status leds (#8643)jotix2020-04-124-16/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * jotpad16 status leds * jotpad16 * readme.md
* | | | [Keyboard] Add handwired BDN9-BLE (#8192)Benjamin Smith2020-04-127-0/+212
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add handwired BDN9-BLE * Apply suggestions from code review Co-Authored-By: Ryan <fauxpark@gmail.com> * Update keyboards/handwired/bdn9_ble/rules.mk Co-Authored-By: Ryan <fauxpark@gmail.com> * Update keyboards/handwired/bdn9_ble/rules.mk Co-Authored-By: Ryan <fauxpark@gmail.com> * Update keyboards/handwired/bdn9_ble/readme.md Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* | | | Fix bug with layer caching in get_event_keycode (#8693)Drashna Jaelre2020-04-125-13/+16
| | | | | | | | | | | | | | | | | | | | * Fix bug with layer caching in get_event_keycode * Improve naming
* | | | [Keyboard] Add CannonKeys Atlas keyboard (#8207)Andrew Kannan2020-04-1212-0/+1955
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Atlas keyboard * Update info and readme * Update firmware * Apply suggestions from code review * Updates * Add 2x2U layout * Minor cleanup * Fix trailing comma * Remove line * Apply suggestions from code review
* | | | Add VIA keymap for Wasdat (#8762)Ryan2020-04-125-4/+123
| | | | | | | | | | | | | | | | | | | | * Add VIA keymap for Wasdat * Enable Bootmagic Lite at keyboard level
* | | | [Keyboard] Add CannonKeys Rekt1800 keyboard (#7760)Andrew Kannan2020-04-1212-0/+1658
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add Rekt1800 keyboards * Update keyboards/cannonkeys/rekt1800/config.h * Update keyboards/cannonkeys/rekt1800/info.json * Apply suggestions from code review * Apply suggestions from code review * Remove line * Apply suggestions from code review
* | | | Fix a couple of typos that were causing confusion (#8767)Joshua Moses Diamond2020-04-121-2/+2
| | | |
* | | | Upgrade gcc version/tweak package installs in Gentoo installation (#8757)James Forcier2020-04-121-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GCC 4.9.4 is no longer available on Gentoo (or Sabayon), which causes problems when attempting to install on either of these platforms. Since QMK is not particularly sensitive to its GCC version, modify the version restriction to <9 so newer versions of GCC may be installed. Since the toolchain for arm-none-eabi isn't currently installed as part of setup, add that as well. Additionally, drop the Python installation as part of the Gentoo installation process. Python is a core system package on Gentoo and can therefore be assumed to be present; in addition, the slot restriction of 3.5 which was present is also no longer available in Gentoo. Finally, separate the gcc rebuild invocation of `emerge` from the new packages that may need to be installed, and apply the `--noreplace` flag to new packages so that they are not rebuilt if already present.
* | | | Fix compile issues with devastatingtkl (#8765)Joel Challis2020-04-121-1/+0
| | | |
* | | | CannonKeys DB60 (Daughterboard60) PCB (#8208)Andrew Kannan2020-04-1114-0/+1807
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Cannonkeys DB60 Keyboard * WhitespacE * Add ISO and make layer names more idiomatic * backlight enable * Remove big backslash from ISO * Apply suggestions from code review Co-Authored-By: Ryan <fauxpark@gmail.com> * Update for correct matrix * Apply suggestions from code review Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com> Co-Authored-By: Ryan <fauxpark@gmail.com> * Update chibios config files * Complete VIA keymap * Remove ugly hack comments * Update keyboards/cannonkeys/db60/rules.mk Co-Authored-By: Joel Challis <git@zvecr.com> Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Joel Challis <git@zvecr.com>
* | | | DevastatingTKL Keyboard (#8209)Andrew Kannan2020-04-1112-0/+1659
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Save progress * Finished matrix and everything * Apply suggestions from code review Co-Authored-By: Ryan <fauxpark@gmail.com> * Update DevastatingTKL * Renames * Add renamed files * Update chibios files and VIA keymap for completion * Some cleanup * Apply suggestions from code review Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/cannonkeys/devastatingtkl/rules.mk Co-Authored-By: Joel Challis <git@zvecr.com> Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Joel Challis <git@zvecr.com>
* | | | hineybush Physix Configurator bugfix (#8761)James Young2020-04-111-4/+284
| | | | | | | | | | | | | | | | | | | | * file linting * fix object order
* | | | quantum/debounce: Added sym_pk debounce algorithm (#8587)Purdea Andrei2020-04-113-7/+113
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* | | | [Keymap] fix OLED display on Helix keyboard keymaps default and… (#8737)Takeshi ISHII2020-04-112-4/+4
| | | | | | | | | | | | Since #7773, the mode number of RGBlight is no longer displayed on the Helix OLEDs. I fixed this.
* | | | change kbd67 rev1 and rev2 default keymaps (#8758)moyi46812020-04-102-8/+8
| | | | | | | | | | | | * change kbd67 default keymap
* | | | [Keyboard] Add splitish (#8751)Reid2020-04-117-0/+152
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Added personal minivan keymap, and started work on splitish directory * Merge branch 'splitish' of github.com:RSchneyer/qmk_firmware into splitish Trying to undo attempted fix Added splitish keyboard files, removed personal Minivan keymap * Removed personal Minivan keymaps * Fixed small issue in readme * Added changes based on inital PR feedback * forgot a semicolon * Quick config.h file and default keymap update
* | | | format code according to conventions [skip ci]QMK Bot2020-04-113-14/+11
| | | |
* | | | Various fixes to how timer differences are calculated (#8585)Purdea Andrei2020-04-113-3/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tmk_core/common: Fixing TIMER_DIFF macro to calculate difference correctly after the timer wraps. Let's go through an example, using the following macro: If the first timer read is 0xe4 and the second one is 0x32, the timer wrapped. If the timer would have had more bits, it's new value would have been 0x132, and the correct difference in time is 0x132 - 0xe4 = 0x4e old code TIMER_DIFF_8(0x32, 0xe4) = 0xff - 0xe4 + 0x32 = 0x4d, which is wrong. new code TIMER_DIFF_8(0x32, 0xe4) = 0xff + 1 - 0xe4 + 0x32 = 0x4e, which is correct. This also gives a chance for a smart compiler to optimize the code using normal integer overflow. For example on AVR, the following C code: uint8_t __attribute__ ((noinline)) test(uint8_t current_timer, uint8_t start_timer) { return TIMER_DIFF_8(current_timer, start_timer); } With the original code, it gets translated to the following list of instructions: 00004c6e <test>: 4c6e: 98 2f mov r25, r24 4c70: 86 1b sub r24, r22 4c72: 96 17 cp r25, r22 4c74: 08 f4 brcc .+2 ; 0x4c78 <test+0xa> 4c76: 81 50 subi r24, 0x01 ; 1 4c78: 08 95 ret But with this commit, it gets translated to a single instruction: 00004c40 <test>: 4c40: 86 1b sub r24, r22 4c42: 08 95 ret This unfortunately doesn't always work so nicely, for example the following C code: int __attribute__ ((noinline)) test(uint8_t current_timer, uint8_t start_timer) { return TIMER_DIFF_8(current_timer, start_timer); } (Note: return type changed to int) With the original code it gets translated to: 00004c6e <test>: 4c6e: 28 2f mov r18, r24 4c70: 30 e0 ldi r19, 0x00 ; 0 4c72: 46 2f mov r20, r22 4c74: 50 e0 ldi r21, 0x00 ; 0 4c76: 86 17 cp r24, r22 4c78: 20 f0 brcs .+8 ; 0x4c82 <test+0x14> 4c7a: c9 01 movw r24, r18 4c7c: 84 1b sub r24, r20 4c7e: 95 0b sbc r25, r21 4c80: 08 95 ret 4c82: c9 01 movw r24, r18 4c84: 84 1b sub r24, r20 4c86: 95 0b sbc r25, r21 4c88: 81 50 subi r24, 0x01 ; 1 4c8a: 9f 4f sbci r25, 0xFF ; 255 4c8c: 08 95 ret Wth this commit it gets translated to: 00004c40 <test>: 4c40: 28 2f mov r18, r24 4c42: 30 e0 ldi r19, 0x00 ; 0 4c44: 46 2f mov r20, r22 4c46: 50 e0 ldi r21, 0x00 ; 0 4c48: 86 17 cp r24, r22 4c4a: 20 f0 brcs .+8 ; 0x4c54 <test+0x14> 4c4c: c9 01 movw r24, r18 4c4e: 84 1b sub r24, r20 4c50: 95 0b sbc r25, r21 4c52: 08 95 ret 4c54: c9 01 movw r24, r18 4c56: 84 1b sub r24, r20 4c58: 95 0b sbc r25, r21 4c5a: 93 95 inc r25 4c5c: 08 95 ret There is not much performance improvement in this case, however at least with this commit it functions correctly. Note: The following commit will improve compiler output for the latter example. * tmk_core/common: Improve code generation for TIMER_DIFF* macros Because of integer promotion the compiler is having a hard time generating efficient code to calculate TIMER_DIFF* macros in some situations. In the below example, the return value is "int", and this is causing the trouble. Example C code: int __attribute__ ((noinline)) test(uint8_t current_timer, uint8_t start_timer) { return TIMER_DIFF_8(current_timer, start_timer); } BEFORE: (with -Os) 00004c40 <test>: 4c40: 28 2f mov r18, r24 4c42: 30 e0 ldi r19, 0x00 ; 0 4c44: 46 2f mov r20, r22 4c46: 50 e0 ldi r21, 0x00 ; 0 4c48: 86 17 cp r24, r22 4c4a: 20 f0 brcs .+8 ; 0x4c54 <test+0x14> 4c4c: c9 01 movw r24, r18 4c4e: 84 1b sub r24, r20 4c50: 95 0b sbc r25, r21 4c52: 08 95 ret 4c54: c9 01 movw r24, r18 4c56: 84 1b sub r24, r20 4c58: 95 0b sbc r25, r21 4c5a: 93 95 inc r25 4c5c: 08 95 ret AFTER: (with -Os) 00004c40 <test>: 4c40: 86 1b sub r24, r22 4c42: 90 e0 ldi r25, 0x00 ; 0 4c44: 08 95 ret Note: the example is showing -Os but improvements can be seen at all optimization levels, including -O0. We never use -O0, but I tested it to make sure that no extra code is generated in that case.OA * quantum/debounce: Fix custom wrapping timers in eager_pr and eager_pk debounce algorithms Please see the below simulated sequence of events: Column A is the 16-bit value returned by read_timer(); Column B is the value returned by custom_wrap_timer_read(); Column C is the original code: (timer_read() % MAX_DEBOUNCE) A, B, C 65530, 19, 30 65531, 20, 31 65532, 21, 32 65533, 22, 33 65534, 23, 34 65535, 24, 35 0 25, 0 1, 26, 1 2, 27, 2 3, 28, 3 4, 29, 4 5, 30, 5 read_timer() wraps about every 1.09 seconds, and so debouncing might fail at these times without this commit. * quantum/debounce/eager_pr and eager_pk: modifications for code readability according to code review. * quantum/debounce/eager_pr and eager_pk: modifications for code readability according to code review. (2)
* | | | Some refinements of 75_ansi/spidey3 layout (#8581)Joshua Moses Diamond2020-04-116-36/+112
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * First cut at Josh Diamond's KBD75 customizations. Includes: * My unique keymap with ChromeOS specific keys * Use RGB underglow to indicate Caps Lock * Some unicode bindings * Some changes to make debugging easier * Updated spidey3 to be applicable to all 75_ansi boards * Sadly, ChromeOS doesn't pay attention to most consumer codes * Add mac layer; fix flakeyness in CAPS_LOCK underglow. * Make layers.json match the keymap (to the extent possible) * Major cleanup; fix broken debug persistence * Cleanup some whitespace issues * Fix incorrect log message. * Rework layer indication to user RGBLIGHT_LAYERS * Update layouts/community/75_ansi/spidey3/keymap.c Co-Authored-By: Drashna Jaelre <drashna@live.com> * Rename users/spidey3/rgblight.c to layer_rgb.c per suggestion * Refactor to use set_single_persistant_default_layer(). * Use dprint/f to make logging more elegant. * Update users/spidey3/config.h Co-Authored-By: Drashna Jaelre <drashna@live.com> * Update users/spidey3/config.h Co-Authored-By: Drashna Jaelre <drashna@live.com> * Update layouts/community/75_ansi/spidey3/rules.mk Co-Authored-By: Ryan <fauxpark@gmail.com> * Update users/spidey3/spidey3.c Co-Authored-By: Ryan <fauxpark@gmail.com> * Update users/spidey3/layer_rgb.c Co-Authored-By: Ryan <fauxpark@gmail.com> * Update users/spidey3/init.c Co-Authored-By: Ryan <fauxpark@gmail.com> * Changes from code review * Numpad layer, various keys for 75_ansi/spidey3 * Add Fn-B to toggle NKRO * Blink rgb to acknowledge some setting changes * Updated media control & reset key location * Minor cleanup Co-authored-by: Joshua Diamond <jdiamond@Deep-Thought.local> Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: Ryan <fauxpark@gmail.com>
* | | | [Keymap] added vim compatibility, backspace above enter, and general macOS ↵Keith Long2020-04-103-0/+213
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | opt… (#8080) * added vim compatibility, backspace above enter, and general macOS optimizations on top of default layout * add space65 macOS keymap for vim users with an optimized bottom row * Update keyboards/projectkb/alice/keymaps/keithlo/keymap.c
* | | | Modernize ctrl, shift, alt mods detection (#8724)foxx13372020-04-101-3/+3
| | | |
* | | | Fix spaceman naming (#8741)Spaceman2020-04-1013-15/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix spaceman naming * Update keyboards/pancake/info.json * Update keyboards/2_milk/info.json
* | | | [Keyboard] obuwunkunubi/spaget handwired (#8738)Marko Bakan2020-04-099-0/+658
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * adding my keymap * Update keyboards/handwired/obuwunkunubi/spaget/readme.md * Update keyboards/handwired/obuwunkunubi/spaget/readme.md * Update keyboards/handwired/obuwunkunubi/spaget/keymaps/default/rules.mk * Update rules.mk * Update keyboards/handwired/obuwunkunubi/spaget/spaget.h * Update keyboards/handwired/obuwunkunubi/spaget/spaget.h * Update keyboards/handwired/obuwunkunubi/spaget/info.json * Update keyboards/handwired/obuwunkunubi/spaget/rules.mk * Update rules.mk * Update keyboards/handwired/obuwunkunubi/spaget/spaget.c * Update keyboards/handwired/obuwunkunubi/spaget/keymaps/default/keymap.c * Update keyboards/handwired/obuwunkunubi/spaget/keymaps/default/keymap.c * Update keyboards/handwired/obuwunkunubi/spaget/keymaps/default/keymap.c * Update keyboards/handwired/obuwunkunubi/spaget/keymaps/default/keymap.c * Update keyboards/handwired/obuwunkunubi/spaget/keymaps/default/keymap.c * Update keyboards/handwired/obuwunkunubi/spaget/keymaps/default/keymap.c * Update keyboards/handwired/obuwunkunubi/spaget/keymaps/default/keymap.c * Update keyboards/handwired/obuwunkunubi/spaget/info.json * Update keymap.c * Apply suggestions from code review * Apply suggestions from code review * Update spaget.h * Update keymap.c Updated comments