Arduino Releases Official PLC IDE for Machine Control Platforms

December 12, 2022 by David Peterson

At, we’re PLC and machine enthusiasts, but we are also makers at heart. This recent announcement by Arduino is ready to make waves and break boundaries in control cabinets around the world!

Back in June 2022, at our Control Automation Day, we were honored to speak with Massimo Banzi, co-founder of the Arduino platform, used and loved by millions of technology enthusiasts and students around the world. 

The focus of our discussion was industrial machine control, leveraging the connection between low-level I/O and high-level communication and cloud capabilities afforded by the Arduino ecosystem. Two critical pieces of the puzzle include robust, reliable hardware and a software development environment capable of handling IEC 61131 languages, like Ladder Diagrams and Function Blocks.


The Hardware - Arduino’s PLC

A recent move from the hobbyist’s bench to the control cabinet required upgrades to hardware, including industrial voltage tolerances, configuration for common analog values, sufficient IP ratings, and mounting options that allow it to attach and receive power from a typical cabinet environment.


Arduino PLC IDE initial setup screen for creating projects

Initial setup screen for creating projects.


The Arduino Portenta Machine Control broke such barriers in a complete package with each of the previously listed features, including networking abilities for Ethernet, Modbus, RS-232/485, and others. 


The Software - Arduino PLC IDE

The freshly released announcement from Arduino is an integrated development environment (IDE) started to allow programming with a more typical look and feel for industrial control engineers. Many familiar functions including tag addressing, variable watch/monitor tables, and the previously mentioned suite of IEC 61131 languages add to the level of comfort and familiarity.

Our own engineering staff has been fortunate enough to have one of these Potrenta Machine Control devices, so following the announcement, we had to test it for ourselves. In fact, that’s what I have been doing for most of the day.


Test bench model setup and initial download

Test bench model for staff first setup and initial download.


As we do with other equipment, we intend to publish more comprehensive information as the documentation is refined, and as our own understanding of the platform matures, but following Arduino’s own ‘getting started’ tutorial was a good first step. Engineering Team Exclusive Notes

Although we have not yet explored many of the advanced networking or communication capabilities, there are some initial observations to note, in case you own this platform and wish to be off to a good start.


License Requirements

Unlike with many of the entry-level Arduino boards, this hardware requires an active license. This license can be purchased directly on the Arduino website for under $20. This code, once entered on initial setup, is locked to the device and requires no further maintenance.


Toolkit Installation

The traditional Arduino IDE has a single install file—this version has both the IDE installation and a toolkit containing critical libraries, drivers, etc. The setup instructions recommend installing the toolkit first, then the IDE.


intial setup and hardware configuration screen for Arduino PLC IDE software showing Arduino Portenta Machine Control

Initial software setup and hardware configuration screen showing the Arduino Portenta Machine Control.


I recommend following the setup instructions, which again can be found on the Arduino site.



When the software is installed, an initial configuration download is required. It seems some users may have different experiences in this case. For my own process, the library called ArduinoRS485 was not located. Any problems with compiling and downloading will be outlined in the debug window.

In response to this message, the ArduinoRS485 library was quite simple to manually locate, download, extract, and place in the ‘libraries’ folder.


USB Port Selection

On my first attempt, I used a USB 3.0 port on my PC, which led me to an error in initial downloading. This may be a useful troubleshooting step for you, although to borrow the common phrase: 'your mileage may vary' as hardware is extremely diverse between every computer!


First Code

The default program can be loaded initially into the Portenta Machine Control, operating a simple counter, the value of which can be monitored in the watch table.

Good news for control engineers familiar with PLC programs: global and local variable tags can be added, mapped to either I/O terminals or to bools, ints, and floats in memory


Taking the Next Steps

As we explore more capabilities of the Arduino PLC IDE and hardware, we will be sure to share more.

If you are excited to learn more about PLC programming, but the Portenta Machine Control is a bit out of your budget, we offer a variety of articles explaining how to learn PLC programming on the more common Uno platform:


PLC Ladder Logic on an Arduino: Introduction to OpenPLC

PLC Ladder Logic on an Arduino: Building a Start-Stop Circuit

Simplified Prototyping: OpenPLC on an Arduino-Compatible Platform

Recreating PLC Ladder Logic in an Arduino C/C++ IDE