Live demo — data resets daily at 03:00 UTC. Nothing you enter is saved. Server UI →

ESH10000589 - 4 DPDT Relay Module

Overview

The ESH10000589 is a relay switching module providing 4 double-pole double-throw (DPDT) relays with LED status indication and adjustable luminance control.

Description

The 4 DPDT Relay Module offers four high-quality DPDT relays suitable for signal routing, switching, and isolation applications. Each relay features break-before-make operation and integrated LED status indication.

Key Features:

  • 4 DPDT Relays: Double-pole double-throw configuration

    • Break-before-make switching
    • Suitable for signal and low-power switching
    • Individual relay control
    • LED status indication per relay
  • LED Control: Configurable status LEDs

    • Adjustable luminance (0.0 to 1.0)
    • Per-relay status indication
    • RGB LED driver

Hardware Details

Relay Control:

  • Chip: NXP PI4IOE5V6416 GPIO expander
  • I²C Address: 0x20
  • Control: Digital signals for relay coil drive
  • Relay Type: DPDT (2 Form C)

LED Driver:

  • Chip: TI LP5024 RGB LED driver
  • I²C Address: 0x28
  • Channels: 24 (8 RGB LEDs)
  • LED Control: PWM-based intensity control

Channel Naming Convention

All channels follow the naming pattern: {ModuleIndex}.ESH10000589.{ChannelName}

Example: Module at position 0, relay 0 would be: 0.ESH10000589.RELAY0

User-Accessible Channels

Channel Name Type Direction Usage Description
RELAY0 Digital OUT UserAllocatable Relay 0 control (false=open, true=closed)
RELAY1 Digital OUT UserAllocatable Relay 1 control (false=open, true=closed)
RELAY2 Digital OUT UserAllocatable Relay 2 control (false=open, true=closed)
RELAY3 Digital OUT UserAllocatable Relay 3 control (false=open, true=closed)
LUMINANCE Ratiometric OUT UserAllocatable LED intensity control (0.0-1.0)

Total User Channels: 5 (4 relays + 1 luminance control)

Channel Configuration

Relay Control

Each relay channel accepts boolean values:

  • false: Relay open (de-energized, NC contacts closed)
  • true: Relay closed (energized, NO contacts closed)

Luminance Control

Luminance channel accepts values 0.0 to 1.0:

  • 0.0: LEDs off
  • 1.0: Maximum brightness

Programming Interface

Set Relay State:

SetValues(
    new[] { "0.ESH10000589.RELAY0", "0.ESH10000589.RELAY1" },
    new[] { "true", "false" }  // Close RELAY0, open RELAY1
);

Adjust LED Brightness:

SetValues(
    new[] { "0.ESH10000589.LUMINANCE" },
    new[] { "0.5" }  // 50% brightness
);

Read Relay State:

string[] states = GetValues(new[] { 
    "0.ESH10000589.RELAY0",
    "0.ESH10000589.RELAY1"
});
// states[0] = "true" or "false"

Relay Switching Sequence

The module uses a 3-phase switching sequence to ensure break-before-make:

  1. Make Phase: Energize relay coils (30ms)
  2. Idle Phase: De-energize coils to minimize power consumption

This sequence occurs automatically on SetValues() or Update().

Best Practices

  1. Batch relay operations: Use SetValues with multiple relays for synchronized switching
  2. Allow settling time: Wait 30-50ms after switching before measuring signals
  3. Minimize switching frequency: Relays have limited cycle life (typically 100k-1M operations)
  4. Set appropriate luminance: Reduce LED brightness to minimize power consumption
  5. Verify relay state after power-on: Relays default to open (de-energized) state

Module Initialization Sequence

On Reset(), the module performs:

  1. Clear existing channel list
  2. Create LED luminance control channel (default: 1.0)
  3. Create relay device with GPIO expander and LED driver
  4. Add 4 relay channels (RELAY0-RELAY3)
  5. Reset hardware (all relays open)
  6. Initialize LED driver
An unhandled error has occurred. Reload 🗙

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.