Glen Akins has dived into Automation Direct's ProductivityOpen programmable logic controller (PLC) ecosystem, designing a custom add-on board programmable — like the PLC to which it is connected — from the Arduino IDE.
"The first controller in the series, the P1AM-100, is based on the Microchip ATSAMD21 microcontroller and programmed using the Arduino development environment," writes Akins of Automation Direct's recently-launched ProductivityOpen family of open source programmable logic controllers (PLCs). "To encourage development, they launched a prototyping module alongside the controller. The prototyping module consists of a piece of perfboard, the required connectors, and a housing.
"I was already familiar with Automation Direct and their PLC and pneumatic products after building my crate beast and zombie containment unit Halloween props a few years ago. I was intrigued by this new controller from a familiar company, the CPU selection, and the possibility of building my own modules that could tie in to the controller for future projects."
The open nature of the ProductivityOpen PLC comes in the form of header sockets on the left-hand side of the unit, compatible with Arduino MKR1000 shields along with three designs from Automation Direct itself: an Ethernet shield, a breakout shield, and the prototyping shield Akins is using in his designs — though with a custom circuit board design replacing the protoboard normally supplied.
"I settled on the following feature set," Akins writes of his design. "Two optically-isolated inputs on a 3.5 mm pitch pluggable screw terminal strip; Two relay outputs, SPST/1-Form-A/normally open on a 3.5 mm pitch pluggable screw terminal strip [and] half-duplex RS-485 on an RJ-45 connector; A four character, 5×7 dot-matrix LED display; A Microchip EUI-48 serial EEPROM with a pre-programmed Ethernet MAC address to use with the P1AM-ETH module."
With the boards designed, produced, and populated — with "a pretty big chisel soldering iron," Akins writes, plus some advice to "mount the sockets on an existing module" to simplify soldering the headers into place accurately — Akins worked on an example project to control overhead garage lights according to the status of the garage door, complete with a "screensaver" animation on the display as verification the program has not hung.