Varun Cumbamangalam
ProjectsAboutContact

Varun Cumbamangalam.

Senior IoT and Edge AI Engineer, AI Product Manager at OraLens Healthcare

ProjectsAboutContactPrivacy

© 2026 Varun Cumbamangalam. Built with Next.js and Tailwind CSS.

// Flutter - BLE device pairing & sensor stream Future<void> connectAndStream(BluetoothDevice device) async { await device.connect(timeout: const Duration(seconds: 10)); final services = await device.discoverServices(); for (final svc in services) { if (svc.uuid.toString() == kHalitosisServiceUUID) { final sensorChar = svc.characteristics .firstWhere((c) => c.uuid.toString() == kSensorCharUUID); await sensorChar.setNotifyValue(true); sensorChar.value.listen(_onSensorData); break; } } } void _onSensorData(List<int> bytes) { final reading = H2SReading.fromBytes(bytes); ref.read(sensorProvider.notifier).update(reading); }
All Projects
OraScan H - Halitosis IoT Device logo
HardwareMobileAI/ML

OraScan H - Halitosis IoT Device

A pocket-sized consumer device for halitosis detection with BLE and on-device AI.

View on GitHub
OraScan H - Halitosis IoT Device main screen
92%

Software Completion

< 3s

BLE Scan-to-Result

2

Gas Sensor Arrays

Tech Stack

PythonFlutterRaspberry PiTFLiteBLEPHPH2S Sensors

The problem

Bad breath affects 1 in 4 people, but most never get it properly diagnosed because it's embarrassing to bring up with a doctor. People need a way to check privately at home - without buying expensive clinical lab equipment or visiting a specialist.

The challenge

Halitosis affects an estimated 25% of the population but is severely under-diagnosed due to social stigma around clinical evaluation. The product needed to be a consumer-grade, handheld device that anyone could use at home - not a lab instrument. The engineering challenges were multi-layered: H2S sensor signal is noisy and temperature-sensitive, requiring careful analog conditioning; the Raspberry Pi Zero 2W has only 1 GB RAM, constraining the on-device AI pipeline; the Flutter mobile app needed to reliably pair via BLE, stream sensor readings, and present results in a clinically actionable way.

Architecture & System Design

IoT device with dual gas sensor arrays connected to mobile app via wireless protocol. On-device machine learning model processes sensor readings for analysis. Mobile app provides real-time results and trend history. Backend service handles data persistence and optional cloud synchronization with secure firmware update mechanism.

Full system schematic available upon request

The hardware stack centres on a Raspberry Pi Zero 2W running a Python BLE GATT server (D-Bus/BlueZ). Two gas sensor arrays (DTS4H2S + MQ316) are read via ADS1115 ADC over I2C, with GPIO-based LED status indicators and a serial interface for auxiliary sensors. Sensor readings feed into a TensorFlow Lite model running on-device that classifies halitosis severity. The Flutter mobile app (flutter_blue_plus) discovers and pairs with the device, streams live readings, and renders severity scores with trend history. A PHP 8.2 + MySQL 8.0 backend on Hostinger handles session persistence and optional cloud sync. OTA firmware updates are signed and verified on-device before installation.

Results

OraScan H reached 92% software completion in Sprint 3 with production-ready mobile app and backend. BLE pairing achieves stable connection within 3 seconds. The TFLite classifier runs on the Pi Zero 2W in under 500ms. The Flutter app is live on both iOS and Android with a full onboarding, pairing, and results flow. Hostinger backend handles session persistence with rate-limited API endpoints and MIME-validated image uploads.

Gallery & Demos

Doctors Dashboard - Session Ledger

Doctors Dashboard - Session Ledger

Every recorded session with model output, reference assessment and site, keyed by pseudonymous participant code.

Doctors Dashboard - Case Record

Doctors Dashboard - Case Record

One participant's captures, sensor readings and clinical figures.

Mobile App - Device Pairing

Mobile App - Device Pairing

BLE pairing with the handheld, stable in under 3 seconds.

Mobile App - Guided Capture

Mobile App - Guided Capture

On-screen guidance for the breath sample and smile image.

Mobile App - Assessment Result

Mobile App - Assessment Result

The classifier result and next steps shown to the user.

Device Front View

Device Front View

Handheld form factor with mouthpiece intake, dual gas sensor arrays inside, and GPIO-driven LED status indicators.

LED Status States

LED Status States

Four GPIO-driven LED states: off (standby), green (scan complete / pass), blue (scanning), red (alert / fail).

Hardware Evolution

Hardware Evolution

Design iterations from prototype to production across multiple sprints.

Cloud Architecture

Cloud Architecture

BLE pairing flow, on-device TFLite inference, and PHP backend session storage with rate-limited endpoints.

Click any image or video to expand · ← → keys navigate

OraLens Healthcare Pvt. Ltd.

More from OraLens Healthcare Pvt. Ltd.

OraScan - Oral Disease Detection

End-to-end ownership

An oral disease classifier built with a custom EfficientNet-B0 model trained on 78,000+ dental images. It reaches 94.7% accuracy across 11 disease categories and runs through ONNX on kiosk hardware.

PythonPyTorchONNX

OraScan - AI Oral Screening Platform

Product Owner

Product definition and ownership for OraScan, an oral disease classifier designed for dental kiosks. Set per-class accuracy targets, defined the dataset strategy for 78K+ images, and specified the kiosk hardware integration.

PRD AuthoringDataset StrategyModel Evaluation Criteria

OraScan H - Connected Halitosis Device

Product Owner

Product ownership of OraScan H, a consumer IoT halitosis detector built with a Raspberry Pi Zero 2W, H2S gas sensors, and a Flutter mobile app. Defined the BLE pairing flow and sprint milestones through 92% software completion.

PRD AuthoringHardware Requirements SpecBLE UX Definition

LuxySmile Oral Care - Product Website & Dashboard

End-to-end ownership

Full product suite for LuxySmile Oral Care (Oralens Healthcare): a React + Vite marketing site targeting B2B dental wellness programs for schools and corporates, plus an internal case management dashboard with direct-to-S3 uploads and CSV bulk import.

React 18ViteTypeScript

LuxySmile - Oral Care Brand & Operations

Product Owner

Product and go-to-market ownership for LuxySmile Oral Care - OraLens Healthcare's B2B wellness brand. Defined the dual B2B/B2C positioning strategy, school and corporate wellness program inquiry flow, and the AI kiosk upsell path on a premium product website.

PRD AuthoringB2B GTM StrategyBrand Positioning

Interested in this work?

I can walk through the architecture and code during an interview.

Get in Touch All Projects