Home About Projects Varsha Contact
Aeronautical Engineering Prototype Flyby
NS // FLAGSHIP SENSING NODE

VARSHA

High-rate spatial telemetry, multi-sensor synchronization, and edge intelligence engineered for GPS-denied environments.

ACTIVE DEVELOPMENT REVISED HARDWARE v1.2 200 Hz TELEMETRY

What is Varsha?

Varsha addresses the engineering bottleneck of localized state estimation, multi-spectral perception, and deterministic telemetry logging in GPS-denied robotics.

By unifying a 6-DoF inertial measurement unit, Time-of-Flight ranging, and high-speed bus interfaces onto a dedicated dual-core embedded architecture, the platform enables sub-millisecond attitude determination and packet transmission under strict 3.5W system power limits.

Development is heavily grounded in bench verification, subjecting sensor rails and filtering algorithms to rigorous physical testing before field deployment.

Status ACTIVE DEVELOPMENT
Architecture ESP32-S3 Dual-Core + ARM Cortex-M4
System Bus CAN Bus 2.0B / ESP-NOW / SPI
Firmware Stack FreeRTOS Kernel / C++17
Project Start Q3 2025
Current Phase Phase 2: Sensor Fusion & Bench Testing

Quantitative Specifications

Measured technical parameters, operating tolerances, and interface protocols for the Varsha telemetry node.

OnSight Revision 1.2 — Technical Data Sheet
DOC ID: NS-DS-VARSHA-V12 // RELEASED FOR BENCH TESTING
Subsystem / Parameter Specification / Value Engineering Notes & Tolerances
Processor / Main MCU ESP32-S3 (Xtensa® Dual-Core 32-bit LX7) 240 MHz clock speed; integrated vector instructions accelerated for matrix Kalman filter calculation.
Sensor Co-Processor ARM Cortex-M4 @ 168 MHz Dedicated high-frequency interrupt handling for I2C and SPI peripheral buses.
Memory Architecture 512 KB SRAM + 8 MB Octal PSRAM + 16 MB Flash Zero-copy DMA circular ring buffer supporting continuous 250 KB/s telemetry data logging.
Power Consumption Peak: 3.2W @ 5.0V | Idle: 180mW Dual-rail buck-boost regulator (3.3V logic / 5.0V sensor bus) with 92% power conversion efficiency.
Communication Protocols CAN Bus 2.0B (1 Mbps) + ESP-NOW (2.4 GHz RF) ISO 11898-2 differential signaling with hardware CRC verification and sub-5ms packet ACK latency.
Peripheral Interfaces SPI (10 MHz Mode 0) + 2x I2C Fast-Mode (400 kHz) Low-jitter DMA-driven sensor polling loop with dedicated hardware interrupt lines.
Inertial Sensor Suite 6-DoF IMU (200 Hz) + ToF Rangefinder (4m @ 30 Hz) Complementary Kalman fusion providing 0.2° pitch/roll angular resolution with drift compensation.
Physical Dimensions 85 mm × 54 mm (4-Layer FR4, 1.6mm thickness) Controlled 50Ω RF impedance traces with solid internal ground planes and ENIG gold surface finish.
Operating Temperature -20°C to +70°C Industrial Rating Thermal relief pads for all power regulators; component tolerances verified across temperature spectrum.
Firmware Architecture FreeRTOS Kernel v10.4 + Bare-Metal C++17 Deterministic priority-based task scheduling with zero-copy packet queues and Micro-ROS support.

Real-Time Telemetry Simulation

Interactive instrumentation stream running synthetic sensor fusion models at up to 200 Hz with attitude estimation.

VARSHA TELEMETRY STREAM // CHANNEL 01
Protocol: CAN 2.0B / ESP-NOW Binary Telemetry Frame • Status: ONLINE (SYNCHRONIZED)
PACKET STREAM VERIFIED
Attitude Horizon 6-DoF Fused
PITCH: +0.0°
ROLL: +0.0°
Accelerometer Multi-Axis Waveform (G) Buffer: 200 Samples
Sample Frequency
200 Hz
Packet Delivery
99.8%
Current Draw
482 mA
Bus Protocol
CAN 2.0B
Rate:

Integrated Technology Stack

Hardware components and software libraries powering the Varsha platform.

Dual-Core Microcontroller

ESP32-S3 running FreeRTOS with core separation between RF communication pipelines and floating-point sensor algorithms.

Multi-Axis Sensing

6-DoF inertial measurement units (MPU6050 / BNO085) paired with Time-of-Flight ranging sensors over dedicated I2C/SPI buses.

Deterministic Data Bus

CAN Bus 2.0B differential transceivers combined with ESP-NOW 2.4 GHz RF transmission with CRC check and hardware packet filtering.

Regulated Power (PMIC)

Dual-rail buck-boost regulation providing 3.3V logic and 5.0V sensor buses with onboard current shunt telemetry monitoring.

Embedded C++ & FreeRTOS

Modern C++17 driver abstraction layers featuring DMA circular ring buffers and zero-copy binary serialization.

Optical Flow & Edge Vision

Dedicated low-power PMW3901 optical tracking sensor computing localized XY displacement vectors without external beacon infrastructure.

