S1E2, season 1, winter
A breath test for your gut
What it is
A handheld breath analyser for gastrointestinal screening, aimed at conditions like SIBO and IBS. It was my final-year capstone at Thapar Institute, built by a team of three: Daisy, Akashdeep Singh and me, mentored by Dr. Maninder Kaur.
How it works
- Three gas sensors on an ESP32: MQ-8 for hydrogen, MQ-2 for methane and MQ-137 for ammonia, in a 3D-printed enclosure that directs breath across them.
- The ESP32 streams readings over Bluetooth Low Energy to an Android app written in Kotlin and Jetpack Compose, with Room over SQLite on the phone.
- A stateless Flask API in Python scores each reading in under 50 ms.
- The model is a Random Forest, 100 trees in scikit-learn, trained on 1,200 synthetic samples, 200 per diagnostic category.
The decision I'd defend
Clinical threshold rules run deterministically alongside the model, so a prediction on its own is never the output.
The honest part
The model scored 85.8% on held-out test data. That data was synthetic. There was no patient data and no clinical validation, the report says so more than once, and so does this page.
ESP32, Bluetooth Low Energy, Kotlin, Jetpack Compose, Room, Python, Flask, scikit-learn
Next episode, S2E2
First agents with real customers on the other end