- Client
- Consumer electronics brand (under NDA)
- Product
- Inline USB voltage, current and power meter
- Constraint
- Total BOM under ₹200 at volume
- Timeline
- ~6 weeks to production firmware
The problem
The client wanted a small USB power meter: plug it between a charger and a phone and see voltage, current, power and energy. Similar products were already on the market, so the only way to compete was price. The whole bill of materials, including MCU, display, current sensing and PCB, had to stay under ₹200.
Their first prototype used a popular 32-bit MCU and a colour display. It worked, but the parts alone cost more than the target. They also wanted firmware updates in the field, which most products at this price simply skip.
Choosing the MCU and display
I started from what the product actually needed, not from a favourite chip: one ADC channel for voltage, one for current, a timer, an I²C or SPI bus for the display, and a USB-side interface for updates. That is a small job, so I compared the cheapest parts that could do it reliably.
| Option | Why it was considered | Decision |
|---|---|---|
| Original 32-bit MCU | Team already knew it | Too expensive for the target |
| WCH CH32V003 (RISC-V, 48 MHz) | Very low cost, enough ADC and timers | Chosen for the meter core |
| Small monochrome OLED vs colour TFT | OLED is cheaper and lower power | Monochrome OLED chosen |
Fitting OTA and power monitoring into a tiny chip
Accurate measurement
I calibrated the current shunt and voltage divider per unit during production and stored the correction factors in flash, so cheap parts still gave accurate readings.
Integer-only maths
All power and energy calculations use fixed-point arithmetic. No floating point library, which saved several kilobytes of flash.
A tiny display driver
I wrote a minimal OLED driver with a compact font and partial redraws instead of pulling in a full graphics library.
Safe field updates
A small bootloader keeps a protected region, verifies each new image before switching, and falls back to the old firmware if anything fails.
Power monitoring for the device itself
The firmware tracks its own supply and brown-out conditions so readings stay trustworthy when the input sags.
What the client got
Results
- A production design with the full BOM under ₹200.
- Firmware updates in the field, rare in this price range.
- Accurate readings from low-cost parts, thanks to per-unit calibration.
- A codebase their team understands, with room left for small features.
Low-cost hardware is not about picking the cheapest part. It is about matching every part to what the product really needs, and writing firmware that respects those limits.
Related guideChoosing a Low-Cost MCU: CH32V003 vs STM32 vs ESP32 for Price-Sensitive Products