ChargeLink Native

DIN 70121 Operator Runbook

DIN 70121 is the DC-only predecessor of ISO 15118-2 used by many CCS chargers and vehicles in the field. ChargeLink Native round-trips the DIN 70121 message set (urn:din:70121:2012:MsgDef) in its native EXI codec and offers a DC EVSE reference-responder listener for an external EVCC, intended for engineering and test development, not for conformance testing. There is no TLS in DIN 70121 and none is offered.

Profiles

Profile IDRoleUse
din70121_dc_evse_referenceEVSECanonical live DC EVSE listener
delta_din70121EVSEAlias used by the activation catalog and by the long-run campaign plan
din70121_dc_smokeEVSECLI-compatibility smoke profile (marked nonfinal)
din70121_dc_evcc_reference, din70121_evcc_referenceEVCCDry-run and deterministic simulation
$CL   = 'C:\ChargeLink\0.5.0-rc2\pc1\bin\chargelink.exe'
$Data = 'C:\ChargeLinkData'
$IfIndex   = <INTERFACE_INDEX>
$Advertise = 'fe80::<ADDRESS>%' + $IfIndex

EVSE listener

$Run = "din70121-$(Get-Date -Format yyyyMMdd-HHmmss)"

chargelink --runtime-root "$Data\runtime" --artifact-root "$Data\artifacts" --json evse live-preflight --source external-evcc `
  --protocol din70121 --profile-id din70121_dc_evse_reference `
  --host '::' --tcp-port 50118 --udp-port 15118 `
  --advertise-ipv6 $Advertise --interface-index $IfIndex --recover-stale

chargelink --runtime-root "$Data\runtime" --artifact-root "$Data\artifacts" --json evse start --external-evcc-session --run-id $Run `
  --protocol din70121 --profile-id din70121_dc_evse_reference `
  --host '::' --tcp-port 50118 --udp-port 15118 `
  --advertise-ipv6 $Advertise --interface-index $IfIndex `
  --max-runtime-ms 1800000 --heartbeat-interval-ms 1000

The listener answers SDP with security none, accepts the TCP connection, and serves the validated reference responses for SessionSetup, ServiceDiscovery, PaymentServiceSelection, ContractAuthentication, ChargeParameterDiscovery, CableCheck, PreCharge, PowerDelivery, CurrentDemand, WeldingDetection and SessionStop.

Fixture-limited lane. The activation catalog reports this lane as native_sdp_listener_ready_legacy_hlc_fixture_limited. Each request is matched against the validated reference request encoding for its message type. A vehicle whose request encoding differs from the reference receives no response for that message; the unmatched frame is recorded in traces\live-v2gtp-frames.jsonl. Use the trace to see exactly which request the vehicle sent.

Validate without a peer

chargelink --runtime-root "$Data\runtime" --artifact-root "$Data\artifacts" --json evse din70121-dc-setup-path --write-artifacts
chargelink --runtime-root "$Data\runtime" --artifact-root "$Data\artifacts" --json evse legacy-hlc-completion-pass --protocol din70121 --energy-mode dc --write-artifacts
chargelink --runtime-root "$Data\runtime" --artifact-root "$Data\artifacts" --json sim legacy-scenario --protocol din70121 --scenario din-dc-basic --seed 1 --run-id din-sim --write-artifacts

Deterministic DIN scenarios: din-dc-basic, din-current-demand-loop, din-timeout-recovery, din-evcc-abort, plus the negative corpus (din-neg-session-setup, din-neg-cable-check-timeout, din-neg-precharge-voltage, din-neg-current-demand-limit, din-neg-evcc-abort).

Stop and evidence

chargelink --runtime-root "$Data\runtime" --artifact-root "$Data\artifacts" --json evse status --run-id $Run
chargelink --runtime-root "$Data\runtime" --artifact-root "$Data\artifacts" --json evse stop --run-id $Run
chargelink --runtime-root "$Data\runtime" --artifact-root "$Data\artifacts" --json artifacts integrity --run-id $Run
chargelink --runtime-root "$Data\runtime" --artifact-root "$Data\artifacts" --json evse live-closure-gate --run-id $Run --source external-evcc --require-sdp --require-tcp-peer --require-v2gtp --require-exi

DIN 70121 session with the ChargeLink EVCC

chargelink --runtime-root "$Data\runtime" --artifact-root "$Data\artifacts" --json din-evcc --sdp-server "[$Advertise]:15118" `
  --current-demands 20 --period-ms 150 --target-voltage-v 400 --target-current-a 100 --run-id din-ev-<DATE>

--peer "[$Advertise]:<SECC_TCP_PORT>" connects without SDP. --current-demands 0 keeps requesting until the EVSE stops; --period-ms (100 to 900 ms, default 150) is the time from a CurrentDemandRes to the next CurrentDemandReq; --no-welding-detection skips the optional WeldingDetection after PowerDelivery FALSE; --expect-stop-tail accepts a session that ended through the EV's stop tail. EVMaximumPowerLimit is always sent (default: maximum voltage times maximum current). The SECC side is the profile din70121_dc (one TCP port, no TLS, SDP per request). It is plant-coupled: evse start refuses it without --plant-grpc-endpoint, so the charger side runs on the NI VeriStand bench with the owner host's plant service, and the vehicle side connects to it from PC2.

Boundaries

  • DIN 70121 is DC-only. AC tests must use ISO 15118-2 or ISO 15118-20 profiles.
  • The EVSE does not follow the vehicle's requested current or voltage; responses are reference vectors.
  • The din-evcc command runs one standards-encoded DIN 70121 DC session (SDP, then TCP; DIN 70121 has no TLS) against the ChargeLink SECC profile din70121_dc; it is an engineering lane, not a conformance tool, and no session against a third-party charger is claimed. The reference EVCC profiles transmit ChargeLink's typed framing (same boundary as ISO 15118-2).
  • The DIN 70121 conformance packages contain 20 ChargeLink-authored engineering cases per role; they are not a normative DIN test suite.