Edge AI / IoT / Embedded Systems

AnomX

Edge-Computed Kinematic Telemetry & Automated Dispatch System

AnomX is a decentralized Personal Emergency Response System (PERS) engineered to bypass the latency, physical bulk, and extreme power consumption of traditional GSM/GPS tracker modules. The system architecture decouples hardware crash detection from cellular transmission using a low-power ESP32 edge node, BLE transport, and a native Android gateway.

<50ms

Detection Latency

Zero

Polling Required

16G

Impact Threshold

3.7V Li-Ion

Power Source

System Architecture

Three-Tier Microservices Design

The AnomX architecture is built on a microservices philosophy, segmented into three distinct tiers for maximum modularity and efficiency.

Tier 1

Edge Node

ESP32 DEVKIT V1 kinematic monitor with ADXL345 accelerometer via I2C, handling hardware interrupts and embedded sensor data at the edge.

Tier 2

Wireless Transport

Ultra-low-latency, asynchronous BLE GATT server-client bridge with zero-polling execution via CCCD 0x2902 PROPERTY_NOTIFY flag. Payload push in <50ms.

Tier 3

Mobile Gateway

Background-capable Android listener service managing emergency contacts, GPS coordinate fetching via FusedLocationProviderClient, and SMS dispatch.

Hardware Engineering

The Edge Node — A Standalone Black Box

Core Microcontroller

ESP32 DEVKIT V1 with Xtensa dual-core processing and natively integrated BLE stack. Selected for its reliable development footprint and robust performance.

Sensor Integration

ADXL345 digital 3-axis accelerometer interfaced via I2C protocol (0x53) to free up GPIO pins and minimize wiring complexity.

Power Management

Integrated TP4056 CC/CV charging circuit safely regulates a 3.7V Li-Ion cell with critical over-discharge protection for continuous remote operation.

AI / ML Edge Pipeline

Kinematic Logic & Signal Processing

Hardware Interrupt Service Routines

The ADXL345 continuously computes the 3D vector magnitude. When the magnitude breaches the configured 16G threshold, the sensor fires a digital high signal from its INT1 pin directly to the ESP32, instantly waking the CPU.

// Vector magnitude formula
G = √(x² + y² + z²)
// Threshold: 16G → INT1 → ESP32 wake

TinyML Signal Processing

To eliminate false positives (e.g. dropping the device on concrete), the ESP32 hosts a lightweight TensorFlow Lite inference model. By applying Fast Fourier Transforms to raw time-series vibration data, the system differentiates between a benign drop's harmonic signature and a sustained vehicle collision.

FFT AnalysisTFLite MicroSensor FusionFalse Positive Elimination

Wireless Protocol

BLE GATT — Zero-Polling Architecture

Topology

The ESP32 operates as the GATT Server while the custom Android application acts as the GATT Client. This asynchronous model avoids continuous Wi-Fi routing or power-heavy Bluetooth Serial profiles.

Zero-Polling Execution

The Android client writes to CCCD (0x2902) to enable the PROPERTY_NOTIFY flag on a custom UUID. The ESP32 pushes an over-the-air state change in <50ms the exact millisecond a crash is validated — no polling, no battery drain.

Dispatch Pipeline

Emergency Dispatch Sequence

When the mobile gateway catches the hardware BLE payload, it immediately executes a three-stage dispatch routine.

STEP 01

Coordinate Fetching

Interfaces with FusedLocationProviderClient requesting ACCESS_FINE_LOCATION for high-accuracy lat/long data.

STEP 02

Payload Formatting

Constructs emergency text appended with a dynamic Google Maps URI — "CRITICAL ALERT: A crash has been detected. My current location is: [Maps Link]".

STEP 03

Cellular Routing

Executes background dispatch via native SmsManager, iterating through locally stored emergency contacts and pushing SMS directly through cellular network.

Technology Stack

ESP32 DEVKIT V1ADXL345 AccelerometerBLE GATTTinyML / TFLiteFFT Signal ProcessingTP4056 Li-Ion ChargerAndroid (Java/Kotlin)FusedLocationProviderSmsManager API