summaryrefslogtreecommitdiffstats
path: root/tmk_core
Commit message (Collapse)AuthorAgeFilesLines
* MacOS Brightness Alias (#4836)Jeremy Bernhardt2019-01-171-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | * Added aliases for OSX brightness * Updated docs for alises * Moved aliases, added docs to Brightness section * Update docs/keycodes.md Co-Authored-By: germ <jeremythegeek@gmail.com> * Update docs/keycodes.md Co-Authored-By: germ <jeremythegeek@gmail.com> * Update keycode.h * Update keycode.h * Update keycodes.md * Update docs/keycodes.md Co-Authored-By: germ <jeremythegeek@gmail.com>
* Simplify split_common Code significantly (#4772)James Churchill2019-01-171-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Eliminate separate slave loop Both master and slave run the standard keyboard_task main loop now. * Refactor i2c/serial specific code Simplify some of the preprocessor mess by using common function names. * Fix missing #endif * Move direct pin mapping support from miniaxe to split_common For boards with more pins than sense--sorry, switches. * Reordering and reformatting only * Don't run matrix_scan_quantum on slave side * Clean up the offset/slaveOffset calculations * Cut undebounced matrix size in half * Refactor debouncing * Minor fixups * Split split_common transport and debounce code into their own files Can now be replaced with custom versions per keyboard using CUSTOM_TRANSPORT = yes and CUSTOM_DEBOUNCE = yes * Refactor debounce for non-split keyboards too * Update handwired/xealous to build using new split_common * Fix debounce breaking basic test * Dodgy method to allow a split kb to only include one of i2c/serial SPLIT_TRANSPORT = serial or SPLIT_TRANSPORT = i2c will include only that driver code in the binary. SPLIT_TRANSPORT = custom (or anything else) will include neither, the keyboard must supply it's own code if SPLIT_TRANSPORT is not defined then the original behaviour (include both avr i2c and serial code) is maintained. This could be better but it would require explicitly updating all the existing split keyboards. * Enable LTO to get lets_split/sockets under the line * Add docs for SPLIT_TRANSPORT, CUSTOM_MATRIX, CUSTOM_DEBOUNCE * Remove avr-specific sei() from split matrix_setup Not needed now that slave doesn't have a separate main loop. Both sides (on avr) call sei() in lufa's main() after exiting keyboard_setup(). * Fix QUANTUM_LIB_SRC references and simplify SPLIT_TRANSPORT. * Add comments and fix formatting.
* Add documentation and fix formating (#4860)Drashna Jaelre2019-01-171-156/+145
|
* Add some function comments in action_layer.c (#4858)Nikolaus Wittenstein2019-01-161-6/+6
|
* Improved fix for __always_inline redefinition bugJames Churchill2019-01-111-1/+3
| | | Instead of changing based on the version of GCC, check for the presence of the macro instead.
* Fix Caps Lock LEDs once and for all (#4824)fauxpark2019-01-111-9/+12
| | | | | | | | * Check the size of the SET_REPORT packet If we have two bytes, that probably means the first is a report ID. The 6KRO interface may or may not have one, but the NKRO interface always does, so we need to check this regardless of whether KEYBOARD_SHARED_EP is defined. * Fix indentation
* Add missing parentheses to some important macros (#4775)Konstantin Đorđević2019-01-081-3/+3
| | | | | | * Add missing parentheses to quantum_keycodes macros * Add missing parentheses to progmem macros
* Update to arm_atsam wait and timer routinespatrickmt2019-01-0710-115/+55
| | | | | | | | | | | | Microsecond (us) delays are now handled by a busy wait loop according to MCU frequency. This replaces the system counter method which had an overhead of around 12us. TC5 device and supporting routines removed as it was the old us delay counter. wait_ms is now properly a macro to CLK_delay_ms. wait_us is now properly a macro to CLK_delay_us. Removed CLK_get_us as it has no use. All calls to CLK_get_ms() have been replaced by timer_read64() with corrected typing. All calls to CLK_delay_ms() have been replaced by wait_ms(). All calls to CLK_delay_us() have been replaced by wait_us() and timings verified or updated as needed after review on scope. Corrected typing of variables using 64bit ms timer readings if needed.
* Final HS60v2 changes. (#4790)yiancar2019-01-068-649/+173
| | | | | | | | | | | | | | | | | | | | | * initial commit, this now mostly works - RGB controls work - Dynamic keymap still broken due to eeprom - Via works * STM32 eeprom update - Update EEPROM emulation library to handle 8bit data like AVR. - This library also allows for multiple page pairs resulting in greater EEPROM size flexibility * hs60 changes * HS60 hhkb added * Update keyboards/hs60/v2/config.h Co-Authored-By: yiancar <yiangosyiangou@cytanet.com.cy>
* Add underscores to names of brightness control constants in report.h (#4764)Konstantin Đorđević2019-01-051-4/+4
|
* Keep pressed keys on layer state change (fixes #2053, #2279) (#3905)Konstantin Đorđević2018-12-283-1/+19
| | | | | | | | | | * Keep pressed keys on layer state change * Add doc comment for clear_keyboard_but_mods_and_keys * Keep pressed keys only if PREVENT_STUCK_MODIFIERS is on * Check STRICT_LAYER_RELEASE instead of PREVENT_STUCK_MODIFIERS
* Refactor quantum/split_common/i2c.c, quantum/split_common/serial.c (#4522)Takeshi ISHII2018-12-142-8/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * add temporary compile test shell script * Extended support of SKIP_VERSION to make invariant compile results during testing. * build_keyboard.mk, tmk_core/rules.mk: add LIB_SRC, QUANTUM_LIB_SRC support Support compiled object enclosed in library. e.g. ``` LIB_SRC += xxxx.c xxxx.c --> xxxx.o ---> xxxx.a ``` * remove 'ifdef/ifndef USE_I2C' from quantum/split_common/{i2c|serial}.c * add SKIP_DEBUG_INFO into tmk_core/rules.mk When SKIP_DEBUG_INFO=yes is specified, do not use the -g option at compile time. * tmk_core/rules.mk: Library object need -fno-lto * add SKIP_DEBUG_INFO=yes * remove temporary compile test shell script * add '#define SOFT_SERIAL_PIN D0' to keyboards/lets_split/rev?/config.h * quantum/split_common/serial.c: Changed not to use USE_I2C.
* Add left/right EEPROM flashing for DFU (#4560)Drashna Jaelre2018-12-141-1/+30
|
* Fix macro redefinition for GNUC compilers > 6patrickmt2018-12-141-1/+1
| | | | GNUC compilers greater than version 6 already have the macro __always_inline defined. This fix checks GNUC version before defining the macro itself.
* Fix up tap_code functionality (#4609)Drashna Jaelre2018-12-142-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add delay in Tap Code to avoid issues I think a few people have reporting issues with it working properly, and it may be a timing issue. The 'register_code' uses this sort of delay in some of the functions, and this is probably why. Adding the 100ms delay should hopefully fix any issues with it. * Make tap_code delay configurable * Update documentation * Bring tap_code16 inline with changes * Fix type for tap_code16 Bad copy-paste job * Just use the value check for the define * Clarify timing in docs Co-Authored-By: drashna <drashna@live.com> * Wordsmithing Co-Authored-By: drashna <drashna@live.com>
* Add standard definitions for ALGR and KC_ALGR (#4389)Konstantin Đorđević2018-12-121-0/+1
| | | | | | | | | | | | | | * Add standard ALGR defition, remove (re)definitions from language files * Use ALGR(kc) consistently in ALTGR(kc) aliases * Non-Nordic keymaps should not use NO_ALGR * Add standard KC_ALGR definition * Update docs with ALGR and KC_ALGR * Update SS_ALGR and ALGR_T aliases
* Bringing Massdrop keyboard hardware configuration to keyboard level (#4593)patrickmt2018-12-108-183/+278
| | | | | | | | | | MCU Pins for debugging, LED, boot tracing, and shift registers are now configurable at keyboard level. Macros led_* replaced by DBG_LED_* Macros m15_* replaced by DBG_1_* Macros m27_* replaced by DBG_2_* Macros m28_* replaced by DBG_3_* For CTRL and ALT keyboards, debug boot tracing pin default now set to pad M27 instead of M28 since although M28 is not being used, it is technically a signal for USB port detection. m15_print(...) renamed to dbg_print(...) to get away from hard coded port names. dbg_print function now follows similar pattern to debug led output.
* Vertical animation support for arm_atsam led_matrix (#4538)Ian O'Dea2018-12-062-31/+43
| | | | | | | | | | * Add initial support for vertically-oriented animations * DRY up vertical animation support * Fix animation code for arm_atsam led_matrix to work in all directions * Adjust py calculation to base off bottom rather than top
* Only try to read the report ID from SetReport when the keyboard is part of ↵fauxpark2018-12-051-1/+1
| | | | | | | the shared EP Fixes #4471 Fixes #4517
* adding Hadron v3 keyboard, QWIIC devices support, haptic feedback support ↵ishtob2018-12-042-3/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#4462) * add initial support for hadron ver3 * add initial support for hadron ver3 * pull qwiic support for micro_led to be modified for use in hadron's 64x24 ssd1306 oled display * initial work on OLED using qwiic driver * early work to get 128x32 oled working by redefining qwiic micro oled parameters. Currently working, but would affect qwiic's micro oled functionality * moved oled defines to config.h and added ifndef to micro_oled driver * WORKING :D - note, still work in progress to get the start location correct on the 128x32 display. * added equation to automatically calculate display offset based on screen width * adding time-out timer to oled display * changed read lock staus via read_led_state * lock indications fixes * Added scroll lock indication to oled * add support for DRV2605 haptic driver * Improve readabiity of DRV2605 driver. -added typedef for waveform library -added unions for registers * Update keyboards/hadron/ver2/keymaps/default/config.h Co-Authored-By: ishtob <ishtob@gmail.com> * Update keyboards/hadron/ver2/keymaps/default/config.h Co-Authored-By: ishtob <ishtob@gmail.com> * Update keyboards/hadron/ver2/keymaps/default/config.h Co-Authored-By: ishtob <ishtob@gmail.com> * Update keyboards/hadron/ver2/keymaps/default/config.h Co-Authored-By: ishtob <ishtob@gmail.com> * Fixes for PR * PR fixes * fix old persistent layer function to use new set_single_persistent_default_layer * fix issues with changing makefile defines that broken per-key haptic pulse * Comment fixes * Add definable parameter and auto-calibration based on motor choice
* Add Extrakey support for Brightness up/down (#4477)Giuseppe Rota2018-11-282-2/+11
|
* fixed misplaced paranthesis in arm usb mouse send function (#4478)Christon DeWan2018-11-271-1/+1
| | | bug was causing lots of dropped events for me.
* Fixed docs/newbs_testing_debugging.md and tmk_core/common/print.hmtei2018-11-271-5/+5
|
* Fix raw hid define for chibios (#4460)yiancar2018-11-211-2/+2
|
* Use a single endpoint for HID reports (#3951)James Laird-Wah2018-11-1510-380/+397
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Unify multiple HID interfaces into one This reduces the number of USB endpoints required, which frees them up for other things. NKRO and EXTRAKEY always use the shared endpoint. By default, MOUSEKEY also uses it. This means it won't work as a Boot Procotol mouse in some BIOSes, etc. If you really think your keyboard needs to work as a mouse in your BIOS, set MOUSE_SHARED_EP = no in your rules.mk. By default, the core keyboard does not use the shared endpoint, as not all BIOSes are standards compliant and that's one place you don't want to find out your keyboard doesn't work.. If you are really confident, you can set KEYBOARD_SHARED_EP = yes to use the shared endpoint here too. * unify endpoints: ChibiOS protocol implementation * fixup: missing #ifdef EXTRAKEY_ENABLEs broke build on AVR with EXTRAKEY disabled * endpoints: restore error when too many endpoints required * lufa: wait up to 10ms to send keyboard input This avoids packets being dropped when two reports are sent in quick succession (eg. releasing a dual role key). * endpoints: fix compile on ARM_ATSAM * endpoint: ARM_ATSAM fixes No longer use wrong or unexpected endpoint IDs * endpoints: accommodate VUSB protocol V-USB has its own, understandably simple ideas about the report formats. It already blasts the mouse and extrakeys through one endpoint with report IDs. We just stay out of its way. * endpoints: document new endpoint configuration options * endpoints: respect keyboard_report->mods in NKRO The caller(s) of host_keyboard_send expect to be able to just drop modifiers in the mods field and not worry about whether NKRO is in use. This is a good thing. So we just shift it over if needs be. * endpoints: report.c: update for new keyboard_report format
* Backlight status functions (#4259)Phillip Tennen2018-11-142-6/+49
| | | | | | | | | | | | | | | | | | * add functions to set specific backlight state * add function to query backlight state * update documentation with new backlight functions * Update tmk_core/common/backlight.c Co-Authored-By: codyd51 <phillip.ennen@gmail.com> * Update tmk_core/common/backlight.h Co-Authored-By: codyd51 <phillip.ennen@gmail.com> * update docs for is_backlight_enabled() name change
* Add localized LED flash effect on keypress to Massdrop ALT (#4340)Sean Dwyer2018-11-062-4/+13
|
* Fix Spacing issue in makefile that breaks Terminal configDrashna Jaelre2018-11-061-1/+1
|
* command.h include was not set correctlyDrashna Jaelre2018-11-061-4/+1
|
* Fix Terminal feature on ChibiOSDrashna Jaelre2018-11-062-1/+5
|
* USB Suspend for arm_atsam protocolpatrickmt2018-11-025-53/+136
| | | | | | Rewrote USB state tracking for implementation of suspend state. Updated suspend.c in entirety. Main subtasks (generally hardware related) are now run prior to keyboard task.
* Fix CTRL/ALT keyboard does not wake computer from sleeppatrickmt2018-11-022-12/+20
| | | | Fix for Massdrop CTRL and ALT keyboards not waking computer from sleep
* Move disable JTAG code from `keyboard_init` to `keyboard_setup`Danny Nguyen2018-11-022-5/+11
| | | | This way all split keyboards are using that code instead of just those using split_common with the fix
* Add support for Atmega32A to pin declarations and universal matrix (#4015)Jack Humbert2018-11-021-4/+4
| | | | | | | | | | | | | | | | | | * add computed pins from mcu type * update for atmega32a * doc typo * add atmega16 chips, link to references * remove avr include from config * exclude assembler in config.h includes * consolodate options, add 646 * fix typo in pindef
* Fix undefined reference to `console_printf` for CTRL and ALT keyboardspatrickmt2018-10-291-2/+2
| | | | Fix undefined reference to `console_printf` for CTRL and ALT keyboards when enabling CONSOLE_ENABLE
* Add Bootmagic Lite to QMK (#4215)Drashna Jaelre2018-10-271-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Preliminary additon of bootmagic lite functionality * Cleanup code * Clean up bootmagic code * Add documentation and clean up code * Make 'lite' an option for BOOTMAGIC_ENABLE * Update Templates with note about Bootmagic Lite option * Detect Debounce variable * Make sure debounce is a non-zero number * Capitalize Bootmagic * Capitalize bootmagic * Update wording * Re-add EEPROM reset, by popular demand And add eeprom-less version to drashna userspace for his sanity * Fix spacing * Set BOOTMAGIC_ENABLE to use full/lite/off And default yes to "full" for compatibility * Add Bootmagic lite info to templates * Remove text from makefiles * Cleanup of makefile * mention yes in bootmagic docs * Wordsmitthing the docs * Fix white spaces * Readd default bootmagic setting, because it's necessary
* Add delayed flashing option for DFU Util (#4225)Drashna Jaelre2018-10-271-0/+18
| | | | | | | | | | * Add delayed flashing option for DFU Util * Use a loop to make code cleaner * Make delay configurable but default to 10 * Better formatting of check
* Fix mouse_send() on chibiOS so it won't lock up the firmwareDrashna Jaelre2018-10-271-3/+4
|
* Made a userspace that allows you to use your keyboard as an order of ↵Ajax2018-10-231-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | operations based calculator (#2864) * Made DZ60 layout with calculator * Cleaned up and commented, preparing to fix bug with negative in front of open parenthesis as first character * Fixed bug where negative sign infront of parenthesis as first character was parsed incorrectly * Made a better solution for the bug from the previous commit * Modularized and added a userfile so that this code can be used on various keyboards, found in doogle999 * Removed commented code from keymap * Made the layer that is used for calculations a define so that it can be changed per keyboard * Made the readme * Made the readme in the correct place * Revert "Made the readme in the correct place" This reverts commit 7f8b59ed9e59c77401a48be3a7ac1e8fd8e84e32. * Manually synced with qmk upstream * Stopped repeat, made keys print character that they are defined as rather than what the keyboard wants them to do * Added support for numpad, might make all keycodes custom so that there is no need to change doogle999.c if you want to change the keycode that is associated with a function, also made numpad automatically activating an option * Fixed some bugs with backspacing, updated the readme * Fixed some bugs with numlock turning on at the wrong times when a shift key was down * Made the return to layer work automatically instead of just forcing it to layer 0 * fixes and style changes, 20% decreased binary size * Fixed some bugs with double printing and compilation errors on my side * Fixed bug with exceeding the buffer size * Removed changes that added const-ness * Made changes so that backspace does not repeat to remove backspace bugs, still some bugs with recalculating without having typed anything * Fixed obo error with calc main loop * Made includes more accurate in keymap for dz60 * Moved flags to user makefile
* Keyboard: Port of TMK XT USB Converter (#3619)markspanbroek2018-10-223-0/+249
| | | | | | | | | | | | | | | | * Converter: add XT USB converter from TMK * Converter: port TMK code for USB converter to QMK * Apply requested changes after code review by @drashna - use "pragma once" instead of include guards - use LAYOUT instead of KEYMAP - allow customisation with matrix_init_user() and matrix_scan_user() - set BOOTLOADER instead of BOOTLOADER_SIZE - Add XT_ENABLE to OPT_DEFS * Remove unnecessary lines
* Keyboard: bminiex : Working backlight (#4171)a-chol2018-10-211-4/+1
| | | | | | | | * bminiex : Working backlight * bminiex keyboard with fixes * bminiex keyboard more fixes
* stm32f1xx EEPROM emulation (#3914)Takuya Urakawa2018-10-197-21/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | * * Add stm32f1xx EEPROM emulation * Fix eeprom update compare bug Squashed commit of the following: commit b8f248ae08cec0cd81ecbb8854d9b39221d4d573 Author: hsgw <urkwtky@gmail.com> Date: Sat Sep 15 19:13:48 2018 +0900 fix EEPROM_update wrong compare commit d4ed4e6ea864e967a3e17f7edee4b0c3b4a25541 Author: hsgw <urkwtky@gmail.com> Date: Sat Sep 15 17:43:47 2018 +0900 eeprom fix initialization define commit b61aa7c04d70c64df3416d63e5da08b73b6053af Author: hsgw <urkwtky@gmail.com> Date: Sat Sep 15 16:33:40 2018 +0900 maybe working * Fix FLASH_KEY defines
* Massdrop keyboards console device support for hid_listenpatrickmt2018-10-1013-20/+347
| | | | | | Added hid_listen USB device for arm_atsam USB protocol. Debug printing is now done through the console device (CONSOLE_ENABLE = yes) rather than the virtser device, for viewing in hid_listen. Function dpf(...) renamed to CDC_printf(...) and should now be called directly if intending to print to the virtual serial device.
* Add mousekey_send to (un)register_codeDrashna Jaelre2018-10-041-0/+2
|
* Add tap_code function (#3784)Drashna Jaelre2018-10-011-0/+1
| | | | | | | | | | * Add tap_code * formatting * Doc clarification * Rename variable to make more consistent
* Add Function level EECONFIG code for EEPROM (#3084)Drashna Jaelre2018-10-012-40/+107
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add Function level EEPROM configuration Add kb and user functions for EEPROM, and example of how to use it. * Bug fixes and demo * Additional cleanup * Add EEPROM reset macro to example * Forgot init function in list * Move eeconfig_init_quantum function to quantum.c and actually set default layer * See if removing weak quantum function fixes issue * Fix travis compile error * Remove ifdef blocks from EECONFIG so settings are always set * Fix for ARM EEPROM updates * Fix merge issues * Fix potential STM32 EEPROM issues
* Add user level to default_layer_state_setDrashna Jaelre2018-10-012-1/+12
|
* CTRL keyboard bootloader_jump supportpatrickmt2018-09-283-15/+35
| | | | Adds support for CTRL keyboards to enter bootloader via bootloader_jump()
* Massdrop keyboard updates for SEND_STRING, syscalls, stdio, debug prints, ↵patrickmt2018-09-2813-407/+102
|