Shopping Cart

Your cart is empty.

Your cart is empty.

8 Channel I2C Interface Relay Module for Arduino, Raspberry PI, Home Assistant YAML, ESP32, 10A Peak LED Indicator, SPDT Switch Contacts, AC DC Voltage Control, I2C I/O pin Expander

Free shipping on orders over $29.99

$34.99

$ 14 .99 $14.99

In Stock

About this item

  • LEDs indicators for each electromagnetic relay channel. Relays with SPDT switch contacts: Normally Open, Common, Normally Closed.
  • Up to 8 boards can be connected to I2C bus line. The module contains an PCF8574 or PCF8574A chip. Working temperature range - 25 C ~ + 80 C
  • Comes with different slave address 0x27 or 0x3F, depends on the batch. Relay expected life Mechanical - 10,000,000 operations min. Relay expected life Electrical - 100,000 operations min. at rated load
  • Relay dielectric strength 750 VAC, 50/60Hz between contact. Maximum current per relay – 10A peak. Maximum current @5.0V – 700mA. Operation DC voltage – 3.3V and 5.0V
  • AC controlling voltage range 100…240V AC, AC voltage frequency range 50…60Hz. compatible with plastic din rail holder, size 100mm


8 Channel Electromagnetic Relay Module with I2C Interface
- PCB board dimension 72mm x 150mm
- Relay contact resistance 100 milliohms max. ( initial value )
- Relay insulation resistance 100 MOhm min. (DC 500V)
- Relay operation time 8 ms max
- Relay release time 5ms max
- Relay dielectric strength 1,500 VAC, 50/60Hz between all elements
- Each board can be assigned an I2C address between 0x20...0x27 (0x38...0x3F) by the DIP switch
- The logic power supply voltage should match the voltage levels on the I2C bus. The SDA and SCL lines are pulled up to VDD with 5.6k resistors on the relay module.
Please contact with us for more resources


Ben Roberts
2025-07-12 17:50:07
I connected this relay board to a wESP32 board so that I could power the entire thing off of a single PoE connection and run ESPHome. Everything has worked as expected, although the pin numbers in ESPHome are opposite of the relay numbers marked on the board. For example, pin #0 is Relay #8, pin #1 is Relay #7, etc. This was very simple to fix in ESPHome by just aliasing each connection to match the markings instead of the pin designation. Example below.-----i2c: #Use your own GPIO here sda: 33 scl: 5 scan: true id: bus_apcf8574: - id: 'pcf8574_hub' address: 0x27 pcf8575: falseswitch: - platform: gpio name: "PCF8574 Relay #8" pin: pcf8574: pcf8574_hub number: 0 mode: output: true inverted: false-----
Douglas Lonngren
2025-06-20 17:39:38
The board came quickly and works as described. I am very pleased with this purchase! It could use some more documentation. No documentation was included, but there are a few sparse things online such as sample code. The description says it has an "I2C address between 0x20...0x27 (0x38...0x3F) by the DIP switch". I couldn't find any indication on the board which address range I received. Also the DIP switch settings are a mystery. On my board putting a DIP switch in the "ON" position corresponds to a zero in the address field. For an address of 0x21 my switches are: 1- ON, 2- ON, 3- OFF. To work it all out I wrote a looping test routine and moved switches until relays started clicking. If my code hadn't worked it would have been a pain to debug.Couple other things to note. For my system I found that controlling the relays was exactly opposite to the sample code. If the sample code set a bit high to operate the relay I had to make that bit low. Also on my system I found that toggling the LS bit caused the relay labeled RELAY #8 to toggle. None of this was a problem, just something to be aware of. A lot may depend on the system/processor you are using and how the I2C drivers operate.Finally, the board was shipped in a padded envelope. The board was wrapped in bubble wrap but both I2C connectors were bent over. Fortunately they could be straightened and seem to be fine. I think it would be better to ship this in a box, or have more padding.Update: The seller reached out to me and is working on correcting the item description to include more information. Such a quick response made a 4-start review into a 5-star review.
A Customer
2025-05-31 15:37:52
The product works as described. Used it on a RPI 5 to control irrigation valves. NOTICE: It does have onboard pull-ups on the data and clock lines. It works with 3.3 and 5 volts just not together. I would have liked to see them as optional jumpers so I can power the relays with 5v and logic 3v3 but they can be removed, not a big deal.
Neo Anderson
2025-03-28 10:19:55
Product exactly as described. Was able to seamlessly hook up to Raspberry Pi 4 and communicate to the relay's over i2c. I like there is DIP switches to change the board address. Once connected, use commandi2cdetect -y 1to see what address board is set to. for reference, here are the i2c addresses:board_000 = 0x27board_001 = 0x26board_010 = 0x25board_011 = 0x24board_100 = 0x23board_101 = 0x22board_110 = 0x21board_111 = 0x20
BBQing in TX
2025-02-09 10:02:55
As others have noted, this has some idiosyncrasies and needs better documentation. That being said, I'm entirely new to this and got it figured out pretty quickly. The key is the chip name in the description, the PCF8574, its simply an I2C I/O pin expander. Combine that with figuring out the I2C address after start up and adjusting the dip switches if you need to, its straight forward, each relay can be controlled by pin call outs.I'm using this with ESP Home in Home Assistant. I added the PCF8574 chip as an I/O interface and then could control each relay via pins. Now for some reason the pin to relay numbering is backwards, Pin 0 is relay 8, pin 1 is relay 7,..., pin 7 is relay 1. That and the relay switches are inverted. So here is my YAML code to expose all 8 relays. The first bit establishes the hub and its address, the rest is creating the switches via pins on that hub. Best of luck.pcf8574: - id: 'pcf8574_hub' address: 0x27 pcf8575: falseswitch: - platform: gpio name: "relay_01" pin: pcf8574: pcf8574_hub number: 7 mode: output: true inverted: True id: relay_01 - platform: gpio name: "relay_02" pin: pcf8574: pcf8574_hub number: 6 mode: output: true inverted: True id: relay_02 - platform: gpio name: "relay_03" pin: pcf8574: pcf8574_hub number: 5 mode: output: true inverted: True id: relay_03 - platform: gpio name: "relay_04" pin: pcf8574: pcf8574_hub number: 4 mode: output: true inverted: True id: relay_04 - platform: gpio name: "relay_05" pin: pcf8574: pcf8574_hub number: 3 mode: output: true inverted: True id: relay_05 - platform: gpio name: "relay_06" pin: pcf8574: pcf8574_hub number: 2 mode: output: true inverted: True id: relay_06 - platform: gpio name: "relay_07" pin: pcf8574: pcf8574_hub number: 1 mode: output: true inverted: True id: relay_07 - platform: gpio name: "relay_08" pin: pcf8574: pcf8574_hub number: 0 mode: output: true inverted: True id: relay_08
BitCounter
2025-02-07 16:27:02
I used it on a Raspberry PI 4 with Python. bitwise... on is off and off is on.#!/usr/bin/python3import smbusimport timebus = smbus.SMBus(1)addr = 0x020for i in range(0, 256):# z = i ^ 0xff # exclusive or# z = i | 0xff # or# z = i & 0xff # and z = ~i # swap 0s and 1z bus.write_byte(addr,z) time.sleep(.02)