Skip to Content

Is Arduino suitable for industry?

What a bare board misses on a machine, what an Arduino PLC adds, and when it can replace a PLC
October 19, 2022 by
Is Arduino suitable for industry?
Boot & Work Corp. S.L, Bernat Brunet Pedra

Yes, when the Arduino microcontroller works inside an industrial controller. A bare Arduino board, such as the UNO or the Mega 2560, is a development board: 5 V logic pins, no isolation, no enclosure and no ratings for a control cabinet. An Arduino PLC keeps the same microcontroller and the same open software, and adds 24 Vdc inputs and outputs, optocoupled isolation, a protected power supply, DIN rail mounting and CE marking.

This guide separates the meanings of "Arduino" in industry, lists what a bare board does not cover on a machine, and gives a checklist to decide if an Arduino based controller fits your project. The checks start from the machine, not from the programming language, so they are also valid if you program in ladder and not in C++.

Is Arduino suitable for industry?

The answer depends on what "Arduino" means in the question. In industrial automation the word is used for three different things:

  • The boardArduino UNO, Arduino Mega 2560 and similar. A printed circuit board with a microcontroller, made for development, prototyping and education.
  • The software platformThe Arduino IDE, the C and C++ toolchain and thousands of open source libraries. It runs on many microcontrollers, for example the ATmega2560 and the ESP32.
  • Arduino based industrial controllersPLCs that contain an Arduino board or an Arduino compatible microcontroller, with industrial I/O, an enclosure for the cabinet and conformity marking.

The board alone is not made for a control cabinet. The software platform and the Arduino based controllers are used in industry every day, in machines, test benches, building services and remote monitoring.

In industry, the microcontroller is rarely the weak point. The weak points are the electrical interface around it, the mounting and the documentation.

Wired industrial control cabinet
Industrial Shields has built industrial controllers based on Arduino since 2015.

The specifications of each official board are on the Arduino hardware page, and the IDE is on the Arduino software page. For the basics of a PLC (scan cycle, I/O and IEC 61131-3 languages), read what a PLC is and how it works.

Arduino board vs Arduino PLC: what changes in the control cabinet

The table compares an Arduino Mega 2560 board with an M-Duino, an Arduino PLC that has an original Arduino Mega 2560 inside. The microcontroller is the same. Everything around it changes. If you need an Arduino programmable logic controller to get started, see the M-Duino 21.

FeatureArduino Mega 2560 boardM-Duino (Arduino PLC)
MicrocontrollerATmega2560, 16 MHz, 256 KB flash, 8 KB SRAMSame chip: an original Arduino Mega 2560 inside
Power supply7 to 12 V recommended (6 to 20 V limits)12 to 24 Vdc, 2.5 A fuse and polarity protection
Digital inputs5 V logic pins, no isolationRated 24 Vdc (5 to 24 Vdc range), optocoupled
Analog inputs0 to 5 V, 10 bit0 to 10 Vdc, 10 bit
OutputsLogic pins, 40 mA absolute maximum per pinOptocoupled 24 Vdc outputs (70 mA), 0 to 10 V analog outputs, relays up to 250 Vac 5 A or 30 Vdc 3 A, depending on the model
CommunicationsUART, I2C and SPI at logic level. Ethernet or RS-485 need an extra shield or moduleEthernet, RS-485, RS-232, I2C, SPI and TTL serial on terminals
MountingBare printed circuit boardDIN rail TS35, IP20 housing, installed inside a cabinet
EnvironmentNo ratings for a control cabinet0 to 60 °C operating, 10 to 90 % humidity without condensation
ConformityDevelopment boardCE marking. CE and UKCA certificates on the product page

Sources: Arduino Mega 2560 Rev3 datasheet, ATmega2560 datasheet (absolute maximum ratings) and M-Duino family datasheet (revision 20250715).

A 24 V sensor wired directly to a 5 V pin can destroy the input. A solenoid valve or a contactor coil cannot run from a logic pin. On a bare board each of these jobs needs an extra circuit: a voltage divider or an optocoupler, a transistor driver or a relay, a regulated supply. Each extra circuit is something the machine builder must design, test and document.

An Arduino PLC ships these circuits already designed, tested and documented in a datasheet. The Arduino PLC family (M-Duino and Ardbox) covers this range of I/O.

Five risks of a bare Arduino board on a machine

