Example Code for Arduino-Read All Sensor Data
Last revision 2026/01/12
read data of accelerometer, gyroscope and geomagnetic sensor of BMX160 via I2C interface, and print the readings through serial port.
Hardware Preparation
- Hardware
- DFRduino UNO R3 (or similar) x 1
- BMX160 9-axis Sensor Module x1
- Jumper wires
Software Preparation
- Software
- Arduino IDE
- Download and install the BMX160 Library. (About how to install the library?)
Wiring Diagram

Other Preparation Work
Sample Code
/*!
* @file readAllData.ino
* @brief Through the example, you can get the sensor data by using getSensorData:
* @n get all data of magnetometer, gyroscope, accelerometer.
* @n With the rotation of the sensor, data changes are visible.
* @copyright Copyright (c) 2010 DFRobot Co.Ltd (http://www.dfrobot.com)
* @license The MIT License (MIT)
* @author [luoyufeng] ([email protected])
* @maintainer [Fary]([email protected])
* @version V1.0
* @date 2021-10-20
* @url https://github.com/DFRobot/DFRobot_BMX160
*/
#include <DFRobot_BMX160.h>
DFRobot_BMX160 bmx160;
void setup(){
Serial.begin(115200);
delay(100);
//init the hardware bmx160
if (bmx160.begin() != true){
Serial.println("init false");
while(1);
}
//bmx160.setLowPower(); //disable the gyroscope and accelerometer sensor
//bmx160.wakeUp(); //enable the gyroscope and accelerometer sensor
//bmx160.softReset(); //reset the sensor
/**
* enum{eGyroRange_2000DPS,
* eGyroRange_1000DPS,
* eGyroRange_500DPS,
* eGyroRange_250DPS,
* eGyroRange_125DPS
* }eGyroRange_t;
**/
//bmx160.setGyroRange(eGyroRange_500DPS);
/**
* enum{eAccelRange_2G,
* eAccelRange_4G,
* eAccelRange_8G,
* eAccelRange_16G
* }eAccelRange_t;
*/
//bmx160.setAccelRange(eAccelRange_4G);
delay(100);
}
void loop(){
sBmx160SensorData_t Omagn, Ogyro, Oaccel;
/* Get a new sensor event */
bmx160.getAllData(&Omagn, &Ogyro, &Oaccel);
/* Display the magnetometer results (magn is magnetometer in uTesla) */
Serial.print("M ");
Serial.print("X: "); Serial.print(Omagn.x); Serial.print(" ");
Serial.print("Y: "); Serial.print(Omagn.y); Serial.print(" ");
Serial.print("Z: "); Serial.print(Omagn.z); Serial.print(" ");
Serial.println("uT");
/* Display the gyroscope results (gyroscope data is in g) */
Serial.print("G ");
Serial.print("X: "); Serial.print(Ogyro.x); Serial.print(" ");
Serial.print("Y: "); Serial.print(Ogyro.y); Serial.print(" ");
Serial.print("Z: "); Serial.print(Ogyro.z); Serial.print(" ");
Serial.println("g");
/* Display the accelerometer results (accelerometer data is in m/s^2) */
Serial.print("A ");
Serial.print("X: "); Serial.print(Oaccel.x ); Serial.print(" ");
Serial.print("Y: "); Serial.print(Oaccel.y ); Serial.print(" ");
Serial.print("Z: "); Serial.print(Oaccel.z ); Serial.print(" ");
Serial.println("m/s^2");
Serial.println("");
delay(500);
}
Result

Was this article helpful?
