summaryrefslogtreecommitdiffstats
path: root/tmk_core/protocol/lufa
Commit message (Collapse)AuthorAgeFilesLines
* Move rgblight and backlight task to common location (#7733)Joel Challis2020-01-191-4/+0
|
* Use `clock_prescale_set()` from avr-libc (#7540)fauxpark2019-12-111-5/+2
| | | | | | * Use `clock_prescale_set()` from avr-libc * Remove outdated FAQ info
* Run clang-format manually to fix recently changed fileszvecr2019-11-171-3/+3
|
* rgblight_task logic fixes (#7214)Joel Challis2019-10-301-2/+2
|
* Adafruit BLE: Set SPI2X bit only when F_CPU is 8MHz (#6671)fauxpark2019-09-071-2/+3
|
* Fix battery level code in adafruit_ble.cpp (#6648)bwhelm2019-09-041-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix battery level code in adafruit_ble.cpp The code in tsk_core/protocol/lufa/adafluit_ble.cpp that polls the battery level for the Adafruit feather BLE controller reads the regulated voltage, not the raw voltage coming from the battery. To do that, the Adafruit Feather docs say you should read from pin A9: https://learn.adafruit.com/adafruit-feather-32u4-basic-proto/power-management#measuring-battery-4-9. (See also https://learn.adafruit.com/adafruit-feather-32u4-bluefruit-le/pinouts#logic-pins-2-9.) I'm not sure why, but analogRead(9); doesn't read the correct pin. Checking all available analog pins experimentally, it turns out that analogRead(7); returns the correct value. So the code above should read: state.vbat = analogRead(7); * Update tmk_core/protocol/lufa/adafruit_ble.cpp Co-Authored-By: Drashna Jaelre <drashna@live.com> * Remove old comment * Fix linking error * Remove `#ifdef` around `#include analog.h`. * Really fix linking error
* clang-format changesskullY2019-08-308-1047/+892
|
* Remove keyboard description from Adafruit BLE device namefauxpark2019-04-071-2/+1
|
* Always read two bytes from the endpoint if we have two bytes to readfauxpark2019-01-221-5/+1
| | | | | When this if statement is false, it will cause the report ID to be read as the LED state. We already know there are two bytes in the endpoint, which is a reasonably good indicator that it contains a report ID, so we should always read both.
* 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
* 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
* Use a single endpoint for HID reports (#3951)James Laird-Wah2018-11-151-42/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* rgblight.[ch] more configurable (#3582)Takeshi ISHII2018-09-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * add temporary test code rgblight-macro-test1.[ch] * rgblight.h : mode auto numberring and auto generate mode name symbol No change in build result. * rgblight.c use RGBLIGHT_MODE_xxx symbols No change in build result. * quantum.c use RGBLIGHT_MODE_xxx symbols No change in build result. * fix build break. when RGB_MATRIX_ENABLE defined * add temporary test code rgblight-macro-test2.[ch] * modify rgblight_mode_eeprom_helper() and rgblight_sethsv_eeprom_helper() * modify rgblight_task() * configurable each effect compile on/off in config.h * update docs/feature_rgblight.md * fix conflict. docs/feature_rgblight.md * remove temporary test code rgblight-macro-test*.[ch] * fix comment typo. * remove old mode number from comment * update docs/feature_rgblight.md about effect mode * Revert "update docs/feature_rgblight.md about effect mode" This reverts commit 43890663fcc9dda1899df7a37d382fc38b1a6d6d. * some change docs/feature_rgblight.md * fix typo * docs/feature_rgblight.md update: revise mode number table
* Generate API docs from source code comments (#2491)skullydazed2018-03-222-6/+116
| | | | | | | | | | | | | | | | | | * Generate api docs from source code * Add a bunch of doxygen comments * more doxygen comments * Add the in-progress api docs * script to generate docs from travis * Add doc generation to the travis job * make travis_docs.sh commit the work it does * make sure the docs script exits cleanly
* Merge ChibiOS and LUFA descriptor support (#2362)fredizzimo2018-02-084-1596/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Move lufa descriptor to protocol/usb_descriptor * Try to compile usb_descriptor on ChibiOS * Add lufa_utils for ChibiOS Lufa USB descriptors for ChibiOS * More lufa_util compatibility fixes * First compiling version of shared USB descriptor * Send the usb descriptors * Fix the CONSOLE output on ChibiOS * Add errors for unsupported interfaces * Enable support for vitual serial port USB descriptors * Implement virtual serial port for ChibiOS * Cleanup the lufa_utils Use the default lufa header files * Add raw hid support for ChibiOS This is completely untested * Enable midi compilation on ChibiOS * Move midi functionality out of lufa.c * Don't register sysex callback when not needed * ChibiOS compilation fixes * Update ChibiOS submodule * Fix the Midi USB descriptor It didn't work properly when both Midi and Virtual serial port was enabled. * Add MIDI support for ChibiOS * Fix USB descriptor strings on ChibiOS * Use serial usb driver for raw hid * Generalize the ChibiOS stream like drivers This makes the initialization much more simple and eliminates a lot of the code duplication. * Convert console output to chibios stream driver * Fixes for ChibiOS update * Update the ChibiOS contrib submodule To include the usb data toggle synchronization fixes * Fix duplicate reset enumeration on ChibiOS * Add missing include * Add number of endpoints check for ChibiOS * Enable serial USB driver on all keyboards * Add missing includes when API is enabled withot midi * Add another missing inlcude
* Update personal layouts, free up matrix_scan_user for JJ40 (#2319)Kenneth Aloysius2018-02-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add NIU Mini keymap from Planck keymap * Remove old keymap files * Fix README, removed Planck references * Add default layout, move Planck layout to separate folder * Update README * Add my XD60 keymap * Change RShift to slash * Fix keymap: stuck on MO(1) * Move RESET to Fn+Enter * Add: RGB saturation cycle * Add numpad layer to keymap * Fix last case * Cleanup Mechmini keymap. Once the custom RGB function is defined, there is no need to manually handle RGB code. * Change default to KEYMAP_MIT, not KEYMAP_OFFSET * Add custom RGB code for JJ40 * Reset Mechmini advertised power draw to 500. Will have to test actual maximum power draw later. * RGB working on JJ40. * Fix: saturation increase/decrease flipped * Add new directory for my custom keymap with RGB keycodes * Swap LAlt and LGUI * Update JJ40 max power draw with measured value * Update: fun40 rules.mk to enable underglow; earlier failed Travis CI * Fix: init RGB LEDs on boot. Also added HHKB-like keymap for XD60. * Super rudimentary backlight test, init RGB LEDs on boot * Backlighting works - stays on for now * Toggling working * Now can override backlight.c functions. Problem was functions in backlight.c weren't called before due to a lack of matrix_scan_quantum() in matrix.c * Timers not working * Delete global.h * Cleanup * Compiles * Good sign: LEDs stop working again * Handle timer1 overflow * Progress: fix: forgot to init * Backlighting fully working now except breathing. * Revert keymap to original keycodes * Update XD60 keymap README * Update JJ40 keymap with backlight toggles * Breathing working just fine. * Update references * Add backlight_set() call * Cleanup code to disable backlight * Fix: does not compile * Fix: missing call to rgblight_task. * Testing with BACKLIGHT_BREATHING * Cleanup * Cleanup comments * More commenting cleanup. * Do not enable BACKLIGHT_BREATHING by default * Update XD60 keymap * Update: move matrix_scan_kb out from matrix.c to jj40.c (kb-level) * Cleanup for PR * Fix conflict in readme.md for NIU mini * Restore original power consumption figure * Fix: matrix_scan_user() now has to be defined in the keymaps * Add weak `matrix_scan_user` so it does not have to be defined in keymap * Add weak matrix_init_user()
* Adds serial number string to USB descriptors (#1996)Jack Humbert2017-11-171-1/+17
| | | | | | * add serial number string to usb descriptors * better name for serial number
* Added BLE support for USB-USB converter. (#1824)Benjamin Dengler2017-10-151-0/+3
| | | | | | | | * Added BLE support to USB-USB converter * Added readme * Removed images and Makefile
* Force Raw HID interface number to 1 always (#1669)Wilba65822017-09-061-10/+13
|
* Add compile error if too many endpoints are defined for the ATmega32U4.Joe Wasson2017-08-201-1/+2
|
* update lufa implementationJack Humbert2017-07-072-2/+2
|
* delete old lufaJack Humbert2017-07-07525-101214/+0
|
* Adafruit Feather BLE / BLE Friend mouse buttons supportPriyadi Iman Nurcahyo2017-05-293-3/+21
|
* Use variable to disable usb check at startupyiancar2017-05-261-1/+1
| | | | | | Adds a define variable which when defined disables the usb startup check. Modified the makefile to separate above define from bluetooth dependancy
* Add RN42 Bluetooth module supportTravis La Marr2017-03-292-2/+33
| | | | Added support for sending HID keycodes over the RN42/reflashed HC05 module. Tested on OS X and iOS.
* Merge pull request #1112 from newsboytko/newsboytko/midi-keycodesJack Humbert2017-03-282-6/+15
|\ | | | | Flesh out MIDI support
| * Split MIDI functionality into MIDI_BASIC and MIDI_ADVANCEDGabriel Young2017-02-251-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MIDI_ENABLE = no text data bss dec hex filename 0 17080 0 17080 42b8 satan_midi.hex MIDI_ENABLE = yes MIDI_BASIC undefined MIDI_ADVANCED undefined text data bss dec hex filename 0 19494 0 19494 4c26 satan_midi.hex MIDI_ENABLE = yes #define MIDI_BASIC MIDI_ADVANCED undefined text data bss dec hex filename 0 19788 0 19788 4d4c satan_midi.hex MIDI_ENABLE = yes MIDI_BASIC undefined #define MIDI_ADVANCED text data bss dec hex filename 0 20846 0 20846 516e satan_midi.hex MIDI_ENABLE = yes #define MIDI_BASIC #define MIDI_ADVANCED text data bss dec hex filename 0 21140 0 21140 5294 satan_midi.hex
| * implement modulationGabriel Young2017-02-191-1/+1
| |
| * initial implementation of polyphony using variable length array of notes onGabriel Young2017-02-192-5/+10
| |
* | Add BLE and EZKey module defines.Travis La Marr2017-03-241-4/+4
| | | | | | | | Also restored serial init back to original location. Was getting junk data.
* | Readd bluetooth output direction on standard key input.Travis La Marr2017-03-241-8/+10
| |
* | Refactor Bluetooth HandlingTravis La Marr2017-03-244-48/+40
|/ | | | | | | | | | | | | | | Refactored Bluetooth support to make adding new Bluetooth modules easier in the future. * Remove `OUT_BLE` key from QMK's keymap. `OUT_BT` is all we need now as there's no difference anymore. * Made BLUETOOTH_ENABLE build option legacy as not to break existing keymaps (Falls back to existing EZ Key support if on) * Removed `ADAFRUIT_BLE_ENABLE` build option * Created new build option `BLUETOOTH` with module option (Currently `AdafruitEZKey` & `AdafruitBLE`) * Moved all LUFA bluetooth key/mouse events under `BLUETOOTH_ENABLE` ifdef with selected modules output.
* Fix wrong includePriyadi Iman Nurcahyo2017-02-011-1/+1
|
* Limit outputselect to AVR only for nowPriyadi Iman Nurcahyo2017-02-012-0/+97
|
* Move outputselect to parent dir to satisfy non LUFA keyboardsPriyadi Iman Nurcahyo2017-02-012-97/+0
|
* Implement runtime selectable output (USB or BT)Priyadi Iman Nurcahyo2017-02-013-69/+144
|
* API Sysex fixesFred Sundvik2016-12-292-11/+25
| | | | | | | | Fix memory leaks by using stack instead of malloc Reduce memory usage by having less temporary bufffers Remove warnings by adding includes Decrease code size by 608 bytes (mostly due to not linking malloc) More robust handling of buffer overflows
* Fixes issue #900Wilba65822016-12-202-4/+4
|
* Allow power consumption to be set per-keyboard.Kyle Smith2016-12-141-1/+4
|
* Allow negative values for mouse movementsPriyadi Iman Nurcahyo2016-12-101-1/+1
|
* Merge pull request #921 from Wilba6582/raw_hidJack Humbert2016-12-053-8/+208
|\ | | | | Initial version of Raw HID interface
| * Initial version of Raw HID interfaceWilba65822016-12-013-8/+208
| |
* | Connect the adafruit ble code to the lufa main loopWez Furlong2016-12-021-11/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are now 3 potential locations to send HID reports: 1. USB 2. The bluefruit easy key 3. Adafruit BLE Generally speaking, if USB is connected then we should prefer to send the reports there; it is generally the best channel for this. The bluefruit module has no feedback about bluetooth connectivity so the code must speculatively send reports over both USB and bluetooth. The BLE module has connectivity feedback. In general we want to prefer to send HID reports over USB while connected there, even if BLE is connected. Except that it is convenient to force them over BLE while testing the implementation. This policy has been extracted out into a where_to_send function which returns a bitmask of which of the channels should be used.
* | Merge pull request #915 from wez/ble_3Jack Humbert2016-12-023-0/+931
|\ \ | |/ |/| Add support for Adafruit BLE modules
| * Add support for Adafruit BLE modulesWez Furlong2016-11-273-0/+931
| | | | | | | | | | | | | | | | | | This implements some helper functions that allow sending key reports to an SPI based Bluetooth Low Energy module, such as the Adafruit Feather 32u4 Bluefruit LE. There is some plumbing required in lufa.c to enable this; that is in a follow-on commit.
* | separated into api files/folderJack Humbert2016-11-262-254/+10
| |
* | rgblight fixesJack Humbert2016-11-231-1/+1
| |
* | travis plsJack Humbert2016-11-232-48/+43
| |
* | converted to new formatJack Humbert2016-11-232-115/+192
| |
* | converted to 8bit messagesJack Humbert2016-11-231-51/+68
| |