These are the problems that appear when a development board goes straight into a cabinet, next to contactors, motors and frequency inverters.

Distorted signal waveform showing electromagnetic noise

Electromagnetic noise

Contactors, motors and frequency inverters create electrical noise. On a long cable to a 5 V input, a noise pulse can read as a false HIGH. Industrial inputs work at 24 V and use optocouplers, so a small pulse does not change the input state.

Seismograph needle tracing vibration on paper

Vibrations

Jumper wires and pin headers are not made for vibration. A loose contact on the supply can reset the microcontroller in the middle of a sequence. Terminals and a DIN rail mount hold the wiring in place.

Man balancing on a tightrope: an exposed board with no IP rating

Exposed board and no IP rating

The board is a bare circuit. Dust, metal chips or condensation can short the pins. A controller in an IP20 housing, inside a closed cabinet, keeps conductive parts away from fingers and debris.

Person hiding behind a sad face sign: no ratings as control equipment

No ratings as control equipment

The datasheet of a development board gives pin limits, not ratings for a cabinet: input voltage, isolation, ambient temperature. The machine builder must test and justify the complete circuit. An industrial controller comes with these ratings and its CE certificate.

Worried woman with hands in her hair: home made circuits with no single supplier

One supplier for the complete controller

A machine works for many years. Support and spare parts must cover the complete controller: board, I/O circuits and enclosure. With a board plus home made circuits, the builder is the only one who knows the design.

What the Arduino platform brings to industrial control

The reasons to use Arduino technology in industry come from the software and the ecosystem, not from the bare board.

Open source code on a screen

Open source code you can read

The Arduino IDE, the compiler toolchain and the core libraries are open source. You can read every line that runs in the controller, and nothing depends on a closed runtime.

Hands typing on a laptop: open source libraries for Modbus and MQTT

Libraries for industrial protocols

There are open source libraries for Modbus RTU, Modbus TCP, MQTT, sensors and displays. See how to use Modbus RTU with Arduino and ESP32 based PLCs.

Group of people hugging at sunset: the Arduino community

Big community

Forums, tutorials and example code cover most hardware and code problems. The official Arduino forum is a good first place to search an error message.

Seedling growing from coins: software without licence fees

No licence fees

There is no licence per seat or per runtime for the IDE or for the libraries. The cost of the software side is engineering time, not licences.

Light bulbs graphic reading Explore your Options: C++, ladder or Structured Text

C++, ladder or Structured Text

Arduino code is C and C++ in the Arduino IDE. On M-Duino, Ardbox and ESP32 PLC you can also use OpenPLC with IEC 61131-3 languages such as Ladder Diagram and Structured Text. On Raspberry PLC, CODESYS is an option.

Two hands fitting puzzle pieces: modular I/O and communications

Modular I/O and communications

On a board, shields add functions such as Ethernet or a relay. On a PLC, the I/O and the ports are already on terminals, and RS-485, Ethernet or I2C connect field devices such as energy meters, frequency inverters and remote I/O.

The software tools for each family are listed on the software page.

Can an Arduino replace a PLC?

A bare Arduino board cannot replace a PLC in a cabinet without extra circuits, mounting and documentation. An Arduino based PLC can do the job of a compact PLC in many machines: digital and analog I/O, timers and sequences, Modbus and Ethernet communication, and data logging.

The main difference is in the program cycle. A classic PLC runtime reads all inputs, runs the program and writes all outputs in a repeating scan cycle, and a watchdog supervises the cycle time. An Arduino sketch runs the loop() function again and again: your code reads the inputs and writes the outputs, and the loop time depends on that code. Good industrial code keeps the loop short, never blocks it, and measures it.

M-Duino 58 Arduino PLC on a DIN rail
M-Duino 58: an Arduino PLC with an original Arduino Mega 2560 inside.

Checklist before you use Arduino technology on a machine

  1. I/O type and count. Count 24 V digital signals, analog signals (0 to 10 V or 4 to 20 mA) and loads that need relays. For current loops, see how to convert 4 to 20 mA to 0 to 10 V on an Arduino PLC.
  2. Response time. Write non blocking code with millis() and not delay(), and measure the loop time. See millis() vs delay() on an industrial Arduino.
  3. Watchdog. Enable a watchdog so the controller restarts in a known state if the program hangs. Example: hardware watchdog on an ESP32 PLC.
  4. Communications. Decide the fieldbus first: Modbus RTU on RS-485, Modbus TCP or MQTT on Ethernet. Overview: protocols used in industrial automation.
  5. Grounds and isolation. The M-Duino datasheet warns that there is no galvanic isolation between the grounds of the different systems. Use a common ground reference, or galvanic isolators when devices have different references.
  6. Safety functions. Emergency stop, guard doors and light curtains need a safety relay or a safety controller rated for the required safety level. This is true for any standard PLC, Arduino based or not.

