Ultra-small, wearable BNO055 9-axis motion sensor with hardware sensor fusionDesigned by Pesky Products, Ships from United States of America
Back in stock! Boards are now on 1.0-mm thick pcbs for even more wearability! What is it? Bosch’s new BNO-055 9-axis motion sensor in a super-small (10 mm x 10 mm), wearable size. The BNO-055 has a...Read More…
Back in stock!
Boards are now on 1.0-mm thick pcbs for even more wearability!
Bosch’s new BNO-055 9-axis motion sensor in a super-small (10 mm x 10 mm), wearable size. The BNO-055 has an embedded Cortex M0 ARM processor as well as accel/gyro and mag for a purely hardware absolute orientation solution. This small-form-factor board is hardwired for I2C communication with 4K7 pullup resistors on the board. The ADO address pin is broken out which makes it possible to address multiples of these boards even if they all have only one of two I2C addresses by simply toggling ADO = HIGH on the board you want to sample data from. Or you could just use an I2C multiplexer. The BNO055 interrupt is also broken out so the microcontroller can be alerted when a threshold event has occurred and data needs to be recorded or some other action is warranted. These nano boards are similar to the MPU9250 nano boards but the embedded sensor fusion engine in the BNO055 allows quaternions to be streamed for absolute orientation tracking of body parts and extremities.
The new trend in motion sensors is to embed powerful processors with the sensor to allow direct calculation and register read of fused quaternion and AHRS output, obviating the need for users to program their own sensor fusion or to take up valuable microprocessor memory or processing power in crunching the numbers for sensor fusion. The first of these inexpensive embedded sensor fusion motion sensors was the 6-axis MPU6050 by Invensense, and the latest Invensense 9-axis motion sensor the MPU9250 maintains the technology with the Digital Motion Processor or DMP providing 6-axis sensor fusion. The drawback of Invensense's approach is the microprocessor must upload a large (4K) binary file of firmware for the DMP, and the DMP is still limited to 6-axis sensor fusion despite being embedded in a 9-axis motion sensor. The next class of device includes the MAX21100, which also embeds a hardware sensor fusion engine with a 6-axis gyro/accelerometer but can perform true 9-axis sensor fusion by importing compass data from a slave magnetometer. This device requires no binary firmware and the quaternion or heading results of the sensor fusion are read from the MAX21100 registers like any other data. Also in this class is the EM7180, which is a sensor fusion hub that takes data from external sensors and performs sensor fusion in hardware for readout by a master microcontroller. The latest class of integrated motion sensor is embodied in the BNO-055. In this device is Bosch's latest 9-axis motion sensor (the BMX-055) coupled with a Cortex M0 ARM processor to perform the 9-axis sensor fusion. No external magnetometer and no microcontroller processing is required; again the quaternions, linear acceleration, gravity vector, and heading information are directly readable from the BNO-055 registers. This is a compact and powerful motion sensing solution that promises to make absolute orientation and sophisticated motion control available to anyone who can run a blink program on an Arduino.
The BNO-055 has a lot of functions and communication paths but I limited the latter to I2C here to make the board simple and as small as possible. Reset and BOOT are not broken out on this nano board but both could be enabled by grounding the bottom pad of the respective 4K7 pullup resistor. Consult the schematic for location of these resistors. The LSB of the I2C address can be changed via the ADO pin. Access to most of the other functionality including threshold detection, various low-power and sensor fusion modes is preserved with this nano board with the breakout of the multifunction interrupt.
There's not as much versatility packed into this small (0.4 in x 0.4 in) nano board as its bigger brother, but this little gem will allow almost anybody the benefit of sophisticated, wearable 9-axis sensor fusion with ease.
Order the BNO-055 nano pc boards from OSH Park and make your own, or buy a fully assembled and tested breakout board from me and see what the latest wearable motion sensor technology can do for you!
There is a working Arduino (Teensyduino) sketch to allow most of the features of this BNO-055 sensor to be used and is available at GitHub. The sketch parametrizes the sensor registers, initializes the device, calibrates the accelerometer, gyro, and magnetometer, sets up both the hardware and software sensor fusion, and outputs scaled sensor data as well as yaw, pitch, and roll, and quaternions, etc. My initial testing shows the hardware sensor fusion works well and is very stable. The hardware sensor fusion is updated at a fixed 100 Hz. The software sensor fusion responds at an update rate between 300 and 400 Hz when the Teensy 3.1 processor speed is set to 48 MHz depending on the amount of data output requested. The hardware sensor fusion results compare well with the open-source sensor fusion results except, as in the case of the MAX21100, there seems to be a relative rotation between the hardware yaw and the software yaw. This has to do with the different reference frames used in the two algorithms but I haven't yet figured out how to properly align them to agree.
|Shipping Rate||First item||Additional items|
United States Postal Service: Standard Ground Rate with tracking
United States Postal Service: Priority Mail with tracking
Priority mail for faster delivery only available within the US.
Kim | May 12, 2018
Erich | June 16, 2017
Tanguy | Dec. 16, 2016
David | Nov. 16, 2016
We recognize our top users by making them a Tindarian. Tindarians have access to secret & unreleased features.
We look for the most active & best members of the Tindie community, and invite them to join. There isn't a selection process or form to fill out. The only way to become a Tindarian is by being a nice & active member of the Tindie community!