So apparently my dog is incapable of telling me her water bottle is empty…
Instead of training her to do that, clearly the most straightforward thing to do is designing a wireless capacitive sensor to notify me when the water level is low.
I got a mystery meat ‘M03’ capacitive sensor with an 2408 IC that is probably a touch button IC. It wasn’t very sensitive and refused to work through the bottle wall. A common problem according to Aliexpress comments. The seolution from those same comments - gluing a piece of aluminum foil to the container under the sensor - fixed that.
Supposedly replacing the stock sensor module 6pF C4 capacitor with a lower value improves sensitivity - I foolishly bothered to try that, and after struggling to solder the 0201 2.2pF cap, losing two and finally succeeding - it’s still not sensitive enough to work without foil ![]()
Since the sensor uses about 500uA (even without the LED), I connected it to gpio-controlled VCC_ext regulator and bisected that the minimum time to get a reading is 58ms. So I’m powering it for 70ms every 10 seconds and updating battery voltage (conveniently connected to VCCH, so nrf52 can measure it internally without an external voltage divider) while that happens.
Wrote a small project in Zephyr (still the worst embedded environment known to man). Flashing those modules is as easy as producing a uf2 file and drag’n’dropping to the usb disk that appears after bridging reset and gnd twice rapidly.
Parts:
- M03 Capacitive Water Sensor (60¢ on Aliexpress)
- ProMicro NRF52840 board ($1 on Aliexpress)
- A 1s lipo 300mAh cell I had lying around
Initially the quiescent current was 50uA due to what I suspected were leak issues with these boards, still enough for at least half a year on a single charge. Apparently there were batches of Pro Micro made with a 4.7K resistor connecting VDDH to a GPIO pin controlling vcc_ext regulator (POWER_PIN), so that caused about 700uA of drain with the LDO off.
But clearly I’m not the biggest Zephyr expert, and setting up the DCDC regulator correctly brought the current down to comfortable ~5uA.
Nrf52840 supports Zigbee, maybe I’ll try that next. BTHome for now since I’m much more familiar with BLE (and you can actually see the advertisements if you install an app on your phone, with Zigbee you’d need a dedicated sniffer).
Technically you could even try to run a Matter+Thread sample on that SoC, but the whole Matter ecosystem seems like a lot of effort for no discernible benefit.



