Gyroscope (Motion) Sensors



In an earlier post, we covered the basics of how an accelerometer works and what kind of data it reports. While accelerometers are great for measure linear acceleration, they cannot be used to measure angular motion because they cannot distinguish between the acceleration from gravity and angular rotation. There are many different kinds of gyroscopes, however in the context of the MetaWear, we will only be exploring small, vibration gyros.

How They Work

A vibration gyroscope combines the Coriolis effect with vibrating objects to produce varying electrical signals. For example, consider two bars connected to a stator, oscillating left and right in opposite directions, with piezoresistive materials mounting the stator. If the system is then spun, the Coriolis effect will cause the sensing arms, composed of piezoresistive material, to bend which alters the electrical potential of the arms. Keep in mind that this is simply one way to design a gyro and that other companies may approach this problem differently.

Epson's double-T structure

Epson’s double-T structure


In order for the Coriolis effect to work, the mass must be constantly moving thus the internal circuitry must also supply power to keep the structure vibrating. As a result of this requirement, gyros consume more power than an acceleromter.

MetaWear Gyroscope

The MetaWear platform comes equipped with a Bosch® BMI160 IMU, operation specifications below. This IMU is only available on MetaWear RG, RPro, C, and CPro boards.

Specification Bosch® BMI160
Temperature Range -40C – 85C
Noise Density @10Hz 0.007°/s/√Hz
Supply Voltage (VDD) 1.71V – 3.6V
Measurement Range ±125°/s, ±250°/s, ±500°/s, ±1000°/s, 2000°/s
Digital Resolution 16 bit
Data Rates 25Hz – 3200Hz
Active Current Consumption 850µA – 900µA (gyro consumption only)
Axis 6

The MetaWear libraries come fully equipped to help you configure and process data from the on board accelerometer. Documentation on how to use the gyrofunctions is on the MbientLab site for both Android and iOS.

Sensor Data

The BMI160 gyro reports angular velocity in degrees per second (°/s) and the XYZ values represent the speed at which the sensor spins around its respective axis. To help visualize what a graph of angular velocity vs. time looks like, imagine a MetaWear laying flat on a table. At rest, the sensor will report near 0 values. I say near 0 because gyroscopes do have drift and as a result, are only reliable in the short term.

Now, spin the board clockwise. The z-axis values drop to a low negative value for the duration of the spin, returning to 0 when the board stops. Spinning the board counter-clockwise results in the z-axis values rising to a high positive value.

Angular Velocity vs. Time

Angular Velocity vs. Time


The vibration gyro has a wide variety of uses ranging from gaming to image stability on a digital cameras. RC helicopters can utilize the rotation data to detect and account for unwanted spinning. Gyros can turn your smartphone into a controller using the rotations to control a driving app or even function as a pointing device.

As mentioned earlier, gyro data contains drift and is only reliable for short term measurements. As a result, gyro data is typically combined with accelerometer data enabling you to handle more advanced problems such as stabilizing a quadrocopter or tracking your phone’s orientation. This technique of combining data from multiple sensors is called “Sensor Fusion”. For more information about this topic, check out this blog post by Yu.

Additional Resources

STMicroelectroics has a presentation about MEMS gyroscopes on their YouTube channel. While the video is specific to their gyroscope offerings, it does provide a full overview of the sensor covering the math, layout, functional block diagram, and signal processing needed to produce the data. It also details an alternative way to convert angular velocity to electrical signals using movable capacitive plates instead of piezoresistive materials.