I think we're talking about two different problems.
ESPHome Sprinkler definitely solves scheduling, sequencing, and valve control. The part I'm interested in is everything Oto-specific: nozzle positioning, throw distance, calibration, flow measurement, coverage patterns, and pressure compensation.
Unless those pieces are already handled somewhere in ESPHome that I'm unaware of, simply pointing to the sprinkler component doesn't really address the reverse-engineering effort needed to replicate Oto's behavior.
That's why I'm more interested in the GPIO mapping, motor control, sensor integration, and targeting logic than the scheduling side.
I’m very interested to test this when available.
I have 5 OtO’s setup to cover my full lawn (been running for 3 years) and have a “broken” one that would be perfect to try this on.
Anything I should get in preparation to flash it? I have a board I have used to flash other esp devices, did you get or make a special cable?
Ah yes this reminds me I need to see if my OTOs are alive
One thing about ESPHome Sprinkler Component - it is in the midst of being re-written as it is not very flexible to add new things. There is a Discord thread just a few days ago:
When I opened my OtO it has a 8050123 3.7V 6000mAh battery.With what looks like a JST-VH plug. Anyone know of a drop-in replacement? I couldn't find anything easily available. Has anyone put in a smaller battery? I do see some 4500mAh options that would fit, but not sure if I am just missing a standard battery size.
I think mine only came with a 4500mah battery. I would find a bare cell this capacity that fits. You will have to solder the wires with connector to a new battery. Wrap battery terminals with Kapton tape. My battery was attached to the plastic support with VHB tape. To remove the battery dribble some isopropyl alcohol on the tape and then use some dental floss looped around underneath to cut the VHB.
Thanks. That is interesting, this is the exact cell mine came with: 3.7 V 6000mAh Lithium Ion Battery 8050123 and also mine came glued down with some sort of white colored adhesive. Unfortunately the only seller I found for this exact battery sells it in its "tabular" form with no circuitry (and while I am willing to tinker, not quite up to spot-welding battery skill level yet).
I wonder if it is because mine has the pump parts for the fertilizer and they downsized when they removed those.
Anyway I will order the 4500mAh battery and swap the connector. Thanks for the help! Once I get the battery working I am looking forward to trying the new project! I ordered the parts to build the cable so hopefully can pull it together by next weekend.
Not everyone is comfortable soldering batteries as shorts can be dangerous. If you are unfamiliar there are youtube guides on soldering lipo battery tabs.
This is awesome, thank you! Do you know if the stock OtO ESP32 firmware is readable as a full raw flash dump with esptool, or is it protected/locked down with ESP32 flash encryption, secure boot, or readout protection?
Full flash is readable. I had no trouble returning to original state. Nice to have a backup. At this point I'm pretty happy with the new firmware and HA stuff. backup factory firmware instructions
Perfect, thanks! I’ll likely try this weekend once I have the hardware. My OtO has a small drip at the bottom that I want to investigate, so hopefully I can tackle both at the same time.
Definitely don't want to get any water on the circuit boards. I had an issue once with one of my Oto's when I disassembled the valve body from the base using the three long screws on the bottom. There's an o-ring that I hadn't seated right and it leaked. Once I had it right it was easy to tell when it fit properly.
I wasn’t sure the units it was looking for on the distance measurements so I used mm. I only ask because on the other calibrations after it said it would use 30% pressure, but it was just a dribble.
Ran out of daylight before I could finish setup and see for myself if it worked.
I ran out and tried to setup a zone. A few issues I am noticing:
Distance is not as good as stock. It seems to be accurate (20ft) but stock can go further ( need maybe 10 more feet to reach the edge of my yard). Not sure if this is calibration related as when doing max pressure at the start of pressure calibration it easily reached the edge of my yard.
Rotation during zone setup. When I was setting up the zone I had fine grain control on the water stream length, but the left and right rotation would only move 180 degrees.
Again I am thinking all of this might just be bad calibration. (See my last comment)
For the valve / pressure cal you should enter feet or meters. The entry should be like 28.5f or 8.7m. There should be a bunch of points. Run the nozzle speed cal too.
I included 3 watering modes, Pulse, Gentle and Smooth. I would recommend Smooth. Smooth produces the most even results but is slower. I left Pulse and Gentle on the list mostly as framework for others to further develop watering modes.
Here is what I see when the calibration is running (I am guessing it is wrong)
When calibration starts the stream goes from trickle all the way to max pressure and then turns off
When it starts the sweeps I never see any change in the water stream it appears to stay off the entire time
Right before it asked for the measurements a 2ft stream comes out for a couple seconds then goes away
It asked for two measurements one which is about 2ft and the other is about 20ft
I am guessing that the “sweeps” should actually be changing the water stream?
I am curious if maybe there is a model difference that is coming into play. On my 180 degree rotation issue I had my AI agent look at it and it figured out the CW and CCW were swapped and that is why it was going 180 degrees on one step. After it patched that the movement during zone configuration was fixed.
The ball valve is symmetric so 180 degrees out should be fine. Its possible that your valve motor is wired in reverse from my 3 units. At the end of the valve cal it asks for a measure of max throw and min throw. It should give you the same max throw as the original firmware. During the valve cal the pressure will rise and fall as there are several passes that the cal mechanism takes to get the best cal.
I reviewed the firmware and found that if the motor is wired in reverse from what I designed for and tested, it would create some issues. I have updated the code to have the cal determine the motor direction and record to the NVS for future operations. I have verified the addition of motor direction determination to both valve and nozzle cal and published to github in build 420. You will need to update your files and rebuild and update OTA.
In case you are unfamiliar you can CLI OTA once irrigoto firmware is installed.
python -m esphome run esphome/irrigoto.yaml --device device_network_name(usually something like irrigoto-123456)
I haven't gone so far as to reverse my motor wiring to test. Please let me know how it works for you.
Your valve cal should have ~29 points.