Forum Replies Created
I am a little concerned mounted a Raspberry Pi in a exterior non-ventilated box. I also happen to live in Texas and it gets really hot here. Last week it was 107 F in the shade on my front porch. With such a high external temperature and the various heat producing items in the external box, I am concerned the PI will be overstressed.
I have a Pi running in an non-airconditioned utility room. The room is usually about 90 degrees on a hot summer day. The core temp of the processor is running about 60 degrees. My Pi is in a plastic box by itself. The processor does not yet have a heatsink installed. While my PI temp is high, it is shielded from sunlight and does not have to deal with the heat of the power supply which is external.
Maximum temp of the CPU is supposed to be less than 80 degrees C. You can check your CPU core temp with the command. You can run this remotely by telnetting into the PI with your WIFI connection.
If you CPU temp is running high, you can add a heatsink. You can also try to find a way to turn off Ethernet, as that Ethernet controller generates a lot of heat. However, if you sprinkler box has direct sun exposure in Texas, then I think you are going to need some other means of cooling the enclosure.
You only need to replace the triacs with NPN transistors on the stations you are going to use. The remaining triacs can remain in the circuit. However, you need to clearly label those unmodified stations so they are not used for anything else. With 12V DC applied to the board, the triacs will turn on, but not off.
Don’t forget that you also need a clamping diode across the solenoid to dissipate the spike when the valve is turning off. The cathode of the diode connects to +12V. The anode of the diode connects to the collector of the transistor. 1N4001 rectifier diode is OK here. Depending on the size of the solenoid, a must smaller diode may be OK too. However, 1N4001 or similar diodes are very common. Both the transistor and the diode can be found in the meager parts bin of your local Radio Shack.
Here is a picture of a similar connection using a relay. The concept is the same.
I think your best solution is to use the necessary adapter to connect pipe thread to hose thread. I have no information as to plumbing in Sweden. In the US, there are two different pipe threads. For fixed systems, they use pipe thread. For removable systems like garden hoses they use hose thread. The main difference in the threads is the pitch. Pipe thread is meant to be sealed with Teflon tape or pipe dope. Hose thread is meant to be sealed by a rubber gasket. Since most valves are designed for fixed installations, here they all contain pipe thread. When I need to connect one of these valves to a garden hose, I use an adapter like this.
There are similar adapters to go from female pipe thread to female hose thread. There are also often plastic versions of these connectors that are specifically meant for irrigation systems. These plastic ones are significantly cheaper.
While the valve plus adapter route might seem to be adding lots of cost, it is not true in the US. The valves savings on using the standard valves more than covers the cost of the adapters.
Your picture appears to show a “quick connect” fitting. This would require one more piece, but here in the US, the “quick connect” fittings are sold in pairs, so you probably already have that piece.
I would suggest reading the topic “Add MOV to 26VAC input Pins? “. Then try jumpering out the PTC fuse. I know that some of these poly fuses are temperature sensitive and some of them can take days to fully reset. I know, people are going to call “bullSh*t” on the ‘days to reset’ statement. However, this time lag was documented in the poly fuses used in other devices, like the Raspberry Pi.
My theory is that the large “pull-in” current what the changing stations is what is tipping the poly fuse over the limit.
The limitation of jumpering the Poly Fuse is that now the only thing protecting you from an overcurrent condition is the internal fuse link within the 24V AC step-down transformer. These fuse links are non-replaceable. So when they blow , you have to change the entire transformer.
The causes of overcurrent conditions are typically either bad solenoids on the water valves or short-circuits in the interconnect wiring from the controller to the valves. Typically, this effects only one zone. Therefore, the symptom is that one day nothing works and you find no 24V AC input to the controller. Now, the 24V transformer could also be damaged by a lightning strike or power surge, so you replace the transformer. Everything appears to work for a day or so until you turn on the problem zone, then the transformer dies again. Each new transformer is going to cost you $15 to $25 bucks.
Again, you will only have this problem if your system develops a defect that causes an overcurrent condition. If you want to help reduce the cost of such overcurrent conditions then you can add an inline fuse holder and fuse. Typical over-rating on the fuse is at least 20% over the specified output. Therefore, if the transformer is rated at 750mA, I would suggest starting with a 1A fuse minimum. In-line fuse holders can be found at many auto parts stores, big box department stores, etc.
If you have a properly sized in-line fuse, then should you develop an overcurrent condition, the cost of repair is replacing a 50 cent fuse, not the entire transformer. Of course, you still have to locate and repair the short, but the cost of troubleshooting goes way down.
The areas of the PCB that look like a green checkerboard pattern are tied to ground. Looking at your pictures, I see several areas where solder dross appears like it could be bridging the solder pad to ground. I also see several places where the soldering appears to be insufficiently filling the pad.
I am reluctant to blame your solder, because a two dimensional picture often has shadows and other artifacts that make things appear to be an issue when they really are not. However, as Grandma always told me, “Cleanliness counts”. I would suggest touching up all the insufficient solder areas. Then get some rubbing alcohol and an old toothbrush and remove all the solder flux, solder dross, solder balls and other stuff from the bottom of the PCB. Give it a couple of good rinses with a squirt bottle. Q-Tips are also good to mop up between component pins. You can either air dry it or use compressed air to dry the board.
After the board is good and clean. The visually inspect your soldering with a magnifying glass. Look for cold solder joints, insufficient solder, and solder bridging pads. Once everything passes inspection. Power it up and see if your symptoms are still there.
Skeptics may wonder why this could possibly be a problem. The issue is that solder flux residue attracts moisture and can often be conductive. It is like sprinkling a ton of high value resistors all over the board.
The zener diode, D3, is a crowbar. It is supposed to draw lots of current should the voltage rail exceed 5.6V. It will either blow any external fuse or give its life keeping the VCC (5V) rail from going too high. Be careful when purchasing a replacement. The voltage rating of the diode must be somewhat higher than the expected voltage. You cannot, for example, substitute a 5.1V zener.
I would suggest replacing D3 and then with UC1 removed, power the unit from USB and measure the voltage at pin 5 of IC1. This is the feedback voltage to the switching regulator. It must be at 1.25V. If this voltage is wrong, check resistors RT and RB.
Next, make sure that diodes D1 and D2 are not interchanged. These diodes have very different characteristics. Also make sure D2 is installed with the correct orientation.
Finally, replace IC1 and with USB disconnected apply 24V AC. Quickly check VIN (5V) and +3.3V, then power down and feel around for anything getting hot. If voltages are normal and everything is cool to the touch. Then give it a longer power up cycle. If still OK, then populate the rest of the ICs and LCD and do a full test.
Personally, I would not recommend plugging in 24 AC and the USB cable at the same time. Doing this connects the VIN of the OpenSprinkler with the +5V rail of the computer via the USB port. This may not be an issue on some computers. However, it could problems on others. This is because you could be tieing together the outputs of two different switching power supplies. Again, if the computer is well designed, it may not be an issue. The computer is supposed to have these ports current limited. The downstream device, here the OpenSprinkler, is supposed to be current limited too.
I suspect that the problem is one of four things.
1. D3 is shorted
2. D2 is shorted
3. C2 is shorted
4. The PCB has a whisker or other etch problem between VIN and GND.
My suggestion is to start by lifting one side of D3 and D2. To remove these components, you will need to get some solder wick to remove the solder from the leads. With one lead lifted in the air, check across this component is to see if it is shorted. Also check VIN to GND to see if that short ( low resistance) has gone away. After eliminating the diodes, the remove C2 and check across it for a short . Also, again check VIN to GND on the board. If the diodes and capacitor check OK, then I wonder if the PCB has a tiny whisker of tinning or copper that is shorting VIN to GND. The best way to find these is usually visual inspection under a microscope using a known good board. Given that you only have one board, use the best magnifying glass you have. Look for any connections, solder splashes or bent leads between GND which is that areas of the PCB that look like hatch or waffle pattern and VIN. Around C2, these areas get pretty close. Make sure to look at both sides of the PCB. You can also run a sharp needle point around solder pads in an attempt to break a whisker that you cannot easily see. The area of the PCB to concentrate on is that area that got hot when you powered it up.
I suspect that the problem is with the switching diode D2. Either this diode is defective, the wrong part, or perhaps it is interchanged with D1. D1 is a garden variety rectifier. D2 needs to be a schottky fast recovery diode. A regular diode at location D2 will not clamp the inductive kick of L1 fast enough and allow a negative voltage to be applied to both IC1 and C2. This would explain while those two parts are failing.
My suggestion is to replace IC1, D2 and C2 with known good parts. Verify the markings on D2 versus the datasheet and make sure it is oriented in the circuit correctly. From the picture, I think I see an “R” on that component. Since “R” is not part of the IN5819 part number, this must be part of some manufacturer’s number. Once these three components are populated with known good parts, then I would have all other IC removed and attempt to power the board from a 9V battery. I think one nine volt battery should be enough to run IC1 with no load. See if you get something close to a five volt output and that IC1 runs cool. If IC1 is hot and the input rail is dragging down the nine volt battery, then something else is loading the circuit.
The USB ports on the Pi are very underpowered. They were only designed to run things like mice and keyboards, which use very little power. Unless you do some fuse mods inside the Pi, the only way to get reliable WIFI is to connect the dongle to a powered USB HUB and then attach this HUB to the Pi. I modified the fuses on one of my Pis, I can run WIFI now powered right from the Pi. However, it will still crash and reboot if I hot plug the WIFI dongle. If you want to hot plug the WIFI dongle, the only way Iknow of is to use a power USB HUB.
With the HDMI, I found that the HDMI cable must be connected at the time the Pi boots and the TV must be turned ON with HDMI selected. If it does not find a valid downstream HDMI device at boot time, it appears to then disable HDMI. I would try again with the TV connected and tuned to HDMI before you power up the PI. Some LCD monitors have a DVI connector on the back. I got a DVI to HDMI cable from Ebay and found that works as well.
MOVs will not help your crash. MOVs are useful only on power surges. For projects like OpenSprinkler, they help mainly during electric storms. Lightning strikes on the earth can send large currents through the ground for long distances. The large ground currents will induce voltage spikes in wires buried in the ground. Since the sprinkler valve wires are most often buried, this brings the voltage spikes right back into OpenSprinkler. The MOVs help dissipate these voltage spikes before they damage OpenSprinkler.
I suspect that your problem is that your 24V power supply is undersized for the current draw of your sprinkler valves. With only one valve on, the 24V power supply is OK. With two valves on the 24V power supply is marginal. As the 24V transformer heats up, its output voltage drops and when it gets too low, OpenSprinkler crashes. I would monitor the +5V on the OpenSprinkler and then activate two valves watch the voltage value and then touch the transformer to see if it is getting hot. My guess is that the transformer will start to get hot and the +5V will start to droop. If you find that the above it true, then get the current rating of a single sprinkler valve. You have to check with your manufacturer, as they vary widely. Then your 24V transformer should be rated at 2.5 times the rating of a single valve. The extra 0.5 is for current used by OpenSprinkler and saftey margin. If the 24V transformer appears to be sized OK, then something in your system is out of spec. If you have a AC ammeter setting on your multimeter, then you can check if a valve with too high a current draw or whether the 24V transformer is not putting out its rated value.
I have never used the Google calendar. However, I believe you need to make the Pi a client to use this. I would suggest reading :
The first part of this page is just information to you. The Pi runs Linux and it’s distributions come with Python already. Therefore, you just need to check that your Python version is 2.5 or higher. (I am at work now, so no Pi access for me to check the version.) If you at are Python 2.5 or higher, then you can assume that the dependencies are already installed. Dependencies is just a fancy term for “other stuff you also need” . The go to the Installing Google Data Library and start those steps on the Pi.
For all the above comments, I am assuming that you want to place sprinkler schedules on your Google calendar and have OpenSprinkler follow that schedule. To do that, the Pi has to be running something that communicates with said Google Calendar. The foundation of this appears to be Python scripts running on the Pi and the building block is the Google Data Library.
AC sprinkler solenoids draw current continuously when they are energized. Typical values for larger solenoids are 350mA inrush current and 175mA hold current. So it take 350mA to pull the solenoid in. After the solenoid moves to the energized position, it take 175mA to hold it there.
There are DC solenoids for some battery operated equipment that are latching. However, all the AC systems are a much simpler non-latching version.
That transformer should work. The 24VAC input is not that fussy. The current output is only 750mA, so you cannot have more than two zones on at a time. Most sprinkler controllers limit you to that anyway.
However, rather than purchase from Amazon and wait for delivery, I would suggest going to your local big box home improvement store. My local Lowes and Home Depot have bins full of these transformers. Being that spring is here, they are fully stocked for people repairing sprinkler systems. The two highest failure rates seem to be these transformers and the solenoids on the valves. These are usually in-stock. The good thing about the local home improvement store is that if it does not work for you, it is much easier to return.
P.S. most of these transformers fail because the output gets shorted by a wiring problem in the sprinkler system. This often blows an internal fuse link within the transformer itself. Adding a external 1A fuse can help save transformer failures. The wiring problem blows the external fuse which is cheaper and easier to replace.
I was referring to Dan’s post about his blog using Raspberry Pi with OpenSprinkler. In his zip file there is a OpenSprinkler hex file which is described as:
“A modified version of the OpenSprinkler firmware”. I did not find the source code to the mods or what exactly was changed.
Perico, I think what you want to do is an Ethernet bridge. This is doable from Linux. We have small embedded processors at work that do this. What exactly you have to enable is kind of beyond me. However, you may want to dig around the DD-WRT forums. This port of linux deals with routers and I believe the folks there should know all the setup and config files to change.
Is the source code for the modification to the OpenSprinkler firmware available? I saw the compiled hex file in the zip file and the instructions mentioned that the firmware was changed. However, what exactly that was modified was not detailed.
I saw the OpenSprinkler Pi project. It is a nice addition to the Raspberry PI. However, it will not really work for me. I need to locate the controller in a crawlspace. That is not the kind of environment that a Raspberry PI will thrive in. Also, I do not want to have to crawl in there to reboot Linux if the Pi has a problem.
I did a disassembly of the code. The text strings seem to consume about 3K. This is not a large area, but would be some savings. I also started removing the LCD stuff, as it is not needed for an OpenSprinkler mounted where I cannot see it. This has got me about 1.5K of Flash so far.
Eventually, if the user has a PI, then the original OpenSprinkler firmware could be downsized to just an Ethernet based controller that updates the shift register controlling the triacs on demand. This would free up a good chunk of code space in the AVR for a user area. It would also be compatible the the OpenSprinkler Pi project, as it would just use a different driver to communicate with the shift registers.
One drawback of expansion boards on any type of cable is that there is no data return. Therefore, there is really no data checking. If the output of the shift register were fed back to the Mega328, then the signal integrity of the cable could be verified. That way, the controller would instantly know that something failed in the cable or expansion board. This would eliminate zones being left on or failing to turn on due to equipment fails in the either the cabling, the logic power, or the shift register. Sure, the traics can still fail, but at least you would know that the correct data got to it remote location.
In my opinion, the difficulty of running a Zone Expansion Board on a long cable is signal integrity of the serial clock. On a long cable, you will experience significant ringing. This ringing can cause double clocking on the shift registers. The most important part of such a serial link is the serial clock. If you have ringing on the data line or the register clock line, it is not too big a deal as it does not cause bad effects. Ringing on the serial clock line is a killer. The usual method of dealing with this is to use controlled impedance drivers and matching controlled impedance cables. The standard cable used in irrigation is not controlled impedance, so it makes it difficult to solve. There are various clock snubber networks you can try. However, you really need a good oscilloscope to optimize these.
Are you planning on sending the 24V AC for the same cable? If so, then be aware that you can get a voltage differential across the cable due to the large currents in the solenoids. Once you get it working, you will want to do extensive testings. It may appear to work with any one valve on, but then fail when multiples are attached or fail to shut off.
Thanks for the part number of the Ethernet jack, Ray. That will help anyone else attempting to do this same thing. For me, I already cut the traces on the PCB, so I will just stick with the Pulse Ethernet jack. I ordered this jack based on the Version 1.1 BOM. At the time I ordered, I had no clue that the Version 1.1 PCB I had was different than the Version 1.1 BOM.
As a side note, I had too many printf statements in my code and I was not waiting long enough for DHCP to complete. It does get a IP address and I can view to web page from my local network. So it is all working with version 1.5 firmware.
OK, rewiring the Ethernet jack to the ENC28J60 fixed the link problem. The board is now linking to the Ethernet switch. I still fail to obtain a IP Address, so future battles remain.
As a hint for anyone else with this issue, the datasheet from Digikey for the Pulse Jack is not correct. They show a pinout for the jack that is labeled PCB component side. What they should have said was PCB solder side. Due to their incorrect drawing , I wired it up 180 degrees out the first time. When the wiring is correct, you should read only a few ohms resistance between pins 16 and 17. Likewise, only a few ohms resistance between pins 12 and 13. The low resistance is the windings of the transformer in the jack. If you read 100 ohms, then the jack is not correctly connected. Also pins 16 and 17 should show only a few ohms to +3.3V. This is the center tap of the transformer making that connection.
I think I figured out at least part of my problem. The PCB that I am using, dated Dec 2011, appears to have the pinout of the Ethernet Jack incorrect. The PCB was fine for the kit that I purchased, which was the sprinkler expansion board. My error was assuming that I could then upgrade to the full board later by adding the missing components.
My next step will be to remove the Ethernet Jack and see if I can cut the existing traces so that I can jumper wire the board to the correct configuration.