Skip to content
@multi-sensor-navigation-system

Multi-Sensor Navigation System

A deterministic multi-sensor data acquisition firmware with a pipeline for serial logging, trimming & robust calibration and downstream EKF & AVAR analysis

Multi-Sensor Navigation System

PlatformIO Framework Chip Python Pandas NumPy SciPy License

⚠️ The repositories of this project have been transferred to this organization from @ShivtejG236.


What this is

Repo 1 • 500 Hz deterministic multi-sensor data acquisition firmware for real-time navigation systems that fuses data streams from IMU, magnetometer, barometer and GPS into a timestamped CSV over UART at 921600 baud.

Repo 2 • Deterministic serial logging of the sensor data, automated session trimming, robust sensor calibration pipeline and graphs & timing reports generation (for validation purposes only).

Repo 3 • Downstream processing of the calibrated CSVs using Extended Kalman Filters & Allan variance for map visualization & diagnostic reports. Focuses on sensor error modelling, state estimation accuracy and filter convergence.

Repo 4 • GPS dropout modelling, sensor fault injection, latency benchmarking, downsampling analysis and (later) TinyML quantization experiment & motion simulation in near-real-time using Nvidia's PhysicsNeMo model for AI surrogate generation.


System Architecture

Repo 1 Repo 2


task_sensors = producer
task_serial = consumer


Build Details

Hardware Setup
ComponentInterfaceAddress
IMUI²C0x68
MagnetometerI²C0x0D
BarometerI²C0x76
GPSUART29600 baud
Host loggerUART0921600 baud
Sample Rates
SensorRatePeriod
MPU-6050500 Hz2 000 µs
QMC5883L75 Hz13 333 µs
BMP28025 Hz40 000 µs
NEO-6M1 Hz1 000 000 µs
All three I²C devices share the same bus at 400 kHz fast-mode
Lower-rate sensors are polled sub-sampled within the 500 Hz IMU loop — no separate timers, no RTOS overhead

Repositories Structure

Repo 1 Repo 2 Repo 3 Repo 4

firmware/
├── src/
│   └── main.cpp
├── include/
│   ├── config.h
│   └── sensor_row.h
├── platformio.ini
├── sdkconfig.defaults
└── docs/
    └── setup.png
            

data-pipeline/
├── data/
├── outputs/
│   ├── plots/
│   └── reports/
├── pipeline/
│   ├── logger.py
│   ├── session_trimmer.py
│   ├── diagnostics.py
│   ├── calibrator.py
│   └── plotter.py
├── run_pipeline.py
└── README.md
            

In the Making...

In the Making...


Dependencies

Firmware Data Pipeline Analysis Modelling
Library Version Library Version Will be updated soon... Will be updated soon...
Adafruit MPU6050 2.2.6 pyserial 3.5
QMC5883LCompass 1.0.2 pandas 2.0
Adafruit BMP280 2.6.8 numpy 1.24
TinyGPSPlus 1.0.3 matplotlib 3.7
Adafruit Unified Sensor 1.1.14 scipy 1.10

Setup

Firmware

# Build
                pio run
                            
# Flash + open monitor
                pio run --target upload && pio device monitor --baud 921600
                			
Pipeline

# Environment
                python -m venv .nav
                source .nav/bin/activate
                pip install -r requirements.txt
                			
# Port
                /dev/cu.usbserial-XXXX on macOS (usbserial-0001)
                /dev/ttyUSBX on Linux (ttyUSB0)
                COMX on Windows (usually COM3 with no other UART devices connected)
                			
# Execution
                python run_pipeline.py	# Interactive mode
                python run_pipeline.py --action x --session-dir data/session_XYZ --calib-mode y	# Automated mode
                			

Project Ecosystem

RepoStatus
firmware✅ Active
data-pipeline✅ Active
analysis🚧 In progress
edgehard🔜 Planned

Popular repositories Loading

  1. firmware firmware Public

    500 Hz deterministic multi-sensor data acquisition firmware for real-time embedded navigation systems

    C++

  2. data-pipeline data-pipeline Public

    Deterministic serial logging from UART, automated session trimming and robust sensor calibration pipeline.

    Python

  3. .github .github Public

Repositories

Showing 3 of 3 repositories
  • .github Public
    multi-sensor-navigation-system/.github's past year of commit activity
    0 0 0 0 Updated Jun 11, 2026
  • data-pipeline Public

    Deterministic serial logging from UART, automated session trimming and robust sensor calibration pipeline.

    multi-sensor-navigation-system/data-pipeline's past year of commit activity
    Python 0 0 0 0 Updated May 2, 2026
  • firmware Public

    500 Hz deterministic multi-sensor data acquisition firmware for real-time embedded navigation systems

    multi-sensor-navigation-system/firmware's past year of commit activity
    C++ 0 0 0 0 Updated May 2, 2026

Top languages

Loading…

Most used topics

Loading…