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 ID | Role | Use |
|---|---|---|
din70121_dc_evse_reference | EVSE | Canonical live DC EVSE listener |
delta_din70121 | EVSE | Alias used by the activation catalog and by the long-run campaign plan |
din70121_dc_smoke | EVSE | CLI-compatibility smoke profile (marked nonfinal) |
din70121_dc_evcc_reference, din70121_evcc_reference | EVCC | Dry-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-evcccommand runs one standards-encoded DIN 70121 DC session (SDP, then TCP; DIN 70121 has no TLS) against the ChargeLink SECC profiledin70121_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.

