finds.dev← search

// the find

jonathanxavier/IndigoSCADA

★ 51 · C · updated Jan 2025

DCS - SCADA running on Linux and Windows. Development environment ANSI C/C++98. HMI is based on QT library. Different technologies (EiC, GigaBASE, FastDB, ORTE) have been integrated. OPC DA 2.05a, AE 1.10, HDA 1.20, OPC UA 1.03, DNP 3.0, RFC 1006, Modbus, MQTT 3.1.1 are supported.

A full SCADA/DCS system written in ANSI C/C++98, targeting industrial control environments on Linux and Windows. It implements a serious stack of industrial protocols (OPC DA/AE/HDA/UA, DNP3, IEC 60870-5-104, Modbus, MQTT) plus its own HMI built on Qt. This is for embedded/industrial developers who need an open-source reference implementation or starting point for process control software.

Protocol coverage is genuinely broad — OPC DA 2.05a through OPC UA 1.03, DNP3, IEC 104, Modbus, and MQTT in one codebase is rare for an open-source project. The C/C++98 baseline makes it portable to older embedded targets and PLCs where modern compilers aren't available. Bundling pthreads-w32 means the Windows build actually works without external toolchain setup. The project has been maintained long enough to have real HISTORY and CHANGES logs, which matters more in industrial software than in typical open-source projects.

51 stars in what appears to be a decade-old project tells you this has never gained real community traction — if you hit a bug, you're probably on your own. The codebase is C++98, which means no smart pointers, no RAII where it matters, and likely manual memory management throughout; plan to audit carefully before putting this near anything safety-related. No CI, no test harness beyond the pthreads unit tests — there's no automated way to verify a change doesn't break a protocol driver. OPC UA 1.03 was released in 2012; the spec is now on 1.05, and the security profiles have changed significantly, so don't assume the OPC UA implementation is production-safe.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →