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
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
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 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
* Reorder logic within common_features.mk
* Revert haptic logic
* Add back path to make tests happy
* Update common_features.mk
Co-Authored-By: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add support for Bootmagic lite when using SPLIT_HAND_PIN
* Deduplicate bootmagic_lite logic from within via
* Revert location of defaults so that user overrides still work for now
* Tidy up code slightly
* Lodestone: add ANSI and ISO layout data and keymaps
* rename layout macros
LAYOUT_ansi -> LAYOUT_65_ansi_blocker_split_bs
LAYOUT_iso -> LAYOUT_65_iso_blocker_split_bs
* use four-space indent on the new keymaps
* add 65_ansi_blocker and 65_iso_blocker layouts
* [Docs] Update layer documentation
* Add layer_state_cmp functions
* Fix cut/copy/paste issue
* Add id tags
* Apply noroads corrections
* Move Layers section to separate document
* Fix ID tag for layers
* Use better name for summary/side bar
* Fix feature page linkage
As well as a small spell error close by
* Remove paper analogy for now
* VIA Support: GH60 Rev C and GH60 Satan
* Corrected GH60 VIA default keymap
* Corrected GH60 VIA default keymap pt 2
* Copied default keymap over via default keymap
* Satan GH60 default corrected for VIA
* Satan GH60 default corrected for VIA pt 2
* Satan GH60 LTO enable for size
* Transparent 4th dynamic layer for GH60 Via support
* Update keyboards/gh60/revc/info.json
* Update keyboards/gh60/satan/info.json
* Update keyboards/gh60/satan/info.json
* Removed deprecated JSON keys gh60/revc/info.json
* Removed inline comment next to VID for GH60 Satan
* add via support for pdxkbc macropad
* add VIA support for the pdxkbc
* clean out some commented code
* remove unused files
* comment the vendor ID
* Update keyboards/pdxkbc/keymaps/via/keymap.c
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Update keyboards/pdxkbc/keymaps/via/keymap.c
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Update keyboards/pdxkbc/keymaps/via/keymap.c
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Update keyboards/pdxkbc/keymaps/via/keymap.c
Co-Authored-By: Ryan <fauxpark@gmail.com>
* Update keyboards/pdxkbc/keymaps/via/keymap.c
Co-Authored-By: Joel Challis <git@zvecr.com>
* Update keyboards/pdxkbc/keymaps/via/keymap.c
Co-Authored-By: Joel Challis <git@zvecr.com>
* Update keyboards/pdxkbc/keymaps/via/keymap.c
Co-Authored-By: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
* Create rules.mk
Added rules.mk in keymaps/via
* Update rules.mk
Added new line at the end of the file
* Create via\keymap.c
Added keymap.c inside the via directory
* Update config.h in projectkb/alice
Defined VIA eeprom layout size to 2 bits to allow for 4 layout options
* Add Lodestone PCB
Working Firmware for Lodestone PCB tested on physical PCB prototypes.
* Update keyboards/flx/lodestone/lodestone.c
* Update keyboards/flx/lodestone/keymaps/default/config.h
* Update keyboards/flx/lodestone/rules.mk
* Update keyboards/flx/lodestone/readme.md
* Delete config.h
* Update keyboards/flx/lodestone/info.json
Suggested by noroadsleft
* Update keyboards/flx/lodestone/info.json
* Update keyboards/flx/lodestone/info.json
Changed maintainer name as suggested.
* Update keyboards/flx/lodestone/keymaps/default/readme.md
* Update keyboards/flx/lodestone/info.json
* Update keyboards/flx/lodestone/rules.mk
Changed Link_Time_Optimization to LTO didn't know this was a thing :)
* Update keyboards/flx/lodestone/keymaps/default/keymap.c
Removed 2 unessisary layers from the default map.
* Update keyboards/flx/lodestone/readme.md
* Update keyboards/flx/lodestone/info.json
* Changed from LAYOUT to LAYOUT_all
AS suggested by noroadsleft, changed 4 files to match, and re-testeed on my hardware to confirm working.
* Update keyboards/flx/lodestone/config.h
Cleaned up Manu, Product and Descriptor as suggested.
* Update keyboards/flx/lodestone/readme.md