Scale
Place food on the scale — auto-detects stable weight threshold.
CV + Embedded Prototype
ESP32-powered food scale + vision API — ~10% error vs manual logging, sub-3 second inference.
Problem
Existing apps rely on user input alone. Combining physical weight with computer vision closes the accuracy gap.
The actual friction
Visual guesses alone cannot anchor portion size — weight data has to close the loop.
Solution
Place food on the scale, capture an image, and let the backend correlate mass with visual portion estimates.
Scale
Place food on the scale — auto-detects stable weight threshold.
Capture
Camera captures top-down image synchronized with weight reading.
Analyze
Vision API identifies food items and estimates portion size.
Result
Fused calorie estimate displayed on OLED and synced to app.
Capabilities behind the journey
HX711 load cell with calibrated gram readings.
OV2640 capture triggered on stable weight.
Food identification and portion estimation via OpenAI.
Weight + visual data combined for calorie estimate.
OLED display with real-time feedback on device.
Optional logging to Node.js backend for history.
Impact
Fusing load-cell weight with vision-grounded estimates in under 3 seconds.
01 - Friction
Manual calorie logging underestimates portions and breaks down on everyday meals.
02 - Intervention
Fuse camera vision with load-cell weight for grounded portion estimates.
03 - Outcome
90% error reduction with ~10% final accuracy.
Supporting signals
~10%
Accuracy
<3 sec
Processing
Shipped
Hardware
Weight stability
Reliable capture trigger in 95% of tests.
Architecture
Six views — stack, containers, security, runtime flow, data model, and where it runs.
ESP32 reads weight and captures an image; the cloud API runs vision inference and returns a calorie estimate.
| Layer | Role | Stack |
|---|---|---|
| ESP32-S3 | Load cell + camera capture; sends weight and image to API. | C++ · HX711 · OV2640 |
| Node.js API | Receives payloads, proxies OpenAI Vision, normalizes response. | Node.js · Express |
| Vision API | Identifies food and portion hints. | OpenAI Vision |
| PostgreSQL | Captures, estimates, calibration history. | PostgreSQL |
| OLED / Web | Shows calories and confidence to the user. | OLED |
Decisions
Lessons
What is worth carrying into the next product.
What deserves another iteration.
What changed my engineering judgment.
Next step
Explore the repository, try the live flow, or reach out if you want to talk through the architecture behind it.
Keep exploring