What is the NSC System?

Networked Shared Control – a distributed architecture for autonomous automation

NSC (Networked Shared Control) is a distributed automation system designed for real-time control across a low-power, peer-to-peer network. Originally developed for industrial and building automation, it enables multiple embedded devices to collaborate without a central controller.

NSC network architecture

Each NSC node runs a lightweight cooperative multitasking operating system and can independently execute event-driven logic, communicate with peers, and respond to stimuli from the environment. Logic is defined using an intermediate interpreted language generated by a visual development environment.

Event-driven Cooperative Multitasking diagram

System Architecture

Remark: While the protocol allows for up to 256 I/O, the available devices can handle less than 16 inputs and up to 16 outputs both physical and virtual.

Program and Execution

Each NSC device executes a program compiled into an intermediate representation. This code is interpreted by the runtime within the embedded operating system.

Unlike traditional PLCs that rely on cyclic scans, NSC devices run logic only when triggered by events. This improves responsiveness and efficiency in distributed systems.

Comparison diagram of PLC cyclic process and NSC even-driven processes

Note: Devices programmed with the NSC OS and AVR-GCC have a firmware compiled into a native machine representation. See also Advanced Development.

Cooperative Behavior

Thanks to its peer-based communication model, devices can collaborate naturally. Interactions between inputs, outputs, timers, and functions can span across nodes, and are synchronized via automatically generated RPCs (Remote Procedure Calls).

Developers don’t need to handle the communication layer manually — the system abstracts away messaging and synchronization.

Diagram of a NSC network and how messages moves across the net

Designing with MaticStudio

Logic is visually defined in MaticStudio, the official IDE for NSC. Projects can include multiple devices and logic links between them. Developers can configure events such as input change, timer expiration, or button press, and assign responses such as toggling outputs or invoking remote functions.

The system is modular and extensible through Virtual Components, which are distributed as COB files. These provide advanced logic and optional UI components for SCADA integration.

👉 Learn more about MaticStudio

Example Applications

Advanced Development: NSC AppWizard & SDK

For advanced users and embedded developers seeking low-level control over firmware, the NSC system includes an optional toolchain composed of the NSC AppWizard and a full Software Development Kit (SDK).

The NSC AppWizard allows project-wide configuration of a distributed system composed of multiple devices. Developers can:

Once configured, the AppWizard generates separate C and header file sets for each device in the project, pre-filled with event tables, RPC stubs, and initialization code. Developers can then implement custom behavior directly by editing the generated files.

The SDK includes the full NSC OS source code and is compatible with AVR-GCC toolchains, allowing complete customization and firmware compilation outside of MaticStudio.

This approach is ideal for advanced users who need tight hardware integration, real-time optimizations, or access to interrupt-level routines beyond the scope of the graphical IDE.


👉 Learn more about the NSC OS SDK for AVR-GCC and AppWizard