When powering the IOShield via 24 VAC I need to short the 5V pad and the middle pad. Do I also need to cut the trace between the middle pad and the 3.3V pad as well or can I leave the trace intact?
You don't really need to do anything with that jumper, unless you have a specific need or purpose.
That pad allows you to switch to 5V power from the buck regulator instead of using the 3.3V coming from the Moteino. If you used it, you would have to cut the existing jumper and solder the other side, otherwise 5V would clash with 3.3V and you wouldn't want that.
I have to add a page to explain how this works...
Just to make sure I understand ::). When powering the IOShield from the buck regulator I solder the 5V jumper and cut the 3.3V trace, correct?
No, you don't have to (assuming you will plug a Moteino ontop of it).
The buck gives 5V to your Moteino. Then by default the Moteino powers the IOShield. So you don't have to change anything about the jumper.
Thanks for the clarification. I need to look at my sprinkler controller to figure out how I can integrate the IOShield.
I would advise doing what I did ... first try to figure out as best you can what triggers a station ON. If your controller is like mine you will need to put a HIGH between 2 pins and that triggers the gate of a TRIAC which sends 24VAC to your valves. Then you can test using a small battery which helps you find your GND relative to the pin you need to pull HIGH.
Then you can figure out how to power the IOShield from 25VAC.
Since controllers are different there isn't a by-the-book example that works for all but it's a good exercise to learn how to debug a system. Taking baby steps and understanding what you're doing also helps avoid blowing stuff up along the way :)
Thanks for the tip. I have a Rain Bird controller similar to the one in your video. My thought was to power the panel and turn on zone one. I will use my voltmeter to see which pin(s) have a voltage and that should indicate zone one. I am not sure where to hook into ground though. Can I hook into the ground wire on the 24 VAC supply?
In my setup the actual GND (which is one of the 24VAC transformer inputs) for the controller PCB was not used.
Instead I noticed that the gates of the valve TRIACs have to be biased relative to the other 24VAC input. So effectively I had to use the 24VAC inputs reversed from what they were to the controller PCB. That meant my GND was the controller's 24VAC and vice versa. So now my IOShield regulated 3.3V (first 5V through buck then 3.3V from Moteino) was the perfect bias that I could use to trigger the TRIAC gates.
In the large connector on that controller PCB you can use a multimeter to find where the GND and 24VAC are (GND on the PCB should be easy to find since it's either filled or has larger traces). Then find what will bias a zone's TRIAC. Actually I would start tracing where the bases from the TRIACs go to the connector. They likely connect straight to that large connector to the front panel LCD controller board. So identify a gate for a triac, then if you're in doubt, manually start that zone to see what happened to the voltage on that TRIAC gate. So that should give a very good idea what you need to do.
IOShield will allow you to have a 3.3V bias (difference in voltage) between it's own GND and the outputs. You just need to find where to apply that bias in order to trigger the TRIAC gates.
I hope this wall of text makes some sense.
Felix,
It does make sense. I have a little experience using TRIACS but it has all been DC circuits. I will look at the controller more in depth this weekend. Thanks again for the help.
Felix,
I had time this weekend to assemble and test the IOShield. I am able to control the IOShield powered from an FTDI Adapter. I also successfully powered and controlled the IOShield from the 24 VAC sprinkler controller supply. I did not connect any IOShield outputs. Next I determined which pin controlled each zone. The way I determined that was to measure the voltage between the pin and the green ground wire from the 24 VAC supply. The voltage I measured was -5 volts. If I am not mistaken this corresponds to what you described above. Does the IOShield need to apply a negative voltage to the TRIAC? At this point I am unsure what to do next.
That's the tricky part of this whole thing. If you determine there's a negative bias needed , then you need to invert the 24VAC input to the IOShield so that the TRIAC's negative bias becomes positive and then you can drive them with the IOShield outputs.
So if I understand properly the IOShield outputs a positive 3.3 volts or positive bias and my controller requires a negative bias. So the trick is to change the bias of controller TRIACs to a positive bias. Correct? And the way to do that is to swap the 24VAC inputs to the controller?
Thanks for all the help so far. This has been a very fun and interesting little project! This has helped peel back the veil on how things I take for granted around the house work. That and I haven't blown anything up yet. :)
Yes I think that should work. If you think about it, one of the 24vac inputs becomes the GND for the controller.
But you don't have to make that the same GND for your IOShield, instead you can use the other 24VAC input as a GND. Then when you activate one of the 16x IOSHIELD outputs (make it HIGH) that's effectively a negative bias with respect to the other GND. That's what I had to do for my sprinkler to be able to use that bias to trigger the TRIACs.
I will take a look at it this weekend. Thanks again for all the help.
I have worked on trying to get the IOShield to work with my sprinkler system the last couple of weekends. I have not had much luck so I thought I would post a picture of my sprinkler system, minus the controller panel, and what I have done in the hope someone could tell me what I am doing wrong.
In the upper left of the picture is a set of vertical pins. They are connected to the controller via a ribbon cable. This is where the IOShield taps into for power and to control the solenoids. The top pin is 24VAC as measured with my voltmeter between it and the light green wire which is ground. The second pin is ground for the controller. When I hook up just these two pins, the controller powers up. It is these two pins that I have used to power the IOShield. The bottom 10 pins are used to control the different zones. I traced those pins to the triacs located in the modules in the middle of the picture. I also turned each zone on using the controller and one wire between the pins. I then connected the IOShield up to the two upper pins to power it, GND->GND PWR->PWR. The IOShield powered up and I was able to control it via the web interface. I then connected the number 1 output pin from the IOShield to the number 1 zone pin and activated the number 1 output pin on the IOShield, nothing happened. That was expected. I then swapped the pins powering the IOShield. This time the number 1 output pin from the IOShield turned on without my having to activate it via the web interface (the LED came on by itself). I went over to the Zone 1 solenoid and it was buzzing and there was only 18volts applied to the solenoid. I also tried swapping the two red wires with the same results.
I have tested the controller after I made these changes and it still works. I also tested the IOShield after and it still is working.
Am I not sure what to try next.
Thanks again for the help
I think this is very similar to my controller, except mine is not shrouded in this white plastic and I could see everything as shown in my IOShield demo video. It's also the same brand.
If that assumption is true...
Quote from: ssmall on November 11, 2015, 03:53:11 PM
In the upper left of the picture is a set of vertical pins. They are connected to the controller via a ribbon cable. This is where the IOShield taps into for power and to control the solenoids. The top pin is 24VAC as measured with my voltmeter between it and the light green wire which is ground. The second pin is ground for the controller. When I hook up just these two pins, the controller powers up. It is these two pins that I have used to power the IOShield. The bottom 10 pins are used to control the different zones.
... then this is what I did:
- once I identified the 2 power pins (24vac and GND), I swapped them so the controller GND is my 24VAC. This whole thing is floating if it's going through a transformer so GND can be anything you want safely without any ground loops issues (if this was galvanically connected to real earth GND). So that gave my my IOShield a positive voltage that was negatively biased with relation to the rest of those pins (the zone pins) in the vertical connector. So the outputs from my IOShield would basically connect straight through to those zones and activate them. You can try the same thing step by step.
- invert the power inputs, IOShield should power up
- you now have 3.3V power coming from the Moteino - measure between this 3.3V and any of your zone pins. There should be a negative bias (as if the 3.3v were the ground of the measurement). If so try to manually connect the IOShield 3.3V to one of these zones, and if my theory is right then that zone should go ON. At least that's what worked for me. These solid state TRIACS need very little bias to turn on. If that works, then the IOShield will do the same, apply 3.3v to the outputs and then you can just connect the IOShield outputs to the zone pins and you're done.
To avoid damage to anything, if you're not clear keep asking questions and I'll try to be more detailed but now that you're fairly familiar with the innards of your controller this should make sense.
I know this is confusing to newcomers but it's just the way these controllers work and that's what you need to get them activated without really spending a lot more money on designing a whole new unit. I opted for a simple shield that when wired correctly will just make for a nice extension and minimal spending and waste. The key is in finding that virtual ground that you use as the high side of the VAC source.
Felix,
I wired up the IOShield as you specified by using the two pins that power the controller. I swapped 24VAC and GND to power the IOShield and connected output pin one from the IOShield to zone one on my sprinkler system. I then activated the IOShield pin from the web interface. Unfortunately this did not activate the solenoid . If there is something else I can try or if you would like me to post a picture of what I did, please let me know.
Thanks
Without tapping into your controller I cannot determine what is required to be wired. Me just saying do this or that doesn't mean it's going to work, it's only an indicative based on some assumptions. You will need to verify those assumptions and actually be able to find what will trigger the TRIACs. That's all there is to it, find what will trigger the TRIACs. If you indeed have TRIACs, they should require little voltage on their bases. I used a small Lipo battery to do the testing once I theorized what needs to be done (rather than just wildly connecting wires just to see what happens ... or what blows up). When you can trigger a TRIAC with a Lipo (which is close to the 3.3V operating voltage of the IOShield) then the battery GND becomes the IOShield GND, the rest I think I already mentioned before.
So find what will trigger the TRIACs. The front panel (the one that connects via the ribbon cable) does just that. Find the digital GND of that, and then figure out what the other zone pins do when they activate the TRIACs. Then repeat that with the IOShield and you are done.
Just wanted to wrap this up. I wasn't able to get the IOShield to control my sprinkler controller. I decided to get a bank of relays and use the IOShield to control relays. I hooked up the relays directly up to the valves. The relays were 5v, so I just needed to switch the IOShield over supply 5v and I was done. The IOShield is great piece of work!
Thanks for the follow up, indeed the relay approach is probably easier than trying to do direct logic driving of the TRIACS. Good work Steve :)