Issue 43 - 2020Open source controlProductProgrammable Control

ProductivityOpen – Maker In, Industrial Out

By Bill Dehner, Technical Marketer, AutomationDirect

One of the most talked about new trends in industrial automation is the use of single-board microcontrollers. These controllers, along with their open-sourced programs, have begun to show up in industrial applications. Many up-and-comers, introduced to this type of control early on, are fueling this trend but if you come from the established PLC world, you may be wondering what the buzz is all about.

The term “open source” is used to describe a program or software created by one developer that is available to be used and/or modified in any way by other developers and users without licensing fees, royalties due, or restrictions on the use of the source code. This is sometimes referred to as “copyleft” as opposed to “copyright”. Open source has evolved to also include hardware, shared schematics and PCB production files that are often readily available to anyone. This type of shared development has spawned an enormous “Maker” community. Numerous Maker sites can be found online with a vast collection of simple, helpful and most of all reusable, DIY projects.

The microcontrollers used to run these DIY programs are inexpensive, small and typically consist of a single integrated circuit containing a processor, memory and I/O. A brand of single-board microcontrollers that has become one of the most well-known is the Arduino.

Fig. 1 Arduino UNO single-board microcontroller

What is Arduino?

Arduino products were originally created for students without backgrounds in electronics or computer programming. Arduino consists of a family of single programmable circuit boards (Figure 1) and the IDE (Integrated Development Environment) that uses a streamlined version of C++ to write and upload code to the boards. Many pre-configured circuit boards, called “shields”, are available to expand the functionality of the Arduino controller (Figure 2). These shields can provide Ethernet, WiFi, GPS, LCD displays, and motor controls, among others, by simply “stacking” or connecting the shields to the Arduino controller board.

Fig. 2 Ethernet shield

Open-source communities

Sharing of ideas and finding innovative ways to solve complex problems is facilitated by open-source communities and the websites dedicated to them. Sites like MakerPro and GitHub allow hobbyists and professionals to work together to create interesting solutions for difficult or everyday problems. Thousands of programs can be found on these sites to be used freely in new applications however the user chooses. This open-source concept is favored heavily by hobbyists and students, but recently the industrial controls industry has also taken notice, partially due to this open concept but especially due to the extremely attractive price tag of single-board controllers.

Reducing the risk of open source

Industrial applications using “off-the-shelf” Arduinos are being deployed now, but there is a risk with installing these single-board controllers in industrial environments. Many of these controllers are not field tested and in most instances are just downtime waiting to happen. Vibration, noise, and temperature fluctuations can have a negative effect on consumer-grade microcontrollers, causing unexpected equipment failures and costly production shutdowns.

The need for an open-source controller that can hold up in the most extreme conditions is what prompted AutomationDirect, in conjunction with FACTS Engineering, to produce the ProductivityOpen controller. The $49, UL and CE certified P1AM-100 CPU combines the best of both worlds – Maker ingenuity coupled with the Productivity controller family’s proven reliability.

What’s Inside?

     1.  Open source at heart – The processor circuit of the P1AM-100 is designed to mimic the Arduino MKRZero microcontroller. By doing this, the P1AM-100 is able to recognize most available Arduino MKR format shields, and/or all of the industrially-hardened Productivity shields and can utilize most Arduino sketch programs found on open-source websites. Using the same IDE, the P1AM-100 is programmed using C++ code, or you can use the ProductivityBlocks graphical programming interface to quickly code the controller to operate your application. 

     2.  Industrial power supply stage – The robust power supply filtering stage produces a regulated 5VDC output from a 24VDC input, isolating the CPU and I/O power. To generate the 24VDC input, use any of the field-proven Productivity1000 industrial power supplies or supply your own using the terminal block connection.

     3.  Productivity1000 industrial I/O interface – The I/O interface chipset supports the full suite of Productivity1000 I/O expansion modules, including:

  • Discrete
  • Analog
  • Temperature
  • Relay
  • High-speed Input
  • PWM

Things to consider when choosing between a PLC and Maker controller

Let’s be honest, a $49 CPU is definitely something worthy of a closer look. But for those coming from a strictly PLC background there are some things to be aware of. Besides the obvious difference of programming methods (C++ vs. Ladder Logic) there are some other functional differences that also need to be addressed and we’ve included them in the Tables below.

Ideal for the Industrial Maker

The P1AM-100 CPU is designed to reliably take open-source control into the industrial realm. Along with the CPU is a collection of industrial shields that can add needed functionality to the controller. Options including Ethernet can easily be added to the left side of the CPU. Readily-available Arduino shields can also be added to that side if needed.

On the right side of the CPU, you can expand the system with low-cost Productivity1000 discrete, analog and specialty I/O modules. Up to 240 discrete I/O points are possible on the right-side, with virtually unlimited I/O on the left.

It’s your choice to select any configuration that meets your needs:

1. 100% Industrial

Ensure that all aspects of your open-source controller are protected from harsh environments with industrially-rated power supplies, shields, CPU and I/O modules.

2. Double duty

Got a specific Arduino shield you want to use in your process? No problem, simply attach any compatible Arduino shield(s)* to the left side of the CPU and use Productivity1000 industrially-hardened I/O modules to give your controller added protection from field equipment.

3. Mix and Match

You can mix and match any combination of compatible open Arduino shields* and industrially-rated ProductivityOpen shields to achieve the control you’re looking for.

4. DIY all the way

Build custom electronic circuits and interfaces for your control system with our proto board. The P1AM-PROTO is a generic perf board with 100mil thru-holes for your own prototype designs.

*Use discretion, since many of the consumer-grade Arduino shields are not suitable for industrial applications.

C++ made easier with ProductivityBlocks

For the PLC crew, ladder logic is still a very popular programming method. But due to low-cost microcontrollers like the Arduino, other programming methods, including C++, are making big inroads into industrial automation.

Fig 3. ProductivityBlocks programming interface

If you are a novice with C++ programming, the ProductivityBlocks interface can help you correctly code your controller (Figure 3). Based on the ArduBlock concept, ProductivityBlocks is a graphical programming interface and add-on to the Arduino IDE. Those familiar with C++ know how tedious it can be hunting down syntax errors like a missing semicolon or bracket. ProductivityBlocks helps build your sketch program by allowing you to drag and drop interlocking program blocks from which the associated C++ code is generated for you.

ProductivityBlocks works with either MAC or PC systems and the custom blocks use terminology common to industrial controller functions so their purpose is easily understood. Many are customized for Productivity1000 I/O modules, ProductivityOpen CPU and shields, creating an easier interface for coding that will save you time and debugging headaches.

AutomationDirect Community Forum

AutomationDirect’s technical/community forum at is the place to go for help with your P1AM-100 project. There you will find:

  • Links to GitHub repositories – Library, Board Support and Mechanical
  • Arduino IDE install link
  • ProductivityBlocks interface download
  • Links to numerous helpful videos
  • Most of all, ideas and advice from over 29,000 industry professionals with various backgrounds and expertise.

If you need product information like specifications, agency approvals, inserts, manuals, or 3D CAD files, head on over to where you’ll also find convenient starter kits for anyone looking to get started right away.

P1AM-START1 – A kit for the devoted Maker. Includes:

  • (1) P1AM-100 CPU
  • (1) P1AM-ETH Ethernet shield
  • (1) P1AM-GPIO MKR-pins Extension Shield
  • (1) P1-4ADL2DAL-1 analog combo module
  • (1) PSL-24-030 power supply
  • (1) USB-CBL-AMICB6 programming cable
  • (1) 3-wire power cable
  • (1) P2-RTB terminal block (1) P1-10RTB terminal block