GY-87 10DOF MPU6050 HMC5883L BMP180 Low-field Magnetic Sensor Module Milli-gauss to 8 Gauss and 1° to 2° Compass Heading Accuracy Register Access This section describes the process of reading from and writing to this device. The devices uses an address pointer to indicate which register location is to be read from or written to. These pointer locations are sent from the master to this slave device and succeed the 7-bit address plus 1 bit read/write identifier. To minimize the communication between the master and this device, the address pointer updated automatically without master intervention. This automatic address pointer update has two additional features.
First when address 12 or higher is accessed the pointer updates to address 00 and secondly when address 08 is reached, the pointer rolls back to address 03. Logically, the address pointer operation functions as shown below. If (address pointer = 08) then address pointer = 03 Else if (address pointer >= 12) then address pointer = 0 Else (address pointer) = (address pointer) + 1 The address pointer value itself cannot be read via the I2C bus. Any attempt to read an invalid address location returns 0s, and any write to an invalid address location or an undefined bit within a valid address location is ignored by this device.
To move the address pointer to a random register location, first issue a write to that register location with no data byte following the commend. For example, to move the address pointer to register 10, send 0x3C 0x0A