Tested Bench Capabilities

Features and performance metrics confirmed through physical laboratory bench testing and prototype execution.

BENCH CONFIRMED

Sub-Millisecond IMU Sampling & Attitude Fusion

200 Hz continuous sampling of accelerometer and gyro registers with an onboard complementary Kalman filter for real-time roll/pitch drift correction.

BENCH CONFIRMED

Hardware-Filtered Deterministic Telemetry

Deterministic microsecond packet transmission over CAN Bus 2.0B differential lines preventing packet collision under heavy robotic network loads.

BENCH CONFIRMED

Autonomous Local Dead Reckoning

Real-time sensor fusion combining wheel odometry, optical flow, and inertial telemetry to navigate accurately within GPS-denied environments.

BENCH CONFIRMED

High-Throughput Binary Blackbox Logging

Dedicated high-speed SPI microSD storage recording raw sensor frames at up to 250 KB/s without blocking main loop execution.

System Architecture

Inter-subsystem dataflow from sensor inputs to embedded processing and telemetry actuation.

// Click any subsystem block below to inspect hardware interfaces and bus specifications

01. SENSING ARRAY IN

• MPU6050 / BNO085 6-DoF IMU
• VL53L1X ToF Laser Ranging
• PMW3901 Optical Flow
• BME280 Baro / Temperature

02. COMPUTE CORE PROC

• ESP32-S3 Dual-Core (240MHz)
• FreeRTOS Priority Scheduler
• 200 Hz Kalman Filter (EKF)
• DMA Buffer Serialization

03. TELEMETRY & ACT OUT

• CAN Bus 2.0B (1 Mbps)
• ESP-NOW 2.4 GHz RF Link
• MicroSD Binary Blackbox
• 4-Ch 16-bit PWM Motor Ctrl

Subsystem 01: Multi-Spectral Sensing Array

Busses: I2C Fast-Mode (400kHz) & SPI Mode 0 (10MHz)
  • ▸ MPU-6050 / BNO085 6-DoF IMU: Synchronous 200 Hz interrupts via GPIO-4
  • ▸ VL53L1X Time-of-Flight: Millimeter ranging up to 4.0m @ 30 Hz
  • ▸ PMW3901 Optical Flow: Real-time ground drift computation over SPI
  • ▸ BME280 Environmental: Temp / Barometric pressure reference at 10 Hz

Embedded Firmware Stack

Low-level FreeRTOS telemetry serialization and Kalman filter attitude estimation task.

onsight_telemetry_node.cpp • FreeRTOS / ESP-IDF C++17
View on GitHub ↗
// North Star — OnSight Telemetry & Attitude Estimation Task
// Target: ESP32-S3 (Xtensa Dual-Core 240MHz) • FreeRTOS Priority 5

#include <freertos/FreeRTOS.h>
#include <freertos/task.h>
#include <driver/twai.h>     // Two-Wire Automotive Interface (CAN 2.0B)
#include "onsight_fusion.hpp"

struct __attribute__((packed)) TelemetryFrame {
    uint32_t timestamp_us;
    int16_t  pitch_mdeg;    // Pitch angle in milli-degrees
    int16_t  roll_mdeg;     // Roll angle in milli-degrees
    int16_t  accel_z_mg;    // Vertical G-force in milli-G
    uint16_t tof_range_mm;  // Time-of-Flight forward distance
    uint16_t crc16;         // Hardware packet verification
};

void Task_TelemetryLoop(void* pvParameters) {
    TickType_t xLastWakeTime = xTaskGetTickCount();
    const TickType_t xFrequency = pdMS_TO_TICKS(5); // Deterministic 200 Hz loop

    KalmanFilter6DoF ekf;
    ekf.init(200.0f, 0.001f, 0.03f);

    while (true) {
        // 1. Synchronously sample IMU over dedicated SPI DMA channel
        IMURawData raw = read_imu_registers();
        ekf.update(raw.ax, raw.ay, raw.az, raw.gx, raw.gy, raw.gz);

        // 2. Package zero-copy telemetry packet
        TelemetryFrame frame;
        frame.timestamp_us = esp_timer_get_time();
        frame.pitch_mdeg   = static_cast<int16_t>(ekf.getPitch() * 1000.0f);
        frame.roll_mdeg    = static_cast<int16_t>(ekf.getRoll() * 1000.0f);
        frame.accel_z_mg   = static_cast<int16_t>(raw.az * 1000.0f);
        frame.tof_range_mm = read_tof_distance_mm();
        frame.crc16        = compute_crc16(&frame, sizeof(frame) - 2);

        // 3. Dispatch to CAN Bus 2.0B controller with sub-5ms latency
        twai_transmit_telemetry(0x140, (uint8_t*)&frame, sizeof(frame));

        // 4. Enforce strict real-time deadline
        vTaskDelayUntil(&xLastWakeTime, xFrequency);
    }
}

Development Roadmap

Phase 1: Concept
Schematics & sensor selection
2
Phase 2: Prototyping
Bench testing & Kalman filter tuning
3
Phase 3: Integration
CAN Bus node network coupling
4
Phase 4: Field Testing
Off-grid robotics vehicle trials
5
Phase 5: Release
Open hardware reference v1.0