I am using an Arduino Nano with BNO055 Adafruit library.

The I2C speed is 400 kHz.

The Adafruit BNO055 Absolute Orientation Sensor mentions Angular Velocity Vector (100 Hz).

What does this 100 Hz mean?

Is it outputting angular velocity 16bit complete packets at 100 Hz speed? (Means 100 × 16-bit packets per second?)

Or is it the bit rate of outputting angular velocity 16-bit packet? (16b × 100/s = 1600 bps?)

How many Angular Velocity Vector frames actually I can get for 400 kHz I2C per second?


2 Answers 2


it looks like ther's an update rate of 100Hz (so you can get 100 results for that measure each second)

  • \$\begingroup\$ you mean 100 velocity updates per second, not anything to deal with bit rates right? \$\endgroup\$
    – oppo
    Commented Apr 2, 2020 at 7:03
  • \$\begingroup\$ yes. 100 updates power second, \$\endgroup\$ Commented Apr 2, 2020 at 7:06
  • \$\begingroup\$ The UART runs at 115,200 baud or it does I2C at upto 400,000 baud \$\endgroup\$ Commented Apr 2, 2020 at 7:10

You can read 100 16-bit packets from the device per second. The update rate (100Hz) of the IC does not change with the bus speed.

The I2C speed of 400kHz only specify how fast the 16-bits can be transfered from the sensor to the host of the bus, not how fast the 16-bits get updated. The update rate is fixed at 100Hz giving only 100 new values per second.

The bus speed has to be at least 16 times higher than the update rate, to read out 100Hz, because 100 x 16bits create 1600 bits of data + the commands needed for read-out.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.