Skip to the content
4 layers233.4 × 147.3 mmOpenPLC Hardware, the printed circuit board in 3D

Open Source Programmable Logic Controller (Hardware and Software). Based on the Master of Science in Electrical Engineering of João Vitor Rocha Santana

Size
233.4 × 147.3 mm
Copper layers
4
Thickness
4.69 mm
Parts
494
Nets
413
Pads
1,618
Tracks, vias
4,358, 1,026
Pours
46
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
8 May 2024
Updated
21 Jul 2025

Overview

OpenPLC Hardware is an open-source printed circuit board by gasiepgodoy, from the gasiepgodoy/Open-Source-PLC repository on GitHub. It is a 4-layer board of 233.4 × 147.3 mm with 494 parts on 413 nets, routed with 4,358 tracks and 1,026 vias.

It is built around the SN74LVC1G125DBVR-TP, ADM3222ARUZ and ADM3485EARZ, with the ADS8688IDBTR, AP3402KTTR-G1 and 74AHC595D among its other parts. Its parts include 150 resistors, 143 capacitors, 43 diodes, 30 connectors and 22 ICs.

Main components

12

README

README.md

Open-Source-PLC

Open-Source-PLC is an open automation platform developed as part of a master's degree project, focused on accessibility, customization, and compatibility with both industrial and educational applications. The goal is to democratize access to industrial automation through a fully open, documented hardware and software solution based on widely adopted technologies.

This repository centralizes all files, documentation, schematics, and source code required to understand, replicate, and extend the system—ensuring long-term continuity and community collaboration.


🎯 Project Purpose

For an open-source platform to be truly applicable in industrial settings, it must go beyond basic functionality and meet criteria for engineering quality, physical robustness, and scalability. Therefore, the following strategic requirements were defined:

  • Full Openness: The project provides complete access to all hardware files (schematics, PCB layout, BOM) and software libraries with public documentation, enabling full transparency, replication, and community-driven evolution.
  • Flexibility and Customization: The modular hardware design, combined with support for multiple languages and protocols, allows the platform to be adapted to a variety of processes, from test benches to full-scale industrial lines.
  • Industrial Compatibility: The adoption of industrial voltage levels, standard connectors, and protocols such as Modbus and MQTT ensures direct adherence to realworld industrial operating conditions.
  • Low Learning Curve: The use of familiar environments (OpenPLC Editor, Thonny IDE) and the development of simplified MicroPython libraries make the platform accessible even to teams with limited experience in advanced programming.
  • Experimental Feasibility and Scalability: The architecture has been validated in two distinct setups (PID control and part-sorting station), demonstrating its ability to operate reliably in real applications while remaining scalable for future expansions.

This combination of elements allows the solution to serve as a bridge between the maker/open-source ecosystem and the technical demands of industry, fostering an environment of continuous innovation, operational cost reduction, and greater technological freedom.


⚙️ Functional Requirements

  • Support for both MicroPython and IEC 61131-3 (via OpenPLC)
  • Digital and analog input/output, PWM support
  • Ethernet communication (via W5500), with MQTT protocol
  • Encoder interface and compatibility with industrial sensors
  • Compatibility with standard industrial protocols and connectors
  • Modular hardware design with plug-and-play expandability

🧩 Hardware Summary

The architecture is organized into independent functional blocks, with modular I/O expansion via SPI serialization, allowing the number of inputs and outputs to be tailored to the specific application. The base version of the platform includes:

  • Main controller: Raspberry Pi Pico (RP2040)
  • Expansion: Up to 12 digital inputs, 8 digital outputs, 1 dedicated PWM output, 4 analog inputs, and 1 encoder input
  • Networking: W5500 Ethernet chip with RJ45 connector, SPI communication
  • Electrical Interface: Level shifters, opto-isolated inputs, and industrial-grade buffers
  • Additional Support: Optional RS-232/RS-485 communication bus

All schematics and PCB layout files are available in the /Hardware folder.


🖥️ Software Summary

The platform offers native support for two complementary paradigms:

