You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+11-6Lines changed: 11 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@ accurate abstractions, encapsulation, type safety, polymorphism.
13
13
14
14
* USB 2.0(.1) specification compliant full and high-speed stack
15
15
* self-describing objects -> no manual implementation of any USB descriptors
16
-
*efficient RAM usage
16
+
*easily swappable device configurations
17
17
18
18
### Platforms
19
19
@@ -23,26 +23,27 @@ The library integrates as a **west module** into the following platforms:
23
23
24
24
### Device classes
25
25
26
-
#### HID - Human Interface Device Class
26
+
#### ⌨️ HID - Human Interface Device Class
27
27
28
28
HID specification version 1.11 is fully supported, with extensive report descriptor tooling
29
29
via [hid-rp][hid-rp] library.
30
+
30
31
HID has outgrown itself from a pure USB class to a transport-independent protocol,
31
32
and so this library also provides alternative transports for HID applications,
32
33
which interact with the same high-level application API.
33
34
The additional transport layers supported are:
34
-
* BLE (HID over GATT Protocol)
35
+
* BLE (HID over GATT Protocol) - Zephyr backend
35
36
* I2C
36
37
37
-
#### CDC-ACM - Serial Port
38
+
#### 🔌 CDC-ACM - Serial Port
38
39
39
40
The Abstract Control Model of Communications Device Class is fully implemented.
40
41
Notably the notification endpoint can be marked as unused, skipping any hardware resource allocation,
41
42
but keeping compatibility with all hosts.
42
43
43
44
### Vendor extensions
44
45
45
-
#### Microsoft OS descriptors
46
+
#### 🪟 Microsoft OS descriptors and alternate enumeration
46
47
47
48
Microsoft OS descriptors version 2.0 is supported.
48
49
The main motivation to support this functionality is because
@@ -54,7 +55,11 @@ or no driver at all.
54
55
The only possible solution to deal with these is using [Windows Compatible IDs][WCID].
55
56
This is stored in the USB device's descriptors, and tells Windows which driver to load for the given USB function.
56
57
57
-
#### Microsoft XBOX-360 controller interface
58
+
An even more advanced option is the possibility to define alternate configuration for Windows specifically.
59
+
When Windows enumerates the device, it detects this feature, and sets the device in alternate enumeration mode, allowing the device to define completely different configuration as for all other hosts.
60
+
This allows working around Windows compatibility issues without affecting compliant hosts.
61
+
62
+
#### 🎮 Microsoft XBOX-360 controller interface
58
63
59
64
Microsoft XBOX-360 gamepad controller interface is implemented to leverage XInput driver on Windows
60
65
for gamepad applications without any user step. Combining this with Microsoft OS descriptors
0 commit comments