ChargeLink

DIN 70121

DIN 70121 is the DC-only predecessor of ISO 15118-2, used by many CCS chargers and vehicles in the field. ChargeLink plays both roles over IPv6 SDP, TCP, V2GTP and EXI. As vehicle, the din-evcc command runs one DC session against your charger, with a current-demand loop. As charger, ChargeLink runs plant-coupled on the NI VeriStand bench. DIN 70121 has no TLS, and none is offered.

Before you start

RequirementWhat you need
HardwareA Windows PC for ChargeLink with an Ethernet adapter on the link to the other side. For the charger role: the NI VeriStand bench of the package. A powerline (PLC) link needs the hardware described in Connecting to Real PLC Hardware.
NetworkIPv6 enabled on that adapter; link-local addresses (fe80::/10), no router. UDP 15118 (SDP) and the TCP port of the session open in Windows Firewall for fe80::/10 (Install and Activate); the DIN 70121 charger listens on TCP 50119 by default. Run the preflight.
LicenceAn active ChargeLink licence on the ChargeLink PC (chargelink --json license status). A command that needs it stops with exit code 20 (CL-LICENSE-001).
TLS materialNone. DIN 70121 runs on plain TCP.
$CL   = 'C:\Program Files\DEVlink\ChargeLink\<VERSION>\charger\bin\chargelink.exe'
$Data = "$env:ProgramData\DEVlink\ChargeLink\data"
$IfIndex   = <INTERFACE_INDEX>
$Advertise = 'fe80::<ADDRESS>%' + $IfIndex

The kit has a charger\ and a vehicle\ folder; chargelink.exe is the same binary in both.

ChargeLink as charger

In 0.5.0 the DIN 70121 charger runs plant-coupled on the NI VeriStand HIL bench. A standalone DIN charger with a built-in plant model is not part of 0.5.0. The charger is verified on the bench with ChargeLink's own DIN 70121 vehicle.

