Automating the Netro Pixie Part 1: Stealing Power

John Armstrong
5 min readMay 9, 2021

The Netro Pixie is an automated sprinkler timer that allows you to take a hose and turn it into a SmartSprinkler (assuming it can connect to the public internet). It's a nice piece of kit that not only has a nice little IoT processor in it (ESP-07S which is an 8266 variant) but it also packs a solar panel, solar charger, and battery system that allows it to remain in the field indefinitely (assuming you have a few hours of sun a day).

The Netro Pixie
ESP-07S Inside

The iOS/Android app allows you to set water times, allow the weather to control your sprinkler, and a host of other features, one of which probably includes allowing hackers to water your garden for 10 hours overnight when you are not paying attention.

To facilitate further functionality, Netro provides a nice and well documented REST API that lets you do pretty much anything the app can do.

Before we abuse this nice piece of kit, let's take a moment here and thank companies like Netro for opening their hardware to home automation geeks. I really appreciate not having to debug at a protocol level to find this stuff. BUY THIS DEVICE.

So, what is any home automation geek with a garage full of ESP32 boards, a well-packaged solar controller that is wifi enabled, and a publicly available and well-documented webservice going to do? AUTOMATE ALL THE THINGS!

But for me that means locality, I want to automate based on what is happening up on my hill and to do that I need my ESP32 local so it can do its thing, sensing different events, such as a coyote running by.

Yes, my goal is to actually use my sprinkler to annoy wildlife. Sounds fun and may possibly increase chicken longevity in my yard.

With the sprinkler timer all sorted in this off-the-shelf purchase, I need to find a way to power my ESP32 which in deep sleep mode should not be too much of a drain. This ESP32 actually has two jobs, the first is giving me direct control over the Pixie, the second is controlling my hacked Chicken Guard so I can remote control it from my phone (story for another time).

If this Pixie solar/battery/charger combo can power an ESP07s in deep sleep mode well, I don’t see why it can’t do the same for my ESP32! Lets dig in!

Step 1: Where is the juice?

First thing is to figure out what battery pin is doing what. For these systems, there is usually a common ground, a power out from the battery, a power in from solar charger, and a monitoring port to watch battery voltage and prevent overcharging. Clearly, the Pixie team are home automation geeks also because they actually left us PCB holes to wire directly off the power bus beneath the battery!

Holy moly this is great! A quick probe with my multi-meter got me these values (J0 on left to J4 on right):

J0: Solar In (~4v, tested in the light)

J1: PROBABLY voltage monitoring but not sure

J2: Positive out from the battery

J3: MAYBE voltage monitoring, once again, not sure and sort of don’t care.

J4: Common ground

It is now clear, I want J2/J4 access to power my ESP32. The way these circuits work is that the battery powers everything and the solar controller trickle charges the battery continuously. So, as long as you are not draining the battery faster than the solar controller can trickle charge, you are fine. I’m confident we can live within a power budget here.

Step 2: Get some juice from inside to the outside

As a sprinkler timer, this box is sort of..well.. water-tight. This is a good thing when dealing with water and electronics and I wanted to be certain that I did not violate this requirement. Opening the box it's pretty clear that there was room for a waterproof barrel jack and easy access to the pins I required to draw power.

Roomy internals and a clear spot for a barrel jack

Step 3: Run some juice wires

This was pretty quick. I wired up a power plug to the appropriate pins on my barrel jack and on the board. I put in the power connector so that it was easy to take things apart without having to desolder anything.

Power plugs and a connection to the outside world

Step 4: Make it pretty

Now all that is left to do is button it up by tucking some wires away and closing the hatch.

Almost like it was made this way!

Step 5: Power up that ESP32!

And finally, let's plug this into an ESP32 box I had sitting around from an old project, and voila! Instant power!

Not an ESP32 but it shows the desired result. Yes, polarity is reversed. I fixed that after I took this picture.

Next Steps

Next up is getting the ESP32 playing nicely on a power budget, making sure the charge controller/battery can handle both devices, and, stretch goal, can I get the ESP-07S in the Pixie to wake on command so I can force engagement? Probably not but those ESP devices always surprise me with their versatility and maybe the IO16->RST pin trick will get it into the right state, we can only know by trying in Part 2.

--

--