Chapter 3
USB API
3.1
Vuzix USB API
3.1.1
Description
M400C enumerates two separate internal devices that implement the Vuzix USB API. The first is
the main microcontroller, responsible for the operation of the majority of the system. The other
is a secondary microcontroller that bridges the touchpad controller to USB as a HID device.
Vuzix products implementing the Vuzix USB API can be controlled using a product-specific
set of commands. The protocol uses control transfers on endpoint 0 of the device to issue com-
mands, read, or write from the device. The format of the 64B payload depends on the specific
command. A detailed description of the API is documented in
Vuzix USB API
.
The following sections provide a list of the supported commands on this product, per inter-
nal device. The send and receive packet information shows the contents of the
PIDCOMMANDPKT
object, in the following format:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
repid
pktcmd
pktdata …
The pktdata field is a union of many different structs. The specific struct that is used depends
on the packet direction and the command used. The
PIDCOMMANDPKT
struct is 64 bytes in length,
which is the maximum control transfer size for USB full-speed devices. The first two bytes will
always be
repid
and
pktcmd
, respectively.
10