You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

182 lines
6.7 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
2020 November 28 Breaking Changes Update (#11053) * Branch point for 2020 November 28 Breaking Change * Remove matrix_col_t to allow MATRIX_ROWS > 32 (#10183) * Add support for soft serial to ATmega32U2 (#10204) * Change MIDI velocity implementation to allow direct control of velocity value (#9940) * Add ability to build a subset of all keyboards based on platform. * Actually use eeprom_driver_init(). * Make bootloader_jump weak for ChibiOS. (#10417) * Joystick 16-bit support (#10439) * Per-encoder resolutions (#10259) * Share button state from mousekey to pointing_device (#10179) * Add hotfix for chibios keyboards not wake (#10088) * Add advanced/efficient RGB Matrix Indicators (#8564) * Naming change. * Support for STM32 GPIOF,G,H,I,J,K (#10206) * Add milc as a dependency and remove the installed milc (#10563) * ChibiOS upgrade: early init conversions (#10214) * ChibiOS upgrade: configuration file migrator (#9952) * Haptic and solenoid cleanup (#9700) * XD75 cleanup (#10524) * OLED display update interval support (#10388) * Add definition based on currently-selected serial driver. (#10716) * New feature: Retro Tapping per key (#10622) * Allow for modification of output RGB values when using rgblight/rgb_matrix. (#10638) * Add housekeeping task callbacks so that keyboards/keymaps are capable of executing code for each main loop iteration. (#10530) * Rescale both ChibiOS and AVR backlighting. * Reduce Helix keyboard build variation (#8669) * Minor change to behavior allowing display updates to continue between task ticks (#10750) * Some GPIO manipulations in matrix.c change to atomic. (#10491) * qmk cformat (#10767) * [Keyboard] Update the Speedo firmware for v3.0 (#10657) * Maartenwut/Maarten namechange to evyd13/Evy (#10274) * [quantum] combine repeated lines of code (#10837) * Add step sequencer feature (#9703) * aeboards/ext65 refactor (#10820) * Refactor xelus/dawn60 for Rev2 later (#10584) * add DEBUG_MATRIX_SCAN_RATE_ENABLE to common_features.mk (#10824) * [Core] Added `add_oneshot_mods` & `del_oneshot_mods` (#10549) * update chibios os usb for the otg driver (#8893) * Remove HD44780 References, Part 4 (#10735) * [Keyboard] Add Valor FRL TKL (+refactor) (#10512) * Fix cursor position bug in oled_write_raw functions (#10800) * Fixup version.h writing when using SKIP_VERSION=yes (#10972) * Allow for certain code in the codebase assuming length of string. (#10974) * Add AT90USB support for serial.c (#10706) * Auto shift: support repeats and early registration (#9826) * Rename ledmatrix.h to match .c file (#7949) * Split RGB_MATRIX_ENABLE into _ENABLE and _DRIVER (#10231) * Split LED_MATRIX_ENABLE into _ENABLE and _DRIVER (#10840) * Merge point for 2020 Nov 28 Breaking Change
3 years ago
4 years ago
4 years ago
Hid joystick interface (#4226) * 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>
3 years ago
4 years ago
2020 November 28 Breaking Changes Update (#11053) * Branch point for 2020 November 28 Breaking Change * Remove matrix_col_t to allow MATRIX_ROWS > 32 (#10183) * Add support for soft serial to ATmega32U2 (#10204) * Change MIDI velocity implementation to allow direct control of velocity value (#9940) * Add ability to build a subset of all keyboards based on platform. * Actually use eeprom_driver_init(). * Make bootloader_jump weak for ChibiOS. (#10417) * Joystick 16-bit support (#10439) * Per-encoder resolutions (#10259) * Share button state from mousekey to pointing_device (#10179) * Add hotfix for chibios keyboards not wake (#10088) * Add advanced/efficient RGB Matrix Indicators (#8564) * Naming change. * Support for STM32 GPIOF,G,H,I,J,K (#10206) * Add milc as a dependency and remove the installed milc (#10563) * ChibiOS upgrade: early init conversions (#10214) * ChibiOS upgrade: configuration file migrator (#9952) * Haptic and solenoid cleanup (#9700) * XD75 cleanup (#10524) * OLED display update interval support (#10388) * Add definition based on currently-selected serial driver. (#10716) * New feature: Retro Tapping per key (#10622) * Allow for modification of output RGB values when using rgblight/rgb_matrix. (#10638) * Add housekeeping task callbacks so that keyboards/keymaps are capable of executing code for each main loop iteration. (#10530) * Rescale both ChibiOS and AVR backlighting. * Reduce Helix keyboard build variation (#8669) * Minor change to behavior allowing display updates to continue between task ticks (#10750) * Some GPIO manipulations in matrix.c change to atomic. (#10491) * qmk cformat (#10767) * [Keyboard] Update the Speedo firmware for v3.0 (#10657) * Maartenwut/Maarten namechange to evyd13/Evy (#10274) * [quantum] combine repeated lines of code (#10837) * Add step sequencer feature (#9703) * aeboards/ext65 refactor (#10820) * Refactor xelus/dawn60 for Rev2 later (#10584) * add DEBUG_MATRIX_SCAN_RATE_ENABLE to common_features.mk (#10824) * [Core] Added `add_oneshot_mods` & `del_oneshot_mods` (#10549) * update chibios os usb for the otg driver (#8893) * Remove HD44780 References, Part 4 (#10735) * [Keyboard] Add Valor FRL TKL (+refactor) (#10512) * Fix cursor position bug in oled_write_raw functions (#10800) * Fixup version.h writing when using SKIP_VERSION=yes (#10972) * Allow for certain code in the codebase assuming length of string. (#10974) * Add AT90USB support for serial.c (#10706) * Auto shift: support repeats and early registration (#9826) * Rename ledmatrix.h to match .c file (#7949) * Split RGB_MATRIX_ENABLE into _ENABLE and _DRIVER (#10231) * Split LED_MATRIX_ENABLE into _ENABLE and _DRIVER (#10840) * Merge point for 2020 Nov 28 Breaking Change
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
  1. * Tutorial
  2. * [Introduction](newbs.md)
  3. * [Setup](newbs_getting_started.md)
  4. * [Building Your First Firmware](newbs_building_firmware.md)
  5. * [Flashing Firmware](newbs_flashing.md)
  6. * [Testing and Debugging](newbs_testing_debugging.md)
  7. * [Getting Help/Support](support.md)
  8. * [Other Resources](newbs_learn_more_resources.md)
  9. * [Syllabus](syllabus.md)
  10. * FAQs
  11. * [General FAQ](faq_general.md)
  12. * [Build/Compile QMK](faq_build.md)
  13. * [Debugging/Troubleshooting QMK](faq_debug.md)
  14. * [Keymap FAQ](faq_keymap.md)
  15. * [Glossary](reference_glossary.md)
  16. * Configurator
  17. * [Overview](newbs_building_firmware_configurator.md)
  18. * [Step by Step](configurator_step_by_step.md)
  19. * [Troubleshooting](configurator_troubleshooting.md)
  20. * QMK API
  21. * [Overview](api_overview.md)
  22. * [API Documentation](api_docs.md)
  23. * [Keyboard Support](reference_configurator_support.md)
  24. * [Adding Default Keymaps](configurator_default_keymaps.md)
  25. * CLI
  26. * [Overview](cli.md)
  27. * [Configuration](cli_configuration.md)
  28. * [Commands](cli_commands.md)
  29. * Using QMK
  30. * Guides
  31. * [Customizing Functionality](custom_quantum_functions.md)
  32. * [Driver Installation with Zadig](driver_installation_zadig.md)
  33. * [Keymap Overview](keymap.md)
  34. * Development Environments
  35. * [Docker Guide](getting_started_docker.md)
  36. * [Vagrant Guide](getting_started_vagrant.md)
  37. * Flashing
  38. * [Flashing](flashing.md)
  39. * [Flashing ATmega32A (ps2avrgb)](flashing_bootloadhid.md)
  40. * IDEs
  41. * [Using Eclipse with QMK](other_eclipse.md)
  42. * [Using VSCode with QMK](other_vscode.md)
  43. * Git Best Practices
  44. * [Introduction](newbs_git_best_practices.md)
  45. * [Your Fork](newbs_git_using_your_master_branch.md)
  46. * [Merge Conflicts](newbs_git_resolving_merge_conflicts.md)
  47. * [Fixing Your Branch](newbs_git_resynchronize_a_branch.md)
  48. * Keyboard Building
  49. * [Hand Wiring Guide](hand_wire.md)
  50. * [ISP Flashing Guide](isp_flashing_guide.md)
  51. * Simple Keycodes
  52. * [Full List](keycodes.md)
  53. * [Basic Keycodes](keycodes_basic.md)
  54. * [Language-Specific Keycodes](reference_keymap_extras.md)
  55. * [Modifier Keys](feature_advanced_keycodes.md)
  56. * [Quantum Keycodes](quantum_keycodes.md)
  57. * Advanced Keycodes
  58. * [Command](feature_command.md)
  59. * [Dynamic Macros](feature_dynamic_macros.md)
  60. * [Grave Escape](feature_grave_esc.md)
  61. * [Leader Key](feature_leader_key.md)
  62. * [Mod-Tap](mod_tap.md)
  63. * [Macros](feature_macros.md)
  64. * [Mouse Keys](feature_mouse_keys.md)
  65. * [Space Cadet Shift](feature_space_cadet.md)
  66. * [US ANSI Shifted Keys](keycodes_us_ansi_shifted.md)
  67. * Software Features
  68. * [Auto Shift](feature_auto_shift.md)
  69. * [Combos](feature_combo.md)
  70. * [Debounce API](feature_debounce_type.md)
  71. * [Key Lock](feature_key_lock.md)
  72. * [Layers](feature_layers.md)
  73. * [One Shot Keys](one_shot_keys.md)
  74. * [Pointing Device](feature_pointing_device.md)
  75. * [Raw HID](feature_rawhid.md)
  76. * [Sequencer](feature_sequencer.md)
  77. * [Swap Hands](feature_swap_hands.md)
  78. * [Tap Dance](feature_tap_dance.md)
  79. * [Tap-Hold Configuration](tap_hold.md)
  80. * [Terminal](feature_terminal.md)
  81. * [Unicode](feature_unicode.md)
  82. * [Userspace](feature_userspace.md)
  83. * [WPM Calculation](feature_wpm.md)
  84. * Hardware Features
  85. * Displays
  86. * [HD44780 LCD Controller](feature_hd44780.md)
  87. * [OLED Driver](feature_oled_driver.md)
  88. * Lighting
  89. * [Backlight](feature_backlight.md)
  90. * [LED Matrix](feature_led_matrix.md)
  91. * [RGB Lighting](feature_rgblight.md)
  92. * [RGB Matrix](feature_rgb_matrix.md)
  93. * [Audio](feature_audio.md)
  94. * [Bluetooth](feature_bluetooth.md)
  95. * [Bootmagic](feature_bootmagic.md)
  96. * [Custom Matrix](custom_matrix.md)
  97. * [DIP Switch](feature_dip_switch.md)
  98. * [Encoders](feature_encoders.md)
  99. * [Haptic Feedback](feature_haptic_feedback.md)
  100. * [Joystick](feature_joystick.md)
  101. * [LED Indicators](feature_led_indicators.md)
  102. * [Proton C Conversion](proton_c_conversion.md)
  103. * [PS/2 Mouse](feature_ps2_mouse.md)
  104. * [Split Keyboard](feature_split_keyboard.md)
  105. * [Stenography](feature_stenography.md)
  106. * [Thermal Printer](feature_thermal_printer.md)
  107. * [Velocikey](feature_velocikey.md)
  108. * Developing QMK
  109. * [PR Checklist](pr_checklist.md)
  110. * Breaking Changes
  111. * [Overview](breaking_changes.md)
  112. * [My Pull Request Was Flagged](breaking_changes_instructions.md)
  113. * History
  114. * [2020 Nov 28](ChangeLog/20201128.md)
  115. * [2020 Aug 29](ChangeLog/20200829.md)
  116. * [2020 May 30](ChangeLog/20200530.md)
  117. * [2020 Feb 29](ChangeLog/20200229.md)
  118. * [2019 Aug 30](ChangeLog/20190830.md)
  119. * C Development
  120. * [ARM Debugging Guide](arm_debugging.md)
  121. * [AVR Processors](hardware_avr.md)
  122. * [Coding Conventions](coding_conventions_c.md)
  123. * [Compatible Microcontrollers](compatible_microcontrollers.md)
  124. * [Drivers](hardware_drivers.md)
  125. * [ADC Driver](adc_driver.md)
  126. * [I2C Driver](i2c_driver.md)
  127. * [SPI Driver](spi_driver.md)
  128. * [WS2812 Driver](ws2812_driver.md)
  129. * [EEPROM Driver](eeprom_driver.md)
  130. * ['serial' Driver](serial_driver.md)
  131. * [GPIO Controls](internals_gpio_control.md)
  132. * [Keyboard Guidelines](hardware_keyboard_guidelines.md)
  133. * Python Development
  134. * [Coding Conventions](coding_conventions_python.md)
  135. * [QMK CLI Development](cli_development.md)
  136. * Configurator Development
  137. * QMK API
  138. * [Development Environment](api_development_environment.md)
  139. * [Architecture Overview](api_development_overview.md)
  140. * Hardware Platform Development
  141. * Arm/ChibiOS
  142. * [Selecting an MCU](platformdev_selecting_arm_mcu.md)
  143. * [Early initialization](platformdev_chibios_earlyinit.md)
  144. * QMK Reference
  145. * [Contributing to QMK](contributing.md)
  146. * [Translating the QMK Docs](translating.md)
  147. * [Config Options](config_options.md)
  148. * [Make Documentation](getting_started_make_guide.md)
  149. * [Documentation Best Practices](documentation_best_practices.md)
  150. * [Documentation Templates](documentation_templates.md)
  151. * [Community Layouts](feature_layouts.md)
  152. * [Unit Testing](unit_testing.md)
  153. * [Useful Functions](ref_functions.md)
  154. * [info.json Format](reference_info_json.md)
  155. * For a Deeper Understanding
  156. * [How Keyboards Work](how_keyboards_work.md)
  157. * [How a Matrix Works](how_a_matrix_works.md)
  158. * [Understanding QMK](understanding_qmk.md)
  159. * QMK Internals (In Progress)
  160. * [Defines](internals_defines.md)
  161. * [Input Callback Reg](internals_input_callback_reg.md)
  162. * [Midi Device](internals_midi_device.md)
  163. * [Midi Device Setup Process](internals_midi_device_setup_process.md)
  164. * [Midi Util](internals_midi_util.md)
  165. * [Send Functions](internals_send_functions.md)
  166. * [Sysex Tools](internals_sysex_tools.md)