Diagnostics and validation infrastructure
for embedded and SDV programs.

ISO 14229 UDS on Zephyr and FreeRTOS. YAML-configured. AI-assisted. CI-verified.
CAN and Ethernet. From a single ECU to a multi-ECU virtual vehicle bench.

GPL v2 runtime · always free · offline license · no cloud dependency

14UDS services
ASIL-Bsafety aligned
DoIPEthernet transport
SOME/IPservice validation
SOVDSDV-ready
AIYAML generation

Building a UDS diagnostics stack from scratch on Zephyr or FreeRTOS takes four to eight engineer-weeks. Session state machines, ISO-TP framing, security access, DID dispatch, DTC persistence, ASIL-B safety wrappers, test coverage. Most teams do this once per project, inconsistently, with no reuse.


Testing it is harder. Running UDS campaigns in CI — across CAN, DoIP, and SOME/IP, against real hardware and simulators, with structured reports and regression tracking — has no good lightweight option. Until now.

One YAML file. Three tools. Everything generated.

diagnostics_config.yaml

schema_version: 1
metadata:
  ecu_name: body_controller

ecu:
  transport: doip
  doip:
    logical_address: "0xE400"
    port: 13400

dids:
  - id: "0xF190"
    name: VIN
    data_length: 17
    access: [read]
    min_session: default
    read_security_level: 0

  - id: "0xF187"
    name: PartNumber
    data_length: 11
    access: [read, write]
    min_session: extended
    write_security_level: 1

dtcs:
  - code: "0xD00101"
    description: Voltage above threshold
    severity: check_at_next_halt

EDS — the firmware LOCAL

python3 tools/codegen.py \
  --config diagnostics_config.yaml \
  --safety-wrappers --asil-level B \
  --test-gen --sovd

→ C/H source · ASIL-B wrappers · pytest suite · SOVD descriptor

TestLab — the validation LOCAL

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

→ HTML report · trend chart · AI failure analysis

Cloud — the workspace BROWSER

xaloqi.com/cloud
No installation. Describe your ECU
in plain English.
→ Validated YAML + C source +
  pytest suite + test run.

Launching soon →

Three tools. One config. Used together or independently.

Xaloqi EDS

v1.7.0

The diagnostics runtime. ISO 14229 UDS on Zephyr and FreeRTOS — YAML-configured, ASIL-B ready, DoIP-enabled, SOVD-ready.

  • 14 UDS services — session control, security access, DID read/write, DTC management, routine control, firmware transfer
  • CAN (ISO-TP) and Ethernet (DoIP, ISO 13400-2) transports — same UDS handlers on both
  • ASIL-B 5-step safety validation — generated, not hand-written
  • YAML → C codegen — deterministic, CI-verifiable
  • --sovd flag — generates OpenSOVD 1.0 CDA descriptor alongside your firmware
  • ARXML import — AUTOSAR 4.x ECU Extract → diagnostics_config.yaml, no external dependencies
  • AI assistant — generate configs from plain English, explain NRC failures
  • MCP server — Claude, Cursor, and Copilot integration
  • 11 example ECUs — Zephyr and FreeRTOS, CAN and DoIP
  • GPL v2 runtime — always free on GitHub

GPL v2 runtime is public. Commercial license adds 17 codegen templates, testgen, AI CLI, MCP server, GUI dashboard, VS Code extension, and 7 specialist examples.

Xaloqi TestLab

v1.4.0

The validation engine. Multi-ECU campaign runner with UDS, DoIP, SOME/IP, and SOVD — hardware-optional, CI-native.

  • Python UDS library — async, all 14 services, AES-128-CMAC SecurityAccess
  • Transports — SocketCAN, PCAN, Kvaser, DoIP, SOME/IP, SOVD REST, and in-process VirtualBus
  • Campaign YAML — declarative steps including expect_nrc for negative response validation
  • AI failure analysis — testlab explain tells you why the step failed and how to fix it
  • HTML reports — analyze, trend, compare, SOME/IP validate
  • Live local dashboard — testlab serve opens a browser view of your ECU fleet and campaign history
  • Multi-ECU workspace — mix CAN, DoIP, SOME/IP, and SOVD ECUs in one campaign
  • CI-ready — VirtualBus runs in-process, no kernel modules, no Docker required
  • Reads your EDS diagnostics_config.yaml automatically
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)

Xaloqi Cloud

coming soon

