// TestLab · v1.5.7 · open-core

UDS validation campaigns.
Free to start. Hardware optional.

The core UDS client, in-process simulator, and campaign runner are free and Apache-2.0 — pip install xaloqi-tester, no license, no config. Pro adds real transports (SocketCAN, PCAN, Kvaser, DoIP, SOME/IP, SOVD), HTML reports, AI failure analysis, and a live dashboard.

xaloqi-sim --demo runs a full UDS conversation with zero hardware and zero config  ·  source on GitHub →

Python-native. Async. All 17 UDS services.

Direct API — free, no license

async with UdsTester("vcan0",
    rx_id=0x7DF, tx_id=0x7E8) as ecu:

    await ecu.session(Session.EXTENDED)
    await ecu.security_access(level=1)

    vin = await ecu.read_did(0xF190)
    await ecu.write_did(0xF187, b"PARTNUM0001")

    await ecu.clear_dtcs(group=0xFFFFFF)
    dtcs = await ecu.read_dtcs()

    await ecu.session(Session.DEFAULT)

Campaign YAML

jobs:
  eol_check:
    description: End-of-line UDS validation
    on_failure: continue
    steps:
      - action: session
        value: extended
      - action: security_access
        level: 1
      - action: read_did
        did: "0xF190"
        expect_ok: true
      - action: write_did
        did: "0xF187"
        data: "50415254"
      - action: clear_dtc
        group: "0xFFFFFF"
      - action: read_dtc
        expect_nrc: null

Free — pip install xaloqi-tester

  • All 17 UDS services — full 0x19 sub-function coverage (incl. fault counter 0x0B, permanent DTC 0x19), direct memory access (0x23/0x3D), async Python, AES-128-CMAC SecurityAccess
  • VirtualBus + built-in ECU simulator — xaloqi-sim --demo runs a full UDS conversation with zero hardware
  • 20 UDS campaign actions — expect_nrc, variable capture, JSON output
  • testlab analyze — terminal summary of a run's results
  • CI-ready — VirtualBus runs in-process, no kernel modules, no hardware, no Docker

Pro — real hardware and reporting

  • Real transports — Linux SocketCAN, PEAK PCAN, Kvaser, DoIP over TCP, SOME/IP, SOVD REST (OpenSOVD 1.0, compatible with AAOS-SDV diagnostic gateways)
  • AI failure analysis — testlab explain reads the campaign result and explains each failure with the specific YAML context
  • HTML reports — self-contained, trend across runs, SOME/IP message validation, per-step timing; selectable themes (default / dark-terminal / professional)
  • Live dashboard — testlab serve opens a browser view of your ECU fleet, campaign history, and live run output
  • Multi-ECU workspace — mix CAN, DoIP, SOME/IP, and SOVD ECUs in one campaign YAML
  • Reads diagnostics_config.yaml — automatic ECU configuration when EDS is present

Run and report (Pro)

testlab-run \
  --config diagnostics_config.yaml \
  --campaign campaigns/eol_check.yaml \
  --json reports/run.json

testlab report \
  --results reports/run.json \
  --out report.html

testlab explain \
  --results reports/run.json

Single-ECU virtual bench — free.

The built-in simulator and VirtualBus need zero hardware, zero config, and zero license. Try it before installing anything permanent:

# Zero-install demo
pipx run --spec xaloqi-tester xaloqi-sim --demo

# Or install and run a full campaign
pip install xaloqi-tester
testlab-run --config testlab_config.yaml \
  --campaign campaigns/standalone_validation.yaml \
  --job basic_validation --virtual --json reports/run.json
testlab analyze --results reports/run.json

No cloud. No auth. No hardware. No license.

Multi-ECU virtual vehicle bench — Pro.

VirtualBus, VirtualSomeIpBus, Docker ECU simulation, multi-ECU workspace, and a live dashboard — all shipped with Pro, no extra configuration.

# Start the ECU simulator
docker compose -f docker/docker-compose.yml up -d

# Run a mixed UDS + SOME/IP campaign
testlab-run \
  --workspace testlab_workspace.yaml \
  --campaign  campaigns/someip_validation.yaml \
  --job       hvac_validation \
  --someip-virtual \
  --json      reports/run.json

# Open the live dashboard
testlab serve --reports ./reports
# → http://127.0.0.1:8765

No cloud. No auth. No hardware.

Free core. One paid tier. Offline after activation.

Core — Apache-2.0

€0/ forever

pip install xaloqi-tester — no license, no account, no time limit

  • Python UDS library — async, all 17 services
  • AES-128-CMAC SecurityAccess
  • VirtualBus + built-in ECU simulator (xaloqi-sim)
  • 20 UDS campaign actions — expect_nrc, JSON output
  • testlab analyze — terminal run summary
  • Open source — github.com/Xaloqi/xaloqi-testlab-core

EDS Developer + TestLab

€1,490/yr

You save €190

Buy bundle →

EDS Professional + TestLab

€2,690/yr

You save €290

Buy bundle →
vs. udsoncan + python-can → EDS — diagnostics runtime → Cloud — browser workspace →

Testing UDS without hardware.

Blog: a UDS ECU in 60 seconds → Blog: UDS campaigns in CI → Blog: a virtual SDV diagnostics stack → vs. udsoncan + python-can →