
VEHICLE SAFETY CONTROLLER
© 2021, FORT Robotics. Company Confidential. Do not distribute.
935-0003 Rev C
30 of 33
9.
Interfacing using USB HID Device Protocol
When using the HID Game Controller Protocol, the device is implemented as a standard USB Human Interface
Device. On most operating systems it will show up as a standard Game Controller device and can be used the
same as any off-the-shelf USB game controller including a Logitech or XBOX Controller.
9.1.
Packet Structure
The SRCS uses the standard HID device data bytes to transfer information about the measured status of
the X, Y and Z-axis of a joystick, and the state of buttons. The SRCS uses custom raw data bytes to transfer
the heartbeat and key-value pair information.
9.2.
Message Types
Type
Description
Direction Frequency
Input Report
Standard Message describing sticks and buttons
From SRC ~16 Hz
Table 49: Message Types
9.2.1.
Input Report (From SRC)
The Input Report message from the SRC includes the 6 primary axes (Left X, Left Y, Left Z, Right X, Right
Y, Right Z), 4-button Directional-Pad, the 4 numbered buttons, the state of the SRC, and the status of
the E-STOP. HID class devices are encouraged, where possible, to use a right-handed coordinate
system. If a user is facing a device, report values should increase as controls are moved from left to
right (X), from far to near (Y) and from high to low (Z).
Byte Offset
Size (bits)
Description
Value
0
8
Left X Joystick Value
Increasing left to right from -127 to 127
1
8
Left Y Joystick Value
Increasing far to near from -127 to 127
2
8
Left Z Joystick Value
Increasing high to low from -127 to 127
3
8
Right X Joystick Value
Increasing left to right from -127 to 127
4
8
Right Y Joystick Value
Increasing far to near from -127 to 127
5
8
Right Z Joystick Value
Increasing high to low from -127 to 127
6.0
4
Directional-Pad
Increasing clockwise from Up (0-7)
0 = Up
2 = Right
4 = Down
6 = Left
8 = Not set
6.4
4
Numbered Buttons
Bit 1 = Button 1
Bit 2 = Button 2
Bit 3 = Button 3
Bit 4 = Button 4
7
1
SRC State
As described in Table 1
8
1
E-Stop Value
0 = Not Actuated
1 = Actuated
Table 50: Input Report from SRC