Arduino PLC in real machines: five case studies

These projects run on Arduino PLCs. Each case study shows the I/O, the wiring logic and the communication used.

ApplicationWhat the Arduino PLC does
Automatic car washAn M-Duino 19R detects the car with a load cell and runs the conveyor, soaping, washing and drying with timers and four relay outputs.
Conveyor speed controlAn M-Duino 42+ sets the conveyor speed through a frequency inverter, reads the motor current and shares live values with a Panel PC over Ethernet.
Concrete batching plantAn M-Duino doses aggregate and cement by weight and water by volume, runs belts and mixer on relays and sends batch data by LoRa.
Bottle labelling conveyorAn encoder on interrupt inputs, a photocell and two stepper motors keep each label in sync with the line.
Automated warehouseOne M-Duino stores boxes by weight on three axes and ships them to several docks, with QR check-in and a load cell.

Arduino PLC, ESP32 PLC and Raspberry PLC: one open ecosystem

The same open approach exists on three hardware platforms. Choose by the job the controller must do:

FamilyProgrammingTypical job
Arduino PLCArduino IDE (C and C++), OpenPLCMachine control with many I/O, sequences, Modbus RTU and Modbus TCP
ESP32 PLCArduino IDE (C and C++), OpenPLCDual core controller with Ethernet, Wi-Fi and Bluetooth: IIoT, MQTT and remote sites
Raspberry PLCLinux: CODESYS, Node-RED, PythonControl plus HMI, database, gateway and edge computing in one device

A detailed comparison with selection criteria is in Arduino PLC vs ESP32 PLC vs Raspberry PLC.

Next step: test your machine logic on an Arduino PLC

Install the Industrial Shields boards in the Arduino IDE with this guide, or start with ladder logic in OpenPLC on an Arduino Mega. The PLC Solution Library has functions from real installations that you can reuse.

See the Arduino PLC familyOpen the PLC Solution LibraryAsk an engineer about your machine

FAQ about Arduino in industrial automation

Is Arduino reliable enough for 24/7 operation?

Reliability depends on the hardware around the microcontroller and on the code. With a protected 24 V supply, isolated I/O, a cabinet, a watchdog and non blocking code, an Arduino based controller can run a machine continuously. A bare board with jumper wires is not a good reference for this.

Can I connect a 24 V sensor to an Arduino?

Not directly to a board pin. The pins of an Arduino Mega 2560 work at 5 V. You need a voltage divider or an optocoupler for each input, or a controller with 24 Vdc inputs such as an M-Duino.

Can an Arduino be programmed in ladder logic?

Yes. OpenPLC compiles IEC 61131-3 programs, including Ladder Diagram, for the Arduino Mega and for M-Duino, Ardbox and ESP32 PLC. Start with first steps with OpenPLC and Arduino Mega.

What is the difference between an Arduino and a PLC?

An Arduino board is a development board with logic level pins. A PLC is a controller built for the industrial environment: rated I/O, protected supply, an enclosure for the cabinet and a program that runs in a repeating cycle. An Arduino PLC puts the Arduino microcontroller inside that industrial hardware.

Are Arduino based PLCs certified?

The M-Duino family carries CE marking, and its CE and UKCA certificates are published on the product page. Check the product page of each family for its certificates.

Which Arduino board is inside an M-Duino?

An original Arduino Mega 2560, with the ATmega2560 microcontroller at 16 MHz, 256 KB of flash (8 KB used by the bootloader), 8 KB of SRAM and 4 KB of EEPROM.

​Search in our Blog

Is Arduino suitable for industry?
Boot & Work Corp. S.L, Bernat Brunet Pedra October 19, 2022
Share this post
Tags

Looking for your ideal Programmable Logic Controller?

Take a look at this product comparison with other industrial controllers Arduino-based. 

We are comparing inputs, outputs, communications and other features with the ones of the relevant brands.

PLC Comparison