Skip to main content

Device Capabilities

The AT1000 Series consists of multiple test sequencer devices, each with its own set of capabilities. Currently, the AT1032S is the only available model, but future models will be introduced with varying features. Understanding a device’s capabilities is essential for configuring test sequences effectively.

Retrieving Device Capabilities

Users can retrieve the capabilities of an AT1000 device by querying its specifications. Each device provides a structured set of attributes, defining its hardware limits and supported features.

Capability Structure

Every AT1000 device exposes a structured object containing the following fields:

CapabilityDescription
nameDevice model name (e.g., "AT1032S").
serial_numberUnique serial identifier of the device.
io.countNumber of available general-purpose I/O pins.
io.output_voltageObject defining the general-purpose I/O output voltage range in Volts (e.g., { min: 0, max: 25 }).
io.input_voltageObject defining the general-purpose I/O input voltage range in Volts (e.g., { min: -25, max: 25 }).
relays.countNumber of available dry relay contacts.
relays.max_currentMaximum current per relay contact in Amperes (e.g., 2.0).
relays.max_voltageMaximum voltage per relay contact in Volts (e.g., 60).
relays.on_resistanceTypical on-resistance per relay contact in Ohms (e.g., 0.2).
usb_ports.countNumber of available USB power ports.
ethernet.countNumber of available Ethernet ports.
ethernet.typeType of Ethernet interface (e.g., "100base-T").
communication[]Array of communication interface objects. Each object typically contains:
   .type      Type of interface (e.g., "I2C", "SPI", "UART").
   .count      Number of available interfaces of this type.
industrial[]Array of industrial communication interface objects. Each object typically contains:
   .type      Type of interface (e.g., "CAN", "RS-232", "RS-485").
   .count      Number of available interfaces of this type.
power_supply.countNumber of programmable power supplies.
power_supply.output_voltageObject defining the programmable power supply output voltage range in Volts (e.g., { min: 1.5, max: 24 }).
power_supply.current.maxMaximum output current in Amperes for the programmable power supply (e.g., 2.0).
current_measurement[]Array of current measurement capability objects. Each object typically contains:
   .type      Type of current measurement (e.g., "low_precision", "high_precision").
   .source      Source of the current measurement (e.g., "Power Supply", "USB 1").
   .resolution      Resolution of the current measurement in Amperes.
hmi.display.typeType of HMI display (e.g., "OLED").
hmi.display.sizeObject defining HMI display size in pixels (e.g., { width: 160, height: 80 }).
hmi.input.countNumber of HMI input elements.
hmi.input.typeArray of HMI input types (e.g., ["rotary", "push"]).
hmi.audio.countNumber of HMI audio output elements.
hmi.audio.typeArray of HMI audio output types (e.g., ["speaker"]).

Example Capability Structure for AT1032S

Below is an example of the capabilities object returned for the AT1032S:


{
name: "AT1032S",
serial_number: "AT1032S-00123456",
io: {
count: 32,
output_voltage: { min: 0, max: 25 },
input_voltage: { min: -25, max: 25 }
},
relays: {
count: 8,
max_current: 2.0,
max_voltage: 60,
on_resistance: 0.2
},
usb_ports: {
count: 2
},
ethernet: {
count: 1,
type: "100base-T"
},
communication: {
{ type: "I2C", count: 2},
{ type: "SPI", count: 2},
{ type: "UART", count: 2}
},
industrial: [
{ type: "CAN", count: 1 },
{ type: "RS-232", count: 2 },
{ type: "RS-485", count: 2 }
],
power_supply: {
count: 1,
output_voltage: { min: 1.5, max: 24 },
current: { max: 2.0 }
},
current_measurement: {
{ type: "low_precision", source: "Power Supply", resolution: 0.01 },
{ type: "low_precision", source: "USB 1", resolution: 0.01 },
{ type: "low_precision", source: "USB 2", resolution: 0.01 },
{ type: "high_precision", source: "Relay 4", resolution: 0.001 }
},
hmi: {
display: {
type: "OLED",
size: { width: 160, height: 80 }
},
input: {
count: 1,
type: "rotary,push"
},
audio: {
count: 1,
type: "speaker"
}
}
}

How to Query Capabilities in Code

Users can programmatically retrieve device capabilities using the API. Below are examples in both Node.js and Python.

const at1000 = require("at1000-node");
let tester = at1000.open("AT1032S");

// Retrieve device capabilities
let capabilities = tester.get_capabilities();
console.log("Device Capabilities:", capabilities);

Why Checking Capabilities is Important

  • Future-Proofing: New AT1000 models may have different specifications.
  • Preventing Errors: Ensures your test sequence doesn’t exceed device limits.
  • Optimizing Tests: Use the correct power supply, I/O, and voltage ranges for your DUT.

By retrieving device capabilities dynamically, users can write scripts that adapt to different AT1000 models without requiring hardcoded values.