Skip to content

Commit a5c35de

Browse files
committed
spice up the readme
Signed-off-by: Benedek Kupper <kupper.benedek@gmail.com>
1 parent a4894aa commit a5c35de

1 file changed

Lines changed: 11 additions & 6 deletions

File tree

README.md

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ accurate abstractions, encapsulation, type safety, polymorphism.
1313

1414
* USB 2.0(.1) specification compliant full and high-speed stack
1515
* self-describing objects -> no manual implementation of any USB descriptors
16-
* efficient RAM usage
16+
* easily swappable device configurations
1717

1818
### Platforms
1919

@@ -23,26 +23,27 @@ The library integrates as a **west module** into the following platforms:
2323

2424
### Device classes
2525

26-
#### HID - Human Interface Device Class
26+
#### ⌨️ HID - Human Interface Device Class
2727

2828
HID specification version 1.11 is fully supported, with extensive report descriptor tooling
2929
via [hid-rp][hid-rp] library.
30+
3031
HID has outgrown itself from a pure USB class to a transport-independent protocol,
3132
and so this library also provides alternative transports for HID applications,
3233
which interact with the same high-level application API.
3334
The additional transport layers supported are:
34-
* BLE (HID over GATT Protocol)
35+
* BLE (HID over GATT Protocol) - Zephyr backend
3536
* I2C
3637

37-
#### CDC-ACM - Serial Port
38+
#### 🔌 CDC-ACM - Serial Port
3839

3940
The Abstract Control Model of Communications Device Class is fully implemented.
4041
Notably the notification endpoint can be marked as unused, skipping any hardware resource allocation,
4142
but keeping compatibility with all hosts.
4243

4344
### Vendor extensions
4445

45-
#### Microsoft OS descriptors
46+
#### 🪟 Microsoft OS descriptors and alternate enumeration
4647

4748
Microsoft OS descriptors version 2.0 is supported.
4849
The main motivation to support this functionality is because
@@ -54,7 +55,11 @@ or no driver at all.
5455
The only possible solution to deal with these is using [Windows Compatible IDs][WCID].
5556
This is stored in the USB device's descriptors, and tells Windows which driver to load for the given USB function.
5657

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
5863

5964
Microsoft XBOX-360 gamepad controller interface is implemented to leverage XInput driver on Windows
6065
for gamepad applications without any user step. Combining this with Microsoft OS descriptors

0 commit comments

Comments
 (0)