Open Tasks - jaas666/my-flo GitHub Wiki
Open Tasks
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.
Needs the physical device
- 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.
Behavior questions still open
- 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).
ESPHome work
- 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).