Skip to content
Vladyslav Vytrykush edited this page Aug 30, 2026 · 1 revision

Welcome to the AbsoluteLocation wiki!

Here is the complete GitHub Wiki documentation written entirely in English. You can copy and paste this Markdown directly into your repository's Wiki section.

πŸ“– Home

Welcome to the official documentation for the AbsoluteLocation project!

AbsoluteLocation is a real-time full-body and motion tracking system built using ESP32-C3 microcontrollers and BNO055 Inertial Measurement Units (IMUs). It captures, processes, and streams high-precision spatial orientation telemetry for 3D application visualization and tracking workflows.

πŸ›  Features

  • Real-Time Telemetry Processing: High-frequency orientation tracking using quaternions and Euler angles from onboard BNO055 sensor fusion.

  • Dual Communication Modes: Low-latency wireless streaming via UDP/WebSockets over Wi-Fi and direct wired streaming via Serial/UART.

  • Modular Multi-Node Architecture: Scalable node setup allowing multiple tracking points across limbs and body segments.

  • Optimized Firmware: Built in C++ using PlatformIO for minimal system overhead, fast boot times, and reliable data delivery.

πŸ— System Architecture

The architecture consists of three core components:

  1. Hardware Nodes:

    • ESP32-C3 primary MCU handling data polling and network transmission.

    • BNO055 9-DOF orientation sensor running hardware-level sensor fusion.

    • TCA9548A I2C Multiplexer (optional) for running multiple sensor chains on a single controller bus.

  2. Firmware Layer:

    • Sensor initialization, register polling, and automated calibration handling.

    • Compact serialization of quaternion and acceleration telemetry packets.

  3. Host Application / Receiver:

    • UDP server or Serial listener decoding packet payloads.

    • 3D spatial positioning input for game engines (Unity/Unreal) or VR integration runtimes (OpenVR/VRChat drivers).

πŸš€ Quick Start Guide

Hardware Requirements

  • ESP32-C3 board (e.g., ESP32-C3 SuperMini)

  • BNO055 IMU module

  • Prototyping wire (AWG 30 recommended) or perfboard

  • Power supply (Li-Po battery circuit or USB-C connector)

Software Setup

  1. Install Visual Studio Code.

  2. Install the PlatformIO IDE extension.

  3. Clone the target repository:

    Bash
    git clone https://github.com/Perry1231/AbsoluteLocation.git
    

Building & Flashing

  1. Open the cloned directory in VS Code. PlatformIO will automatically detect the configuration.

  2. Configure your network credentials in the project configuration header if streaming over Wi-Fi.

  3. Connect your ESP32-C3 via USB and run Build & Upload from the PlatformIO status bar.

πŸ”Œ Wiring Diagram (I2C)

ESP32-C3 Pin | BNO055 Pin -- | -- 3V3 | VIN / 3V3 GND | GND GPIO 8 (SDA) | SDA GPIO 9 (SCL) | SCL