Repository navigation
Open Tasks
Juan A. edited this page Oct 15, 2026
·
1 revision
Living list of what is still missing. Check items off (or move them) as they get resolved. Last updated after the first successful container build.
- Read the strap pins GPIO18/19/20 to confirm the model (all low = simple valve, all high = latching valve). See Hardware GPIO Map.
- Wired access for flashing: UART pads
JP1plus theBOOTjumper, see Board and Connectors. - Capture the factory unit's serial log (boot, button press, bottle eject) to confirm input pins and active levels.
- Probe which pads/connectors reach which GPIOs: KEY (JP2), PIP, KEY2 (KW), the LED transistors, and the two driver ICs.
- Confirm on a unit the active levels of the button (GPIO6), bottle eject (GPIO13), float (GPIO7) and external power (GPIO16); the pulls are known (see Hardware GPIO Map). Identify the input on GPIO17 (appears to restart the unit) and find what actually starts a user dose on the factory unit (the front button only wakes it).
- Identify which LED is on GPIO40, 39, 41, 42 and what GPIO15 and GPIO2 drive.
- Confirm the battery divider (about 3.02 expected, set in
esphome/iflo.yaml) and that the 2200/3000 mV battery range are battery millivolts, by measuring the battery and theBAT_ADCpad. - Check that the valve driver stays off while the chip is in deep sleep (GPIO9/10 are not held).
- Bench-test the draft config with a current-limited ~3V supply and short pulses before connecting a real valve.
- Confirm the dose-time units (probably tenths of a second, see Hardware GPIO Map).
- Document the deep-sleep/wake behavior: see Power and Sleep.
- Decide whether to replicate missed-dose catch-up (doses missed while asleep or offline).
- Standalone design (HA optional) is in the draft; still to verify on hardware: scheduled doses with HA/WiFi down, behavior after a power loss with no time source, local web UI.
- Power model decided: battery, mostly asleep (see Power and Sleep). Still to do: implement deep sleep with wake pins and a schedule-driven timer.
- Add an on-device event log (ring buffer of recent doses) so HA can backfill history after an outage; today it only gets the counter and last-dose time.
- Ship a recommended HA setup (dashboard/automations) kept optional.
- Keep the
Valveswitch state in sync when the script or failsafe closes the valve. - Button (GPIO6), bottle eject, float and external power inputs added to the config as pull-up/pull-down inputs; levels still to confirm on a unit.
- Float switch and external power wake need a ULP program or timer polling (ESPHome has no ULP support).
- Add deep sleep with wake pins and a schedule-driven timer (needed for battery use; current build is bench/USB power only).
- Implement the latching/feedback valve driver (straps all high) if any unit uses it.
- Optionally replicate lost-dispense catch-up.
- Test against Home Assistant (entities, dispense script, editing schedule slots, history).