The Arduino Opta is a compact industrial micro PLC designed around the same high-performance STM32H747 family used by several Portenta boards.
Unlike a normal Arduino board, its external connections are designed around industrial terminal wiring:
|
1 2 3 4 5 6 7 8 9 10 11 |
12-24 V DC power 8 × digital/analogue inputs 4 × relay outputs Ethernet USB-C optional RS-485 optional Wi-Fi/Bluetooth DIN-rail expansion |
The key to understanding Opta is that its I/O is not exposed as ordinary 3.3 V or 5 V GPIO headers. The front screw terminals include signal conditioning, relay contacts and industrial interfaces.
Opta Variants
The Opta family is currently available in three main versions:
| Variant | Ethernet | USB-C | RS-485 | Wi-Fi / BLE |
|---|---|---|---|---|
| Opta Lite | Yes | Yes | No | No |
| Opta RS485 | Yes | Yes | Yes | No |
| Opta WiFi | Yes | Yes | Yes | Yes |
The core PLC I/O is otherwise similar across the family.
Main Processor
Opta is built around the:
|
1 2 3 4 |
STM32H747XI |
with:
|
1 2 3 4 5 6 7 8 |
Cortex-M7 → up to 480 MHz Cortex-M4 → up to 240 MHz |
This dual-core architecture allows high-level communications and control logic to be separated from time-critical tasks.
Memory
The Opta platform includes the STM32H747 internal memory plus:
|
1 2 3 4 |
16 MB QSPI Flash |
for application storage and firmware-related functions.
Power Supply Terminals
The first four top terminals are used for power:
|
1 2 3 4 5 6 7 |
VIN VIN GND GND |
Opta accepts:
|
1 2 3 4 |
12-24 V DC |
which makes it suitable for standard industrial control cabinets.
The two positive and two negative terminals simplify daisy-chaining and distribution inside a panel.
Power Consumption
Arduino currently specifies approximately:
|
1 2 3 4 5 |
2 W at 12 V 2.2 W at 24 V |
for the Opta itself.
This does not include power consumed by external relay loads.
Eight Programmable Input Terminals
The Opta input terminals are:
|
1 2 3 4 5 6 7 8 9 10 11 |
I1 I2 I3 I4 I5 I6 I7 I8 |
These can be used as:
|
1 2 3 4 5 6 |
digital inputs or 0-10 V analogue inputs |
Arduino Pin Mapping
| Opta terminal | Arduino pin | STM32H747 pin |
|---|---|---|
| I1 | A0 | PA0_C |
| I2 | A1 | PC2_C |
| I3 | A2 | PF12 |
| I4 | A3 | PB0 |
| I5 | A4 | PF10 |
| I6 | A5 | PF8 |
| I7 | A6 | PF6 |
| I8 | A7 | PF4 |
Input Voltage Range
The digital inputs accept:
|
1 2 3 4 |
0-24 V DC |
while analogue acquisition is intended for:
|
1 2 3 4 |
0-10 V |
signals.
Do not assume that because the digital input can accept 24 V, the analogue measurement range is also 24 V.
Digital Input Thresholds
Arduino’s current Opta datasheet specifies approximately:
|
1 2 3 4 5 6 7 8 |
LOW maximum: 4.46 V HIGH minimum: 6.6 V |
for digital-input interpretation.
This leaves a deliberate transition region between the two logic states.
Digital Input Current
Arduino specifies approximately:
|
1 2 3 4 |
1.12 mA at 10 V |
for the input circuitry.
Input Frequency
The current datasheet specifies a digital-input frequency capability of approximately:
|
1 2 3 4 |
4.5 kHz |
This is useful for:
- pulse counters;
- flow-meter outputs;
- slow encoders;
- proximity sensors;
- machine-cycle counting.
Analogue Acquisition Cycle
Arduino lists an analogue input acquisition cycle around:
|
1 2 3 4 |
10 µs |
under the documented conditions.
Inputs Can Generate Interrupts
All eight programmable inputs support Arduino-style interrupt handling.
For example:
|
1 2 3 4 5 6 7 8 |
attachInterrupt( digitalPinToInterrupt(A0), myISR, RISING ); |
I1 and I4 Interrupt Limitation
There is an important hardware limitation:
|
1 2 3 4 5 6 |
I1 / A0 and I4 / A3 |
cannot both be used simultaneously as interrupt sources.
Other combinations are supported, which means up to seven of the eight inputs can be used simultaneously for interrupts.
Four Relay Outputs
Opta contains four physical electromechanical relays:
|
1 2 3 4 5 6 7 |
Relay 1 Relay 2 Relay 3 Relay 4 |
All four contacts are:
|
1 2 3 4 5 6 |
NO Normally Open SPST |
Arduino Relay Mapping
| Relay | Arduino pin | STM32H747 pin |
|---|---|---|
| Relay 1 | D0 | PI6 |
| Relay 2 | D1 | PI5 |
| Relay 3 | D2 | PI7 |
| Relay 4 | D3 | PI4 |
Relay Current Rating
Arduino specifies:
|
1 2 3 4 |
10 A maximum per relay |
with:
|
1 2 3 4 |
15 A peak current |
under the documented relay conditions.
Relay Voltage Ratings
The current datasheet lists:
|
1 2 3 4 5 |
250 VAC rated voltage 400 VAC maximum relay voltage |
with a resistive AC1 load rating around:
|
1 2 3 4 |
2500 VA |
DC Relay Capacity Depends Strongly on Voltage
The DC1 breaking-capacity figures drop sharply as DC voltage increases.
Arduino lists approximately:
|
1 2 3 4 5 6 7 |
24 V DC → 10 A 30 V DC → 4 A 110 V DC → 0.3 A 220 V DC → 0.12 A |
This is an important reminder that a relay’s:
|
1 2 3 4 |
10 A rating |
cannot be applied blindly to every DC voltage.
No Built-In Short-Circuit Protection on Relay Contacts
Arduino’s current datasheet explicitly states:
|
1 2 3 4 5 |
short-circuit protection: No |
so external fusing should be used where required.
Relay Response Time
The electromechanical relays are much slower than transistor outputs.
Arduino specifies roughly:
|
1 2 3 4 5 6 7 8 |
6 ms OFF → ON 4 ms ON → OFF |
plus contact bounce.
They are therefore appropriate for:
- contactors;
- lights;
- heaters;
- valves;
- slow actuators;
but not high-frequency PWM.
Relay Example
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
void setup() { pinMode(D0, OUTPUT); } void loop() { digitalWrite(D0, HIGH); delay(1000); digitalWrite(D0, LOW); delay(1000); } |
Always remember that the software pin controls the relay coil; the external load is connected through the isolated relay contact terminals.
Status LEDs
Opta provides four programmable front status LEDs:
|
1 2 3 4 5 6 7 |
LED_D0 LED_D1 LED_D2 LED_D3 |
mapped to:
|
1 2 3 4 5 6 7 |
PI0 PI1 PI3 PH15 |
These can be used independently from the relay-contact electrical path.
User Button
The front programmable user button maps to:
|
1 2 3 4 5 |
BTN_USER → PE4 |
and can also be used as an interrupt source.
Reset Button
A separate hardware reset button is provided for restarting the controller.
Ethernet on Every Opta Variant
All current Opta versions include:
|
1 2 3 4 |
10/100 Mbps Ethernet |
with an onboard:
|
1 2 3 4 |
RJ45 connector |
and Ethernet status LEDs.
This makes Ethernet available even on the entry-level Opta Lite.
USB-C
All Opta variants include:
|
1 2 3 4 |
USB-C |
which can be used for:
- programming;
- USB peripheral mode;
- USB host mode;
- data logging to USB storage;
- firmware/program updates.
USB Power Limitation
USB-C can power the processor for programming and development, but Arduino notes that USB power does not power the PLC relay/load side in the same way as the 12-24 V industrial supply.
For normal PLC operation, use the proper DC input terminals.
RS-485 on Opta RS485 and Opta WiFi
The RS-485-capable variants expose:
|
1 2 3 4 5 6 |
A(-) B(+) GND |
for half-duplex differential serial communication.
This is suitable for:
- Modbus RTU;
- custom RS-485 protocols;
- industrial sensors;
- drives;
- meters;
- remote I/O.
No Onboard RS-485 Termination
Arduino explicitly states:
|
1 2 3 4 |
no onboard termination resistor |
on Opta’s RS-485 interface.
If Opta is at one physical end of a Modbus/RS-485 trunk, add the termination required by the bus design.
A/B Naming Can Vary Between Vendors
RS-485 naming conventions are unfortunately inconsistent.
Opta labels the terminals:
|
1 2 3 4 5 |
A(-) B(+) |
If communication fails with another manufacturer’s equipment, verify that vendor’s A/B polarity convention before troubleshooting software.
Opta WiFi Adds Wireless Connectivity
The Opta WiFi variant adds:
|
1 2 3 4 5 |
2.4 GHz Wi-Fi 802.11 b/g/n |
plus:
|
1 2 3 4 |
Bluetooth Low Energy |
using the onboard wireless module.
Wi-Fi Operating Modes
The wireless interface can operate as:
- station;
- access point;
- simultaneous AP + station.
Arduino documents Wi-Fi throughput up to approximately:
|
1 2 3 4 |
65 Mbps |
under supported conditions.
Secure Element
Opta includes a:
|
1 2 3 4 |
Microchip ATECC608B |
secure element.
This provides hardware support for:
- device identity;
- private-key storage;
- certificate-based authentication;
- cloud credentials;
- secure provisioning.
Real-Time Clock
The STM32H747 includes a hardware RTC with:
- calendar;
- sub-second timing;
- alarms;
- timestamp support;
- leap-year handling.
This is useful for industrial:
- event logs;
- alarms;
- scheduled control;
- maintenance records;
- production timestamps.
Expansion Connector
Opta includes a side expansion port intended for:
|
1 2 3 4 |
snap-on Opta expansion modules |
This allows the base PLC to grow without replacing the controller.
Digital Expansion Modules
Arduino currently offers digital expansion modules such as:
|
1 2 3 4 5 6 7 8 |
D1608E → electromechanical relay outputs D1608S → solid-state relay outputs |
Each adds:
|
1 2 3 4 5 6 |
16 programmable inputs + 8 outputs |
Up to Five Expansion Modules
Arduino currently documents support for:
|
1 2 3 4 5 |
up to 5 snap-on expansion modules |
which can be mixed depending on application requirements.
Analogue Expansion
The current Opta analogue expansion family adds industrial analogue functionality including:
- voltage inputs;
- current inputs;
- resistive/temperature measurement;
- analogue voltage outputs;
- analogue current outputs;
- PWM outputs.
Opta as a Small PLC System
A practical installation can therefore grow from:
|
1 2 3 4 5 6 |
Opta 8 inputs 4 relays |
into a much larger controller using side-mounted expansion modules.
Arduino IDE Programming
Opta can be programmed as an Arduino board using conventional C/C++ sketches.
The current Arduino core exposes familiar functions such as:
|
1 2 3 4 5 6 7 8 |
pinMode() digitalRead() digitalWrite() analogRead() attachInterrupt() |
with the industrial I/O mapped to Arduino-style pin names.
PLC IDE Programming
Opta also supports the Arduino PLC IDE and IEC 61131-3 languages including:
- Ladder Diagram;
- Structured Text;
- Function Block Diagram;
- Sequential Function Chart;
- Instruction List in the Arduino PLC environment.
Arduino IDE vs PLC IDE Memory Configuration
Opta can be configured differently depending on whether it is used with:
|
1 2 3 4 5 6 |
Arduino IDE or PLC IDE |
Arduino provides a memory-partitioning procedure when moving an Opta from PLC IDE use back to the normal Arduino environment.
Dual-Core Programming
The STM32H747 allows the:
|
1 2 3 4 5 6 |
M7 and M4 |
cores to communicate through an RPC mechanism.
A typical advanced design could use:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
M7 → Ethernet → cloud → Modbus TCP → logging → high-level logic M4 → time-critical control → pulse inputs → machine sequencing → deterministic tasks |
Common Mistake 1: Treating I1-I8 as Ordinary GPIO
These are industrial input terminals with conditioning circuitry.
Do not bypass the terminal design and assume they behave like bare 3.3 V pins.
Common Mistake 2: Applying 24 V in Analogue Mode
The digital inputs can handle 24 V signalling, but the specified analogue measurement range is:
|
1 2 3 4 |
0-10 V |
Do not use the full digital-input voltage range as an analogue measurement range.
Common Mistake 3: Treating Relay Ratings as Universal
A 10 A AC relay rating does not mean:
|
1 2 3 4 |
10 A at every DC voltage |
Always check the actual load type and DC breaking-capacity table.
Common Mistake 4: Forgetting External Relay Fuses
The relay contacts do not provide short-circuit protection.
Use correctly rated external protection where required.
Common Mistake 5: Adding PWM to the Relay Outputs
These are mechanical relays with millisecond response times and finite electrical life.
They are not PWM outputs.
Common Mistake 6: Assuming RS-485 Termination Is Built In
Opta has no onboard RS-485 termination resistor.
Add termination externally where the bus topology requires it.
Common Mistake 7: Expecting RS-485 on Opta Lite
The Lite model includes:
|
1 2 3 4 5 |
Ethernet USB-C |
but not the RS-485 terminal hardware.
Common Mistake 8: Assuming Wi-Fi Is on Every Opta
Wireless is only present on:
|
1 2 3 4 |
Opta WiFi |
not Opta Lite or Opta RS485.
Quick Terminal Reference
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
POWER VIN VIN GND GND INPUTS I1 → A0 → PA0_C I2 → A1 → PC2_C I3 → A2 → PF12 I4 → A3 → PB0 I5 → A4 → PF10 I6 → A5 → PF8 I7 → A6 → PF6 I8 → A7 → PF4 INPUT MODES 0-24 V digital 0-10 V analogue RELAYS Relay 1 → D0 → PI6 Relay 2 → D1 → PI5 Relay 3 → D2 → PI7 Relay 4 → D3 → PI4 RELAY CONTACT NO / SPST 10 A max per relay 250 VAC rated RS485 variants A(-) B(+) GND half duplex no onboard termination NETWORK 10/100 Ethernet RJ45 USB-C WIRELESS Opta WiFi only 2.4 GHz Wi-Fi BLE |
Final Thoughts
Arduino Opta is best understood as:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
STM32H747 dual-core controller + industrial input conditioning + four real relay outputs + Ethernet + optional RS-485 + optional Wi-Fi/BLE + DIN-rail expansion system |
The most important pinout detail is that the eight input terminals are not just digital inputs:
|
1 2 3 4 5 6 7 8 9 10 |
I1-I8 = A0-A7 = digital 0-24 V or analogue 0-10 V |
The four outputs are also genuine normally-open relay contacts rather than MCU GPIO.
For small industrial and building-automation projects, Opta provides a much more installation-ready architecture than a bare development board.
For larger I/O systems, the side expansion port allows the same controller to grow with digital and analogue modules.
For a more I/O-heavy industrial controller using the same STM32H747 family, see our Arduino Portenta Machine Control pinout guide. For CAN fundamentals on the STM32H747 family, see our Arduino GIGA R1 CAN bus guide.