Integrations

Built-in nodes for vehicle buses, industrial protocols, power electronics, and energy markets, plus C and Python APIs to build your own.

20+
Built-in nodes
10,000
Signals per system
64
Concurrent clients

Every integration in MACS is a node: a separate process that publishes its data as named signals on the central signal bus and reads the signals it needs from there. Nodes don't need to know about each other. A CAN message decoded by one node can drive a Studio model, a Modbus device, and a dashboard gauge without any glue code.

Vehicle networks and CAN

Node What it does
CAN Bus Encodes and decodes messages using DBC files and sends periodic messages. One node per CAN channel.
CAN Router Routes frames between CAN buses through the Linux kernel gateway.
CAN Recorder Records CAN traffic and plays it back for testing and analysis.
J1939 Diagnostics Publishes DM1 and DM2 trouble codes and warning lamps from the ECUs on a bus as named signals.
CANopen SDO and PDO communication with CANopen devices.

MACS works with any CAN interface supported by Linux SocketCAN, including Kvaser USB and PCIe interfaces. Virtual CAN interfaces let you develop and test without hardware, and the CAN Sniffer tool in the desktop GUI captures raw frames and builds a DBC from live traffic.

Industrial and IoT

Node What it does
Modbus TCP Reads and writes registers on industrial devices.
MQTT Exchanges data with IIoT devices through an MQTT broker.
Advantech I/O Digital and analog I/O cards through the Advantech DAQNavi SDK (x86_64).
HAN Meter Reads P1/DSMR smart-meter telegrams from an MQTT topic and publishes the chosen OBIS values.

Power electronics

Node What it does
Mean Well CAN Controls a BIC-2200 bidirectional inverter or an NTN-5K inverter/charger over CAN, one unit per node.

Energy markets

Node What it does
Nord Pool Fetches day-ahead electricity spot prices.
ESS Optimizer Calculates the optimal charge and discharge schedule from spot prices.

Models and control

Node What it does
MACS Studio Runs compiled MACS Studio models against live signals.
Simulink Runs Simulink-generated C code at a fixed rate, with signals mapped to model inputs and outputs.
Event Manager Monitors signals and triggers events when conditions are met.

System and data

Node What it does
MDN Recorder Records signals from the signal bus with zero data loss.
InfluxDB Sink Ships every signal update to InfluxDB, spooling to disk while the database is unreachable.
System Monitor Publishes CPU, memory, and other system metrics as signals.
API Node REST and WebSocket access to live signals, with the browser dashboard.

Build your own

Need something that isn't on the list? Custom nodes can be written in C or Python and plug into the signal bus exactly like the built-in ones. MACS scaffolds a node package from a template, so you start from a working node rather than a blank file. From there, any Python library is available, from device SDKs to PyTorch.

You might also like

SparkBit

SparkBit

Compact Linux industrial computer for embedded control and multi-bus sensor bridging.

SparkFrame

SparkFrame

Customize your own enterprise rack.

SparkByte

SparkByte

The big brother of the SparkBit. More power, more CAN channels, more everything.

Interested in Integrations?

Get in touch for a demo or quote.