PLC programming
OpenPLC: IEC 61131-3 on Arduino, ESP32 and Raspberry Pi
Program a real PLC with OpenPLC on an Arduino, ESP32 or Raspberry Pi, from ladder basics to Modbus, MQTT and HMIs.
OpenPLC: IEC 61131-3 on Arduino, ESP32 and Raspberry Pi is a free, self-paced online course from EDWartens for engineering students, apprentices, technicians and working engineers in automation, electrical and instrumentation. It has 13 modules and takes about 28.6 hours, with written notes, a practice task per module, a practical project and a final assessment of 15 questions (pass mark 60%). Learning costs nothing and needs only a free account. The optional EDWartens Certificate of Completion, verifiable by code, is a one-off US$23.99 for you; it is not a vendor credential. Updated 1 November 2026.
- Free
- Beginner
- 28.6 hours
- Self-paced
- Certificate optional
- Lab practice in your browser
No card, no trial. The course is free for good. Certificate US$23.99, optional.
- Who it is for
- Engineering students, apprentices, technicians and working engineers in automation, electrical and instrumentation
- Jobs
- Roles that use this skill: PLC programmer, controls engineer, automation technician and commissioning engineer. No course guarantees a job.
- Tools
- OpenPLC Editor v4 and Runtime (open source; many videos show v3), optional Factory I/O 30-day trial, ScadaBR or FUXA. Hardware: optional Arduino, ESP32 or Raspberry Pi; everything runs in simulation without them.
- Updated


After this course you can
By the end you will be able to:
- Install OpenPLC Editor and Runtime
- Write IEC 61131-3 ladder with timers, counters and arithmetic
- Run programs on Arduino, ESP32 and Raspberry Pi
- Communicate over Modbus, MQTT and Python
- Build ScadaBR and Fuxa HMIs
Who it is for, and what you need first
Who it is for
Engineering students, apprentices, technicians and working engineers in automation, electrical and instrumentation.
Level: Beginner. Beginner. No PLC or electronics experience needed.
What you need
Software: OpenPLC Editor v4 and Runtime (open source; many videos show v3), optional Factory I/O 30-day trial, ScadaBR or FUXA.
Hardware: Optional Arduino, ESP32 or Raspberry Pi; everything runs in simulation without them.. What to download, and how.
How this course works
Watch the lessons
Short video lessons, one module at a time, at your own pace.
Read the notes
Open the Reading tab for the written notes and diagrams of the module.
Practise in the 3D labOptional
Try the module in the free 3D lab, in your browser.
Check yourself
Answer the questions to see what stuck before you move on.
Final assessment
Pass the final once you have been through the modules.
Certificate, if you want oneOptional
Optional, with a page anyone can use to verify it.
What you learn
13 modules in order, at your own pace. 28.6 hours of video lessons, with written notes and a practice task in each module.
- 1What OpenPLC Is: Editor, Runtime and the Scan51m
- 2Hands-on Install; Contacts, Coils and Logic Gates1h 43m
- 3Memory Bits, Set/Reset, Edges and First Programs, with lab practice: 1h 26m
- 4Timers, with lab practice: 1h 0m
- 5Counters and Comparison, with lab practice: 1h 42m
- 6Arithmetic, with lab practice: 59m
- 7Worked Examples I, with lab practice: 1h 25m
- 8Worked Examples II, with lab practice: 2h 49m
Show the other 5 modules
- 9Hardware: Arduino, ESP32, ESP8266, Raspberry Pi2h 28m
- 10Communication and HMI: Modbus, Python, MQTT, ScadaBR, Fuxa, with lab practice: 1h 33m
- 11Factory I/O Projects and SFC, with lab practice: 1h 31m
- 12FOSSEE OpenPLC Board with LDmicro (IIT Bombay)3h 59m
- 13Final Assessment
Software you need
What to download, where from, what it costs and how to install it. Every link goes to the maker's own site, never a mirror.
Show what to download (3 tools)
Required
- 01Free
OpenPLC Editor and OpenPLC Runtime
Autonomy Logic (OpenPLC project)
- Runs on
- Editor: Windows 10 or 11 (x64), macOS (Apple silicon or Intel), Linux x64. Runtime: Linux or Docker
- Account
- None needed
OpenPLC is free and open source. The Runtime v4 is MIT licensed and the Editor source is on GitHub under GPL-3.0.
Steps
- 1.Open the OpenPLC download page and download the Editor for your system.
- 2.Install and open the OpenPLC Editor.
- 3.Install OpenPLC Runtime v4 on a Linux PC, Raspberry Pi or in Docker, following the GitHub instructions.
- 4.In the Editor, set the runtime IP address and log in to it.
- 5.Write a ladder or structured text program and upload it to the runtime.
- Runtime v4 has no web page at port 8443; connect to it from the Editor instead.
- The old OpenPLC_v3 runtime has been replaced by Runtime v4.
Official download pageautonomylogic.com
Optional
Useful, not needed to finish the course.
- 02Free trial: 30 days
Factory I/O
Real Games
- Runs on
- Windows 7 SP1 or newer, with a graphics card from 2006 (NVIDIA, AMD) or 2012 (Intel) onwards
- Account
- Your name and email on the Factory I/O trial form
The 30-day trial includes the full Ultimate Edition. After that you need a paid edition; the Siemens, Allen-Bradley, Modbus and OPC, MHJ, Automgen and Starter editions each support different PLCs.
Steps
- 1.Open the Factory I/O start trial page.
- 2.Enter your name and email and start the trial.
- 3.Download and install Factory I/O.
- 4.Open a sample scene and connect it to your PLC or PLC simulator.
- 5.Before the trial ends, choose the edition that matches your PLC.
- Choose the edition by the PLC you will use: for example the Siemens edition works with S7-PLCSIM.
- The Starter edition has its own built-in PLC simulator if you have no PLC software.
Official download pagefactoryio.com - 03Free
FUXA
Frangoteam (open-source project)
- Runs on
- Windows, macOS, Linux, Raspberry Pi or Docker (needs Node.js 18 LTS if installed with npm)
- Account
- None needed
FUXA is open-source web SCADA and HMI software under the MIT licence, free for any use.
Steps
- 1.Open the FUXA GitHub page and read the install section.
- 2.Install Node.js 18 LTS, or install Docker.
- 3.Install FUXA with npm, or pull and run the FUXA Docker image.
- 4.Open http://localhost:1881 in your browser.
- 5.Add a device (for example Modbus TCP or OPC UA) and draw your first screen.
- Docker is the quickest way to try FUXA without installing Node.js.
Official download pagegithub.com
Checked against each maker's own page on 27 September 2026. Trial lengths and editions change; the maker's page is the final word.
Practise in the 3D lab
Practise the same IEC 61131-3 logic you write in the OpenPLC Editor on working machines in the PLC lab: latching, timers, counters, sequences and interlocks.
- Motor start/stop with overloadPLC lab, about 45 minOpen in the lab (opens in a new tab): Motor start/stop with overload
- Batch counter on a packing linePLC lab, about 45 minOpen in the lab (opens in a new tab): Batch counter on a packing line
- Pedestrian crossingPLC lab, about 75 minOpen in the lab (opens in a new tab): Pedestrian crossing
- Parcel sorterPLC lab, about 75 minOpen in the lab (opens in a new tab): Parcel sorter
Optional. Skip it whenever you like: it never blocks your progress or your certificate.
Course project, about 12 hours
Parcel sorting conveyor on OpenPLC: from the I/O list to a tested program, a Modbus tag list and a test record
Design, program and test a bench conveyor that sorts parcels. A pusher removes tall parcels, good parcels are counted, and a jam stops the belt and raises an alarm. You deliver your own sequence of operations, I/O list, OpenPLC program, Modbus tag list and test record.
- 4documents in the pack
- 8steps to follow
- Laboptional: in the 3D lab
- 5things to hand in
- 12 hof work, at your pace
- Control narrativeSequence of Operations: Parcel Sorting Conveyor PS-1
- I/O listI/O List: Parcel Sorting Conveyor PS-1
- Tag listModbus Tag List: Parcel Sorting Conveyor PS-1
- FATTest Record: Parcel Sorting Conveyor PS-1
Do it in the lab: 5 steps.
The project is optional practice. The certificate needs only the modules and the final assessment.
After the course, your next step
Show what you can do, then keep going in the same field.
A certificate you can verify
Finish the modules and pass the final assessment (15 questions, pass mark 60%) and you can add a certificate with a public verification page. One-off, US$23.99 for you. It is not a vendor credential.
Want a free certificate? Do the matching Free internship: 4 weeks, nothing to buy, with a free certificate of completion.