The entry point. Describe your ECU in plain English. Get validated YAML, generated C source, and a simulated test campaign — all in the browser. No Zephyr SDK. No Python. No Docker. Launching soon.

  • AI YAML generation — describe your ECU, get production-ready config
  • Monaco editor — live schema validation as you type
  • Codegen — C/H source + pytest suite + CAPL, downloadable ZIP
  • Test runner — in-browser UDS simulation over VirtualBus, streams live
  • NRC explain — paste a failing code, get the root cause and the fix
  • ARXML import — drag-and-drop AUTOSAR ECU Extract (Pro/Team)
  • Free tier — 3 generations, no credit card required

Run a virtual vehicle bench in one command.

VirtualBus, VirtualSomeIpBus, Docker ECU simulation, multi-ECU workspace, and a live dashboard — all shipped, 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.

Annual licenses. Self-serve. Offline after activation.

EDS — diagnostics runtime

Community

Free

GPL v2 · always free

  • Full runtime source — core/, transport/, config/, platform/
  • CAN (ISO-TP) + Ethernet (DoIP) transports
  • Zephyr + FreeRTOS platform layer
  • 4 basic example ECUs
  • 37 unit tests
  • Codegen templates
  • Specialist examples
  • ARXML importer
  • Test generator
  • AI assistant
  • Safety documentation

Professional

€1,990/yr · per developer

Everything in Developer, plus:

  • 68-test C integration harness — full UDS stack, host GCC
  • ISO 26262 Safety Manual (EDS-SM-001 Rev 1.1)
  • Hazard Analysis and Risk Assessment (HARA)
  • Tool Qualification Argument (TQA)
  • Requirements Traceability Matrix — 30 ASIL-B requirements
  • MISRA C:2012 deviation log — 38 deviations, 0 open violations
  • OEM key provisioning guide
  • Priority support (5 business days)
  • Commercial license (1 seat)

TestLab — validation engine

EDS Developer + TestLab

€1,490/yr

You save €190

Buy bundle →

EDS Professional + TestLab

€2,690/yr

You save €290

Buy bundle →

Cloud — browser workspace · launching soon

Free

€0

3 total generations

  • 3 codegen runs (lifetime)
  • Monaco YAML editor
  • Download ZIP
  • Test runner
  • AI YAML generate
  • ARXML import

Pro

€49/mo

or €470/yr (save 20%)

  • 300 generations/month
  • Test runner
  • AI YAML generate (own key)
  • HTML report download
  • ARXML import

Team

€149/mo

or €1,430/yr · 5 seats

  • 1,000 generations/month
  • 5 seats
  • Test runner
  • AI YAML generate (own key)
  • HTML report download
  • ARXML import

AI features require your own Anthropic API key. No AI cost ever charged to Xaloqi.

Frequently asked questions


Yes. The runtime stack (core/, transport/, config/, platform/) is GPL v2. It includes CAN and DoIP transports, Zephyr and FreeRTOS platform layers, and 37 unit tests. The commercial license covers the codegen templates, tooling, and safety documentation.

No. TestLab works standalone against any UDS ECU — copy testlab_config.yaml, fill in your CAN IDs or DoIP address, and run campaigns. EDS integration is automatic when a diagnostics_config.yaml is present, but it's never required.

Linux SocketCAN, PEAK PCAN USB (Windows + Linux), Kvaser (Windows + Linux), DoIP over TCP, SOME/IP, and SOVD REST. In CI: VirtualBus and VirtualSomeIpBus run in-process — no kernel modules, no CAN hardware, no Docker required.

Cloud is the browser-native workspace over EDS and TestLab. Describe your ECU in plain English, get a validated diagnostics_config.yaml, generate C source and a pytest suite, and run a simulated UDS test campaign — all without installing anything. The free tier gives you 3 generations with no credit card required. Cloud is launching soon — join the waitlist to be notified.

Yes for EDS and TestLab. The key is cached locally on first activation — no internet calls during builds or test runs. Required for air-gapped automotive development environments. Cloud is SaaS and requires a connection.

The Python library and campaign runner work on Windows. SocketCAN requires Linux, but PCAN, Kvaser, DoIP, SOME/IP, and SOVD work on Windows natively.

14-day grace period after expiry — runs continue with a renewal warning printed to output. After the grace period, the CLI exits with a license error. Renew and re-activate with one command.

Yes. EDS Developer and Professional include arxml_parser.py — AUTOSAR 4.x ECU Extract → diagnostics_config.yaml, standard library only, no external dependencies. The output is directly usable by codegen.py. ARXML import is also available in Xaloqi Cloud on Pro and Team plans.