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.
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.
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.
Coordinate Fetching
Interfaces with FusedLocationProviderClient requesting ACCESS_FINE_LOCATION for high-accuracy lat/long data.
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]".
Cellular Routing
Executes background dispatch via native SmsManager, iterating through locally stored emergency contacts and pushing SMS directly through cellular network.
Technology Stack