Universal I/O module for the Wonder Controlz escape room system. Connects to the CAN bus and provides PWM outputs, digital inputs, servo outputs, and USB HID host — all controlled remotely from Node-RED on the Main PC.
The module contains no game logic. It executes commands received over CAN and reports input state changes back. This means a failed unit can be replaced in minutes — plug in a new one, set the CAN address with buttons, and it works immediately.
Status: Production (actively deployed in escape rooms).
Successor: er-dio-01 (in development).
Input supply is 24V DC via the CAN bus cable (4 wires: 24V, GND, CAN_H, CAN_L).
The module has built-in DC-DC converters that produce 12V and 5V internally:
| Rail | Max Current | Used for |
|---|---|---|
| 24V | pass-through | Available on dedicated output connector |
| 12V | 4 A | PWM outputs (default) |
| 5V | 4 A | USB port, servo connectors, dedicated 5V output |
Idle power consumption: < 0.7 W.
Low-side switching via N-channel MOSFETs (switched ground).
| Parameter | Value |
|---|---|
| Channels | 8 |
| Max current per channel | 2.5 A |
| Total current (all channels) | 4 A (limited by 12V converter) |
| PWM resolution | 0–1000 (smooth dimming, motor speed control) |
Voltage flexibility: Since the outputs switch the ground side, the positive supply can be 5V, 12V, or 24V — depending on what the connected device needs. One module can control devices at different voltages.
Protection:
Dry-contact (potential-free) inputs for sensors and switches.
| Parameter | Value |
|---|---|
| Channels | 8 |
| Type | Dry contact (active LOW) |
| Debounce | Hardware RC filter, ~10 ms (PLC-grade) |
| Current through closed contact | < 4 mA |
Compatible sensors: reed switches, pushbuttons, limit switches, PIR sensors (dry contact output), Hall sensors, relay contacts.
State changes are reported to the Main PC automatically over CAN.
Standard RC servo outputs with smooth motion profiles.
| Parameter | Value |
|---|---|
| Channels | 16 (two 8-channel connectors) |
| PWM frequency | 50 Hz (standard RC servo) |
| Position range | 0–1000 (mapped to configurable pulse width) |
| Connector pinout | +5V / Signal / GND per channel |
Ramp profiles for smooth, controlled motion:
| Profile | Description |
|---|---|
| LINEAR | Constant speed, instant start/stop |
| SMOOTHSTEP (5 levels) | Gradual acceleration/deceleration — from gentle (15%) to very smooth (50%) |
Ramp time is configurable from instant to 25.5 seconds.
| Parameter | Value |
|---|---|
| Power output | 5V, max 500 mA |
| Overcurrent protection | Yes (hardware) |
Supported devices: HID-class keyboards, mice, barcode scanners, RFID readers (HID mode).
USB HID events (key presses, mouse movements, scans) are forwarded to the Main PC via CAN bus.
| Parameter | Value |
|---|---|
| Standard | CAN 2.0A |
| Baud rate | 500 kbps |
| Protocol | ER-Frame (custom) |
The module receives commands (set PWM, move servo, emergency stop) and sends events (input changed, servo position reached, USB HID event) over the CAN bus using the ER-Frame protocol.
| Element | Description |
|---|---|
| Display | 4-digit, 7-segment LED |
| Buttons | 3 — SEL, PLUS, MINUS |
| Status LEDs | RUN (green), STOP (yellow), ERROR (red) |
The CAN device address (1–255) is set using the +/- buttons and persists across power cycles.
Bus cable (4 wires):
Minimum wire cross-section: 1 mm² (for all power and output wiring).
Topology: Daisy-chain bus with 120 Ω termination resistors at both ends.
| Feature | Value |
|---|---|
| PWM outputs | 8× (2.5 A each, 0–1000 resolution) |
| Digital inputs | 8× (dry contact, 10 ms debounce) |
| Servo outputs | 16× (50 Hz, 6 ramp profiles, up to 25.5 s ramp time) |
| USB HID host | 1× (keyboard, mouse, scanner) |
| CAN bus | 500 kbps, ER-Frame protocol |
| Supply voltage | 24V DC |
| Built-in converters | 12V / 4 A + 5V / 4 A |
| Idle power | < 0.7 W |
| Configuration | 7-segment display + 3 buttons |