MicroPython

which supports high-level scripting for control, communication, and integration with platforms such as Node-RED, databases, and dashboards.

OpenPLC

which enables the development of control logic using IEC 61131-3 standardized languages such as Ladder and Structured Text, with an accessible development environment

More details are available in the /Software folder.


🔬 Validation and Testing

Two practical experiments were conducted to validate the system's functionality:

  1. DC Motor PID Control (MicroPython):

    • Speed control using encoder feedback
    • MQTT communication with Node-RED
    • Validation through manual shaft load variation
  2. Color Sorting Station (OpenPLC):

    • Color detection with automated part separation
    • Controlled via ladder logic
    • Monitored through MQTT and Node-RED dashboards

Parts

494
QtyValueFootprintReferences
75GRM155R71H104KE14DCapacitor_SMD:C_0402_1005MetricC1, C10, C11, C12, C100, C106, C107, C108, C109, C110, C112, C113, C116, C117, C118, C119 +59
27RC0402FR-0710KLResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR18, R19, R22, R24, R25, R101, R103, R123, R129, R139, R144, R145, R146, R147, R148, R150 +11
24HSMS-C197footprints:LEDC1608X60NLED2, LED10, LED11, LED14, LED15, LED17, LED18, LED19, LED20, LED21, LED22, LED23, LED24, LED25, LED26, LED27 +8
23ERJ-3EKF1001VResistor_SMD:R_0603_1608MetricR63, R64, R65, R66, R67, R68, R69, R70, R71, R72, R73, R102, R125, R126, R127, R128 +7
20ERJ-3EKF4750VResistor_SMD:R_0603_1608MetricR2, R4, R5, R10, R11, R14, R16, R51, R52, R53, R54, R55, R56, R57, R58, R59 +4
18RC0805JR-071K2LResistor_SMD:R_0805_2012MetricR35, R36, R38, R40, R75, R76, R77, R78, R79, R80, R81, R82, R83, R84, R106, R107 +2
13GCM21BR72A104KA37LCapacitor_SMD:C_0805_2012MetricC32, C33, C34, C35, C36, C37, C38, C39, C40, C41, C42, C43, C111
12CRM2512-JW-302ELFcustom:WF25P302JTLR3, R6, R8, R9, R13, R15, R17, R20, R23, R26, R28, R29
11PR20204VBNNConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ4, J12, J46, J47, J48, J49, J50, J51, J52, J53, J54
10P4KE350CAfootprints:DIOAD1036W78L470D235D2, D4, D6, D7, D10, D12, D14, D16, D18, D20
90603ZD105KAT2ACapacitor_SMD:C_0603_1608MetricC76, C78, C80, C83, C85, C87, C88, C98, C142
9284512-5footprints:SHDRRA5W82P0X350_1X5_1980X920X745PJ5, J6, J7, J8, J9, J10, J55, J56, J57
9RC0603JR-070RLResistor_SMD:R_0603_1608MetricR21, R37, R88, R89, R90, R100, R109, R152, R160
7C1005X7R1E103K050BBCapacitor_SMD:C_0402_1005MetricC16, C90, C114, C127, C129, C130, C138
7CC0603KRX7R9BB102Capacitor_SMD:C_0603_1608MetricC99, C102, C103, C104, C105, C121, C123
6833H-1A-F-S-24VDCfootprints:833H1CFS24VDCK3, K6, K8, K12, K14, K15
6BLM15HG102SN1Dfootprints:BEADC1005X55NL22, L23, L24, L25, L26, L27
6CL10C220JB8NFNCCapacitor_SMD:C_0603_1608MetricC3, C6, C8, C13, C14, C15
6CL31A226KAHNNNECapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC46, C47, C62, C63, C86, C136
6HSMG-C680footprints:LEDC1608X60NLED33, LED34, LED35, LED36, LED37, LED38
6MPZ2012S331AT000footprints:INDC2012X105NL3, L4, L11, L12, L19, L20
5RC0603JR-07100RLResistor_SMD:R_0603_1608MetricR140, R141, R142, R143, R149
40603ESDA2-TR2footprints:DIONC1608X70NZ10, Z11, Z12, Z13
40805X475K250CTCapacitor_SMD:C_0805_2012MetricC89, C92, C95, C97
4BLM18PG330SN1Dfootprints:BLM18AG102BH1DL13, L14, L15, L16
4ERJ-3EKF4992VResistor_SMD:R_0603_1608MetricR112, R118, R121, R130
4ERJ-3EKF49R9VResistor_SMD:R_0603_1608MetricR153, R154, R155, R156
4ERJ-3GEYJ471VResistor_SMD:R_0603_1608MetricR41, R42, R43, R44
4ERJ-6ENF1000VResistor_SMD:R_0805_2012MetricR131, R132, R133, R134
4GRM188R61A106KE69JCapacitor_SMD:C_0603_1608MetricC44, C81, C133, C134
4RC0603FR-0733RLResistor_SMD:R_0603_1608MetricR111, R113, R114, R115
4RR1220P-4751-D-MResistor_SMD:R_0805_2012MetricR1, R33, R97, R116
4SM5819PL-TPfootprints:SM5819PL-TPCR5, CR6, CR7, CR8
4SMAJ28A-TRfootprints:SMAJ28A-TRCR1, CR2, CR3, CR4
4SP4022-01FTG-Cfootprints:SP4022-01FTG-CZ2, Z3, Z4, Z5
4TNPW1206250RBEENResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR135, R136, R137, R138
3CC0603KRX5R6BB475Capacitor_SMD:C_0603_1608MetricC74, C75, C115
3CL10C470JB8NNNCCapacitor_SMD:C_0402_1005MetricC122, C124, C125
3ERA-2AED331XResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR110, R158, R159
3ERJ-6ENF5761VResistor_SMD:R_0805_2012MetricR48, R104, R105
3SMAJ10CAfootprints:DIONM5226X256NZ7, Z8, Z9
3TLP292-4_LGBTP,Efootprints:SOIC127P700X230-16NU18, U19, U20
22N7002Lfootprints:SOT96P237X111-3NQ7, Q8
274AHC595footprints:SN74AHC595PWU1, U8
274LCX14MTCXfootprints:SOP65P640X120-14NU15, U16
2AZ943-1CH-24DEFfootprints:AZ9431CH24DEK2, K10
2BLM18BD221SN1Dfootprints:BLM18AG102BH1DL8, L21
2BLM21PG600SN1Dfootprints:BLM21AG102BH1JL17, L18
2C3216X5R1H106K160ABCapacitor_SMD:C_1206_3216MetricC56, C60
2DDZ20ASF-7footprints:SODFL2512X75NL6, L7
2DMP6350SQ-7footprints:SOT96P240X110-3NQ1, Q2
2GJ821BR61E106KE11Lfootprints:CAPC2012X145NC94, C96
2PH1-03-UAConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ41, J45
2PH1-20-UAConnector_PinHeader_2.54mm:PinHeader_1x20_P2.54mm_VerticalJ42, J43
2RR1220P-682-DResistor_SMD:R_0805_2012MetricR117, R119
2SI8620BB-B-ISRfootprints:SOIC127P600X175-8NU23, U24
2SN74HC165PWRfootprints:SOP65P640X120-16NU13, U14
2SN74LVC1G125DBVRdigikey-footprints:SOT-753U3, U5
2SN74LVC1G14QDCKRQ1footprints:SOT65P210X110-5NU37, U38
2TBP04R2-500-10BEConnector_Phoenix_MC_HighVoltage:PhoenixContact_MCV_1,5_10-G-5.08_1x10_P5.08mm_VerticalJ1, J2
108055A471JAT2ACapacitor_SMD:C_0805_2012MetricC93
10ZCF0100AF2Afootprints:FUSC7451X170NF2
112061A222JAT2ACapacitor_SMD:C_1206_3216MetricC132
11206L025YRfootprints:FUSC3216X100NF1
11705950-1Connector_RJ:RJ12_Amphenol_54601J59
1200MSP2T3B2M6QEcustom:Toggle_Switch_200MSP2T3B2M6QES1
12350514-3footprints:SHDRRA3W90P0X350_1X3_1110X920X691PJ3
12N7002DWdigikey-footprints:SOT-363Q3
15441391footprints:SHDRRA8W83P0X350_1X8_2940X920X755PJ11
174LVX04Mfootprints:SOIC127P600X175-14NU32
174LVX32Mfootprints:SOIC127P600X175-14NU33
1796644-3footprints:TE_796644-3J58
1ADM3222ARUZfootprints:SOP65P640X120-20NU36
1ADM3485EARZfootprints:SOIC127P600X175-8NU35
1ADS8688IDBTRfootprints:SOP50P640X120-38NU29
1AP3402KTTR-G1footprints:SOT95P280X100-6NU21
1AP63356DV-7footprints:AP63356DV7U2
1B1100-13-Ffootprints:DIOM5226X230ND23
1B240A-13-Fdigikey-footprints:DO-214ACD21
1B340-13-Fdigikey-footprints:DO-214ACD24

