EQXRA82 Datasheet
8× Relay and 2× Analog Output Expansion Module for the EQSP32 IIoT PLC Controller.
Overview
The EQXRA82 is a relay and analog-output expansion module designed to extend the EQSP32 Industrial IoT controller with both switching and proportional control capabilities. Each module adds 8 electromagnetic relay outputs and 2 calibrated 0–10 V analog output channels, combining ON/OFF switching and proportional control in a single DIN-rail module.
The relay section provides 8 SPST-NO outputs for switching external control circuits and automation loads, with each contact rated up to 5 A at 250 VAC or 3 A at 30 VDC. Relay 1 and Relay 2 have independent common terminals, while Relays 3 to 8 are arranged in shared-common pairs for compact wiring. All relay contacts are potential-free dry contacts.
The analog output section provides 2 calibrated 0–10 V channels driven directly in millivolts. In AOUT mode each new value is applied immediately and independently per channel, while in SAOUT mode values are staged and applied synchronously to both channels when the application sends the apply trigger. Each output includes hardware overcurrent and short-circuit protection, together with firmware-monitored diagnostic feedback that detects overvoltage, short-circuit and output deviation conditions and reports them per channel.
Relay operation is supervised by the module firmware. The relay coil supply is continuously measured and reported, and supply undervoltage or overvoltage and loss of communication move all outputs to a safe state in which the relay coils are de-energised and both analog outputs are forced to 0 mV. The optional relay and analog output command watchdogs move only the outputs they supervise to that state. Because these faults clear the requested output states, the outputs remain in the safe state after the fault clears until the application issues new commands. An analog output deviation fault latches until the application re-arms the channel, while analog output overvoltage and short-circuit faults retain the commanded value and restore it automatically once the fault clears.
Like all EQX expansion modules, the EQXRA is housed in a DIN-rail mount enclosure and is powered and controlled through the EQSP32 board-to-board expansion connector. The module is automatically detected and indexed by the EQSP32 upon power-up, and firmware updates are performed through the front-facing USB-C port.
Integration is further simplified through the EQSP32 library and EQ-AI generative AI model, allowing relay outputs, analog outputs, feedback and status values to be driven with minimal development effort. This makes the EQXRA an ideal solution for automation panels that need both ON/OFF switching and proportional 0–10 V control.
Key Features
Relay Outputs
- 8× electromagnetic SPST-NO relay outputs, potential-free dry contacts
- Relay contacts rated 5 A at 250 VAC or 3 A at 30 VDC
- Independent common terminals on Relay 1 and Relay 2
- Shared-common pairs on Relays 3 to 8 for compact wiring
Analog Outputs
- 2× calibrated 0–10 V analog output channels
- Millivolt-based analog output control, 0 to 10000 mV, 12-bit DAC
- AOUT immediate update mode, applied independently per channel
- SAOUT synchronous update mode, applied on an application trigger
- Analog output feedback readable per channel in millivolts
Protection & Supervision
- Hardware overcurrent and short-circuit protection on both analog outputs
- Firmware-detected analog output overvoltage, short-circuit and deviation faults with automatic overvoltage and short-circuit recovery and latched deviation protection
- Configurable output deviation detection, per channel, enabled by default at 250 mV / 500 ms
- Relay coil supply monitoring with undervoltage and overvoltage safe-state handling, supply voltage readable in millivolts
- Three independent watchdogs: system (communication), relay command, and per-channel analog output command, plus an internal hardware watchdog as a safety backstop
- Safe-state handling: relay coils de-energised and analog outputs forced to 0 mV
- System and per-channel analog output status reporting, identifying which channel and which fault without external sensors
System & Integration
- Automatic module detection and indexing by EQSP32
- Powered through the EQSP32 board-to-board expansion connector (24 V nominal supply required on the EQSP32, 19 V minimum for relay operation)
- Front-facing USB-C port for firmware updates
- LED indicators for power and module status
- Up to 15 EQXRA on each EQSP32 controller
- Generative AI coding assistant trained with EQSP32 Library and EQXRA features
Enclosure & Environment
- Compact, 3SU-wide (54 mm), DIN-rail mount enclosure with 17 screw terminals for industrial control cabinets
- IP20 protection and −20 °C to +55 °C operating ambient temperature
Applications
- HVAC control and building automation
- Pump, fan and compressor control
- Valve and damper actuator control
- VFD speed references and motor control signals
- Lighting stages and load switching
- Alarm, signalling and interlock circuits
- Water and wastewater treatment systems
- Process and machine control panels
- Mixed ON/OFF and proportional control automation
- Distributed control systems using EQSP32 expansion architecture
Block Diagram
System Specifications
| Section / Features |
|---|
| Power Management |
| Supplied by the board-to-board expansion connector |
| 24 V nominal supply required on the EQSP32; 19 V minimum for relay operation |
| Relay Outputs |
| 8× electromagnetic SPST-NO potential-free contacts |
| 5 A at 250 VAC, 3 A at 30 VDC per contact |
| Independent commons on Relay 1 and Relay 2, shared-common pairs on Relays 3 to 8 |
| Analog Outputs |
| 2× factory-calibrated 0–10 V analog output channels, ±10 mV accuracy |
| 0 to 10000 mV control range, 12-bit DAC resolution |
| Immediate (AOUT) and synchronous (SAOUT) update modes |
| Protection & Supervision |
| Hardware overcurrent and short-circuit protection on analog outputs |
| Firmware-detected analog output overvoltage (>11.0 V), short-circuit and deviation faults |
| Automatic overvoltage recovery and short-circuit recovery with 3 s retry interval |
| Latched deviation protection, re-armed by a 0 mV command |
| System watchdog, 200 ms fixed, enabled by default |
| Relay command watchdog, 0–60000 ms, disabled by default |
| Analog output command watchdog per channel, 0–60000 ms, disabled by default |
| Internal hardware watchdog, 2 s fixed, always enabled |
| Safe-state handling on all watchdog and supply faults |
| Monitoring |
| Analog output feedback per channel, readable in mV, ±50 mV accuracy |
| Relay coil supply readable in mV, undervoltage below 18.0 V, overvoltage above 29.0 V |
| System and per-channel analog output status words |
| Indications |
| Green LED for power indication |
| Red LED for module status |
| Enclosure |
| Easy standard DIN-rail push-fit mounting with spring mechanism |
| IP20 protection |
| Expandability |
| Push-fit expansion module mounting |
| Automatic module detection and indexing by EQSP32 |
| Firmware Update |
| Front-facing USB-C for easy firmware upgrades |
| Environment |
| −20 °C to +55 °C |
Electrical Specifications
Absolute Maximum Values
| Pin | Type | Min. | Typ. | Max. | Unit |
|---|---|---|---|---|---|
| RLx to COMx | Relay contact switching, AC (*) | — | — | 5 / 250 | A / VAC |
| Relay contact switching, DC (*) | — | — | 3 / 30 | A / VDC | |
| AOx to GND | Analog output voltage | 0 | 0 to 10000 | 10000 | mV |
| Analog output current (**) | — | — | 10 | mA |
(**) Continuous, per channel, with both channels loaded — equivalent to a load of 1 kΩ or more at 10 V output.
Recommended Operating Conditions and Typical Values
| Pin | Type | Min. | Typ. | Max. | Unit |
|---|---|---|---|---|---|
| Relay coil supply | Power In, via EQSP32 (*) | 19 | 24 | 26 | V |
| Supply current, per energised relay | — | 8.3 | — | mA | |
| Supply current, all relays on and both AO at 10 mA | — | — | 90 | mA | |
| Undervoltage trip / release | — | 18.0 / 19.0 | — | V | |
| Overvoltage trip / release | — | 29.0 / 28.0 | — | V | |
| AOx to GND | Analog output voltage | 0 | 0 to 10000 | 10000 | mV |
| Analog output load resistance | 1 | — | — | kΩ | |
| Analog output resolution | — | 2.5 | — | mV | |
| Analog output accuracy | — | — | ±10 | mV | |
| Analog output feedback accuracy | — | — | ±50 | mV | |
| Short-circuit output current (current-limited) | — | 75 | — | mA | |
| Short-circuit shut-off (output forced to 0 mV) | — | 100 | — | ms | |
| Short-circuit retry interval | — | 3 | — | s | |
| RLx to COMx | Relay operate time | — | — | 10 | ms |
| Relay release time | — | — | 10 | ms | |
| Mechanical life | 5,000,000 | — | — | ops | |
| Electrical life, 5 A / 250 VAC resistive | 100,000 | — | — | ops | |
| Electrical life, 3 A / 30 VDC resistive | 200,000 | — | — | ops | |
| Contact resistance (5 VDC, 1 A) | — | — | 100 | mΩ | |
| Minimum switching load (reference) | 10 mA at 5 VDC | — | — | — | |
| RLx / COMx to logic | Contact-to-logic isolation, 1 min (relay coil-to-contact rating) | 4,000 | — | — | VAC |
Connecting EQXRA
To install the EQXRA relay and analog output expansion module, mount it next to the EQSP32 controller on the DIN rail and slide it until the board-to-board connector is fully engaged with the expansion interface. The module is powered through this connector, but the EQSP32 must be supplied at 24 V nominal for the relay coils to operate. A minimum of 19 V is required.
When adding or removing expansion modules, it is recommended to disconnect system power beforehand. After power is applied, the EQSP32 automatically detects and indexes all connected expansion modules, including the EQXRA, enabling immediate plug-and-play operation without additional configuration.
For safety and ease of installation, it is strongly recommended that a main circuit breaker is used to fully isolate the system’s AC/DC power source and the switched load circuits.
Warning
The relay contacts switch external circuits that may carry mains voltage. De-energise all load circuits before wiring and make sure that appropriate ground fault circuit breakers, fuses and protective components are used.
Visual Indications
When the EQXRA module is connected to the EQSP32 controller and the system is powered on, the POWER LED illuminates solid green, indicating that the module is properly powered.
If the STATUS LED remains solid red after the automatic detection process, this indicates that the EQXRA module is not communicating correctly with the EQSP32.
During normal operation, when data exchange occurs between the EQSP32 controller and the EQXRA module, the STATUS LED will flash to indicate active communication and output updates.
Power LED (green)
| On | Powered On | |
| Off | No Power |
Status LED (red)
| Off | No errors, no communication | |
| Fast flashing | Data exchange | |
| Blinking | Auto indexing issue | |
| Blink off | Hardware detection failed | |
| On | Communication error |
Note
Relay coil supply undervoltage and overvoltage conditions, and watchdog trips, are not indicated on the STATUS LED. These conditions are reported through the system and analog output status words and must be read by the application.
Pinout
- X1
- Screw terminal connector 1 — Relay 1 and Relay 2
- X2
- Screw terminal connector 2 — Analog outputs AO1 and AO2
- X3
- Screw terminal connector 3 — Relay 3 to Relay 8
- USB-C
- Firmware update port
The EQXRA82 provides eight relay outputs and two calibrated analog output channels arranged across three screw-terminal connectors. Relay 1 and Relay 2 provide independent common terminals, while Relays 3 to 8 are arranged in shared-common pairs. The analog outputs are referenced to the module ground and provide 0–10 V control signals for proportional control applications.
Relay outputs are potential-free SPST-NO dry contacts. The relay contact terminals do not supply voltage by themselves; they are used to switch an external circuit according to the application wiring.
X1 — Screw Terminal Connector 1 (Relay 1 and Relay 2)
The X1 screw terminal connector provides access to Relay 1 and Relay 2. Each relay has its own independent common terminal, making these outputs suitable for switching separate circuits or loads that do not share the same common connection.
Each relay output is a potential-free dry contact that can switch:
- Up to 5 A at 250 VAC, or
- Up to 3 A at 30 VDC.
| Name | Pin | Function | Type |
|---|---|---|---|
| X1 | RL1, RL2 | Relay 1 and Relay 2 normally-open contact terminals (*) | RELAY NO |
| COM1, COM2 | Relay 1 and Relay 2 independent common terminals | RELAY COM |
X2 — Screw Terminal Connector 2 (Analog Outputs AO1 and AO2)
The X2 screw terminal connector provides access to the two calibrated analog output channels. AO1 and AO2 provide 0–10 V analog control signals referenced to GND and are driven through the EQSP32 library in millivolts, from 0 to 10000 mV.
Both analog outputs include hardware overcurrent and short-circuit protection and firmware-monitored diagnostic feedback, and are forced to 0 mV during startup or protection events.
| Name | Pin | Function | Type |
|---|---|---|---|
| X2 | GND | Analog output ground reference (*) | GND |
| AO1, AO2 | Analog output channels 1 and 2, 0–10 V | AOUT / SAOUT |
X3 — Screw Terminal Connector 3 (Relay 3 to Relay 8)
The X3 screw terminal connector provides access to Relay 3 through Relay 8. These relays are arranged in shared-common pairs: Relay 3 and Relay 4 share COM3&4, Relay 5 and Relay 6 share COM5&6, and Relay 7 and Relay 8 share COM7&8.
Grouping the relays in shared-common pairs keeps the wiring compact when several loads are switched from the same supply or reference.
| Name | Pin | Function | Type |
|---|---|---|---|
| X3 | RL3, RL4 | Relay 3 and Relay 4 normally-open contact terminals | RELAY NO |
| COM3&4 | Shared common terminal for Relay 3 and Relay 4 | RELAY COM | |
| RL5, RL6 | Relay 5 and Relay 6 normally-open contact terminals | RELAY NO | |
| COM5&6 | Shared common terminal for Relay 5 and Relay 6 | RELAY COM | |
| RL7, RL8 | Relay 7 and Relay 8 normally-open contact terminals | RELAY NO | |
| COM7&8 | Shared common terminal for Relay 7 and Relay 8 | RELAY COM |
USB-C — Firmware Update and Maintenance Port
The USB-C connector on the EQXRA module is used exclusively for:
- Firmware updates
- Maintenance and recovery operations
Normal operation requires the module to be powered through the EQSP32 board-to-board expansion connector.
Power Distribution
The EQXRA expansion module is powered and controlled through the EQSP32 board-to-board expansion connector and does not require a separate supply of its own. The control logic, analog output stages and relay drivers are all fed from the EQSP32, which must itself be supplied at 24 V nominal for the relay coils to energise. A minimum of 19 V is required: the module enters undervoltage safe state below 18.0 V and leaves it only above 19.0 V, and while it is active the relays cannot be energised regardless of the commands issued by the application.
The relay coil supply is continuously measured by the module firmware and is readable by the application in millivolts at any time, not only during a fault.
Undervoltage is detected below 18.0 V and clears above 19.0 V. Overvoltage is detected above 29.0 V and clears below 28.0 V. Both thresholds use hysteresis to prevent the relays from chattering when the supply sits at a boundary. The overvoltage threshold is a self-protection backstop: it lies above the EQSP32’s own supply rating and is not reachable in a compliant installation.
While either condition is active, the requested relay states are cleared, all eight relays are forced to their de-energised safe state, both analog outputs are forced to 0 mV, and new relay commands are ignored. Both conditions are reported in the system status word.
Warning
Because the requested states are cleared rather than held, the relays and analog outputs do not return to their previous state when the supply recovers. The application must re-issue its relay and analog output commands after an undervoltage or overvoltage event.
The relay contacts themselves are potential-free and are powered by the external circuit being switched.
The front-facing USB-C port is provided exclusively for firmware updates and maintenance operations. While the module responds when powered via USB, normal operation is intended to occur only when the EQXRA is powered through the EQSP32 expansion connector.
Because power is delivered automatically through the slide-to-connect mechanical interface, the EQXRA becomes operational immediately upon docking and the EQSP32 is powered up — no external wiring, terminals, or additional power connections are required.
Mechanical Dimensions
All dimensions are measured in mm with a ±0.1 tolerance.
Output Overview
The EQXRA provides eight electromagnetic relay outputs for ON/OFF switching and two calibrated analog output channels for proportional 0–10 V control. Relay outputs are potential-free SPST-NO dry contacts that switch an external circuit, while the analog outputs drive a 0–10 V signal referenced to the module ground.
Equivalent Output Circuits
The RLx and COMx terminals on the X1 and X3 connectors provide the relay outputs, while the AOx terminals on the X2 connector provide the analog outputs.
At power-up, after any module reset, on a relay supply undervoltage or overvoltage and on a system watchdog trip, the relay coils are de-energised and the analog outputs are forced to 0 mV. A relay command watchdog trip affects only the relays, and an analog output command watchdog trip only its own channel.
Relay outputs and analog outputs are driven independently: relay state changes are applied immediately, while analog output values may be applied immediately (AOUT) or synchronously across both channels on an application trigger (SAOUT).
Channels
Relay and analog output channels are addressed through the EQXRA(ii, nn) macro, where ii is the index of the EQXRA module on the expansion chain and nn is the logical channel. In addition to the ten physical output channels, the module exposes read-only channels for analog output feedback, relay coil supply voltage, and system and analog output status.
| Channel | Count | Access | Range |
|---|---|---|---|
EQXRA_RL_1 … EQXRA_RL_8 | 8 | Read / Write | 0 = de-energised, non-zero = energised |
EQXRA_AO_1, EQXRA_AO_2 | 2 | Read / Write | 0 – 10000 mV |
EQXRA_AOFB_1, EQXRA_AOFB_2 | 2 | Read | Measured mV, nominally 0 – 10000 (diagnostic) |
EQXRA_RL_SUPPLY | 1 | Read | mV |
EQXRA_SYSSTAT | 1 | Read | Status word |
EQXRA_AOSTAT | 1 | Read | Status word, per channel |
Note
Over Bluetooth and EQConnect the module reports ten pins, corresponding to the eight relay and two analog output physical channels. The read-only feedback and status channels above are available through the EQSP32 library.
Output Modes
| Mode | Type | Function | Range | Units |
|---|---|---|---|---|
| Relay Output (RELAY) Default | Output | Digital | 0 or 1/1000 | — |
| Analog Output (AOUT / SAOUT) | Output | Analog | 0 – 10000 | mV |
In relay operation, each output switches its normally-open contact against the corresponding common terminal. The contacts are rated up to 5 A at 250 VAC or 3 A at 30 VDC and are supervised by the module firmware, with relay supply monitoring and safe-state handling.
In analog output operation, each channel drives a calibrated 0–10 V signal set directly in millivolts. Diagnostic feedback is monitored from the output side, and overvoltage, short-circuit and output deviation faults are detected and reported per channel.
Relay Outputs (RELAY)
Each relay output switches a potential-free SPST-NO dry contact between the RLx terminal and the common terminal of its group. Relay 1 and Relay 2 have independent commons on X1, while Relays 3 to 8 are arranged in shared-common pairs on X3.
The relay contact terminals do not supply voltage by themselves; they switch an external circuit according to the application wiring. External load protection must be selected according to the connected circuit and application requirements.
Relay operation is supervised by the module firmware. The relay coil supply is monitored, and a system watchdog or relay command watchdog trip de-energises all relay coils so that every contact returns to normally-open. An analog output command watchdog trip affects only its own analog output channel and does not change the relay states.
Relay State Representation
Relay outputs are controlled as digital outputs: any non-zero value energises the relay coil and closes the RLx to COMx contact, while 0 de-energises the coil and returns the contact to its normally-open state.
- Non-zero — relay energised, RLx to COMx contact closed
- 0 — relay de-energised, RLx to COMx contact open
In safe-state conditions — startup, a module restart, relay supply faults, system or relay command watchdog trips, or loss of communication with the EQSP32 — all relay coils are de-energised regardless of the last commanded value. The commanded relay state and the module status can be read back through the EQSP32 library for diagnostics and fault handling.
Note
Reading a relay channel returns the state most recently commanded by the application, not a measurement of the physical contact. Hardware state is re-read only while a fault is flagged in the status words. A relay that fails to actuate without raising a fault will still read back as commanded. A relay reads back as a non-zero value when energised (normally 1000, or 1 after a fault readback), so compare the reading against 0 rather than against 1.
| Configuration | |
eqsp32.pinMode( EQXRA(ii, nn), RELAY ) |
RELAY is the only mode accepted on a relay channel; other modes are rejected. |
eqsp32.configWDG( EQXRA(ii, nn), tt ) | Configures the relay command watchdog.
A single watchdog covers all eight relays — passing any relay channel configures the same timer. Values between 1 and 199 ms are raised to the 200 ms minimum. Maximum 60000 ms. The watchdog is fed only by writes to relay channels, including a repeat of an unchanged value; status reads and analog output writes do not feed it. |
| Usage | |
eqsp32.pinValue( EQXRA(ii, nn), vv ) | Sets the relay output state.
|
eqsp32.readPin( EQXRA(ii, nn) ) | Returns the last commanded relay state: 0 when de-energised, non-zero when energised (**) |
Indexing is applied independently per module type; for example, EQXRA modules are indexed separately from EQXIO or EQXTC modules, each maintaining its own numbering sequence.
(**) See the readback note above.
Analog Outputs (AOUT / SAOUT)
Each analog output drives a calibrated 0–10 V signal between the AOx terminal and GND, set directly in millivolts from 0 to 10000 mV with 12-bit DAC resolution.
Both channels include hardware overcurrent and short-circuit protection and protected feedback sensing. Firmware monitors the feedback and detects overvoltage, short-circuit and output deviation conditions, reporting them per channel. During startup or an analog-output protection event, the affected output is forced to the safe state of 0 mV.
Connect the controlled device between the desired AOx terminal and GND, as shown in the wiring diagram. No external components are required.
Immediate Update Mode (AOUT)
In AOUT mode each new analog output value is applied immediately and independently per channel, as soon as it is written by the application. This is the simplest mode and suits most proportional control tasks such as VFD speed references or valve positioning.
The update mode is shared between both analog output channels. Setting the mode on either channel places both AO1 and AO2 in that mode; the channels cannot be operated in different modes simultaneously. AOUT is the mode after power-up or a module reset; SAOUT must be selected again after a module reset.
Synchronous Update Mode (SAOUT)
In SAOUT mode a write to an analog output channel stages the value rather than applying it; the output does not move. Both channels are updated together when the application issues a write with the apply flag set, using the EQXRA_SAOUT_APPLY() macro. Applying latches the staged targets of both AO1 and AO2 to the outputs in the same operation, giving a true simultaneous update rather than two sequential writes. This allows coordinated multi-channel analog updates where the two outputs must change at the same instant.
The two channels are always applied together; the module never applies one channel of the pair on its own. An apply is refused while either channel holds a latched deviation fault, and a pending apply is discarded by a system fault or an analog output watchdog trip. The EQSP32 library does not report the refusal, so confirm the result through the feedback channels or the analog output status word.
Analog Output Value Representation
Analog output values are expressed in millivolts (mV), from 0 to 10000 mV across the full 0–10 V range.
Example: a commanded value of 5345 written to channel AO1 of the first EQXRA module in the expansion chain corresponds to:
- 5345 mV
- 5.345 V on the AO1 terminal
Diagnostic feedback is monitored from the output side of each channel, allowing the application to supervise the actual output behaviour and detect short-circuit, overvoltage or excessive deviation from the commanded target.
The measured output voltage of each channel is separately readable in millivolts through the corresponding feedback channel, allowing the application to compare the commanded target against the actual output. The feedback is a diagnostic measurement with its own, lower accuracy than the output itself.
| Configuration | |
eqsp32.pinMode( EQXRA(ii, nn), AOUT ) | Sets immediate update mode.
The mode applies to both analog output channels. |
eqsp32.pinMode( EQXRA(ii, nn), SAOUT ) | Sets synchronous update mode. The mode applies to both analog output channels. |
eqsp32.configWDG( EQXRA(ii, nn), tt ) | Configures the analog output command watchdog for that channel. Each channel has its own independent timer.
The watchdog is fed by any command to that channel, including a repeat of an unchanged value. On a trip the channel is driven to 0 mV in both AOUT and SAOUT modes and its commanded value is cleared; the next command to the channel clears the trip. |
eqsp32.configFBDEV( EQXRA(ii, nn), th, dd ) | Configures deviation detection for that channel.
Enabled by default at 250 mV / 500 ms. Values below 200 mV or 200 ms are raised to those minimums. Maximum 10000 mV and 60000 ms. Setting either value to 0 disables detection; a latched fault must still be re-armed (see Deviation Protection). |
| Usage | |
eqsp32.pinValue( EQXRA(ii, nn), vv ) | Sets the analog output value from 0 to 10000 (mV). Values outside this range are rejected and In SAOUT mode the value is staged only. A non-zero value sent to a channel with a latched deviation fault is refused by the module, but |
eqsp32.readPin( EQXRA(ii, EQXRA_AOFB_n) ) | Returns the measured output voltage in mV |
eqsp32.readPin( EQXRA(ii, EQXRA_RL_SUPPLY) ) | Returns the relay coil supply voltage in mV |
eqsp32.readPin( EQXRA(ii, EQXRA_SYSSTAT) ) | Returns the system status word (**) |
eqsp32.readPin( EQXRA(ii, EQXRA_AOSTAT) ) | Returns the analog output status word (**) |
| Macros | |
EQXRA_SAOUT_APPLY( vv ) | Stages
|
EQXRA_AOUT_STATUS_AO1( ss ) / EQXRA_AOUT_STATUS_AO2( ss ) | Extracts the AO1 or AO2 field from the analog output status word |
(**) System and analog output status values are available through the EQSP32 library for diagnostics and fault handling. See Supervision and Safe-State Behaviour and Status and Diagnostics below.
Supervision and Safe-State Behaviour
The EQXRA provides three independent watchdogs. All three move outputs to a safe state on trip, but they differ in what they supervise, what they affect, and how they recover. In addition, an internal hardware watchdog acts as a safety backstop. It is always active and is not expected to act in normal operation: should the module firmware ever stop responding for 2 s, it restarts the module in its safe state (see Configuration Persistence).
| Watchdog | Default | Range | Action on trip |
|---|---|---|---|
| System | Enabled, 200 ms fixed | On / off only | All relays de-energised and both analog outputs forced to 0 mV |
| Relay command | Disabled | 0 = disabled, 200–60000 ms | Requested relay states cleared, all relays de-energised |
| Analog output command (per channel) | Disabled | 0 = disabled, 200–60000 ms | That channel forced to 0 mV and its commanded value cleared |
| Internal (hardware) | Enabled, 2 s fixed | Always on, not configurable | Module restarts: all relays de-energised, both analog outputs at 0 mV, stored configuration restored |
The system watchdog supervises the communication link between the EQSP32 and the module. It is reset by any register transaction, and because the EQSP32 library polls the module continuously during normal operation, it is satisfied by that polling alone.
It therefore detects a lost or failed link, not a stalled application. A user program that stops issuing commands while the library continues running will not trip the system watchdog.
The relay command and analog output command watchdogs exist for that case. Both are disabled by default and are the mechanism by which the module fails safe when the application itself stops updating its outputs. Any application relying on the module to reach a safe state if the control program hangs must enable them explicitly. To keep them fed, the application must call pinValue() on the supervised channels within the timeout, even when the value has not changed. The EQSP32 library does not refresh outputs on its own: while the application is stalled, the library keeps polling the module, which satisfies the system watchdog, but sends no output writes, so the relay and analog output command watchdogs trip.
Recovery differs between the two. The system watchdog clears on any register transaction. The relay command watchdog clears only on a write to a relay channel — status reads and analog output writes leave it tripped — so recovery requires issuing a relay command specifically. The relay command watchdog is fed only by writes to relay channels, and each analog output command watchdog only by commands to its own channel, which also clear its trip.
Warning
The system watchdog can be disabled with eqsp32.configWDG( EQXRA(ii, EQXRA_SYSSTAT), 0 ) and re-enabled with a value of 1. It is the module’s only automatic response to a lost link with the EQSP32, and disabling it removes safe-state handling for communication failure entirely. It should be left enabled unless the application provides an equivalent mechanism of its own.
Configuration Persistence
Settings applied with configWDG() and configFBDEV() are held in module RAM; the EQSP32 library does not save them to the module. After a module reset or power cycle, including removal and re-insertion of the module, the module restarts with all relays de-energised and both analog outputs at 0 mV and returns to its stored configuration: system watchdog enabled, relay and analog output command watchdogs disabled, and deviation detection enabled at 250 mV / 500 ms. The application is responsible for reapplying its configuration whenever the module is re-detected.
No fault is raised in this case — the module reports normal operation with its stored supervision settings.
Values below the documented minimums are raised by the module, but the EQSP32 library keeps the value that was requested, so the configuration reported by the library can differ from the value in effect.
Deviation Protection
Deviation detection compares each analog output’s commanded target with its measured output. It is enabled by default at 250 mV / 500 ms and can be adjusted or disabled per channel with configFBDEV(). A continuous deviation trips after the configured delay; an intermittent one trips only if it is present for more than half of the time. Repeating or changing the command while the delay is running does not restart it.
A deviation trip latches. The affected channel is forced to 0 mV, the deviation flag is set in the analog output status word, and every non-zero command to that channel is refused — including a repeat of the previous command. The previous command is never restored automatically.
To re-arm the channel, command 0 mV. The fault clears once the output has been measured at or below 200 mV continuously for 100 ms; a non-zero command during that time cancels the re-arm. The next non-zero command is then treated as a fresh start. Changing or disabling the deviation configuration does not clear a latched fault; a module reset or power cycle does, leaving the output at 0 mV.
Deviation detection is intended to report genuine tracking failures, not the transient of a commanded change. With slow or capacitive loads the output settling time can still appear as a sustained deviation, so the threshold and delay should be chosen to suit the load.
Status and Diagnostics
Two status words are readable through the EQSP32 library. Each flag has a named constant in the EQSP32 library (EQXRA_SYS_STATUS_… for the system status word and EQXRA_AOUT_STATUS_… for the analog output status word), and the per-channel fields of the analog output status word are extracted with EQXRA_AOUT_STATUS_AO1() and EQXRA_AOUT_STATUS_AO2().
System Status Word — EQXRA_SYSSTAT
| Flag | Meaning |
|---|---|
| System watchdog trip | Communication link watchdog has tripped |
| Relay watchdog trip | Relay command watchdog has tripped |
| Analog output watchdog trip | An analog output command watchdog has tripped |
| Supply undervoltage | Relay coil supply below 18.0 V |
| Supply overvoltage | Relay coil supply above 29.0 V |
| Analog output fault | One or more analog output faults active — see the analog output status word; also set while that status is not available |
| General fault | Set while any of the above is active |
Analog Output Status Word — EQXRA_AOSTAT, one field per channel
| Flag | Condition |
|---|---|
| Deviation | Difference between target and feedback exceeded the configured threshold for longer than the configured delay; latched until the channel is re-armed (see Deviation Protection) |
| Overvoltage | Feedback above 11.0 V for more than 100 ms; clears after 100 ms at or below 11.0 V, and in AOUT mode the retained command is restored |
| Short circuit | Feedback below 0.5 V while the commanded target is 200 mV or more and the output is at least 200 mV below it, for more than 100 ms; retried every 3 s |
| Not available | Status not yet available, reported briefly at startup before the first status update; treat as not ready |
The general fault flag in the system status word provides a single-read health check; the remaining flags identify the cause, and the analog output status word identifies which channel and which fault, without requiring external sensing.
A short-circuit fault forces the affected channel to 0 mV and then retries automatically every 3 seconds, briefly re-enabling the output to test whether the short has cleared, and either restoring the commanded value or re-latching the fault. The output will therefore continue to attempt recovery for as long as the short persists.
An overvoltage fault forces the affected channel to 0 mV and clears once the feedback has stayed at or below 11.0 V for 100 ms; in AOUT mode the retained command is then restored automatically. Overvoltage and short-circuit recovery can therefore re-energise an output without a new command from the application. Applications that must not restart an output on their own should monitor the analog output status word and command 0 mV when a fault is reported.
Supply voltage, both status words and both analog output feedback values are refreshed continuously and can be read at any time without an explicit request.
Boot Button & Firmware Update
Boot Button
The Boot button is used exclusively to place the EQXRA module into firmware update (maintenance) mode. It is not required for normal operation. To enter firmware update mode:
- Press and hold the Boot button.
- While holding the button, power the module by connecting the front-facing USB-C port to a PC host.
- Release the Boot button after power is applied.
The module will enter maintenance mode and appear to the host computer as a USB mass-storage device.
Firmware Update Procedure
Firmware updates for the EQXRA are performed through the front-facing USB-C port like copying a file into a storage device. Switch off the system power before starting, so the module is powered from the USB-C port only and its outputs stay off during the update.
To update the firmware:
- Download the latest EQXRA firmware from erqos.com website.
- Ensure the module is in maintenance mode (see Boot Button section above).
- Locate the removable storage device labeled
RPI-RP2on the host computer. - Copy (or drag and drop) the provided
.uf2firmware file onto the device. - The firmware update will start automatically.
Once the update is complete, the module will reboot. Power-cycle the system and ensure the EQXRA is powered through the EQSP32 board-to-board expansion connector to resume normal operation and allow automatic module detection and indexing.