# Configure a LabJack device

> Learn how to connect and configure LabJack devices.

The Synnax Driver reads from and writes to LabJack T-Series devices.

> Only T-Series devices are supported. If you are interested in using Synnax with other LabJack devices, [contact us](https://www.synnaxlabs.com/#contact).

## Prerequisites

Before you can start using your LabJack hardware with Synnax, you will need to ensure that you have the following:

1. A [Synnax Core](https://docs.synnaxlabs.com/reference/core/quick-start) running on your network.
2. A [Synnax Driver](https://docs.synnaxlabs.com/reference/driver/get-started) running on your network. This Driver must be connected to the Core and running on the same machine as your LabJack hardware is connected to.
3. The [LJM library](https://support.labjack.com/docs/ljm-software-installer-downloads-t4-t7-t8-digit) installed on the machine running the Synnax Driver.
4. The [Synnax Console](https://docs.synnaxlabs.com/reference/console/get-started) installed on your local machine.

## Supported operating systems

| Platform           | Status          |
| ------------------ | --------------- |
| Windows            | ✓ Supported     |
| Linux              | ✓ Supported     |
| NI Linux Real-Time | ✗ Not Supported |
| macOS              | ✓ Supported     |
| Docker             | ✗ Not Supported |

## Configuration parameters reference

| Parameter         | Type   | Required | Description                                                             |
| ----------------- | ------ | -------- | ----------------------------------------------------------------------- |
| `name`            | string | Yes      | Human-readable device name for identification in Console                |
| `rack`            | string | Yes      | Synnax Driver (rack) key where the device is connected                  |
| `model`           | string | Yes      | LabJack model (`LJM_dtT4`, `LJM_dtT7`, or `LJM_dtT8`)                   |
| `location`        | string | Yes      | Physical connection identifier (see below)                              |
| `identifier`      | string | Yes      | Device identifier: serial number, IP address, device name, etc.         |
| `connection_type` | string | No       | Connection method: `ANY` (default), `USB`, `TCP`, `ETHERNET`, or `WIFI` |

> `connection_type` is only supported through the Python and TypeScript client libraries.

## How-to

> Before you begin, connect to your device and update it using [Kipling](https://support.labjack.com/docs/kipling).

**Console**

Synnax will automatically detect new LabJack devices and display a notification in the Console when a new device is connected. To start configuring the device, find the device in the devices toolbar, right click on the device and select “Configure”.

[](https://synnax.nyc3.cdn.digitaloceanspaces.com/docs/device-drivers/labjack/configure-device/lj-configure-dark.mp4#t=0.001)

**Python**

```python
import synnax as sy
from synnax import labjack

# Connect to Synnax
client = sy.Synnax()

# Get the embedded rack (local driver rack)
rack = client.racks.retrieve_embedded_rack()

# Configure device connection
device = labjack.Device(
    model=labjack.T7,                 # Model: T4, T7, T8
    identifier="ANY",                 # Serial number, IP, name, or "ANY"
    name="My LabJack T7",             # Device name
    location="ANY",                   # Connection identifier
    rack=rack.key,                    # Rack key
    connection_type="ANY",            # "ANY", "USB", "TCP", "ETHERNET", "WIFI"
)

# Create the device in Synnax
device = client.devices.create(device)

# Or retrieve by model
device = client.devices.retrieve(model="LJM_dtT7")

# Or retrieve by name
device = client.devices.retrieve(name="My LabJack T7")

print(f"Device configured: {device.name} (key={device.key})")
```

**TypeScript**

```typescript
import { Synnax } from "@synnaxlabs/client";

// Connect to Synnax
const client = new Synnax();

// Get the embedded rack (local driver rack)
const [rack] = await client.racks.retrieve({ embedded: true });

// Configure device connection
const device = await client.devices.create({
  key: crypto.randomUUID(),
  rack: rack.key,
  name: "My LabJack T7",
  make: "LabJack",
  model: "LJM_dtT7", // Model: LJM_dtT4, LJM_dtT7, LJM_dtT8
  location: "ANY", // Connection identifier
  properties: {
    connection: {
      identifier: "ANY", // Serial number, IP, name, or "ANY"
      connectionType: "ANY", // "ANY", "USB", "TCP", "ETHERNET", "WIFI"
    },
    read: {
      index: 0,
      channels: {},
    },
    write: {
      channels: {},
    },
  },
});

// Or retrieve by model
const [byModel] = await client.devices.retrieve({ models: ["LJM_dtT7"] });

// Or retrieve by name
const [byName] = await client.devices.retrieve({ names: ["My LabJack T7"] });

console.log(`Device configured: ${device.name} (key=${device.key})`);
```