The charger profile is din70121_dc. evse start --protocol din70121 --profile-id din70121_dc runs only plant-coupled: it needs --plant-grpc-endpoint (the bench's plant endpoint), --requested-power-kw, --target-voltage-v and the safety link to the plant owner of the bench, and does not start without them. The bench set-up is described in NI VeriStand Bench.

OptionMeaning
--tcp-portThe charger's TCP port (default 50119 for DIN 70121).
--udp-port 15118The SDP port.
--interface-index, --advertise-ipv6The interface to the vehicle and the link-local address placed in the SDP response.
--max-runtime-msRuntime limit of the listener.
--jsonMachine-readable result.

There is no TLS: --tls is refused.

What a good session looks like

The charger writes its own run folder under its --artifact-root. On the NI VeriStand bench the session result is read as described in Reading the result.

ChargeLink as vehicle

Your DUT is a charger or SECC. Connect it to the ChargeLink PC's adapter. din-evcc is the standalone DIN 70121 vehicle: one nominal DC session per run, over TCP only (no TLS), with no plant. There are no EV cases or profiles; the options below shape the session.

# with SDP: multicast discovery on the interface to the charger
chargelink --runtime-root "$Data\runtime" --artifact-root "$Data\artifacts" --json din-evcc --sdp-server "[ff02::1%$IfIndex]:15118" --run-id din-ev-<DATE>

# with the charger's own SDP address
chargelink --runtime-root "$Data\runtime" --artifact-root "$Data\artifacts" --json din-evcc --sdp-server "[fe80::<CHARGER_ADDRESS>%$IfIndex]:15118" `
  --target-voltage-v 400 --target-current-a 100 --current-demands 20 --run-id din-ev-<DATE>

# without SDP: straight to the charger's TCP port
chargelink --runtime-root "$Data\runtime" --artifact-root "$Data\artifacts" --json din-evcc --peer "[fe80::<CHARGER_ADDRESS>%$IfIndex]:<CHARGER_TCP_PORT>" --run-id din-ev-<DATE>

$IfIndex is the Windows interface number of the Ethernet port to the charger. Give either --sdp-server or --peer, not both.

OptionMeaning
--sdp-server / --peerDiscover the charger through SDP ([ff02::1%<ifIndex>]:15118 or the charger's own SDP address), or connect to its TCP port directly.
--target-voltage-v, --target-current-aThe vehicle's targets (defaults 400 V, 100 A). Set the target voltage to what your charger can deliver: PreCharge waits for it.
--max-voltage-v, --max-current-a, --max-power-wThe vehicle's limits (defaults 500 V, 200 A; maximum power defaults to maximum voltage times maximum current).
--current-demands NCurrentDemandReqs before the vehicle stops (default 20); 0 keeps requesting until the charger stops.
--period-msTime from a CurrentDemandRes to the next CurrentDemandReq (100 to 900 ms, default 150).
--no-welding-detectionSkip the optional WeldingDetection.
--expect-stop-tailAccept an orderly early stop by the charger.
--connect-timeout-msConnection timeout (default 2000 ms).
--artifact-root, --runtime-rootWhere the run folder and the runtime state are written (defaults .chargelink\artifacts and .chargelink\runtime).

What a good session looks like

  • The command exits with code 0. Otherwise it exits non-zero and its last line reads "DIN 70121 EVCC session did not end as asked: …".
  • It prints one JSON line, also saved as <artifact-root>\<run-id>\din_evcc_report.json: passed (SessionStop answered OK with no stop reason, a planned stop), accepted (passed, or with --expect-stop-tail an orderly early stop) and run (session details and any error).
  • traces\live-v2gtp-frames.jsonl has one line per message with timestamps and payload hashes (no payload contents).
  • If the charger is lost in mid-session, the run ends at once with a non-zero exit.

The reference vehicle profiles (din70121_dc_evcc_reference, din70121_evcc_reference) send a ChargeLink-specific encoding that a real charger does not decode. Use them for dry-run and deterministic simulation only.

Results and evidence

Each run writes one folder under the artifact root, $Data\artifacts\<run-id>. Judge a vehicle run by din_evcc_report.json, then check that no file changed after the run:

chargelink --runtime-root "$Data\runtime" --artifact-root "$Data\artifacts" --json artifacts integrity --run-id din-ev-<DATE>

See Trace, Evidence and Reports. Deterministic simulation for ISO 15118-2 and DIN 70121 is available on request through DEVlink support.

ChargeLink's DIN 70121 implementation interoperated with an independent open-source DIN implementation in DEVlink's own tests. This is not certification.

Limits

  • DIN 70121 is DC-only. AC tests use ISO 15118-2 or ISO 15118-20.
  • No TLS; DIN 70121 defines none.
  • The charger runs plant-coupled on the NI VeriStand HIL bench only, and is verified there with ChargeLink's own DIN 70121 vehicle. A standalone DIN charger with a built-in plant model is not part of 0.5.0.
  • The vehicle (din-evcc) runs one nominal DC session per run; it has no EV cases or profiles.
  • No physical charging interface (control pilot, PWM, PLC/SLAC, power stage) is included.

See Capability Boundaries. To check the installation without a DUT, see Self-test without a device under test.

Troubleshooting

SymptomUsually meansAction
evse start refuses din70121_dcThe plant-coupled profile needs --plant-grpc-endpoint, --requested-power-kw, --target-voltage-v and the plant owner's safety linkRun the charger on the NI VeriStand bench.
evse start refuses --tlsDIN 70121 has no TLSRemove the TLS options.
din-evcc waits in PreCharge, then failsThe target voltage is outside what the charger deliversSet --target-voltage-v to a voltage your charger can deliver.
din-evcc exits non-zero after the charger stopped earlyThe charger ended the session before the planned stopRead run in din_evcc_report.json; add --expect-stop-tail if an orderly early stop is expected.
din-evcc refuses its argumentsBoth --sdp-server and --peer were givenGive one of them.
Your charger does not decode ChargeLink's vehicle messagesA reference vehicle profile was usedUse din-evcc.

General failures (licence, ports, firewall, role locks) are in Troubleshooting.