Introduction
This module integrates high-precision gyroscopes, accelerometer, microprocessor of high-performance and advanced dynamics solves and Kalman filter algorithms that aim to quickly solve the current real-time movement of the module attitude. The use of advanced digital filtering technology can effectively reduce measurement noise and improve accuracy.
The module comes with built-in gesture solver that can get accurate attitude in dynamic environment combining with dynamic Kalman filter algorithm. Its static measurement accuracy is up to 0.05 degree(dynamic 0.1) with high stability, which could bring better performance even than some professional Inclinometers!
There is a voltage stabilizer circuit inside the module. The product should be operated at 3.3-5V and its pin level is compatible with 3.3/5V embedded systems. It employs TTL interface for connection.
Specification
- Voltage: 3.3V~5V
- Current: <40mA
- Size: 51.33610mm
- Measuring Dimension: acceleration: 3D; angular velocity: 3D; attitude angle: 3D
- Range: acceleration: ±2/4/8/16g(optional); angular velocity: ±250/500/1000/2000 °/s(Optional), attitude angle: ±180°
Tutorial
Requirements
- Hardware
- DFRduino UNO R3 (or similar) x 1
- Serial 6-Axis Accelerometer x1
- Software
- Arduino IDE
- Download and install the DFRobot_WT61PC Library (About how to install the library?)
Connection

WT61PC | Arduino UNO |
---|---|
VCC | 5V/3V |
RXD | D11 |
TXD | D10 |
GND | GND |
Sample Code
/*!
* @file getData.ino
* @brief Set the frequency of data output by the sensor, read the acceleration,
* @n angular velocity, and angle of X, Y, and Z axes.
* @n Experimental phenomenon: when the sensor starts, it outputs data at the set
* @n frequency and the data will be displayed on serial monitor.
* @copyright Copyright (c) 2010 DFRobot Co.Ltd (http://www.dfrobot.com)
* @license The MIT License (MIT)
* @author [huyujie](yujie.hu@dfrobot.com)
* @version V1.0
* @date 2023-07-12
* @url https://github.com/DFRobot/DFRobot_WT61PC
*/
#include <DFRobot_WT61PC.h>
#if (defined(ARDUINO_AVR_UNO) || defined(ESP8266)) // Using a soft serial port
#include <SoftwareSerial.h>
SoftwareSerial softSerial(/*rx =*/10, /*tx =*/11);
#define FPSerial softSerial
#else
#define FPSerial Serial1
#endif
DFRobot_WT61PC sensor(&FPSerial);
void setup()
{
//Use Serial as debugging serial port
Serial.begin(115200);
#if (defined ESP32)
FPSerial.begin(9600, SERIAL_8N1, /*rx =*/D3, /*tx =*/D2);
#else
FPSerial.begin(9600);
#endif
void loop()
{
if (sensor.available()) {
Serial.print("Acc\t"); Serial.print(sensor.Acc.X); Serial.print("\t");
Serial.print(sensor.Acc.Y); Serial.print("\t"); Serial.println(sensor.Acc.Z); //acceleration information of X,Y,Z
Serial.print("Gyro\t"); Serial.print(sensor.Gyro.X); Serial.print("\t");
Serial.print(sensor.Gyro.Y); Serial.print("\t"); Serial.println(sensor.Gyro.Z); //angular velocity information of X,Y,Z
Serial.print("Angle\t"); Serial.print(sensor.Angle.X); Serial.print("\t");
Serial.print(sensor.Angle.Y); Serial.print("\t"); Serial.println(sensor.Angle.Z); //angle information of X, Y, Z
Serial.println();
}
}
Expected Results

FAQ
For any questions, advice or cool ideas to share, please visit the DFRobot Forum.