Industrial Edge Computer / vPLC Spec Guide & Wish List
Since there are a lot of different names being thrown around, it’d help to mention them to make clear what I’m talking about:
- Edge/embedded Computer / PC / Gateway / Controller / Device
- IoT/IIoT Gateway / Controller / Protocol Converter
Although these names are specifying different functions, they all essentially boil down to an embedded PC with either a Windows or Linux operating system (OS) that allows you to access that OS directly so that you can load custom programs.
Some common manufacturers include (in no particular order): Advantech, Moxa, Opto 22, FreeWave Technologies, XetaWave, OnLogic, Phoenix Contact, WAGO, Beckhoff, ELPRO, etc.
Before we dive into the specs, it should be noted that I primarily work in the oil & gas industry, and so a lot of those spec requirements/wishes will reflect that.
THE BASICS
Processor (CPU)
For the CPU, the following should be considered the bare minimum in 2025:
- Architecture: ARM – ARMv8 or later (e.g. Cortex-A53), operating in a 64-bit state (AArch64)
- Clock speed: 1 GHz or more
- Number of cores: 2 or more
I prefer ARM over x86 because x86 (e.g. Intel Atom) tends to be much more expensive and uses more power. A lot of ARM edge PCs are less than $1000 USD and need only a few watts of power. If you need more computing power though, by all means, go for x86–just be prepared to pay.
Not only do I prefer ARM, but specifically ARMv8 or later operating in a 64-bit state. This is one thing that is troubling right now. A lot of the ARM-based edge PCs are still dual-core Cortex-A7, or single-core Cortex-A8/A9. These work fine but they’re almost 20 years old now and they’re all 32-bit. The newer generation of ARM architectures have much better features and performance for the same clock speed. 32-bit CPUs went the way of the dodo around that same time for desktop PCs, and 64-bit data types just make much more sense for the real world.
For clock speed, I say at least 1 GHz because it is running a full operating system and not just a small real-time operating system (RTOS). The extra speed helps with running programs that aren’t compiled for native execution, such as that in Node-RED, or Python programs.
Finally, I say at least 2 processor cores because you don’t want one CPU to have to do everything. It’s much easier to maintain a responsive, performant system when one core is doing background tasks and one core is taking care of the main application. Davide Nardella just released a very detailed article about how effective this is (isolate one CPU core from the rest of the system; pin your application to that core): https://www.linkedin.com/pulse/real-time-linux-preemptrt-how-much-does-really-change-davide-nardella-0sayf/ Most things are designed with multi-core CPUs in mind anyway, as that’s the standard for desktop PCs.
Memory (RAM)
256 MB or less is way too tight for most applications. 512 MB can get tight easily as well. 1 GB is decent for most custom applications (complete with supporting services), and thankfully that seems to be the norm for now. Of course more is better, especially if using Ignition Edge or the like, in which case 4 GB is much better. As far as RAM speed, DDR3 is still more than adequate in my opinion. DDR4 is fantastic if available.
Storage
This is another area where a lot of options are lacking. A few software packages and a single Python application (with dependencies) can easily eat up a few GB. The OS files are also using anywhere from a few hundred MB up to a little over a GB. For those reasons, 8 GB of storage is a decent amount.
Another important consideration though is to have a microSD slot. Onboard flash/eMMC storage is great and usually much faster than microSD cards, but if it fails then you have to replace the entire device, or at least the main board. The microSD slot also gives you the luxury of easily being able to increase storage.
An ideal setup would be to have 2-4 GB of onboard flash/eMMC for the OS, and a microSD card for software packages, custom apps, and data storage.
Edit 2025-07-22: Another important thing that is completely missing is storage redundancy. Because edge computers are essentially servers, they should have the same safeguards i.e. the ability to do hardware RAID 1. RAID 1 is a simple mirroring of storage devices, so perhaps dual onboard eMMC, or dual microSD slots. This way if one device fails, the system continues to operate without data loss.
Operating System (OS)
A popular Linux-based OS with:
- A modern long-term support (LTS) version of the Linux kernel (version 6.x) with either PREEMPT or PREEMPT_RT for real-time performance
- A modern package manager
A really big problem still is to see non-standard Linux distributions with no package manager (and sometimes no build tools / compilers either) and worse yet, a REALLY old version of the Linux kernel. Major version 6 is already 3 years old now, I really think it’s irresponsible from a cybersecurity standpoint to still be using major version 4 or older.
Speaking of cybersecurity, why are these details important? The older versions of the Linux kernel won’t get security patches forever. If you don’t even have a package manager to update the kernel, you’re at the mercy of the manufacturer to provide a new Linux kernel image every time there’s a security patch (spoiler alert, no such thing usually).
Edit: One thing I forgot to put here is that whatever Linux kernel version you end up with, it should have the virtualization features/modules needed for Docker, e.g. the KVM module in some instances.
Debian is probably the de facto standard Linux distribution used in this space and has an excellent set of software package repositories so that you can easily install anything you may need. Need MySQL? Docker? Redis? Compilers? A firewall? It’s just a command away with the APT package manager.
If you prefer Windows, Windows IoT is perfectly fine since it supports running real-time applications without a 3rd-party extension.
Communication Ports
At least 2 (of each) Ethernet interfaces/PHYs and serial (RS-232/422/485) ports. Less of each would work in certain cases, but it’s really handy to have at least 2 Ethernet interfaces so you can use the Swiss Army knife that is Linux to turn the edge computer into a managed switch / router as well. Two serial ports are great because that way you have at least one to be a server, and one to be a client. Thankfully, these specs are pretty common.
Regarding Ethernet port speed, I think that 100 Mbit/s is still fairly sufficient, but it’s becoming more important to have gigabit for obvious reasons.
Operating Conditions
Everyone’s industrial automation applications are different. One might be focused solely on a plant floor, whereas another (like me) is focused on harsh conditions, like an offshore platform, or a scorching desert.
The standard seems to be 0 to 50 °C (32 to 122 °F) operating temperature. While that’s great for a plant floor, that spec excludes ENTIRE industries. There should always be a few options offered with at least -20 to 70 °C. Manufacturers: spend the few extra dollars on extended temperature range components — people will gladly pay the additional amount to be able to use it in that situation.
My additional ask as someone in oil & gas is of course to have at least one option with hazardous area approvals. UL Class I Division 2 / IECEx/ATEX Zone 2 are both great.
Power Requirements
24 VDC is fairly standard, but what’s really nice is to have a wide input voltage range, e.g. +5 to +30 VDC. As I mentioned before, I prefer ARM because it sips power–anything <10 W is great. These specs allow you to power the edge computer with a small solar panel and battery. Again, these are my oil & gas roots coming out–if your application is for a factory floor then these details aren’t really important.
ICING ON THE CAKE
Real-time coprocessor
A lot of ARM system-on-modules (SoMs) and system-on-chips (SoCs) come with a real-time coprocessor / microcontroller core (usually Cortex-M__ series; Cortex-R__ series would be ideal) in addition to the main application CPU cores (Cortex-A__ series). There’s a lot of concerns about hard real-time / determinism when doing control not using a PLC. It might be a good strategy for manufacturers to start using these RT coprocessors exclusively for control programs so that there’s no question or doubt about the system’s ability to control reliably. For example, the Cortex-M7 is already being used in a number of safety-critical industries (including industrial automation), and is IEC 61508 certified. (Reference: https://www.arm.com/products/silicon-ip-cpu/cortex-m/cortex-m7)
Neural Processing Unit (NPU)
Artificial Intelligence (AI) and Machine Learning (ML) are eating the world right now. Everything needs to be capable of training and running AI/ML models. Newer SoMs and SoCs come with onboard NPUs, capable of being utilized by popular platforms like TensorFlow Lite (a variant of TensorFlow for embedded/lightweight devices).
Onboard analog I/O
It’s pretty common to see units with a few digital inputs/outputs, but it’s especially great to see some with some analog inputs/outputs (4-20 mA, not just voltage!). With a handful of digital and analog I/O points, the edge computer basically becomes a micro PLC or programmable RTU, which is especially useful in off-grid applications.
Onboard WiFi
It’s great to have that built-in hotspot so that you can do things like access the admin interface or view a virtual HMI or data dashboard easily with your smartphone.
CLOSING REMARKS
I’m really hoping to see more edge computers with these specs soon. It’s time to retire the single digit Cortex-A models.
The only thing that I’ve run into lately that comes close to these specs (well, it basically checks all these boxes) is ELPRO Technologies’ new Quantum Edge product. The value is simply outstanding–it even has a built-in solar controller. This is not necessarily meant to be an endorsement, I just haven’t seen anything else come close.