The 445 most common of 494 parts.

Similar boards

  • 2 layers50.8 × 25.4 mmXiegu MiniMic, the printed circuit board in 3D

    Xiegu MiniMic

    jzkmath/Xiegu-MiniMic

    A Small Microphone for the Xiegu G90, X5105 and X6100 Radios

    22 parts17GPL-2.0
  • 4 layers260 × 110 mmPandore, the printed circuit board in 3D

    Pandore

    filliformes/pandore

    pandore is an open-source digital audio instrument protyping platform based on the LattePanda Mu.

    804 parts2
  • 4 layers152.4 × 152.4 mmCSTAR, the printed circuit board in 3D

    CSTAR

    GenerateNU/Concrete

    192 parts1
  • 6 layers82 × 155 mmCm5-carrier, the printed circuit board in 3D

    Cm5-carrier

    SPIRIT-org/SPIRIT

    Smartphone based on the Raspberry Pi CM 5.

    138 parts1.4k
  • 6 layers100 × 70 mmSa800u baseboard hw, the printed circuit board in 3D

    Sa800u baseboard hw

    antmicro/snapdragon-845-baseboard

    https://antmicro.com/blog/2022/04/open-source-snapdragon-845-baseboard/

    616 parts70Apache-2.0
  • 2 layers37.5 × 19 mmTFRPM01, the printed circuit board in 3D

    TFRPM01

    ThunderFly-aerospace/TFRPM01

    Revolutions per minute (RPM) meter for UAV, rotors, wheels and engines.

    28 parts9GPL-3.0
  • 2 layers181.6 × 172.3 mmPMK Keyboard, the printed circuit board in 3D

    PMK Keyboard

    PumaFPV/PMK

    PMK - Full wireless split keyboard

    151 parts4MIT
  • 4 layers88.1 × 59.4 mmChromapi motherboard v1, the printed circuit board in 3D

    Chromapi motherboard v1

    Mowibox/chromapi_motherboard

    Raspberry Pi control HAT dedicated to the quadruped robot Chromapi.

    139 parts2Apache-2.0

Questions

How big is the OpenPLC Hardware PCB?

It measures 233.4 × 147.3 mm and has 4 copper layers, 4.69 mm thick.

What parts does the OpenPLC Hardware use?

494 parts, built around the SN74LVC1G125DBVR-TP, ADM3222ARUZ, ADM3485EARZ and ADS8688IDBTR. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the OpenPLC Hardware KiCad files?

From the gasiepgodoy/Open-Source-PLC repository on GitHub, at the commit this page was made from: the board is Hardware/KiCad Files/Project/OpenPLC_Hardware.kicad_pcb and its schematic Hardware/KiCad Files/Project/Analog_input.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the OpenPLC Hardware design in my own project?

Its repository states no licence, so its author keeps all rights: ask gasiepgodoy before reusing the design.