Stay organized with collections
Save and categorize content based on your preferences.
Version: 1.0.3
Last Updated: 2024-02-01
Legend
Product Verb
Development Action
"MUST"
Mandatory product requirement
"SHOULD"
Optional recommendation
"MAY"
Nice to have
Overview
This specification document describes the criteria that a ChromeOS Compatible
stylus meets.
Protocol
The stylus MUST implement the features described in the Universal Stylus
Initiative (USI) Stylus Certification Requirements version 2.0 or newer.
The Stylus Certification Requirements document is available to USI
members to download from the Members site of universalstylus.org.
Quick access links to these documents can be found within the Technical
Working Group page.
To become a USI member, please reach out to the contacts listed at
universalstylus.org.
Note: At time of writing, the direct contact for USI is
usiadmin@universalstylus.org.
Refer to sections 2.4 through 2.7 of the Stylus Certification
Requirements for the required features.
In addition to implementing features applicable to all USI styluses, the
stylus MUST implement:
STY.FEA.1.4 - Stylus Feature - Fuel gauge
Rationale: ChromeOS uses the numeric fuel gauge for showing stylus
battery-related UI.
These features MAY be implemented, but are not required:
STY.FEA.2.1 - Stylus Feature – Primary Button
STY.FEA.2.3 - Stylus Feature – Erase Affordance
Compliance with the requirements may be measured through the processes
described in the Universal Stylus Initiative (USI) Stylus Certification
Test Plan 2.0; at time of publication, this document is not yet
available from USI, please contact them for updated information.
If the stylus implements wireless charging (STY.FEA.6.1 - Stylus Feature
– Wireless Charging), then it may be tested for compliance with the test
plan described in the Wireless Charging Compliance and Test Cases
Document, available at the universalstylus.org site to USI members.
As a reminder, the stylus MUST support both USI 1.0 and 2.0 host devices:
Rationale: The USI ecosystem is designed for maximal compatibility, so
that all 2.0 styluses are expected to work with all Chromebooks that
have shipped with USI support, including both 1.0 and 2.0 protocol
versions.
This will be accomplished if your stylus implements the features in the
Stylus Certification Requirements.
Battery Replacement
If the stylus supports replaceable batteries, such as AAAA cells, it SHOULD
provide an easily visible battery polarity/direction indicator within the
battery compartment.
Wired Charging
If the stylus has a rechargeable battery that charges through a wired
connection, the device MUST support recharging via USB-C with USB-IF
certified cables and USB-IF compliant USB-A and USB-C sources, including
USB-C sources that support USB PD. (Specifically, the stylus MUST implement
a USB-C Sink as described in USB Type-C Cable and Connector Specification
Section 4.5.1.3.2 following Figure 4-9 ).
If the device includes a USB cable:
Cable SHOULD be USB-IF certified
If the device includes a USB-C charger:
Charger SHOULD be USB-IF Certified
Wireless Charging
If a stylus charges wirelessly, it SHOULD implement the feature as described
by STY.FEA.6.1 - Stylus Feature – Wireless Charging, in section 2.5 of the
Stylus Certification Requirements 2.0.
Rationale: using this design is necessary for the stylus to be charged
by USI 2.0 compliant wireless chargers, including Chromebooks.
Note: As stated in the Stylus Certification Requirements 2.0, the device
can be tested as described in the "Wireless Charging Compliance and Test
Cases Document".
Firmware
GID
As a reminder of items that MUST be implemented as described by the
C.GetGID(...) definition in section 6.1.3.6 of the USI Technical
Specification 2.0:
The stylus MUST have a globally unique ID, contained in the GID0-3
fields.
The GID3 field MUST include the USI identifier (from the USI Vendor
Registry document available from the universalstylus.org member site)
of the stylus manufacturer.
If the stylus manufacturer is different from the stylus IC manufacturer,
then GID2 MUST include the stylus IC manufacturer's USI identifier.
If any of the companies involved do not have USI identifiers, they MUST
contact USI and have new identifiers allocated for this purpose.
If the stylus implements tilt as described by the STY.FEA.3.1 - Stylus
Feature – Dual Transmitter Tilt Support in section 2.4 of the Stylus
Certification Requirements 2.0 then GID4/5 MUST be programmed appropriately
to distinguish stylus models with distinct physical tilt parameters:
GID4 MUST be programmed with a valid USI identifier, likely that of the
stylus manufacturer, or an OEM that the stylus is being made for.
GID5 MUST be programmed with a different value for each stylus that has
different electromechanical tilt characteristics, unique to the GID4 value.
Battery Level Reporting
As a reminder of items that MUST be implemented as described by the
C.GetBattery(...) definition in section 6.1.3.3 of the USI Technical
Specification 2.0.
The stylus's reported battery level via C.GetBattery() range MUST be in
the range of 1 to 100%.
Rationale: ChromeOS uses this battery range for reporting stylus battery
information. The value 0 in particular should not be reported.
The stylus MUST report a battery level via C.GetBattery() of 16 or lower
when the battery will be discharged soon and the user should take timely
action to change or recharge the stylus battery.
Rationale: ChromeOS uses this threshold for actively presenting a
notification to the user that they should recharge their stylus.
The stylus MUST report a battery level via C.GetBattery() of 25 or lower
when the battery is significantly discharged.
Rationale: ChromeOS uses this threshold for passively presenting the
visual stylus battery indicator with a warning color.
If the stylus reports 8 or more unique distinct battery levels, then the
stylus' reported battery level SHOULD have a goodness of linear fit to the
stylus battery discharge curve (reported % vs actual capacity) of 80% or
better.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-12-18 UTC."],[[["\u003cp\u003eUse the Chrome Management Reports API to retrieve data on Chrome browser and app usage within your organization.\u003c/p\u003e\n"],["\u003cp\u003eGenerate reports to count active Chrome versions within a specific timeframe using the \u003ccode\u003ecountChromeVersions\u003c/code\u003e report.\u003c/p\u003e\n"],["\u003cp\u003eIdentify the distribution of installed apps with specific permissions using the \u003ccode\u003ecountInstalledApps\u003c/code\u003e report and filter by \u003ccode\u003enumber_of_permissions\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003ePinpoint devices with a particular app installed using the \u003ccode\u003efindInstalledAppDevices\u003c/code\u003e report, filtering by \u003ccode\u003eappId\u003c/code\u003e and \u003ccode\u003eappType\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eLeverage the Admin SDK Directory API for Chrome Browsers to retrieve further device details based on device IDs obtained from the reports.\u003c/p\u003e\n"]]],[],null,["# ChromeOS Compatible - Stylus Specification v1.0\n\nVersion: 1.0.3 \n\nLast Updated: 2024-02-01\n\nLegend\n------\n\n| Product Verb | Development Action |\n|--------------|-------------------------------|\n| \"MUST\" | Mandatory product requirement |\n| \"SHOULD\" | Optional recommendation |\n| \"MAY\" | Nice to have |\n\nOverview\n--------\n\nThis specification document describes the criteria that a ChromeOS Compatible\nstylus meets.\n\nProtocol\n--------\n\n- The stylus MUST implement the features described in the Universal Stylus Initiative (USI) Stylus Certification Requirements version 2.0 or newer.\n - The Stylus Certification Requirements document is available to USI members to download from the Members site of [universalstylus.org](/chromeos/peripherals/%5Buniversalstylus.org%5D). Quick access links to these documents can be found within the Technical Working Group page.\n - To become a USI member, please reach out to the contacts listed at [universalstylus.org](/chromeos/peripherals/%5Buniversalstylus.org%5D).\n - Note: At time of writing, the direct contact for USI is usiadmin@universalstylus.org.\n - Refer to sections 2.4 through 2.7 of the Stylus Certification Requirements for the required features.\n - In addition to implementing features applicable to all USI styluses, the stylus MUST implement:\n - STY.FEA.1.4 - Stylus Feature - Fuel gauge\n - Rationale: ChromeOS uses the numeric fuel gauge for showing stylus battery-related UI.\n - These features MAY be implemented, but are not required:\n - STY.FEA.2.1 - Stylus Feature -- Primary Button\n - STY.FEA.2.3 - Stylus Feature -- Erase Affordance\n - Compliance with the requirements may be measured through the processes described in the Universal Stylus Initiative (USI) Stylus Certification Test Plan 2.0; *at time of publication, this document is not yet\n available from USI, please contact them for updated information*.\n - If the stylus implements wireless charging (STY.FEA.6.1 - Stylus Feature -- Wireless Charging), then it may be tested for compliance with the test plan described in the Wireless Charging Compliance and Test Cases Document, available at the [universalstylus.org](/chromeos/peripherals/%5Buniversalstylus.org%5D) site to USI members.\n - Compliance testing and logo certification may be performed through the USI Certification Program, details of which are available on the [universalstylus.org](/chromeos/peripherals/%5Buniversalstylus.org%5D) website at \u003chttps://universalstylus.org/certification\u003e.\n- As a reminder, the stylus MUST support both USI 1.0 and 2.0 host devices:\n - Rationale: The USI ecosystem is designed for maximal compatibility, so that all 2.0 styluses are expected to work with all Chromebooks that have shipped with USI support, including both 1.0 and 2.0 protocol versions.\n - This will be accomplished if your stylus implements the features in the Stylus Certification Requirements.\n\nBattery Replacement\n-------------------\n\n- If the stylus supports replaceable batteries, such as AAAA cells, it SHOULD provide an easily visible battery polarity/direction indicator within the battery compartment.\n\nWired Charging\n--------------\n\n- If the stylus has a rechargeable battery that charges through a wired connection, the device MUST support recharging via USB-C with USB-IF certified cables and USB-IF compliant USB-A and USB-C sources, including USB-C sources that support USB PD. (Specifically, the stylus MUST implement a USB-C Sink as described in USB Type-C Cable and Connector Specification Section 4.5.1.3.2 following Figure 4-9 ).\n- If the device includes a USB cable:\n - Cable SHOULD be USB-IF certified\n- If the device includes a USB-C charger:\n - Charger SHOULD be USB-IF Certified\n\n### Wireless Charging\n\n- If a stylus charges wirelessly, it SHOULD implement the feature as described by STY.FEA.6.1 - Stylus Feature -- Wireless Charging, in section 2.5 of the Stylus Certification Requirements 2.0.\n - Rationale: using this design is necessary for the stylus to be charged by USI 2.0 compliant wireless chargers, including Chromebooks.\n - Note: As stated in the Stylus Certification Requirements 2.0, the device can be tested as described in the \"Wireless Charging Compliance and Test Cases Document\".\n\nFirmware\n--------\n\n### GID\n\n- As a reminder of items that MUST be implemented as described by the\n C.GetGID(...) definition in section 6.1.3.6 of the USI Technical\n Specification 2.0:\n\n - The stylus MUST have a globally unique ID, contained in the GID0-3 fields.\n - The GID3 field MUST include the USI identifier (from the USI Vendor Registry document available from the [universalstylus.org](/chromeos/peripherals/%5Buniversalstylus.org%5D) member site) of the stylus manufacturer.\n- If the stylus manufacturer is different from the stylus IC manufacturer,\n then GID2 MUST include the stylus IC manufacturer's USI identifier.\n\n- If any of the companies involved do not have USI identifiers, they MUST\n contact USI and have new identifiers allocated for this purpose.\n\n- If the stylus implements tilt as described by the STY.FEA.3.1 - Stylus\n Feature -- Dual Transmitter Tilt Support in section 2.4 of the Stylus\n Certification Requirements 2.0 then GID4/5 MUST be programmed appropriately\n to distinguish stylus models with distinct physical tilt parameters:\n\n- GID4 MUST be programmed with a valid USI identifier, likely that of the\n stylus manufacturer, or an OEM that the stylus is being made for.\n\n- GID5 MUST be programmed with a different value for each stylus that has\n different electromechanical tilt characteristics, unique to the GID4 value.\n\n-\n | **Note:** the company whose USI identifier is placed in GID4 is responsible for tracking their GID5 values and ensuring duplicates are not issued.\n\n### Battery Level Reporting\n\n- As a reminder of items that MUST be implemented as described by the C.GetBattery(...) definition in section 6.1.3.3 of the USI Technical Specification 2.0.\n - The stylus's reported battery level via C.GetBattery() range MUST be in the range of 1 to 100%.\n - Rationale: ChromeOS uses this battery range for reporting stylus battery information. The value 0 in particular should not be reported.\n- The stylus MUST report a battery level via C.GetBattery() of 16 or lower when the battery will be discharged soon and the user should take timely action to change or recharge the stylus battery.\n - Rationale: ChromeOS uses this threshold for actively presenting a notification to the user that they should recharge their stylus.\n- The stylus MUST report a battery level via C.GetBattery() of 25 or lower when the battery is significantly discharged.\n - Rationale: ChromeOS uses this threshold for passively presenting the visual stylus battery indicator with a warning color.\n- If the stylus reports 8 or more unique distinct battery levels, then the stylus' reported battery level SHOULD have a goodness of linear fit to the stylus battery discharge curve (reported % vs actual capacity) of 80% or better.\n\nRevision History\n----------------\n\n| Date | Version | Notes |\n|------------|---------|----------------------------------|\n| 2024-02-01 | 1.0.3 | Republication on a new platform |\n| 2023-06-29 | 1.0.2 | Inserted line break |\n| 2023-06-27 | 1.0.1 | Fixed broken links |\n| 2023-05-18 | 1.0 | Initial Partner Site Publication |"]]