OpenPLC is Ready for Hacking

It’s been nearly four years since we covered [Thiago]’s OpenPLC project. He never stopped working on it, and now it’s in a highly polished state.

If you read our initial coverage of this project, it would be easy to assume that he just wanted to control some halloween decorations. He is actually a PhD student at the University of Alabama in Huntsville. His research topic is SCADA (aka Industrial Control Systems) cyber security. His goal was to find vulnerabilities in PLCs and, hopefully, fix them. However, no PLC manufacturer releases their source code, and he was having trouble getting a deep understanding of something so closed.

So, since no one was going to open their code and hardware for him he simply made his own. OpenPLC can be programmed in all 5 IEC 61131-3 languages: ST, IL, LADDER, FBD and SFC. On top of that, it lowers the barrier of entry to developing this kind of industrial hardware by being compatible with all the favorites Arduino, Raspberry Pi, Windows, Linux, etc.

“The OpenPLC is the first fully functional standardized open source PLC. We believe that opening the black-box of a PLC will create opportunities for people to study its concepts, create new technologies and share resources.”

OpenPLC, for industrial automation to Halloween displays

Stepping out onto just about any factory floor you’ll find complex automatons building anything and everything imaginable. These machines need to be controlled somehow and before the age of computers these manufacturing robots were controlled with relays wired together to produce a multitude of actions. Relays, no matter how reliable and bulletproof the are, can’t be programmed without rewiring the entire machine. Now, factories have programmable logic controllers to take care of their automation tasks.

[Thiago] built his own programmable logic controller and released it as open hardware.Included in the OpenPLC are four 24V inputs, four 24V outputs (two with PWM), 0-10V analog inputs, and USB, SPI, and I2C for programming and expansion.

If you’re building anything from an industrial machine in your garage, or simply want really awesome Halloween (or Christmas) decorations, the OpenPLC can take care of driving all the solenoids, motors, and actuators needed. With the extendable I2C and SPI busses, it’s possible to add a plethora of sensors to bring a project to life.

The OpenPLC is based on an ATMega328 and is compatible with Arduino code. There are a few extension boards for digital and analog IO, as well as Ethernet.