How to design redundancy for relays?

So I want to actually build a redundant system. Some of these components that we use are more than a bit cheap-ish, and I'd like to plan for the inevitable failure.

Specifically, I'm using a 2 channel relay module, and I'd like to bump it up to 4 - with the caveat that one set of relays is a contingency, in case of failure of the first set.

So the question is, how would I handle this in the code? What does a (software) feedback loop for a relay failure look like?

It is safe to assume that I already know how to program for a standard relay configuration...

What failure scenarios do you envisage ?

Burned out contacts?

Welded contacts (shorted) ?

Supporting electronics failure (opto coupler, driver transistor etc.)

I'm not really sure about supporting electronics...

I have seen tons and tons of bad reviews for some of the more common Arduino application components, and crappy relays are right up at the top of the list. In fact, I've got a bad one, straight out of the gate, sitting in front of me. It seems that most of what is out there, are boards with Songhe relays.

I've got a couple of projects that I'm toying with, and the vision is to be able to not have to tend to them - maybe for a couple months, at a time. (I will monitor remotely by realtime data transfer over wifi to a webapp)

Exactly my experience also. Dissecting the relays showed welded contacts, piece of insulation material stuck to one of the contacts. Contacts so misaligned they could not contact.

You get what you pay for. These are hobby/learning devices. Use SSR, solid state relays, either DC or AC for your project. DC SSR's are just a transistor driving a MOSFET and you can either make or buy the DC SSR. Both types operate directly off a 5 volt pin from your Arduino. Some may operate off a 3.3 volt pin.
Good luck, Paul

1 Like

So don't buy crappy relays.


Thanks for your feedback, Paul. Do you have any specifically that you can recommend that are 120VAC, 15Amp rated? 2 channel are fine.

I'm still wondering if there's any validity to the concept of building redundancy, though. Any thoughts?

All SSR are single channel. You still need to identify each scenario and follow through on what you want to do when it happens.

Wow, abso-fricking-lutely brilliant post. Thanks, mate.

Oh, sorry, I didn't realize that was a brand. I thought that it was some terminology that I wasn't familiar with.

OK, the next question... Is there a resource that addresses failure scenarios?

Very new to this...

EDIT: on second read, SSR must certainly mean the aforementioned, "solid state relay" :confounded:

I have usually gone to EBAY for my solid state relays, until I salvaged a bunch from a large convection oven.

Ah, that's brilliant. I don't even know enough yet to know where I can salvage things. But that helps. Thanks for the tip.

Salvaging stuff has it's ups and downs.
Up when you find all kinds of stuff you think you might need.
Down when you have so much you give most away and then discover you can't find what you need because you gave it away!


Since I'm a mathematician, and not an electrical engineer... help me understand something. How do we make household components work on our project boards - given that many of those systems seem to operate on 12V?

I'm asking because I have a small pile of junk here, and there just happens to be a refrigerator control module, and a relay. It is listed at 12VDC

I would scrap the idea of going through scrap to get a usable part.

I can't think of a way to use two relays in such a way that one could fail (either open or shorted) and the other will take over. You could use two relays to control which failure is the most acceptable.

There are similar boards to the Songle boards that use Omron SSR's. These are for AC usage only and have some leakage when OFF. This means OFF is not 100% OFF but 98% OFF

Thanks for your feedback, Paul. Do you have any specifically that you can recommend that are 120VAC, 15Amp rated? 2 channel are fine.

You will not find boards like you have with "good industrial type" relays. The relays you can get will be a relay only, no board, no associated circuitry.

To recommend a relay you must specify voltage to be switched and AC or DC.

As has been pointed out, it is quite difficult to design a circuit to automatically isolate/replace a bad relay in such a way that it covers all the possible failure scenarios (contacts shorted by welding, contacts permanently open, contacts with moderate resistance getting hot) and does not itself introduce too many further points of failure.

If you are designing a system for redundancy, you probably do it at a higher module level instead of a the individual component level. Then you'd isolate and substitute the entire module if its behaviour falls outside of the normal parameters.

The granularity of the redundancy must take into account all sorts of factors including costs, reliability, consequences of failure etc. etc. and is not usually given much attention in the hobby electronics world.

Well now.

They would be for AC usage only as they employ TRIACs which only turn off as the AC passes through zero voltage.

And the "leakage" is due to the built-in snubber components - a series resistor and capacitor in parallel with the TRIAC in order to suppress dV/dt tripping.

The post about not buying crappy relays might not have been very actionable, but it was correct. Buying relays from a known reliable manufacturer, from a trusted point in the supply chain is what you should do it reliability is important. As long as you use relays within their specs, they are quite reliable. Here is an example. I haven't verified that it will fit the holes for the Songle relay (but it should) so you'll have to look at the footprint in the datasheet. Omron has been making quality relays for decades and this should be a satisfactory replacement.

1 Like

No, they're well below crappy wiring and inadequate or incorrect power supply, buggy software that drives them.

A relay should last a LONG time if it's used within it's specs (and if it's from a reliable manufacturer). A rating of 100,000 cycles seems common.

I'm sure redundancy is possible, but as has been said it's not "easy". If you put two relays in parallel it will still work with one relay is stuck open, but not if one is shorted. Two in series are the opposite where it won't work with one stuck open. And with the relay-count doubled you've doubled the probability of a failure!

I only remember seeing one outright relay failure in my life and that was a horn relay in an old car. (A rather harsh environment under the hood.)

Where I work we have a device with 16 relays. Once in awhile one is returned with a failure, but it's never returned because of a relay failure. Sometimes the relay is out-of-spec (the on-resistance is too high and our automated test checks for that) but the relay was still working and it was returned for a different reason.

A solid state relay can "last forever" but they tend to be less "electrically rugged" and can burn-out instantly with excess current or voltage. Also, AC & DC solid state relays are not interchangeable and sometimes there is a minimum voltage & current.

You can also find SSRs that operate from 5V at low current so they can be directly driven from the Arduino, whereas regular electro-mechanical relays require a driver circuit for the coil.

There was a recent post where someone was using an SSR for LED Christmas lights and there was enough leakage with this low-current load that the LEDs would dim instead of turning off.

Yes, I have no doubt about the validity of the statement; it was the lack of any substantive input, that made it pure shite. It's not really helpful to state the obvious, but then fail to qualify anything past one's own crotchetiness.

However, your reply is more in line with what one would expect from a learning site, for people of all skill levels. In fact, I had been looking at that similar relays on that site, as a result of this conversation.

I don't quite understand everything about properly selecting relays, I have to admit. There is a "must operate" and a "must release" voltage, and I think that this is what I'd correlate to the "trigger" from my digital pin. But maybe I'm incorrect? (I've not used anything other than an Arduino marketed module, to this point)