Arduino unveils the Opta – “Micro PLC” for industrial IoT
hackster.io
hackster.io
A number of Chinese companies produce DIN rail mounted PLCs which already cover this market, cost virtually nothing and actually emulate Mitsu GX ones so work with existing off the shelf tools and have the same real time guarantees as the commercial units. If you're going to cheap out, these are fine.
But this isn't the problem. The expensive bit of a PLC is the dude perma-welded to the cabinet. Last thing people want to do is rock the boat by expanding the risk to a vendor like Arduino, which quite frankly doesn't have a great reputation or history of tested industrial or reliable hardware. It's better to pay 3x as much for a well established vendor.
Even some of those chinese clone PLCs are not spectacularly reliable... This is a professionally made device, developed in partnership with Finder which is a company with 70year of experience in making relays and other mission critical industrial equipment..
I'm quite willing to entertain that you are trying to get into the market and that these issues may be resolved with this product but you have a large reputation mountain to climb first.
You have to build reputation not try and add it afterwards.
To note I use Arduino projects usually for one off simple bench automation but nothing further than that. I tend to use them as a host for flat avr-libc / avr-gcc projects though, mostly because the old IDE and toolchain was absolutely dire.
That's the basic mechanism of why so much advertisement is just about brand awareness, not talking about quality at all: "I've heard a lot about them, and not everything has been bad" is less bad than "never heard about them, even if they were really terrible I wouldn't know"
Marketing gets you to the testing table. But better not have any skeletons in the cupboard.
Edit: I suspect you're confusing engineering for the niche sector of makers, the latter of which are driven by fads and marketing (sorry if I piss anyone off there).
It's possible that Arduino fantasizes about taking over large fractions of the industrial PLC market and if that's the case I'll chuckle agreeingly with everybody ridiculing them, but I believe that there could far more reasonable and realistic opportunities for them to stretch a little in that direction.
Arduino products rarely sell to people who do any form of QC or comparison shopping - they sell to people who buy the first thing on their mind.
Most of the Chinese embedded companies are engineering groups that understand they are filling the low end of the professional cost-quality curve, but they are still on that curve. For what you pay, they make a great product.
It also seems to me that your definition of the word "reliability" isn't agreeing well with others - to me it seems that these industry guys are using the word along "semi believable certification documents and soft established likelihood of not catching fire" whereas yours are more along "blind idolization for moral qualities seen in individual corporate employees". That might need a fix.
It's fine from a easy, hacked together hobby project point of view, but that's an entirely different thing.
It's like Python vs Rust. I wouldn't introduce a beginner to programming with Rust, but I also wouldn't program my manufacturing line (or whatever) with Python.
For a small scale industrial process, even a really hacked together setup can work surprisingly well, and while you have a chance of running into some show stopping problem, there's an equal chance of the hacked together setup continuing to function for the required time. If labour to fix stuff and/or small enough scale to temporarily have a little downtime are effectively free, this can work out positively.
I can see that things like these would be a good step up for those who were originally not even using PLCs. I think it provides a good "entry point" from Arduinos to something at least DIN rail mounted, and it's a way to experiment with ladder logic and whatnot. I personally would consider using it just for the convenience of that option.
> even a really hacked together setup can work surprisingly well
Is exactly right. Now that they got those three machines working, efforts go mostly into marketing, not into engineering.
You can't even buy an Arduino Uno for the price these guys are selling PLCs for: https://www.aliexpress.com/item/1005004887420307.html
I agree that that's what Arduino thinks the market is, but I disagree that their conceptual market will buy this.
Arduino-branded hardware is typically 5x the cost of the clones (remember, it's OSH) at no noticeable improvement in quality. DIN-rail mountable arduino clones and modules with I/O isolation that run on 24V power already exist at very reasonable price points, and from reputable dealers such as Automation Direct. I've used ruggedized modules such as Industruino (although their prices have definitely gone upmarket) and they're nice. IME, the only people who buy actual Arduino hardware are either beginners who don't realize that the much less expensive clones are every bit as good, or business buyers who don't really care, because it's not their money.
But maybe I'm wrong and there's enough of a price-insensitive market to make this a success. I certainly hope so. I'm a freelancer, so the bigger the market, the better for me :-)
I have designed & built an arduino clone-based product that mounts on DIN rail because the hardware it communicates with also does. Multiple installations running large machine control applications without a hitch. The clones are fine.
I feel like at least based on the quality of some boards vs clones that I have, there are definitely cases where I would have been "fired for not buying Arduino [IBM]" due to stuff like weird USB serial chips requiring driver hackery etc.
And I've definitely been in the situation where you tell someone it requires some part that costs "several hundreds of dollars" and they're like "oh no problem that's not an issue at all", because they were looking at the magnitude and not penny pinching.
I suppose that would be the market for this kind of thing. There's the other thing that you mention, where if you're using Arduino for this purpose, you might not be experienced enough to trust yourself to choose the right clone. Arduino provides sane defaults and generally the installations I've seen in the wild tended to use fairly close to "defaults".
I'm only adjacent to the space and have use their stuff for some home automation but from what I've seen it's more important that you can get replacement parts and reliability.
Can confirm that this is happening to some extent in biotech startups. Most of them don’t have the resources to hire grad students en masse to do the tedious labwork so they’re investing into lab automation. At the seed/series A level there usually isn’t enough money to splurge on brand name lab equipment beyond a few core pieces of equipment and with experiments running, there’s enough tech savvy downtime to experiment with hacky but cheap solutions. I’ve even seen HomeAssistant driven lab automation setups driven by AppDaemon apps with ESP32s used to control a mix of pumps and sensors (with CI/CD, though the whole thing was backed by a proper LIMS). It felt incredibly hacky but uptime was stellar once the SD card was replaced with an SSD.
It used to be that I had to go to Staubli or similar manufacturer and spec out a $50k robotic arm just to move plates from a liquid handler to the fridge. Now the same can be had for a few grand or less and there’s even open source options.
I see this PLC along those lines, where a lab might need to control a bunch of pumps and syringes with some synchronized via RS485 for realtime control and others on WiFi for less time sensitive stuff. A low cost PLC in that sweet spot between enterprise PLC and bare dev board could do really well.
These PLCs would be the perfect complement to ESP32s and RaspberryPi if they’re cheap enough to stockpile like RPis were preshortage. It’s unfortunate they haven’t published pricing yet, which tells me that it’ll be too expensive for hobbyists.
Unfortunately GX Developer doesn't appear to be free, but apparently Delta makes PLCs too (with actual UL certs too) which sell for about 130 USD on AliExpress and the software appears to be free (unsure). They also have reasonably (~80$) priced HMI LCD touch screen displays.
But sometimes you want something more modern, that you can program in the same language your main product is in, and apply the same expertise and tooling you already have.
I am not sure Arduino is the best option, given that their ecosystem is often very low quality, but there is definitely space for regular MCU in rugged case with protected I/O.
The Arduino IDE is totally unsuitable for it. No idea what they are doing about this. It would take an amazing amount of work to fix this.
As for PLC functionality people actually use, the product page says "Optional support for standard IEC 61131-3 PLC languages". This is what folks use for real. I presume this means "we didn't want to pay CodeSys but you can". Or something. That sucks.
Maybe they are relying on MBed support as their basic realtime story but, as mentioned, their dev environment is unsuitable for this kind of work.
There is no mention of expected scan time for ladders or guaranteed latency for anything else
So for the intended market, this doesn't look interesting so far. It seems like it will go the way of the x8 and land with a huge thud.
For a random person wanting an Arduino in a cabinet on a din rail, I can see maybe they'd use it.
This will not be a real option for IOT.
For what they are trying to claim is the target, I'd either use a PLC, or to your point, i'd mount a raspberry pi or embedded arm device.
As you say, the raspberry PI i understand - people need something to drive HMI/etc that isn't the horrible mess that most automation providers provide.
They want something to just hook a camera up to and not worry about spending 2 years writing codesys drivers or whatever.
This is trying to tread a middle ground, but the middle ground has better options - industrial PI with builtin PLC support, for example (https://www.industrialshields.com/industrial-plc-raspberry-p...)
That's because Arduino is sort of the worst of both worlds - they are actually horrible at pretty horrible at WiFi. Bluetooth i haven't tried in a while but it was also really bad. They are okay at I/O, but nothing is guaranteed in a meaningful way.
So as an option for IoT, it sucks.
At a slightly higher level, NRF does a much better job of producing rock-solid devices and ecosystem that can do bluetooth/wifi well, and throw in I/O.
At a lower level, everything equally sucks at wifi/bluetooth as this thing.
Minor nitpick just because I want them to be credited properly. nRF is the product, nordic semiconductor is the company.
As for me, as an industrial controls professional, I welcome these new solutions, they're another tool in my toolbox. It's up to my engineering decision to evaluate the proper usage of tools.
I agree the BLE/WIFI in the industrial space is a hilariosu mess, but Arduino is actually much worse at both - libraries like wifimulti_generic exist because there is no true standardized API that is useful enough, and wifi itself is fairly unreliable on lots of arduino devices - it's very easy to get them to crash just using the standard APIs.
I assume this is just arduino-in-din-rail format with other words on top. I would not say anything about "industry IOT" if i was them, nobody is going to use it in the industrial space.
To me the most interesting differentiating feature seems to be OTA updates of the firmware really.
> It will soon add PLC IEC 61131-3 programming (full set of 5 languages) + no/code fieldbus + Arduino sketch integrated with shared variables. There will be a new Arduino PLC IDE for that.
I also do a lot of PLC work. I agree that this isn't going to replace my CompactLogix, S7-1500, or Beckhoff controllers...ever. But there are times when you need to speak I2C, LIN, or CAN, or do high-speed, low voltage digital IO, and this is a way to make that happen. It competes with the AutomationDirect P1AM [2] controller, which similarly integrates an Arduino IDE with their P1000 24V and 120V industrial I/O modules. They have a "ProductivityBlocks" software, which is more of a drag-and-drop MIT Scratch like environment for people allergic to text, but no ladder. That's fine because you're not going to be using it to replace your assembly line PLC, you're going to use it to supplement your PLC to perform a function that it can't.
Same story with the RevolutionPi [3] - an industrial enclosure, with DIN rail mount and 24V power, for a Raspberry Pi. This is not a replacement for a PLC, it's a way to run, say, a print server or database (which I've used it for) that talks to your PLC over PyComm, or otherwise embed some Linux executable in your machine. There are lots of things that are trivial with 30 lines of Python that are next to impossible with a traditional PLC.
I recently had to integrate a temperature sensor that used a proprietary variant of I2C. The variant could be made to work using the I2C peripheral of most microcontrollers...but there was no way to get an off-the-shelf I2C adapter to work with it, you had to be constructing individual I2C frames and responding to interrupts. Things that are trivial at 48 MHz or 480 MHz are impossible at network RPIs and scan rates on the order of 10ms. I built a custom little board with a set of headers for a blue pill, spoke serial with the Beckhoff PC, and spoke this weird I2C variant with the temp sensor.
I once had to measure the RPM of a brushed DC motor in-situ, with no access to anything physical, and external vibrations that made accelerometers and microphones unreliable. I built a bandpass filter and comparator circuit, connected it to the high-speed counter of a Teensy, and did some DSP to count the individual current surges as the brushes skipped over each pole of the commutators. I suppose it could have been done with thousands of dollars worth of NI cRIO DAQ gear, but there was no sensor on the market that would do it off-the-shelf, and while I was implementing a custom PCB for the analog signal filtering it was easier to add a processor onboard than integrate a third-party counter.
One of my favorite projects was when I got to build a controller that fit in a cylinder the size of a hockey puck, could spin at 500 RPM, would run for a month on a 9V battery, and operated a high-precision inductance to digital AFE. There's no PLC in the world that fits that form factor, but it was comparatively easy with a microcontroller that talked to my PLC and motion control over a Renishaw wireless interface.
I've built automotive lines where they were trying to use a Picoscope with a Windows PC and Rockwell PLC to get LIN data off a body module that the line assembled. The Picoscope is a nice piece of gear, but would give false negatives to parts that the actual body controller was perfectly happy with; there was something weird about the timings of the sleep/wake cycle on the particular LIN transceiver they were using in the body controller. So we used that actual LIN transceiver that was in the BCU with a Teensy, and had zero problems thereafter.
[1] https://www.linkedin.com/feed/update/urn:li:activity:6996148...
[2] https://www.automationdirect.com/adc/shopping/catalog/progra...
P1AM does support ladder (and the other IEC languages) through OpenPLC(https://openplcproject.com/). This is great if you want a blend of IEC languages as ProductivitySuite only does ladder. On the other hand, if someone decides the P1AM isn't the right fit, it's easy to pop in a P1-540 and go the traditional PLC route without having to completely redo the physical system since it's all the same IO.
Hard to believe they could do it all on their own that quickly.
As for the rest - no disagreement, In practice though, i would trust the P1AM/etc over Arduino's product every day of the week. This is what they do.
The thing is that if i needed something a little different, i'd just move to a different part of the Productivity line - a p1000 or p2000 or a p3000 (or something else from Koyo, who owns them all).
If i needed ability to do "random things", i'd use a revolution pi, as you said.
There are plenty of good things in this market, and arduino doesn't seem to actually bring anything meaningful to the table.
From the other comments in the thread, I'm guessing starting on this new Arduino PLC might not be the best?
Automation Direct has some starter PLCs that are in the hundreds of dollars, and they have good enough reputations (though you will find shops that turn up their nose at AD). That'll be enough to learn ladder logic. And you can buy servos or steppers and learn motion control as well.
It'll be difficult to get a job without experience at first, but talent is short and you might be able to convince someone to do entry-level work with the material you taught yourself. And then it gets easier.
But you might start missing your old software engineering job.
AFAIK the original idea behind LD is that you can do it on paper, and then hand-assemble the “bytecode” for the PLC and just manually key that into the PLC on some sort of octal/hexadecimal keypad without any kind of computer-like programming device. Obviously, this idea does not translate to present world with cheap and ubiquitous general purpose computers.
Apparently going above 10Hz is not really supported so you have to do silly tricks. I ended up running the send command on every tick, and running a time triggered cycle that toggles a bit at 50Hz and then using the rising edge of that bit to actually start the secretly async task of sending 20 bytes on the wire.
Son far I have learnt that async tasks are hidden, memory is measured in Kb, there is no guarantee for cycle time whatsoever, the programming model is really awkward, lots of config cannot be stored as code, version control is a bolted on nightmare, etc, etc.
Really makes me wonder what a PLC can do that an arduino/esp32/rp2040 can not. I'm really struggling to see the value other than that the hardware is reliable and "industrial".
On the other hand even brand name PLC hardware is not that expensive if you factor in the fact that interfacing with 24V and mains-level logic is somewhat complex engineering problem. Relays and optocouplers are expensive.
Edit: and as for what PLCs can do that random MCU cannot: the Chinese Mitsubishi GX/FX clones mentioned in the sibling thread are essentially STM32 eval boards with industrial I/O and preloaded PLC firmware, nothing more, nothing less, so there you go.
No one that uses the Arduino library/hardware/ecosystem on a serious level actually uses the Arduino IDE - for what it's worth. The Arduino IDE is supposed to be for beginners to get started really easy.
For everyone else, use what you want... be it vendor IDE's (ie. Atmel Studio), PlatformIO (for your favorite IDE), etc.
There's nothing special about Arduino that requires using it's official IDE.
I know they have the "PRO" line, but the problem is that in professional settings it almost became a joke to even mention Arduino. For a time we had a lot of internal jokes around it (for example, one coworker, in interviews with candidates, always leaves the room as soon as the candidate mentions Arduino).
Myself, I loved the UNO, the concept, the support and the community. Now I use it sometimes to test a 5V sensor or other I2C/SPI peripherals, when I'm not in the mood to use a 3.3V level translator.
On the other hand, if the product is not a success, they might leave the product to die (anyone remember Arduino MKR Vidor 4000? the project last major update is 4 years ago). In that case, to me it means that I prefer to fully qualify and validate a chinese brand, purchase 10000 boards and forget about it.
It will be very difficult to turn the things around for Arduino, to consolidate itself in other markets. I will take a while.
Sounds like these candidates dodged a bullet.
The qualification to work there and use an Arduino is to have no prior experience with it.
Raspi don't seem to have any trouble selling.
The problem for Arduino seems to be competition. I can get better boards cheaper. Arduino may have been the first, but they've since been surpassed.
No, but it's not a huge growth market either. Makers tend to prefer products which are relatively inexpensive and close to "raw" hardware; neither of these factors are particularly favorable to manufacturers.
> Raspi don't seem to have any trouble selling.
Ironically, a lot of this is because it's become popular for use as an embedded Linux controller, often for applications that the BCM283x isn't even particularly well suited for. It's used in a number of musical synthesizers, for example.
Right now there's a lot of new IoT devices being put on the market and a large number of them are undoubtedly based on Arduino, but of course, there are supposed reliability and code issues with it.
However, people write and open source so much drivers and example code for Arduino. Wouldn't it be nice if the Arduino platform could become "production ready" so that people can actually leverage these drivers and example codes in their own projects instead of having to rewrite drivers for every combination of MCU and peripherals?
Ideally, making a product with Arduino shouldn't be a derogatory statement about its quality.
If you look at Industruino, Controllino, Ruggeduino products, and then the domain-specific arduino variants such as those for home automation, automotive hobbyist, lighting control, you'll probably find a lot of already OSH/OSS arduino-based hardware on the market.
And on the development side, ditch the (beginner-friendly?) Arduino IDE for VS Code and the PlatformIO plugin and you're all set.
If you have to kill the machine to recompile this is not a PLC by any stretch of the imagination, it's an Arduino with a fancy box.
In the Rockwell / Allen-Bradley world, almost all PLCs support online edits.
>Real PLCs
I don't think we're talking about the same thing!
Through a PLC’s IDE, which is almost always proprietary software provided by the PLC manufacturer, a developer has the ability to view variable values, edit their values, “force” or “lock” a variable to a specific value (making assignments to that variable a no-op), and make edits to the code logic. This can all be done while maintaining the realtime guarantees of the system. These features (called “online editing” by PLC manufacturers) are essential in many applications where PLCs are used and are the biggest differentiator between a PLC and any other embedded system, such as Arduino’s products.
GDB-style debugging of a desktop program or JTAG/SWO debugging of a microcontroller can do some of what a PLC IDE can do, but it’s not as reliable and safe as PLC products.
I wouldn't want WiFi, Ethernet, or any other IO crashing the Controller. It has to be rock solid.
What separation do you think there is? The M7 and M4 cores on a dual-core STM32H7 share all of their peripherals and memory (with the exception of CCM and I$/D$ on the M7). There is virtually no separation between them; they can even run the exact same code with a bit of wrangling. There isn't even any provision for firewalling the two off from each other.
If you were planning on treating the fact that the part had two cores as a safety feature, you need to reconsider that.
> uses an STMicro STM32H747XI dual-core microcontroller,
> which includes a single high-performance Arm Cortex-M7
> core running at up to 480MHz and a lower-power Cortex-M4
> core running at up to 240MHz alongside a shared
> floating-point unit (FPU),
The cores do NOT share an FPU. The M7 core has a built-in FPU capable of single and double precision. The M4 core has its own FPU, capable of only single-precision.
[1]: https://store.arduino.cc/products/arduino-mkr-vidor-4000
Oh and we runned a Tensorflow Lite image processing pipeline on that chip. It is probably a few times too powerful for fiddling pins and an IP stack.
Then it'll definitely do the job!
In some cases they've never been. It depends on the series. A lot of their portfolio is being made in external fabs like TSMC, whose allocations they gave up when Corona started as they were thinking the chip demand will go down. (Oh boy were they wrong.) On the other hand they still had allocations (in their "own" fabs), so depending on what you want they deliver. Problem is basically anything "mainstream" was in external fabs, e.g. the entire STM32F0 to STM32F4 series. In contrast, if you want an STM32L0 oder STM32L4, you can still order like nothing happened.
The G series seems to have good availability at the moment, if I was going to bet on a MCU for a new design that would be it. L series has only just gotten better, couldn’t get them a few months ago.
Some F3 chips have been looked over (didn’t go out of stock) despite being more advanced than their F4 counterparts. That’s marketing I guess.
There are some variants/footprint combos you can get. For example, I've been able to get G431s for a while in the right footprint, which is similar to the one I'm looking for , but with less flash and ram. Or, I can can an H7 in a way-too-big footprint.
Other MCUs like Nordic and ESP went through the shortage with no unavailability. Not sure if STM's comparatively large product lineup (as opposed to there only being a handful of Nordic and ESP variants) played into this.
To me, this one looks like a Starbucks branded coffee maker, or a Toyota branded bicycle, a company swag product line that are not what the brand represents but do technically belong to the similar extremely generalized categories.
And, this won't take genius to figure out, so the real question is, why it's kept being done? This only erode a brand and plant doubts on corporate integrity into customer's minds.
The largest cost is the plant support techs who can troubleshoot and potentially modify PLC code. Many plants rely on electricians for this role. Electricians who can nearly follow ladder logic, which is modeled after wiring schematics.
PLC programmers:
+--| |--+--(represent!)
+--| |--+
+--| |--+