How to Add IO Expansion Modules to the Arduino Opta PLC!

LeMaster Tech
182 followers
498 Video Views·Oct 6, 2025
In this video we cover how to add IO expansion modules to a Programmable Logic Controller (PLC). We use the Arduino Opta PLC in this continuation of our controls and automation tutorial series!
Arduino Opta PLC: https://amzn.to/4369xfc
Expansion Modules:
Digital Inputs and Outputs: https://amzn.to/4pX4ozQ
Analogs/PWMs: https://amzn.to/4mMhnl9
Be sure to check out the full automation and controls playlist on the channel!
https://www.youtube.com/watch?v=pTnSDfyAg3c&list=PLsFyHm8kJsx05fJn6-NX2HuSNl1FMN6YF
Don't forget to leave a like on the video, subscribe to the channel and comment what you want to see next on the channel!
Love the channel? Consider becoming a super supporter of the channel at my Patreon here: patreon.com/LeMasterTech
Welcome back to the Master Tech. And in
today's video, we are going to continue
our series on industrial automation and
controls tutorials with a quick but
super important and useful concept,
which is adding IO expansion modules.
So, with pretty much any PLC
manufacturer, Allen, Bradley, Rockwell,
Seammens, Arduino, um you're going to
run out of input and output channels
with whatever came on board the PLC
module itself. In fact, some of the
high-end Seammens and Allen Bradley
PLC's are just CPU modules. They're just
brains and they don't have any IO on
board. So, you design a project, an
automation system for a certain number
of inputs and outputs, and you need to
be able to add IO modules to those
PLC's. So, the Arduino Opta line is a
pretty new line. They only have three uh
expansion modules that they offer right
now, but it covers all of the basics.
They have two different versions of
input and output digital input and
output cards. One that has
electromagnetic relays and one that has
solid state relays. And then they have a
little bit of a grabag card that has
pulse with modulation outputs, analog
inputs, analog outputs, as well as a few
conventional input and output channels
as well. Um, but the important thing is
you design an overall system. You make
like an IO list of the total inputs and
outputs that you're going to have. and
you need to be able to add these modules
to your PLC. So, we've been doing this
tutorial series with the Arduino Opta
PLC, so we're going to continue using
that in today's video. Whatever PLC and
system you have, just know that your
manufacturer should provide all sorts of
recommendations for cards that support
digital inputs, digital outputs, analog
in, analog out, OLink, uh, Profet,
high-speed counter. There's so many
different variations on inputs and
outputs, RTDs and thermouples. You just
need to look up the card that's
compatible with your PLC or you're
following along with this Arduino Opta
series. Um, and I'll leave all of the
cards that I'm using linked in the
description below this video if you want
to follow along exactly that we start
from exactly the same spot. I'm going to
just make a new project for this
tutorial and I'll call it IO add-ons.
Um, and I'll just make a brand new
project. Um, and then in terms of my
physical setup right now, all I have is
the Arduino Opta PLC uh plugged in via
USBC cable to my laptop and then plugged
in uh to a 12volt power supply um for DC
power. So, that is the total physical
wiring. There's no cards clamped on
there yet. I have them uh just sitting
here waiting to be hooked up. Um but so
we have a brand new project, nothing
going on. I'm going to go ahead and
onboard the file system just like you do
first time with any PLC. So we can
really start from scratch together. And
that takes a little time, but it looks
like it works. So if we just go into our
LED outputs real quick, and we just give
ourselves uh like L1, L2, L3, and L4
variables uh real quick, as well as
let's just say, you know, red, green,
and blue. And then let's grab that user
uh button input and let's call it user.
So we can program with those variables.
Now, hopefully you've been following
this series and that's all pretty
familiar to you. Um, and we have this
count program. Let's just go ahead and
say that we want green to be on and we
want blue to be equal to the user. This
is just kind of like a great one two
line to uh make sure the PLC is actually
working when you connect to it and then
download to it. So, we connect. It says
no code. That's good because it's the
first boot up. Um, so there is no code
running on there. And we're going to go
ahead and just send this. And hopefully
it compiles, okay? Downloads, okay, and
then we'll get the green light turning
on. And then the blue light will turn on
and off as we push the user push button
in. That means our PLC is all rocked and
uh rolling and ready to go. It'll ask
you to restart. Go ahead and hit yes.
Target reboot. Shouldn't take too long.
Okay. And it does look like it worked.
The bottom right says source okay and
connected. If I come in here and uh turn
on live debug mode, I can see the count
counting up, which is good. I'll grab a
video real quick here of the front of
the Opta. So, the green light's on, and
as I push the user push button in, I get
the blue light. So, that's great. It's
online and we're communicating with it.
Um, we've been in this point a few times
before. That's not really the new
content for the video. Um, but this is
where we're going to start from because
now it's time to uh now it's time to add
those IO expansion modules. Um, and the
wiring and the IDE, the PLC software
side of things are both really simple,
but it's easiest to just do them one at
a time. So, let's go ahead and take a
look at the wiring really quickly, and
then we'll look at the IDE side really
quickly. Now, the wiring required to get
one of these expansion modules. Again,
there are three and they all look very
similar to the body of the PLC. Uh
because they all clip into the same
chassis. Um it's very simple for wiring.
They just need their own power feed
which you can daisy chain off of the PLC
or the card right next to it or you can
give it dedicated 12 to 24volt power. Um
but then they have these little slots in
the side. The PLC has that same slot
right there. And they need these little
10prong I squared C communicators. Oh, I
dropped that one. Okay. Well, there's
one right here. Um, they need these
little communicators and they just clip
in right next to each other and that's
how they communicate card to card. And
we'll see in the IDE once we get these
clipped in um that the PLC actually
knows what cards it's plugged into
because of those little communication
tabs. So, that's all we have to do is
get the power hooked up and then get
these clipped in together. So, I'll go
ahead and do that now and we'll go back
to the software side. Okay. So, I've got
them uh powered up. I've got them hooked
up to power and I've got them uh
communicating uh down the line, which is
great. But you can see the lights are
kind of doing their own thing. Um green
for power is good. Definitely means
they're connected. But the PLC is
throwing an error because it doesn't
know what to do with these cards because
we haven't told it what to do from the
software yet. So the physical wiring
very simple to connect them. Um now we
have to look at what to do in the PLC
IDE to connect them. So, if we come back
into the PLC IDE and we try to connect
to it, um, well, we'll see that because
I unplugged it. Now that we're plugged
in, if I just try to connect to it
again, I'm going to get errors um
because it's not in a running state
because the IO configuration has
changed. So, the PLC has thrown an
error. If I go to IO expansions and I
hit scan, this is really cool. It's
going to say, "Hey, the configuration's
not matching." And it's going to say,
"Hey, I have these cards here. Do you
want to add them?" and I can just hit
apply detect config. If you hit scan and
they're not detected, you should double
check your wiring because something is
probably wrong with the physical wiring.
But if you're sure the wiring is correct
or if you're trying to set one of these
up ahead of time, you can always add a
card just by right-clicking on IO
expansions and hit add.
And you can select the cards and you can
add them to your project manually, but
it's a lot easier to scan and then say,
okay, apply the detected config. And
then it adds the cards as well as all
the programmable inputs and outputs that
you can use for those cards. So if we
take two of the LED channels um on the
uh first card and we just say that'll be
light one one, that'll be light one,
two. Um and then I take the relay
outputs on the second card and I say
that'll be output 2 one and that'll be
output 22. We'll use those two lights uh
on those two cards to do um a little bit
of programming with. Okay. So, I'm going
to go ahead and hit save. And then I'm
going to try to download this now that
it has these cards on it. Um, well,
first let's go to the program and let's
do something. Um,
let's say that uh we also want we just
want light one to be on all the time and
we want light one two to be on when the
user push button is pressed as well. And
then let's say uh the opposite for
the second card. Let's say we want
output two on all the time and then the
light for one to come on when the user
push button is pressed. Okay. So this
should compile unless I missed something
which is possible. Build looks fine. Now
let's go ahead and download. Download.
Yes, it's okay that it's going to want
to restart.
restarted pretty quick, but there's no
lights on because the PLC is not
running. That's an important clue. You
can go ahead and hit cold restart here,
the blue circle there. Um, and hit yes.
And that's cool. Um, that's uh best case
scenario for sure. It's normal to need
to power cycle at this point. Um, stuff
goes sometimes. Uh, but I have now um
one LED on both of the expansion
modules. And if I push the uh push
button in, you can see the other LED on
both cards turns on with the blue LED on
the Opta itself. So that is proof that
the cards are talking to each other and
that I can program any input or output
channels uh for any of these cards from
the PLC now and I've got all the
communication. Okay, so uh at this point
you should understand how to get
expansion modules added to your PLC.
Like I said in the beginning, they're
not all this straightforward for all PLC
manufacturers uh out there, but Arduino
has made it really easy to add their
expansion modules. And it is generally
the same steps of set the network
parameters, connect them to your
network, and then discover them in your
PLC IDE or related software like with
Seammens, they have TIA portal, but they
also have a software called Pretto where
you can discover and set up network
parameters for Proet devices. uh RS
Logix, they have Studio 5000, which is
this integrated software, but they've
always had this RX RS links software
where you can see network uh devices and
you can see remote IO and things like
that. So, um there's definitely some
industry knowledge. It's hard to become
an expert in every type of remote IO,
but now you understand the basics of
adding IO expansion modules to your
projects, especially for the Arduino
Opta PLC. I'll have all the hardware I
used uh in this tutorial linked in the
description below this video. Let me
know with any questions or snags that
you ran into uh on this video and let me
know what you want to see more of next
on the channel. Thanks so much for
watching and see you next time. Thanks.
Bye.
