IoT / Mobile

BLE IoT Support App

Flutter app for BLE device authentication and control

15+

Devices Supported

99%

Pairing Success Rate

<200ms

Auth Latency

Overview

A Flutter mobile application that communicates with ESP32 microcontrollers over Bluetooth Low Energy, handling secure device authentication, real-time status, and remote controls.

The Problem

Field technicians needed a reliable mobile interface to configure and authenticate BLE-connected hardware without complex tooling or physical access ports. Consumer BLE stacks on Android and iOS handle connection state very differently — inconsistent RSSI reporting, background scan throttling, and silent GATT disconnects meant a naive implementation would work in a demo and fail intermittently in the field, which is worse than not having a mobile option at all.

The Solution

A dedicated Flutter app with BLE scanning, device pairing, encrypted authentication tokens, and live control panels — all with offline fallback. Each device advertises a rotating identifier; on connect, the app and the ESP32/STM32 firmware run a challenge-response handshake so a stolen or spoofed advertisement can't authenticate, and the resulting session key gates every subsequent GATT write. A platform-specific reconnect/retry layer absorbs the RSSI noise and dropped-connection cases that vary between Android and iOS BLE stacks, instead of surfacing them as user-facing errors. If a device goes out of range mid-operation, the app falls back to the last known state rather than blocking the technician. In production, it pairs with 15+ device variants at a 99% success rate, with authentication completing in under 200ms per connection.

Key Features

BLE scanning and auto-pairing
ESP32 firmware communication
Encrypted device authentication
Real-time device status & controls
Push notification alerts

Tech Stack

FlutterDartBLE/ESP32FirebasePython

More Projects