PLC Programming
Eight short weeks of PLC ladder logic on free simulators: notes, diagrams, a few videos and auto-tested tasks. Finish weeks 1 to 4 and the final, then claim a free Internship Completion Certificate with your real dates and study hours, and a QR code anyone can scan to verify it. Training, not employment.
See the internshipMore free courses
Roles that use this skill
- PLC programmer
- Controls engineer
- Automation technician
- Commissioning engineer
These are the kinds of roles where the skill is used. We make no promise of a job or an interview.
Plain notes
- Free: the whole course, the notes, the practice tasks, the final assessment and support from practising engineers.
- Paid, and optional: the course certificate, and the Engineer-verified internship (the Free internship costs nothing).
- No job promise: the course teaches a skill. It does not place you in a job.
- Lessons by: Instrumentation Tools, OpenPLC, Yaser Ali Husen, Engineering made Easy (Ing ME), OnosTech, seafox c, Spoken-Tutorial, IIT Bombay. Independent creators; the lessons stream from their own channels. EDWartens wrote the study plan, notes, practice tasks and assessments.
Instrumentation Tools · Eric Romine · Igor Art · OnosTech · seafox c · Spoken-Tutorial, IIT Bombay. If you are one of these creators and want a lesson removed or credited differently, write to info@edwartens.com.
Practise what you learn in the free 3D lab
Technical work is judged on what you can do: wiring, commissioning, finding a fault. Doing a task yourself teaches more than watching it a second time, and a lab lets you try it safely before you meet real equipment. It does not replace working on real hardware.
- Practise safely, so a mistake costs nothing.
- The lab checks your work like a site test, so you know when it is right.
- Free, in your browser, with nothing to install.
Why learn with EDWartens
What you get with this course, and what comes after it.
- Free from the first lesson to the final assessment.
- Practice in a free 3D lab in your browser, with nothing to install.
- Video lessons with written notes and a project.
- An optional certificate that anyone can verify online.
- Free internships to keep practising afterwards.
Common questions
Is OpenPLC a real PLC?
It is a real IEC 61131-3 runtime used in research, education and small projects. It is not a certified industrial controller; the skills transfer directly to Siemens, Rockwell and CODESYS.
Do I need an Arduino?
No. Simulation covers the programming modules; an Arduino Uno or ESP32 is inexpensive and makes the hardware modules real.
What is the FOSSEE OpenPLC?
An open-hardware PLC from IIT Bombay's FOSSEE project, programmed with LDmicro. It is a different product from the OpenPLC Editor/Runtime and is covered in its own module.
Is the OpenPLC: IEC 61131-3 on Arduino, ESP32 and Raspberry Pi course really free?
Yes. Every module, practice task and assessment. You create an account so your progress is saved and the assessments can be marked. The certificate is the only paid item, and only if you want it.
What certificate does the OpenPLC: IEC 61131-3 on Arduino, ESP32 and Raspberry Pi course give?
An EDWartens Certificate of Completion, issued when you pass the final assessment, with a verification code anyone can check. It is not an OpenPLC project or IIT Bombay credential and is never described as one.
Who made the video lessons in the OpenPLC: IEC 61131-3 on Arduino, ESP32 and Raspberry Pi course?
The creators named in the Credits block at the foot of this page, on their own YouTube channels. EDWartens did not make the videos and the creators are not affiliated with EDWartens. What EDWartens wrote is the study plan, the notes, the practice tasks and the assessments.
How long does the OpenPLC: IEC 61131-3 on Arduino, ESP32 and Raspberry Pi course take?
Plan on about 28 hours in all, including the video lessons, notes and practice tasks. It is self-paced, so you work through the thirteen modules at your own speed.
Do I have to use the lab?
No. The lab is optional practice. You can skip it whenever you like, and it never blocks your progress, the final assessment or your certificate.
Is the lab free?
Yes. Every lab level for this course opens in your browser, free, with nothing to install.
What topics does the OpenPLC: IEC 61131-3 on Arduino, ESP32 and Raspberry Pi course cover, module by module?
The OpenPLC: IEC 61131-3 on Arduino, ESP32 and Raspberry Pi course has 13 modules. It opens with "What OpenPLC Is: Editor, Runtime and the Scan", goes through "Hands-on Install; Contacts, Coils and Logic Gates", "Counters and Comparison", "Hardware: Arduino, ESP32, ESP8266, Raspberry Pi" and "FOSSEE OpenPLC Board with LDmicro (IIT Bombay)" and ends with "Final Assessment". The full list with minutes is under "What you learn" on this page.
What can I do after the OpenPLC: IEC 61131-3 on Arduino, ESP32 and Raspberry Pi course?
After the OpenPLC: IEC 61131-3 on Arduino, ESP32 and Raspberry Pi course: Install the Editor and Runtime and simulate programs; Write ladder with contacts, coils, memory bits, SR/RS and edge triggers; Use TON, TOF, TP, CTU, CTD, CTUD, comparison and arithmetic blocks. These are the practical outcomes the course is written around, and the final assessment of 15 questions checks them.
What software and hardware do I need for the OpenPLC: IEC 61131-3 on Arduino, ESP32 and Raspberry Pi course, and does it cost anything?
For the OpenPLC: IEC 61131-3 on Arduino, ESP32 and Raspberry Pi course, software: OpenPLC Editor v4 and Runtime (open source; many videos show v3), optional Factory I/O 30-day trial, ScadaBR or FUXA. Hardware: optional Arduino, ESP32 or Raspberry Pi; everything runs in simulation without them. The course itself is free.
Is the OpenPLC: IEC 61131-3 on Arduino, ESP32 and Raspberry Pi course suitable for me, and what level is it?
OpenPLC: IEC 61131-3 on Arduino, ESP32 and Raspberry Pi is rated beginner. Beginner. No PLC or electronics experience needed. It is written for engineering students, apprentices, technicians and working engineers in automation, electrical and instrumentation, and takes about 28.6 hours at your own pace.
Which jobs use the skills from the OpenPLC: IEC 61131-3 on Arduino, ESP32 and Raspberry Pi course?
Skills from the OpenPLC: IEC 61131-3 on Arduino, ESP32 and Raspberry Pi course (for example: install the Editor and Runtime and simulate programs) are used in roles such as PLC programmer, controls engineer, automation technician and commissioning engineer, and in automation engineer work. The course gives you practical evidence of the skill; it does not promise a job, and employers decide on experience and interview.
Start free today
OpenPLC: IEC 61131-3 on Arduino, ESP32 and Raspberry Pi, at your own pace. Add the certificate only if you want one.