ChargeLink Native

Product Overview

ChargeLink Native is a vendor-neutral EV charging engineering platform for charger (EVSE) developers, vehicle communication controller (EVCC) and on-board-charger developers, validation teams, HIL laboratories and factory end-of-line teams. It connects real charging communication to simulated or physical electrical behaviour, with reusable test definitions and traceable verdicts.

What it does

CapabilityWhat you getWhere it is documented
EVSE simulationA charger-side (SECC) listener that answers SDP discovery on UDP 15118, accepts V2GTP over TCP (TLS where required) and runs the ISO 15118-20, ISO 15118-2 or DIN 70121 message sequence against an external vehicle: with validated reference responses per message, or, for ISO 15118-20 DC EIM with a plant model, with responses computed from the live session and plant measurements.EVSE Role Guide
EVCC simulationA vehicle-side peer with a battery model that discovers an EVSE through SDP or connects directly by IPv6 address and TCP port. It probes transport and mutual TLS of any charger and runs the full ISO 15118-20 DC EIM session; the iso2-evcc and din-evcc commands run one ISO 15118-2 or DIN 70121 DC session against the ChargeLink SECC.EVCC Role Guide
Scripted DC-CAN lanesFixed, pre-scripted CAN fixture frames on a virtual bus with a closure simulator, for engineering and test development. Not a protocol implementation.Scripted DC-CAN Lanes
Protocol test campaignsProtocol-first test discovery (chargelink test) with 797 ISO 15118-2 and 383 ISO 15118-20 executable case bindings, licensed conformance packages, PICS/PIXIT generation, campaign planning, execution and verdict reports.Test Workflow
Deterministic simulationSeeded paired EVSE/EVCC simulations for ISO 15118-20 (10 scenarios), ISO 15118-2 and DIN 70121 (12 scenarios) and TLS/PKI/Plug & Charge (12 campaigns) with transcript hashes and replay verification.Deterministic Simulation
EvidenceEvery run gets a directory with manifest.json (SHA-256 per file), JSON-lines traces, EXI captures and reports, plus integrity verification, redaction and support-bundle preparation.Trace, Evidence and Reports
Integration APIA gRPC server (chargelink.integration.v1, 15 services) with a canonical dictionary of 67 transport-neutral signals, session lifecycle, deterministic time control, SIL/HIL/XIL, campaigns, evidence, factory and enterprise services.gRPC Integration API
NI VeriStand couplingAn owner host that couples the ISO 15118-20 DC EIM session to a VeriStand plant model (FMI 2.0 FMU) through the NI ClientAPI, with operator command/status channels and a safe start-up profile, run by the PC1 and PC2 scripts of the package.NI VeriStand Bench
LicensingOffline license files (.cllic) with entitlements per role, protocol and test package; activation, verification and deactivation from the CLI.Licensing

Roles ChargeLink can play

  • EVSE simulator (SECC). ChargeLink is the charger. A real vehicle, a third-party EVCC simulator or a second ChargeLink instance connects to it.
  • EVCC simulator. ChargeLink is the vehicle. It connects to a real charger or to a ChargeLink EVSE.
  • Managed SIL pair. Both roles inside one ChargeLink process or gRPC server, over the real IPv6 loopback stack, for deterministic regression and CI.
  • Plant-coupled EVSE. The EVSE role exchanges commands and measurements with an NI VeriStand plant model so that protocol decisions react to simulated electrical behaviour.
  • Test controller. Campaign engine, verdicts and evidence for any of the above.

Never connect two active power-control owners to the same physical bench without an explicit ownership and safety-interlock design. ChargeLink's plant coupling has one owner per session and fails to a safe state (zero current, contactor open) on watchdog expiry.

What the customer package contains

