Feed on
Posts
Comments

Thanks for everyone who ordered the initial batch of the OpenSprinkler controller. A couple of issues have been reported and documented on the F.A.Q. page. If you are learning to use the controller, be sure to check that page.

The most recent bug turned out to be caused by the Arduino’s shiftOut function (thanks Matt for discovering the problem initially). This bug has now been reported to the Arduino forum. The symptom is that whenever you open the sprinkler zones, station #8 always turns on, and will remain on even if you stop the controller’s operation. This is caused by the shiftOut function missing a rising edge for the shift register. You can simply re-program the microcontroller to fix this bug. Orders sent on or after Oct 23, 2011 have already included this bug fix.

OpenSprinkler v1.0 Released

After several months of hard work, my first ‘serious’ Arduino-based electronics project is up on the project page now. Check out the OpenSprinkler – An Open-Source Sprinkler Valve Controller. This is a collaboration between me and Chris Anderson (editor-in-chief of Wired Magazine). A video demo is included below. For details and how to order a kit, please refer to the project page.

It has been a while since I updated my blog. Things have been quite crazy the past few months, but now I am back alive writing more blogs sparingly.

The first thing I want to share about is an update to my previous post that talked about how to control the Orbit 62035 valve. There have been a couple of missing pieces there which I would like to clarify. First, I found that a MOSFET cannot reliably control that valve. I am not sure why, but it may have to do with the on-state drain to source resistance. But using a MPSA14 (NPN darlington) works, and it requires a base current limiting resistor, so I’ve updated the schematic as below. Second, I was reminded that two kickback protecting diodes are needed to protect the transistor from the inductive current from the solenoid, so those are also added. These are the two main changes. The circuit below has been tested to work. Feel feel to leave comments.

 

Tags:

After finishing the previous minty water valve controller, I decided to make it an Arduino shield. This way, I can easily stack it onto other shields and extend its capability. I also added a few input buttons, and a DS1337 real-time clock, so that it can keep up with accurate time. Now the circuit has become much smaller, so I can’t produce it with home-made PCB any more(sadly…). Instead, I ordered professionally made PCBs from Laen, and here you are, meet the Arduino WaterValveShield!

PCB board:

Components soldered:

Close-up view:

Connected to a serial LCD display

The schematic:

You can download Eagle schematic and PCB design here. Feel free to use it and/or modify it, but be kind to give me some credit for it 🙂

Parts list with Mouser/Digi-key links: valve_shield_parts.zip 

As for sketch code, refer to my previous posts for code to control the valve and read input buttons. To interface with DS1337 RTC, I use this excellent RTC library.

Next steps:

Tags: ,

As an update to my previous post, I took a look at the Orbit 62035 valve, which works with the older Orbit’s yard watering system 62032. This valve is white colored, and has a standard 3-pin 3.5mm stereo audio plug.

To figure out how to control the valve, my initial guess is that the valve contains two coils, one opens the solenoid and one closes it. To verify this, I measured the resistance between the 3 pins of the plug. It turns out that pin 1 and 2 have a 4.5 ohm resistance, while pin 1 and 3 have a 0.9 ohm resistance. The 4.5 ohm resistance is reasonable, as it’s roughly the same with the Orbit 91592 valve that I used previously. But the 0.9 ohm resistance is strange — it clearly indicates a coil but the resistance seems too lower.

Having no other reference, I went ahead to apply voltage on the pins to see what would happen. Interestingly, applying +24v on pin 1 and 2 successfully opens the valve, but doing the same on pin 1 and 3 fails to close the valve. I tried everything I could to figure out what went wrong, but nothing came up. Out of luck, I decided to buy the full kit (62032) and reverse engineer the control unit a little bit. When I opened the control unit, I found that the entire circuit board is covered by a thick layer of water-resistant paste. This didn’t look good. However, I did notice several big resistors, each reading about 3.9 ohm. The size of the resistors seems to suggest that they are rated at 2W.

Given this finding, my suspicion is that applying +24v directly across pin 1 and 3 discharges the voltage too quickly, thus cannot close the solenoid properly. In fact, given the 0.9 ohm resistance, a momentary current of 26 Amp is produced, which sounded quite scary. Adding a 3.9 ohm resistor is probably used to limit the current, slowing down the voltage discharge. This actually helps to build the electromagnetic field in the solenoid, allowing it to close properly. The idea turns out to work like a breeze: I connected a 3.9 ohm resistor between pin 3 and ground, and this time the valve nicely closed. At this point, I’m pretty sure I’ve figured out how it works. 

You might wonder what the differences are between this valve with the Orbit 91592 valve. Here are my two cents:

Pros:
– 3.5mm stereo audio jack makes it easy to connect (in comparison, the 91592 valve requires custom connector)
– Pin 1 can remain connected to +24v, while grounding pin 2 or 3 is used to control the opening/closing of the valve. This simplifies the circuit design a lot. In fact, only two low-side drivers are needed to ground pin 2 or 3, which is much simper than h-bridge driver required by the 91592 valve.

Cons:
– Seems to be of its own kind on the market (my impression is that this is a discontinued product). Most other latching solenoids available on the market are similar to the 91592 valve. Fortunately Walmart still carries this product currently, but I don’t know how long it will last. 

Below is a sketched schematic when using this valve to replace the 91592 valve. As you can see, the circuit is much simpler than before. The driver can use either a darlington transistor (such as MPSA14), or an N-type MOSFET (such as IRF510).

Tags:

« Newer Posts - Older Posts »