AxisOrange

Multi-purpose View the repo

AxisOrange is firmware for M5Stack devices that reads 6‑DOF sensor data (accelerometer and gyroscope), computes orientation quaternions, and transmits the raw sensor values, quaternion, and button events to a PC via Bluetooth SPP, with an optional web‑based serial viewer.

auto-summary

50 stars · 10 forks

Maintainer
naninunenoy
Capabilities
ble
Chip families
esp32

Runs on these boards

Unverified

  • Core2UnverifiedM5Stack
    Flash Core2guided

    Unverified esp-atlas asserts this board↔firmware link at the shown trust tier — it does not guarantee your specific unit or the current firmware version. Flashing can erase keys/config and can brick the device. At your own risk.

  • StickCUnverifiedM5Stack
    Flash StickCguided

    Unverified esp-atlas asserts this board↔firmware link at the shown trust tier — it does not guarantee your specific unit or the current firmware version. Flashing can erase keys/config and can brick the device. At your own risk.

README

AxisOrange

Overview

M5Stack series firmware to send 6DOF sensor(SH200Q or MPU6886) data and quaternion by Bluetooth serial port protocol(SPP).

This is demo. M5StickC calucutates and sends quaternion to PC by SPP. PC receives quaternion via serial port.

Usage

AxisOrange supports M5Unified devices. like

  • M5Stack Gray (without MPU9250 model)
  • M5Stack Core2
  • M5StickC
  • M5StickCPlus

Simple viewer

This is AxisOrange data viewer by web serial port.

  1. Build and write AxisOrange.
  2. Paring AxisOrange with your PC.
  3. Open HtmlViewer/index.html. Reccomend: Google Chrome.
  4. Push [list serial device] and select AxisOrange Port. May be named ESP32SPP.
  5. AxisOrange can calculate and save gyro zero point error. push [gyro-offset install]
  6. You can copy raw output of AxisOrange as csv text.

Features

Sensor Data

AxisOrange sends raw value of 6DOF sensor.

  • Acc(xyz) [G]
  • Gyro(xyz) [deg/s]

Quaternion

AxisOrange calucutates quaternion by acc/gyro and sends it.

  • Quaternion(xyzw)

Button

AxisOrange sends button A/B(/C) push/release event trigger.

  • Button A Push/Release event
  • Button B Push/Release event
  • Button C Push/Release event (if 3rd button is installed)

Install

This project use PlatformIO.

Library

  • M5Unified and M5GFX
    • https://github.com/m5stack/M5Unified
    • https://github.com/m5stack/M5GFX
    • MIT
  • BluetoothSerial
    • https://github.com/espressif/arduino-esp32/tree/master/libraries/BluetoothSerial
    • http://www.apache.org/licenses/LICENSE-2.0
  • Mahony filter
    • https://x-io.co.uk/open-source-imu-and-ahrs-algorithms/

License

MIT

Author

@naninunenoy

Read the full README on GitHub

source github.com/naninunenoy/AxisOrange