This blog post is about my first impressions of the GY-80, a 10 Degree-Of-Freedom (DOF), 9-Axis Accelerometer, Magnetometer, Gyroscope and Barometer Module, which I purchased and have just received two of. This module is typically used in quadcopters, robotics and similar products where balance and stability are of interest. Indeed, I bought the GY-80 for my 17 DOF Robot that some of you have been reading about in my FPGAs and Robotics blog category.
When I see the best of myself in others, it makes a good first impression - Bauvard, The Prince Of Plungers
The first impression one gets of this module is that it is incredibly small, measuring just 25.8mm by 16.8mm. This small size is more impressive considering that the module consists of a 3-axis accelerometer, 3-axis magnetometer, 3-axis gyroscope and a barometer. There is no doubt that this relatively small size is down to the advances made in mobile technology more than anything else, as the mobile industry continues to be at the forefront of pushing the bounds of modern technology.
Fortunately, mobile technology has been successfully transferred to other industries. In terms of hobbyist robotics technology this means that we are able to acquire the GY-80 from between £6.37, when purchased from suppliers directly in China, to about £16.65 when, probably, VAT and custom duties have been added. I managed to buy mine at the cheaper end of the price range quoted above.
This widely varying price difference might seem puzzling to some at first. However, in all fairness a large part of the discrepancy, in price, apart from local duties might depend on whether the 1 x 10 way header is solder onto the board or not. In my case it wasn't, which I wasn't too concerned about, as it is something I am more than comfortable doing myself. For those of you that are not comfortable, but want to purchase the cheaper un-soldered version I would suggest having a look at the quite useful YouTube tutorials on the subject of hand-soldering.
Figure: GY-80 Module Back and front side by side.
The components that make up the module are listed, in the Table, below. The table is followed by a brief description of each device taken from the respective datasheets.
|L3G4200D||Gyroscope||0x69||MEMS Motion Sensor: Ultra-Stable Three-Axis Digital Output Gyroscope||St Microelectronics|
|ADXL345||Accelerometer||0x53||3-Axis Digital Accelerometer||Analog Devices|
|HMC5883L||Compass||0x1E||3-Axis Digital Compass (or Magnetometer) IC||Honeywell|
|BMP085||Barometer||0x77||Digital Pressure Sensor||BOSCH|
The introductory blurb, provided in each device's datasheet, is repeated below:
The L3G4200D is a low-power three-axis angular rate sensor able to provide unprecedented stability of zero rate level and sensitivity over temperature and time. It includes a sensing element and an IC interface capable of providing the measured angular rate to the external world through a digital interface (I2C/SPI). - Source: St Microelectronics, L3G4200D MEMS Motion Sensor: Ultra-Stable Three-Axis Digital Output Gyroscope, Datasheet Rev. 3, December 2010.
The ADXL345 is a small, thin, ultra low power, 3-axis accelerometer with high resolution (13-bit) measurement at up to ±16 g. Digital output data is formatted as 16-bit twos complement and is accessible through either a SPI (3- or 4-wire) or I2C digital interface. The ADXL345 is well suited for mobile device applications. It measures the static acceleration of gravity in tilt-sensing applications, as well as dynamic acceleration resulting from motion or shock. Its high resolution (3.9 mg/LSB) enables measurement of inclination changes of less than 1.0°. - Source: Analog Devices, ADXL345 Digital Accelerometer, Datasheet Rev D, 2013.
The Honeywell HMC5883 is a surface mount multi-chip module designed for low field magnetic sensing with a digital interface for applications such as low cost compassing and magnetometry. The HMC5883 includes our state of the art, high-resolution HMC118X series magneto-resistive sensors plus Honeywell developed ASIC containing amplification, automatic degaussing strap drivers, offset cancellation, 12-bit ADC that enables 1° to 2° compass heading accuracy. The I2C serial bus allows for easy interface. Source: Honeywell, HMC5883 3-Axis Digital Compass IC, Datasheet, Rev A, 2010.
The BMP085 ... is a new generation of high precision digital pressure sensors for consumer applications ... The ultra-low power, low voltage electronics of the BMP085 is optimised for use in mobile phones ... With a low altitude noise of merely 0.25m at fast conversion time, the BMP085 offers superior performance. Pressure and temperature data is accessed via its IIC bus. Source: BOSCH, BMP085 Digital Pressure Sensor, Datasheet, Rev 1.2 2009.
The schematic for this board is probably shown in the image below. The reason why I have said probably is because the module I bought did not have an accompanying datasheet. However, I found this schematic of a GY-80 board on the Internet and generally, from my experience, it is likely to be the correct one.
My first impressions of this module is that it is very nice indeed. The functionality that is cramped into this small board is absolutely amazing. If one was doing research into robotics a few years ago this device would have cost a small fortune. The low cost of this device has meant that research into realistic biped robot movement is no longer available to a select few.
However, all is not well with this device from a Field Programmable Gate Array (FPGA) user's perspective. This is because all four devices are accessed over a single IIC bus, which sounds criminal to FPGA aficionados when considering the multiple of I/O pins, which are typically available on even the most basic of FPGA development boards and kits. This module to a FPGA user is like the proverbial placing a Ferrari engine in a mini.
This situation can be remedied and the GY-80 module can be improved upon if the board is redesigned, such that all the individual communications ports, of the components, are brought out to a header. This is exactly what I intend to do, that is, design a new board containing these components that are individually and simultaneously addressable.
It is my intention to unsolder the components from this module and design a new board where each component can be accessed individually, such that they can be accessed concurrently at their maximum Output Data Rate (ODR). This new board will be placed at the global reference frame of the robot. How this is done and when the design files will become available will be the subject of a future blog post.