I2C Relay Module


I’m working on my own module. It is a relay module. It is different from the module already sold by Seeed Studio. My module communicate via the I2C two wire interface. It uses the PCF8574 I2C I/O expander to drive 8 120/240 Volts, 5A relays.

I have used “Saturn PCB Design Toolkit” to calculate route width. I really want to make my module Gadgeteer compliant. If someone notes something missing or wrong, do not hesitate to let me know.

I’m also interested to know if this module could be interesting for someone.

The module also uses an external power supply because it drives about 0.7A with all the relay activated. The IC responsible of the 5V supply is a MuRata OKI-78SR.

The routing…

I2C addressable, switches to alter the I2C address so multiple of them are able to be used at once on the same I2C bus, sounds good !

More modules, awesome :slight_smile:

Someone’s Christmas lights will be very happy!

With a few SMT components, it looks like you could reduce the board size considerably.

How would you chain boards together? Would each board require a separate socket? This board is screaming to be DaisyLinked :slight_smile: Then you could stack them as high as you wanted.

I’m a BIG fan of the OKI-78SR. It’s a truly awesome device. I believe there’s someone here who either does or previously worked for MuRata.

I2C is inherently “chainable” as long as there’s enough sockets. You’d need a downstream socket on the board, and I don’t believe the Gadgeteer software knows how to deal with sockets that aren’t directly on the mainboard, but the hardware is fully capable, thanks to the I2C bus.

That was my point. There aren’t that many I sockets. A guy on another thread wants 50 relays…

That’s why I suggested making this a DaisyLink board. DaisyLink is built on I2C and it gives you the downstream port. A little more work but if you’re already going to have a micro on the board then why not go for it?

Thank you everyone for your advices and comments.

Let me answer / ask some questions.

[quote]With a few SMT components, it looks like you could reduce the board size considerably.

I think I have not the suited tools to do this. Thoses component are so tiny. What do you use to work with those little devices?

I am aware of the daisyLink, but this is not the way i want to take. I want my modules (this one is the first of a serie) to be simplest as possible. I don’t want a microcontroller on the board to handle DaisyLink. Instead, I will use a multiplexed technology. I will design a board called the “I2C Backplane”. This board will use I2C multiplexer to handle up to eight extending sockets. This module will allow you to use or not the multiplexing mode. That way, combining dip switch adressable devices and multiplexing capability you will be able to have a very large set of I2C modules on the bus by using only one “I” socket on the mainboard.

If you look at my schema, you will notice an I2C Microchip EEPROM “24C02CP”. This EEPROM will contains basic coded information. That information will indicate the type of the module. My drivers will scan the bus for this type of information.

Basically, I’m trying to reproduce something similar to industrial PLC.

Sure you do. All you need is a soldering gun, flux, tweezers and maybe a magnifying glass or goggles. Search this forum for Gus’ videos on SMT soldering. It’s really not that hard. You should give it a try.

The first one is here:

I think DaisyLink is overkill for this application. A simple I2C socket board would cover you, I believe.

I’ll be ordering the 4 relay module soon (when I finally have some time to do some gadgeteering). I would love to have a module with more relays (daisylink version would be a very nice addition).

I agree with @ ianlee74:

SMD soldering takes a little bit of getting used to, but with a decent magifier, it’s pretty easy. And I find the end result significantly more polished looking, aside from the fact that it will most likely help you reduce the size (and hence, cost) of your PCB.

I appreciate all your comments. I’m actually redesigning my board with many surface mount components. I will probably reduce the number of terminal block to reduce size. Actually, each relay exposes his NC/NO conacts. But this take a lot of space on the board. I will change the type of 4 of the relays. They will be only SPST. Reducing cost and size.

For the moment, I stick with DIP packaged IC. I will post the result soon. I expect significant size gain.

I need help with my module. The I/O expander I’m using are based on 5V TTL. So, how could I convert 3V CPU pin to 5V? 3V volt is causing bad quality data exchange between mainboard and my module.

I’m not sure to be clear on that :-[

But if someone understand what I mean thanks in advance for your help.

Take a look at my MIDI module thread. I had to solve exactly the same problem. Gus recommended the approach I ended up using.

Here’s the part. It’s SMD and pretty tiny, so order extras :slight_smile:

That’s assuming you can’t find a 3.3v logic ready version of the IO expander.


BTW, that’s one way data in mine. I assume each pin is I or O, not both.

@ Pete

I think I found exactly what I’m looking for. Take a look at that http://www.nxp.com/documents/data_sheet/PCA9517.pdf

There is a print screen of the second version.

You could use SMD versions of the transistors, and move the LEDs down behind the relays, and save some more board space :slight_smile:

I do not understand?