qmk/tmk_core/protocol/usb_hid
Jack Humbert 13bb6b4b7f Backlight abstraction and other changes (#439)
* redoes matrix pins, abstracts backlight code for B5,6,7

* slimming down keyboard stuff, backlight breathing implemented

* don't call backlight init when no pin

* cleans up user/kb/quantum calls, keyboard files

* fix pvc atomic

* replaces CHANNEL with correct var in breathing

* removes .hexs, updates readmes, updates template

* cleans-up clueboards, readmes to lowercase

* updates readme
2016-06-23 22:18:20 -04:00
..
arduino-1.0.1 Merge commit 'a074364c3731d66b56d988c8a6c960a83ea0e0a1' as 'tmk_core' 2015-04-10 01:32:04 +09:00
test updates all config.h and Makefiles to correct references, text 2016-06-21 10:21:43 -04:00
USB_Host_Shield_2.0 Backlight abstraction and other changes (#439) 2016-06-23 22:18:20 -04:00
override_Serial.cpp Merge commit 'a074364c3731d66b56d988c8a6c960a83ea0e0a1' as 'tmk_core' 2015-04-10 01:32:04 +09:00
override_wiring.c Merge commit 'a074364c3731d66b56d988c8a6c960a83ea0e0a1' as 'tmk_core' 2015-04-10 01:32:04 +09:00
parser.cpp usb_usb: Ignore error usage(0x01-03) report 2015-07-15 16:02:20 +09:00
parser.h Merge commit 'a074364c3731d66b56d988c8a6c960a83ea0e0a1' as 'tmk_core' 2015-04-10 01:32:04 +09:00
README Merge commit 'a074364c3731d66b56d988c8a6c960a83ea0e0a1' as 'tmk_core' 2015-04-10 01:32:04 +09:00
usb_hid.h Merge commit 'a074364c3731d66b56d988c8a6c960a83ea0e0a1' as 'tmk_core' 2015-04-10 01:32:04 +09:00

USB HID protocol
================
Host side of USB HID keyboard protocol implementation.
Only standard HID Boot mode is supported at this time. This means most of normal keyboards are supported while proprietary >6KRO and NKRO is not.

Third party Libraries
---------------------
USB_Host_Shield_2.0
    Circuits@Home repository is git-submoduled. Do git submodule init & update to get the content.
    https://github.com/felis/USB_Host_Shield_2.0

arduino-1.0.1
    Arduino files copied from:
    https://github.com/arduino/Arduino/hardware/arduino/{cores,variants}


Test build
----------
In test directory;
    $ make
    $ DEV=/dev/ttyACM0 make program

You can see HID keyboard reports on debug output.


Restriction and Bug
-------------------
Not supported/confirmed yet.
    Hub, suspend, keyboard LED

Switching power on VBUS:
    To power reset device.
    http://www.circuitsathome.com/camera-control/simulating-cable-disconnect-on-usb-host-shield-2-0
    This is needed for a device which are not initilized with 'USB Bus Reset'(long SE0)

Can't bus-reset a keyboard which already attached on bus properly.
    Slow start up of Leonardo's bootloader causes this?
    Need to unplug/plug a keyboard after firmware starts up.
    MAX3421E doesn't work SAMPLEBUS well to know whether device connected or not.

Keyboard with other endpoints than boot keyboard may go wrong.
    On my keyboard with mouse key the converter locks up when using mouse key function.

Can't compile on Windows filesystem.
    On Linux no problem.
    Windows doesn't know difference between common/print.h and arduino/Print.h.
    Change file name common/print.h to console.h ?