Data Sheet

October 2017 BNO080 Datasheet 1000-3927
www.hillcrestlabs.com © 2017 Hillcrest Laboratories, Inc. All rights reserved. 22 / 57
Byte
Field
0
Length LSB
1
Length MSB
2
Channel
3
SeqNum
Figure 1-26: SHTP Header
Length
Bit 15 of the length field is used to indicate if a transfer is a continuation
of a previous transfer. Bits 14:0 are used to indicate the total number of
bytes in the cargo plus header, which may be spread over multiple
messages. The bytes in the header field are counted as part of the
length. A length of 65535 (0xFFFF) is reserved because a failed
peripheral can too easily produce 0xFFFF. Therefore, the largest cargo
that can be transported is 32766 minus the header bytes. The BNO080
does not support receiving fragmented messages but it does support
sending them.
Channel
The channel number of the cargo. Channel 0 is the command channel
and is used by the SHTP.
SeqNum
The sequence number of the cargo. The sequence number is a
monotonically incrementing number that increments once for each
cargo sent or cargo continuation sent. Each channel and each direction
has its own sequence number. The sequence number is used to detect
duplicate or missing cargoes and to associate segmented cargoes with
each other.
The length field allows a host to schedule the correct number of clocks to generate for reads over I
2
C and SPI.
The BNO080 supports partial reads if the host cannot accept all the bytes in one read, the length will be updated
on a subsequent read. So, for instance a host could read the first 4 bytes to determine the number of clocks to
generate and then repeat the read with the required number of clocks. The protocol is fully described in [2].
The BNO080 supports 6 channels:
Channel 0: the SHTP command channel
Channel 1: executable
Channel 2: sensor hub control channel
Channel 3: input sensor reports (non-wake, not gyroRV)
Channel 4: wake input sensor reports (for sensors configured as wake up sensors)
Channel 5: gyro rotation vector
The SHTP control channel provides information about the applications built into the BNO080 firmware image. The
BNO080 uses advertisements to publish the channel maps and the names of the built-in applications.
The executable channel allows the host to reset the BNO080 and provide details of its operating mode. Figure
1-27 provides details.
: