RelayISOx16 Problem enabling relay, enables all relays

I have used this board, and finally ended up with an RMA back to the manufacturer.

If you use it around large power sources, (anything that creates noise), it will reset the board, and given that it fails to an “On” state, and was issued an RMA.

Initially I was using it to control a Fridge / Hair Dryer which was basically a poor man’s temperature chamber for moisture calibrations, and every time the hair dryer was activated, the board would glitch & reset.

I finally had to abandon using the board, and use discrete outputs to control SSRT relays, (3v-30v coils, solid state), and the glitching issues have disappeared, while controlling up to 30hp motors.



I have the exact same problem described by info@

When i have no load attached to the relay everything works fine, when i attach load (in my case a 12V waterpump) the relay sometimes enables all relays when i only enable relay1 in the code.

Is there any solution to this problem yet?

Thanks in advance!

@ AKADooIE - We are investigating and will get back to you.

I’m developing too using relay x16 board and I’m having the same troubles.
I tried many ways but nowadays none has worked properly to solve the issue.

For example I tried to put an EMI/RFI filter between 12v power supply and the relay x16 board (+12v and GND pins) because I thought that some noise/spike in 220 volt (that came from power supply) would cause the relay board “madness”… but this wasn’t the solution!
Now I would have liked to try to connect the board relays to other 220 volt relays to understand if some noise could come from the 220volt load … but I didn’t have much time to try.

What can I do to help you in finding a solution?
I didn’t write about this issue before because I thought I was the only one to have this kind of issue! :wink:

I’d caution anyone actually using this module for “real” use cases. If you look at the schematic, it just uses a logic shift register, which are totally subject to a sequence of bits arriving cleanly and without interference, and if there’s a perceived short glitch on the clock line your bits will arrive out of sequence for what you expect, and potentially activate relays you weren’t expecting to.

you can change driver like this:

@ Brett: Will that Hyperlisk said on post #64 in the following thread solve my problem?

That post circumvents the shift register / logic chip. If that is your problem (and I’m not saying it is) then you could see benefit. But its all up to you to deal with it…

@ AKADooIE - We have looked into it, and as Brett said, we do not advise using this module for production. It is useful only for prototyping a product and the use of shift registers can introduce issues, like the one described in this thread.

Technically it can be used safely if the default state on power up is not a concern until the system boots on couple seconds. An example is a sprinkler system.

actually Gus, the concern I have is not so much boot state (which I agree can be a bigger concern) but the fact that a lost bit (through interference of the serial or clock line/s) has the potential to turn on a whole different set of relays than you intended.

@ Brett - yes only for that one transaction. But if you have cliches then many things will happen beside that, like a system crash :slight_smile:

no, a glitch affecting a data signal doesn’t necessarily lead to a system crash, but certainly a relay crash :slight_smile: It certainly CAN lead to more but doesn’t have to be.

Think about the scenario where there’s enough interference on the signal cable to spuriously trigger the CLK line, to the point that the shift register reads that as a signal transition. Then your sequence of bits that gets shifted into the register are off by one - meaning the relay you want to turn on could be off and the one next to it on.

A glitch on the memory data lines will crash the system. This is what I meant.

What you are saying is possible though

We explored this issue and we think this will be a good fix to prevent the relays from tripping when you select a certain one.

[em]PLEASE NOTE:[/em] [em]This will not stop the relays from activating when you first power on the board as the shift registers do not have data in the buffers and are activating the relays from their current unknown state. Once data is pushed to the shift registers, the relay control should be stable with this fix.[/em]

Attached is a picture to better illustrate the proper fix:

You will want to completey remove the whole pins (circled in red) from the connector board as well as from the relay board. This is to prevent 5V power from the Relay board.

You will also need to short R2 (circled in red). This will provide 5V from Gadgeteer board.

1 Like

Has anyone tried Aron’s fix yet?

We just got another order for one of our machines today(after a very long time assuming the project was dead) and as I’m going through re-updating the SDK and relearning all of this, the issue with the x16 popped back into my head. We have all sorts of power filters, diodes, capacitors, etc along with the code I wrote to constantly slam the relay board with the current state. That’s how we limited the damage when the x16 board would randomly decide to turn everything on(controlling 6 solenoids which are doing things like using air cylinders to clamp onto things and lift them into the air…wasn’t much fun for it to sit there and randomly just slam things around).

If the solution is to just take out two pins and put a trail of solder between two other spots, I’ll go for it. But since I only have two boards, I’m hesitant to do it if it’s possibly going to make things worse or make the boards unusable.

not sure if anyone has tried it (I can’t recall any threads with this relay as the subject since this post). While the change will improve the error rates and the influences of power coming from the relay board to power the logic circuit, there still is the chance of more interference affecting signals coming to the logic chips - which will affect the relay outputs.

The fix however should be a relatively* simple one. Desolder the header pins and remove, plus solder a jumper in. Simple to re-do if it doesn’t help.

I have a spare relay board if you run into trouble. I’m in AU though.

*relatively, because in desoldering you need to take a single header out of two layers of board with a plastic spacer between. Not impossible, probably not even hard if you have decent tools, but also potentially more challenging than putting it back :slight_smile:

1 Like

I have two extra x16 relay boards for sale if anyone interested. Not used. That project was cancelled.

@ njbuch - I’m interested in a x16 relay board!