Data Sheet
11. USB command encoding
As described in Section 8, the Tic’s USB commands each use one of four formats: quick, 7-bit write,
32-bit write, and block read (except for the “set setting” [https://www.pololu.com/docs/0J71/8#cmd-set-
setting] command that uses its own unique format, also described below). This section explains how
these four command formats are encoded as USB control transfer requests.
For a reference implementation of this protocol, see our Tic Stepper Motor Controller software
source code [https://github.com/pololu/pololu-tic-software].
All of the Tic’s USB commands are implemented as vendor-defined control transfers on endpoint 0.
The tables below show what data is sent in the SETUP packet and the data phase of the control
transfer.
Quick
bmRequestType bRequest wValue wIndex wLength Data
0x40 command 0 0 0 (none)
A quick command sends no data and is a request that simply contains the command byte in the
bRequest field.
Example: Halt and hold [https://www.pololu.com/docs/0J71/8#cmd-halt-and-hold]
bmRequestType
bRequest
command
wValue wIndex wLength Data
0x40 0x89 0 0 0 (none)
7-bit write
bmRequestType bRequest wValue wIndex wLength Data
0x40 command data 0 0 (none)
A 7-bit write command is a request that contains the command byte in bRequest and a 7-bit value in
the wValue field (the upper byte of wValue and the the most-significant bit of the lower byte are always
0).
Tic Stepper Motor Controller User’s Guide © 2001–2018 Pololu Corporation
11. USB command encoding Page 146 of 150