# Hardware

> Connect DAQ cards, PLCs, and servers to Synnax with the Driver.

![](https://synnax.nyc3.cdn.digitaloceanspaces.com/docs/hardware/hero/809756446902/window-light.webp)

The Synnax Driver connects hardware to Synnax. It runs tasks that read data from devices into [channels](https://docs.synnaxlabs.com/reference/channels), and tasks that write commands from channels to devices.

## What hardware is for

* [Record sensor data from a DAQ card](https://docs.synnaxlabs.com/reference/hardware/ni/analog-read-task) -> an NI analog read task or a [LabJack read task](https://docs.synnaxlabs.com/reference/hardware/labjack/read-task) stores each sensor in a channel.
* [Command valves and relays](https://docs.synnaxlabs.com/reference/hardware/ni/digital-write-task) -> a write task sends each value you write to a command channel to an output.
* [Read and write PLC values](https://docs.synnaxlabs.com/reference/hardware/modbus/connect-server) -> Modbus and [OPC UA](https://docs.synnaxlabs.com/reference/hardware/opc-ua/connect-server) tasks read registers and nodes, and write commands back.
* [Poll a web API](https://docs.synnaxlabs.com/reference/hardware/http/read-task) -> an HTTP read task reads JSON fields from a device or service on a schedule.
* [Read and write EtherCAT I/O modules](https://docs.synnaxlabs.com/reference/hardware/ethercat/configure-device) -> EtherCAT tasks exchange data with the modules on a network port.
* [Connect hardware that Synnax does not support](https://docs.synnaxlabs.com/reference/hardware/custom) -> write your own integration with the Python or TypeScript client.

To run logic close to the hardware, deploy an [Arc automation](https://docs.synnaxlabs.com/reference/control/arc) to the Driver.

## Devices and tasks

* [Devices](https://docs.synnaxlabs.com/reference/hardware/devices) -> a device is one piece of hardware or one server. The Driver finds NI, LabJack, and EtherCAT devices by itself. You connect Modbus, OPC UA, and HTTP servers by their address.
* [Tasks](https://docs.synnaxlabs.com/reference/hardware/tasks) -> a task is a job that the Driver runs on a device. A read task records values in channels. A write task sends the commands from channels to outputs.

## Supported integrations

| Integration                                                                                                                            | Windows | macOS | Linux | NI Linux RT | Docker |
| -------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----- | ----- | ----------- | ------ |
| [EtherCAT](https://docs.synnaxlabs.com/reference/hardware/ethercat/configure-device)EtherCAT modules on a network port                 |         |       |       |             |        |
| [HTTP](https://docs.synnaxlabs.com/reference/hardware/http/connect-server)Devices and services with an HTTP JSON API                   |         |       |       |             |        |
| [LabJack](https://docs.synnaxlabs.com/reference/hardware/labjack/configure-device)LabJack T-series devices                             |         |       |       |             |        |
| [Modbus](https://docs.synnaxlabs.com/reference/hardware/modbus/connect-server)Modbus TCP servers, such as PLCs and I/O modules         |         |       |       |             |        |
| [National Instruments](https://docs.synnaxlabs.com/reference/hardware/ni/configure-device)NI-DAQmx devices, such as CompactDAQ and PXI |         |       |       |             |        |
| [OPC UA](https://docs.synnaxlabs.com/reference/hardware/opc-ua/connect-server)OPC UA servers, such as PLCs and SCADA systems           |         |       |       |             |        |

Synnax Desktop runs on macOS with Apple silicon and on Windows (x64). It supports the integrations of its operating system, so NI devices need Windows. Some integrations need the vendor’s software on the same computer as the Driver: NI-DAQmx for National Instruments, LJM for LabJack, and Npcap on Windows for EtherCAT. Each setup page links to the download.

## Where the Driver runs

Synnax Desktop starts a Synnax Core on your computer, and the Core runs the Driver. The Driver reaches the devices plugged into the computer and the devices on any network the computer can reach. In the [devices toolbar](https://docs.synnaxlabs.com/reference/hardware/devices), devices that the Driver finds show under **Node 1 Embedded Driver**.

Enterprise

A Core runs an embedded Driver by default. You can also [install the Driver](https://docs.synnaxlabs.com/reference/enterprise/driver/install) on another machine, such as an NI CompactRIO controller or a test stand computer. That Driver connects to the Core over the network and runs the tasks for the hardware on its machine. On an NI Linux Real-Time controller, tasks and Arc automations run next to the hardware, with no network delay in the control loop.
