Data Sheet
October 2017 BNO080 Datasheet 1000-3927
www.hillcrestlabs.com © 2017 Hillcrest Laboratories, Inc. All rights reserved. 21 / 57
Figure 1-24: UART signaling
1.3.5.2 UART-RVC protocol
The BNO080 transmits the following data at a rate of 100Hz.
Header
Index
Yaw
Pitch
Roll
X-axis
accel
Y-axis
accel
Z-axis
accel
Reserved
Csum
0xAAAA
LSB
MSB
LSB
MSB
LSB
MSB
LSB
MSB
LSB
MSB
LSB
MSB
0
0
0
Figure 1-25: BNO080 UART-RVC packet format
The 19-byte message has the following fields:
Header: Each report is prefixed with a 0xAAAA header
Index: A monotonically increasing 8-bit count is provided (0-255) per report
Yaw: The yaw is a measure of the rotation around the Z-axis since reset. The yaw has a range of +/- 180˚ and is
provided in 0.01˚ increments, i.e. a report of 8734 is equivalent to 87.34˚.
Pitch: The pitch is a measure of the rotation around the Y-axis. The pitch has a range of +/- 90˚ and is provided in
0.01˚ increments, i.e. a report of 1072 is equivalent to 10.72˚.
Roll: The roll is a measure of the rotation around the X-axis. The roll has a range of +/- 180˚ and is provided in
0.01˚ increments, i.e. a report of 1072 is equivalent to 10.72˚.
X-axis acceleration: The acceleration along the X-axis, presented in mg
Y-axis acceleration: The acceleration along the Y-axis, presented in mg
Z-axis acceleration: The acceleration along the Z-axis, presented in mg
Reserved: The message is terminated with three reserved bytes, currently set to zero
Checksum (Csum): The Index, yaw, pitch, roll, acceleration and reserved data bytes are added to produce the
checksum.
To determine the actual orientation of the module, the rotations should be applied in the order yaw, pitch then roll.
An example complete message and checksum calculation is as follows:
Message: 0xAA AA DE 01 00 92 FF 25 08 8D FE EC FF D1 03 00 00 00 E7
Where:
Index = 0xDE = 222
Yaw = 00.01˚ (1 = 0x0001)
Pitch = -1.10˚ (-110 = 0xFF92)
Roll = 20.85˚ (2085 = 0x0825)
X-acceleration = -371 mg = -3.638 m/s
2
(-371 = 0xFE8D)
Y-acceleration = -20 mg = -0.196 m/s
2
(-20 = 0xFFEC)
Z-acceleration = 977 mg = -9.581 m/s
2
(977 = 0x03D1)
Checksum = 0xE7
1.4 Host Communication
1.4.1 SHTP
The BNO080 uses Hillcrest’s SHTP (Sensor Hub Transport Protocol) to communicate for all interface styles
except UART-RVC. SHTP provides a means of passing data between the BNO080 and a host with support for
multiple channels. The BNO080 does not currently support the inclusion of 3
rd
party applications, but the SHTP
protocol allows for separation of traffic via these channels such that applications on a host can communicate over
this channel.
All data is prefixed with a 4-byte header:
Start
Stop
D7D6D5D4D3D2D1D0