Skip to content

QMI8658 Arduino Library v1.0.0

Choose a tag to compare

@lahavg lahavg released this 28 May 22:15
· 3 commits to main since this release
60bc24b

πŸš€ QMI8658 Arduino Library v1.0.0

Initial release of the comprehensive QMI8658 6-axis IMU sensor library for Arduino!

✨ What's New

  • Complete QMI8658 support - Full implementation for 6-axis IMU sensor
  • Flexible unit system - Choose between mg/m/sΒ² for acceleration, dps/rad/s for gyroscope
  • Precision control - Configurable decimal places (2, 4, 6 digits)
  • Multi-platform support - ESP32, Arduino Uno/Nano, RP2040/Pico, and more
  • Wake-on-motion - Low-power applications support
  • Easy-to-use API - Simple initialization and data reading

πŸ“‹ Features

  • βœ… 3-axis accelerometer readings
  • βœ… 3-axis gyroscope readings
  • βœ… Temperature sensor support
  • βœ… Configurable measurement ranges and output data rates
  • βœ… Multiple unit options (mg/m/sΒ² for accel, dps/rad/s for gyro)
  • βœ… I2C communication with custom pin configuration
  • βœ… Compatible with ESP32, Arduino, RP2040, and other microcontrollers

πŸ“š What's Included

  • QMI8658 library - Complete source code in src/ folder
  • Three examples:
    • QMI8658_Basic - Simple usage with flexible units
    • QMI8658_Advanced - Calibration, filtering, orientation
    • QMI8658_WakeOnMotion - Low-power wake-on-motion
  • Complete documentation - Detailed README with API reference
  • Arduino Library Manager ready - Install via Library Manager

πŸ”§ Installation

Method 1: Arduino Library Manager (Recommended)

  1. Open Arduino IDE
  2. Go to Tools > Manage Libraries
  3. Search for "QMI8658"
  4. Click "Install"

Method 2: Manual Installation

  1. Download the ZIP file from this release
  2. In Arduino IDE: Sketch > Include Library > Add .ZIP Library
  3. Select the downloaded ZIP file

🎯 Quick Start

#include <QMI8658.h>

QMI8658 imu;

void setup() {
    Serial.begin(115200);
    
    if (!imu.begin()) {
        Serial.println("Failed to initialize QMI8658!");
        while(1);
    }
    
    // Configure units and precision
    imu.setAccelUnit_mg(true);      // Use mg units
    imu.setGyroUnit_dps(true);      // Use dps units  
    imu.setDisplayPrecision(6);     // 6 decimal places
    
    Serial.println("QMI8658 ready!");
}

void loop() {
    QMI8658_Data data;
    if (imu.readSensorData(data)) {
        imu.printSensorData(data);  // Print formatted data
    }
    delay(100);
}

πŸ› Bug Reports & Support

If you encounter any issues:


Happy coding with QMI8658! πŸŽ‰