The package is a ZIP archive that you extract; there is no installer. The full layout is in Install and Activate.

  • pc1\bin\chargelink.exe — the command-line tool with the embedded gRPC server. pc2\chargelink.exe is the same binary for the vehicle PC.
  • The NI VeriStand bench: the owner host ChargeLink.Veristand.XilHost.exe, the NI ClientAPI broker ChargeLink.Veristand.NativeClientBroker.exe, the VeriStand system definition with the plant FMU, the runtime profile and channel contracts, and the PC1 operator scripts.
  • The PC2 launcher Start-Evcc.ps1 and the EV case files.
  • Installation and operation notes, third-party notices, an SBOM and a SHA-256 manifest of every file.

Not included: certificates or keys, NI software, .NET runtimes, Python, Java or Node runtimes, ASAM assemblies and standards text.

Architecture in one picture

ChargeLink Native architecture: external peer, the chargelink process, and the integration surfaces External vehicle, charger or third-party simulator IPv6 link-local · SDP UDP 15118 · TCP or TLS · V2GTP · EXI chargelink.exe Protocol core · DC-CAN ISO 15118-20 · ISO 15118-2 · DIN 70121 EVSE and EVCC roles sessions · campaigns · verdicts Evidence manifests · traces · reports Runtime root: locks, heartbeats, session state Artifact root: run directories, SHA-256 manifests gRPC API chargelink.integration.v1 127.0.0.1:50051 · 15 services · 67 signals One command line: chargelink [--json] [--runtime-root] [--artifact-root] <command> gRPC gRPC Your automation and dashboards CI clients generated from integration.proto Python, C#, C++ or any gRPC language your own dashboards and test benches loopback only; every call needs the access token NI VeriStand operator workspace XilHost gateway + NativeClientBroker NI ClientAPI → engine → plant FMU plant-coupled ISO 15118-20 DC EIM operator channels and safe startup
ChargeLink Native is one process with a protocol core, two roles, file-based state and a gRPC API; every integration sits above the API.

Design rules that matter to an operator:

  • The protocol core is Rust-only. No interpreter, bridge or vendor codec is started at runtime.
  • All state is file-based under two roots you choose (--runtime-root, --artifact-root). Nothing is written to the registry.
  • Every JSON result carries ok, exit_code and a contract tag; failures are a single diagnostic envelope with a stable error code. See Monitoring, JSON and Exit Codes.
  • Every artifact carries a claim_boundary field that states what the evidence does and does not prove.

Protocols at a glance

FamilyRolesTransportWhat ChargeLink does
ISO 15118-20 (DC, AC, BPT, EIM, PnC)EVSE, EVCCIPv6 SDP + TCP + TLS 1.3 mutual + V2GTP + native EXIDC EIM in both roles, Scheduled and Dynamic control mode, with a simulated plant: the plant-coupled charger runs against the ChargeLink EVCC on a second PC through PreCharge, PowerDelivery and the DC charge loop. AC, BPT and stand-alone DC listeners are reference responders for engineering and test development.
ISO 15118-2 (DC, AC, EIM, PnC)EVSE, EVCC (DC EIM)IPv6 SDP + TCP + optional TLS 1.2/1.3 + V2GTP + native EXIA reference-responder listener for external vehicles, for engineering and test development; native EXI round trip for the whole message set. A DC EIM session between the ChargeLink SECC and EVCC (iso2-evcc) over TCP or TLS 1.2 as an engineering lane. No standards-encoded session against a third-party charger is claimed.
DIN 70121 (DC)EVSE, EVCCIPv6 SDP + TCP + V2GTP + native EXIA reference-responder listener for engineering and test development; native EXI round trip. A DC session between the ChargeLink SECC and EVCC (din-evcc) as an engineering lane. The reference-responder session is limited to the reference request encodings (see runbook).
Scripted DC-CAN lanesEVSE, EVCCvirtual CAN busFixed, pre-scripted fixture frames for test development; not a protocol implementation.

For other charging standards, contact DEVlink. The limits and requirements of each capability are in Capability Boundaries.

Version identity

IdentityDocumented valueHow to read it
CLI versionchargelink 0.5.0-rc2chargelink --version
JSON contractnative-core-0.55contract field of any --json result
Integration APIchargelink.integration.v1, version 1.8.0chargelink --json integration capabilities
Canonical signals67canonical_signal_count in the capabilities output