ChargeLink

Capability Boundaries

This page states what ChargeLink does and the limits and requirements that apply to each capability, grouped per charging standard and role. Read it before you build a procedure or a report on ChargeLink output, so that every result is described within what the software does. It lists the known limitations of ChargeLink 0.5.0; what the release delivers is in the Release Notes. Requirement numbers in brackets refer to ISO 15118-20 (V2G20-...), ISO 15118-2 (V2G2-...) and DIN 70121 (V2G-DC-...), and test case names to the ISO 15118-4, ISO 15118-21, ISO/PAS 15118-23 and DIN SPEC 70122 test plans; the standards themselves are not reproduced here.

One role per session. In each session ChargeLink plays one role: the charger (EVSE/SECC), with your vehicle, EVCC or on-board charger as the device under test (DUT), or the vehicle (EV/EVCC), with your charger or SECC as the DUT. Running ChargeLink against a second ChargeLink instance is described in Self-test without a device under test. No ChargeLink result is a certification, conformance or interoperability statement, and ChargeLink contains no physical charging interface (power-line communication, control pilot, power stage).

Every ISO 15118 and DIN 70121 stack

AreaWhat ChargeLink doesLimits and requirements
Not supportedEIM sessions without the functions named here.Plug & Charge, bidirectional power transfer (BPT), standby, and the physical layer (control pilot, PLC, SLAC) are not supported. Profiles that name Plug & Charge or BPT are refused, and their test-package cases report the status planned.
Profile filesReads runtime and session profiles.Profile files are JSON only. Convert a YAML profile to JSON.
Charger on a non-loopback address (evse start; DIN 70121, ISO 15118-2, ISO 15118-20 and MCS)Checks the address its SDP answer advertises before it binds.A non-loopback bind address needs --advertise-ipv6. Without it, the SDP answer would advertise an address the EV cannot reach, so ChargeLink refuses to start (exit code 40, CL-RUNTIME-001) before it binds or writes anything, and the message names the option. Pass --advertise-ipv6 with the link-local IPv6 address of the EV-facing interface, together with --interface-index. The default loopback bind is not affected.

ISO 15118-20

RoleWhat ChargeLink doesLimits and requirements
Charger, DC EIM, plant-coupled on the NI VeriStand benchRuns the charger side of a full DC EIM session. The plant values (voltage, current, contactor, isolation) come from the VeriStand model.Requires the NI VeriStand bench of the package; there is no other plant option. Delivered and verified with the ChargeLink vehicle on the VeriStand bench. In DEVlink's own tests, ChargeLink's charger has also completed ISO 15118-20 DC sessions over Ethernet with a third-party vehicle stack; this has not been verified on the VeriStand bench. Contact DEVlink before connecting a third-party vehicle. Scheduled and Dynamic control mode, selected by the EV from the modes the runtime profile offers (control_mode, parameter_set_control_modes); the package's runtime profile offers Scheduled with one 60 s charging schedule. Schedule renegotiation is answered when the EV requests it; the SECC never triggers it. Dynamic mode: MobilityNeedsMode 1 only, pricing 0 only, available power set by the runtime profile. The SECC cannot ask the EV to pause: its ScheduleExchangeRes cannot set GoToPause; no standby. CableCheck is simulated by the plant model. TLS 1.3 mutual authentication is required. A failed request is answered with a FAILED response code.
Charger: maximum ratings (DC and MCS)States its maximum power, voltage and current in the session.Unless the charger is started with --evse-rated-current-a and/or --evse-rated-voltage-v, its maxima are those of the configured operating point: the requested power, the target voltage, and the current as power divided by voltage. It then offers no voltage or current headroom above that point, although ISO 15118-20 defines these maxima as what the charger can deliver. With the two settings, EV requests are accepted up to the rating, and the current stays within the schedule's power. The start check refuses a rating below the operating point, a voltage above 1000 V (DC) or 1250 V (MCS), and an MCS current above 3000 A. The settings apply to a charger coupled to a plant model.
Charger: SDP, hardware-in-the-loop and test stimuli (DC and AC)Advertises its address by SDP; takes safety signals from the plant.SDP advertises the address set at listener start (--advertise-ipv6, else the bind address), not the interface's current address; after an address change, restart the listener. ISO 15118-20 leaves this mechanism open ([V2G20-156]). With a hardware-in-the-loop rig, the SECC takes the rig's safety signals through ChargeLink's owner interface and plant model, not from the HardwareInterlocks/HardwareSession inputs of the integration API. The charger side carries tester stimuli for conformance runs (withheld responses, V2GTP header faults, an Ongoing injection) that act only in a runtime profile marked qualification_only; every product profile refuses them. A frame-trace row with direction: "stimulus" comes from such a run.
Charger without a plant (reference responder; DC)Answers with fixed reference responses; no plant.Not a charging session: a vehicle stops early, at AuthorizationSetup. Use it only to check the network, SDP and TLS. The AC charger does not start without a plant. TLS 1.3 mutual authentication is required.
Vehicle, DC EIM live sessionRuns the vehicle side of a full DC EIM session against your charger or SECC.Your charger must offer SDP and TLS 1.3 with an ISO 15118-20 Annex B chain on secp521r1 or x448. Requires the EV case file and the session manifest delivered with the package; --max-steps 14. The EV values are test values, not a vehicle implementation. The EVCC does not act on an EVSENotification Renegotiation in PowerDeliveryRes ([V2G20-1601]). After a ScheduleExchangeRes with GoToPause, the EVCC skips the cable check and pre-charge and ends the session ([V2G20-3306], [V2G20-3307]); this is shown by unit tests only, as no ChargeLink charger sends GoToPause. Contact DEVlink before connecting the vehicle to a third-party charger.
Charger, AC EIM, plant-coupled on the NI VeriStand benchRuns the charger side of an AC EIM session with iso15118_20_ac_eim and mutual TLS 1.3, in the Scheduled control mode, or Dynamic with the settings block (ISO 15118-20).Command line only: the kit ships no AC charger settings file, no AC vehicle case files and no AC launcher, and the VeriStand operator screen has no AC stack. On two PCs, use the Scheduled control mode. The charger offers no power tolerance and answers an unconfirmed one with OK.
Vehicle, AC EIM (iso20-ac-evcc)Runs the vehicle side of one AC EIM session against your charger over SDP and mutual TLS 1.3 (ISO 15118-20).Configured with command options; the kit ships no AC vehicle case files.
Vehicle, demo profilesDry-run, loopback and deterministic simulation.These profiles have no live session against a charger.
Both roles: TimeStamp (DC and AC)Checks the header TimeStamp of each EV request.A non-advancing EV TimeStamp is refused: the charger answers FAILED_SequenceError to a request after SessionSetupReq whose header TimeStamp is not above that of the last message. An EV that does not apply its offset to the charger's time ([V2G20-1534], [V2G20-1536]) can be refused at its second message.
Both roles: TLSTLS 1.3 with mutual authentication and the ISO 15118-20 Annex B certificate profile.Both roles offer and accept only the named groups secp521r1 and x448 (order set by --iso20-curve-profile, default secp521r1) and the cipher suites TLS_AES_256_GCM_SHA384 and TLS_CHACHA20_POLY1305_SHA256, with no session tickets or resumption. A peer that offers neither group (for example a P-256-only peer) is refused before any V2G message; --allow-legacy-tls-named-groups adds secp256r1 last for such peers and is recorded in the run evidence. When both sides are ChargeLink, both must come from the same release: mixed versions fail closed.
  • The ISO 15118-20 support is that of the 2022 edition. The PKI and TLS changes of its Amendment 1 are not implemented, so a peer whose certificate chain follows only Amendment 1 may be refused.
  • No Ed448: ChargeLink signs and verifies with ECDSA on secp521r1 only; Ed448 signatures and the Curve448 certificate profiles are not supported ([V2G20-2319], [V2G20-1666] to [V2G20-1671], [V2G20-2324], [V2G20-2325]). With the x448 setting, x448 is used for the key exchange and the certificate chains stay P-521.
  • No maximum fragment length extension (RFC 6066) on the charger side ([V2G20-2446], [V2G20-2447]).
  • No OCSP stapling: the SECC staples no OCSP response ([V2G20-2388]) and the EVCC accepts a missing staple ([V2G20-2416]). The TLS evidence of both roles states this.
Both roles: V2GTP header (DC)Ignores an invalid V2GTP header ([V2G20-800]).The reader checks the declared payload length against its 4 MiB receive maximum before the protocol version and payload type ([V2G20-090], [V2G20-092], [V2G20-094]). A message with a wrong header that declares more than 4 MiB is ignored ([V2G20-800]) but not skipped: the session ends on the sequence timer, and TCP is not closed early. A message whose declared payload length is shorter than its payload is not recognised as a wrong header: the receiver reads the declared bytes as the message, answers them if they decode and otherwise ends the session. Because of this, ISO 15118-21 TC21_SECC_V2GTPSupportedAppProtocol_007 and TC21_SECC_V2GTPCommonMessages_007, ISO/PAS 15118-23 TC23_SECC_V2GTPDCMessages_007, and the EV side's _007 cases of the same three series are not met, on the charger and the EV side. A payload length of 0 is ignored as required, and the zero-length test cases (_006) pass on both sides; afterwards the charger side cannot re-frame the stream, so a correct message sent after such a header is not answered (the test steps send none). A payload length one byte too long is read as stated, and those test cases (_008) pass on both sides.
AC: charger and vehicleISO 15118-20 AC EIM messages on both roles.
  • Faults inside the charger (for example a residual-current trip that opens the contactor) are not covered by any ISO 15118-21 test case. ChargeLink's SECC ends the session through the owner stop path, or answers FAILED and contains the session when no owner stop follows; ChargeLink's own tests show this. Message sequence, timeouts, response codes and timing, which ISO 15118-21 does test, are unaffected.
  • The EVCC supports MobilityNeedsMode 1 only. Mode 2 (mobility needs provided by the charger, Dynamic control mode only, [V2G20-2663]) is not supported: with a charger that offers only mode 2, the EVCC stops the session (Terminate) after ServiceDetailRes. ISO 15118-20 has no requirement for this case ([V2G20-1587]).
  • [V2G20-1089] and [V2G20-1090] have no ISO 15118-21 test case; ChargeLink's evidence for them is its own tests.
  • The schema validity of each AC message is not checked during a run. It is covered by the AC codec's test vectors.
  • One SECC that offers AC and DC together is not available.
  • A V2GTP frame with a wrong header ends the AC session instead of being ignored while the message timer runs ([V2G20-800]), on the charger side and the EV side. A wrong payload length also desynchronises the stream, so the session ends on a decode or timer error. ISO 15118-21's V2GTP test cases for the EVCC (TC21_EVCC_V2GTPSupportedAppProtocol_003 to _008 and TC21_EVCC_V2GTPCommonMessages_003 to _008) are therefore not met. This is not safety-relevant.
Charger: test case TC21_SECC_PowerDelivery_008 (DC and AC)Answers the EV's power tolerance confirmation.ISO 15118-21 test case TC21_SECC_PowerDelivery_008 (Scheduled control mode only) expects the charger to answer an EV that does not confirm the power tolerance with a FAILED or WARNING code ([V2G20-1945], [V2G20-1946]). That expectation assumes the charger offered a tolerance. ChargeLink's SECC offers none in its schedules ([V2G20-1069]). It answers a missing or unconfirmed tolerance with OK and records it, and answers a confirmed tolerance with OK_PowerToleranceConfirmed, for DC and AC alike. ChargeLink therefore does not meet this test case's expectation, and its conformance runs declare the case rather than pass it.
Both roles: BPT and Plug & ChargeNot provided. Every charger mode offers EIM with the AC or DC energy-transfer service only.A profile whose ID names BPT or Plug & Charge is refused with exit code 70 (CL-UNSUPPORTED-001). No CertificateInstallation or MeteringConfirmation in the live session.

MCS (ISO 15118-20 DC over 10BASE-T1S)

RoleWhat ChargeLink doesLimits and requirements
ChargerRuns an MCS session (ISO 15118-20 Amendment 1 Annex K, ServiceID 8, EIM, TLS only) as the plant-coupled charger on the NI VeriStand bench, over a USB 10BASE-T1S adapter. The charger answers SDP only once the data link is ready, gates the cable check, welding detection and session stop on the measured CE state, and gates the schedule exchange on the plant's side-B voltage. See MCS.In this release, the MCS charger connects to a ChargeLink vehicle: CE and ID come from ChargeLink's simulated coupler model over the coupler link (TCP 50119, plain TCP), a ChargeLink bench interface for a closed network that is not part of the standard. A charger without the ISO 15118-20 runtime (the replay listener) offers the DC service only, and its MCS evidence says iso20_dc_exchange_only_not_mcs, so a DC exchange never reads as an MCS result. The VeriStand kit's MCS charger offers the Scheduled control mode only. Its maxima default to the operating point; see "Charger: maximum ratings" under ISO 15118-20.
VehicleRuns the vehicle side of the MCS session over a USB 10BASE-T1S adapter.In this release, the MCS vehicle connects to a ChargeLink charger, for the same coupler-link reason. The demo EV case (240 s near 1388 A) needs a Scheduled charger at 1250 kW / 900 V with a schedule of at least 300 s; at 1000 kW / 900 V the charger offers 1111 A, and the EV stops at ChargeParameterDiscovery. After a ScheduleExchangeRes with GoToPause, the EV side skips the cable check and pre-charge and ends the session ([V2G20-3306], [V2G20-3307]); this is shown by unit tests only, as no ChargeLink charger sends GoToPause.
Both roles: coupler link and 10BASE-T1SCarries the simulated connector signals between the two sides; runs the V2G link over 10BASE-T1S.The connector signals are simulated and travel over the 10BASE-T1S cable between the two computers (the coupler link, TCP 50119), not over a real MCS connector, so losing the data link also drops CE and ID. The coupler link carries CE, ID and the vehicle switch states as JSON lines over plain TCP, not TLS, for a closed bench network. Both ends must come from this release. Each loss of the coupler link is recorded on both sides. The 10BASE-T1S link counts as usable while the EV is present on the coupler link; Windows gives ChargeLink no "Ethernet operational" signal from the adapter. The 10BASE-T1S link layer between two computers is shown (PLCA node 0 on the charger side and node 1 on the EV side, node count 8); the 100 ohm end termination and the IEEE 802.3 clause 147/148 physical layer are not covered.
Both rolesISO 15118-20 DC with the MCS energy service.Scheduled control mode over 10BASE-T1S; MCS Dynamic runs in simulation (loopback) only. The release evidence for MCS sessions comes from one computer each: loopback, ChargeLink's own test runs, the VeriStand kit and the EV side; MCS on the NI VeriStand bench between two PCs is not yet qualified in 0.5.0. No ISO MCS test plan exists, no independent MCS implementation was available for interoperability, and no conformance or certification claim is made. No real MCS connector or power stage. The ISO 15118-10 setup timers and retries are not implemented: connection resume, the retries, the init retries and the 1 s emergency stop on link loss. A link loss inside a session ends it through the coupler-link loss; it is not judged against the ISO 15118-10 timing. No Plug & Charge or BPT.

ISO 15118-2

RoleWhat ChargeLink doesLimits and requirements
Charger, AC and DC EIM, plant-coupled on the NI VeriStand bench (profiles iso15118_2_ac_eim, iso15118_2_dc_eim)Runs the charger side of a full EIM session over TCP or TLS 1.2 (server authentication), coupled to the bench plant.The profiles need --plant-grpc-endpoint (the NI VeriStand bench). Verified with the ChargeLink vehicle. iso2-pki generates the engineering private-environment identity. External Payment only. The SECC offers one TLS cipher suite, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256; ISO 15118-2 has the SECC support both suites of its Table 7 ([V2G2-602], [V2G2-603]), so a client that offers only the static-ECDH suite is refused (handshake_failure). Plain TCP (EIM in a trusted environment) is not affected. DC, with a measured cable check (a real plant or a hardware-in-the-loop rig): a finished cable check reports the isolation status Valid whatever level was measured, so a warning never reaches CableCheckRes, and a failed measured cable check is answered FAILED with EVSE_NotReady and no isolation status instead of EVSE_Malfunction ([V2G2-365], [V2G2-366]). The simulated cable check is not affected, and an isolation fault during CurrentDemand is answered Fault with EVSE_Malfunction.
Charger, DC generic listenerAnswers the DC EIM message sequence with scripted replies; no plant.Protocol exchange only: no contactor, no energy. evse start --external-evcc-session --protocol iso15118-2 without a plant endpoint runs this listener with fixed responses, not the plant-coupled charger. It picks each reply from the request's bytes or its scripted order, so an EV that repeats a request (for example a second PreChargeReq) can get the next scripted response. The listener records every reply it chose for another request type. Results from it show connectivity only; it is not for full sessions. There is no AC generic listener.
Vehicle, DC and AC EIM session (commands iso2-evcc, iso2-ac-evcc)Runs one standards-encoded session against your charger (SDP, then TLS 1.2 with server authentication or TCP); DC with a current-demand loop, an optional renegotiation and pause/resume.One session per run. If your charger sends no MeterInfo, that check is not judged. The EVCC supports TLS only in a private environment ([V2G2-868], [V2G2-875]): it trusts only its stored private roots, the charger must send a leaf certificate signed directly by one of them, with the Domain Component CPO, and the EVCC sends no OCSP request. A charger on the public V2G PKI (sub-CAs and OCSP status) is not supported. EIM over TCP in a trusted environment is not affected. AC: ISO 15118-4's EVCC cases TC_EVCC_AC_VTB_PowerDelivery_002 to _007 expect the EV to change the CP state from C/D to B after a FAILED PowerDeliveryRes and then close TCP. ChargeLink's EVCC closes TCP without a further request but does not drive the CP state: in simulation the pilot is simulated, and on hardware the CP belongs to the board.
Both roles: codec and V2GTP headerEncodes and decodes ISO 15118-2 EXI; reads the V2GTP header.A protocolNamespace of the full 100 characters the schema allows is refused (99 are decoded; real namespaces are about 30 characters). EXI string-table hits are not supported and strings are ASCII only, so a peer that encodes a repeated string as a table hit is refused. A message cut inside its trailing end events is not detected. A V2GTP message with a wrong header ends the session instead of being ignored ([V2G2-800]). The stacks also check the header in another order than ISO 15118-2 gives ([V2G2-090], [V2G2-092], [V2G2-094]): the DC charger side and the EV side check the version, then the payload length (at most 65536 bytes), then the payload type; the AC charger side checks the declared length (at most 4 MiB) first. This is not safety-relevant: the session ends with the plant at its safe state.
Both roles: resultsRun folder with the status files and the V2GTP frame trace.After a normal DC or AC session that ended with SessionStopRes, summary.json can report "status": "attention_required"; this is a fault in the summary's own sequence check, not in the charging session. Judge the charger by evse_listener_status.json ("status": "stopped") and command_result.json ("session_status": "stopped"), and the vehicle by iso2_evcc_report.json or iso2_ac_evcc_report.json ("passed": true). In DEVlink's own interoperability tests, ChargeLink's ISO 15118-2 charger and vehicle (AC and DC, TLS 1.2 and TCP) completed sessions with an independent open-source ISO 15118 implementation. This is not certification.
Vehicle, reference profiles (evcc start, evcc activate-profile)Deterministic simulation, loopback and the TLS probe.These profiles do not transmit standards-encoded EXI; they are not for a session with your charger.

DIN 70121

RoleWhat ChargeLink doesLimits and requirements
Charger, DC session plant-coupled on the NI VeriStand HIL bench (profile din70121_dc)Runs the charger side of a full DIN 70121 DC session over TCP, coupled to the bench plant, with a current-demand loop.In 0.5.0 the DIN 70121 charger runs plant-coupled on the NI VeriStand HIL bench, 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. No TLS (DIN 70121 has none). The SECC ignores a ChargingProfile in PowerDeliveryReq ([V2G-DC-992]), so FAILED_ChargingProfileInvalid and FAILED_TariffSelectionInvalid ([V2G-DC-399], [V2G-DC-400]) are never sent, and DIN SPEC 70122 TC_SECC_VTB_PowerDelivery_007 and _008 do not apply. SDP advertises the address set at listener start; after an IP address change, restart the listener ([V2G-DC-110]). Cable check with a measured plant (a real plant or a hardware-in-the-loop rig): an insulation warning is not reported in CableCheckRes, and the cable check finishes as valid ([V2G-DC-889]); a failed insulation test is answered FAILED with EVSE_Shutdown and no isolation status, not with isolation Fault and EVSE_Malfunction ([V2G-DC-890]).
Vehicle, DC session (command din-evcc)Runs one nominal DIN 70121 DC session against your charger (SDP or a direct TCP connection) with a current-demand loop.TCP only, no plant, no EV cases or profiles. ChargeLink's DIN 70121 implementation interoperated with an independent open-source DIN implementation in DEVlink's own tests. This is not certification.
Both roles: V2GTP headerReads the V2GTP header.The payload length (at most 65536 bytes) is checked before the payload type, so a frame of an unsupported payload type longer than 65536 bytes closes the TCP connection instead of being skipped ([V2G-DC-170], [V2G-DC-171], [V2G-DC-172]). Frames of the supported type are handled as required.
Test planFollows DIN/TS 70121:2024.The test plan is DIN SPEC 70122:2018, written for DIN SPEC 70121:2014. ChargeLink records two deviations from the 2018 test plan per case: the 2024 stop sequence (PowerDeliveryReq with ReadyToChargeState false before SessionStopReq in the charge loop, [V2G-DC-673]) and the 60 s ongoing timeout ([V2G-DC-863], [V2G-DC-864]) against the 2018 plan's 150 s. SLAC, PLC and control-pilot cases belong to the physical layer and are not run.
Vehicle, reference profiles (evcc start, evcc activate-profile)Deterministic simulation and loopback.These profiles do not transmit standards-encoded EXI; they are not for a session with your charger.

IEC 61851-23/-24 System A (CHAdeMO)

RoleWhat ChargeLink doesLimits and requirements
Charger (station, dc-can chademo evse)Runs the station with a simulated plant and pilot circuits on a virtual CAN hub or a Kvaser CAN channel, and checks every session against ChargeLink's timing and state rules. See IEC 61851-23/-24 System A (CHAdeMO).Every station session runs with the ChargeLink EV role, which connects to the station's plant link and supplies the vehicle-side values of the simulated plant. Testing a third-party EV is not supported in 0.5.0. The plant is simulated: voltage and current values are the model's, not measurements, and must not control a real power stage. ChargeLink acts on the emergency stop, isolation trips, contactor and welding signals. The short-circuit check result before transfer, the earth-leakage monitor's self-test and the control-supply integrity have no plant channel, so ChargeLink's own side of these protections is not connected.
Vehicle (EV, dc-can chademo ev)Runs the EV side of the session on the virtual CAN hub or a Kvaser CAN channel.The EV role connects to a ChargeLink station's plant link. Testing a third-party charger is not supported in 0.5.0.
Both roles on one PC (dc-can chademo run)The 29-case matrix (bus self-test, normal sessions n1/n2, faults k1–k20) on a virtual CAN bus with a simulated power stage; each run is passed or not passed. Repeatability and combined runs.Needs a ChargeLink licence. A self-test of ChargeLink's CHAdeMO roles. The roles are Windows processes, not real-time controllers: a timing margin close to the limit on a loaded PC is a scheduling effect. No conformance or certification claim; no power stage.
Both roles: scopeThe control protocol of IEC 61851-23/-24 System A; ChargeLink sends control protocol number 2.
  • No CHAdeMO version, certification or compliance claim is made. DEVlink does not hold the CHAdeMO protocol and certification test specifications.
  • Not supported: control protocol number 3; dynamic, high-current and high-voltage control; the thermal-management reaction; the extended messages H'110, H'118, H'700 and H'708; bidirectional power transfer; sleep and wake-up (standby). Received optional messages are ignored, not treated as errors.
  • CAN is the only physical connection. The pilot lines (CP, CP2, CP3, CS), the power stage, the insulation monitor and the connector lock are simulated. ChargeLink does not check the electrical values of the CAN circuit and the pilot circuits; the pilot values are met only by the simulated model.
  • The CAN hardware is the Kvaser Leaf v3 only.
  • Station hardware is outside ChargeLink: the hardware of the station's protections, the disconnect equipment, measurement accuracy and the station's FMEA.
  • Some timing requirements are checked in simulation only: the current drop and reaction times after a protection trip, and the time from the EV's welding report, because the bench's plant model does not report those times. On the bench, ChargeLink's software reaction and the safe end of the session are checked.
  • The test campaign with two physical CAN adapters ran on pre-release builds of 0.5.0, not on its final binaries.
Scripted DC-CAN sequencesFixed, pre-scripted lists of CAN frames on a virtual bus.Not a protocol implementation. Adapter kinds are descriptors that open no hardware; hardware mode is an operator attestation. See Scripted DC-CAN Sequences.

Physical charging interface

AreaWhat ChargeLink doesLimits and requirements
Power-line communication, pilot and power stageNot part of the software.ChargeLink contains no power-line communication or SLAC, no control pilot or proximity circuit and no power-stage control. For ISO 15118 and DIN 70121 the bench provides the link over Ethernet and IPv6; CHAdeMO uses a Kvaser CAN interface. ChargeLink 0.5.0 does not connect to a PLC modem; see Connecting to Real PLC Hardware.
Physical high-voltage safetyOutside the software.Site procedures, interlocks, DUT limits and lab safety systems remain authoritative.

For other charging standards, contact DEVlink.

NI VeriStand bench kit

AreaWhat the kit doesLimits and requirements
NI VeriStand benchCouples the ChargeLink charger's session to a VeriStand plant model (simulated power stage). The bench charger is verified with the ChargeLink vehicle.Requires NI VeriStand 2024 Q4 only: the NI files whose hashes docs/INSTALL-CHARGER.md lists. Another NI build is outside the supported environment; record the difference before relying on a result. The shipped system definition runs the engine at 500 Hz on Windows and places its loops on logical processors 10, 11 and 12; another processor topology needs a reviewed placement and a re-saved system definition, and the kit contains no tool to change that placement. The plant is simulated; your own safety controller keeps physical authority over any real equipment. The charger is delivered and verified with the ChargeLink vehicle. In DEVlink's own tests, ChargeLink's charger has also completed ISO 15118-20 DC sessions over Ethernet with a third-party vehicle stack; this has not been verified on the VeriStand bench. Connecting a real vehicle needs a physical layer (control pilot, PLC) that this release does not include. Contact DEVlink before connecting a third-party vehicle.
TLS materialUses ISO 15118-20 Annex B material on the charger and the vehicle side.The kit ships no certificate and no key. Either generate the engineering bench PKI on the charger computer (evse tls-material-init --bench-pki; ENGINEERING/TEST material only, accepted by the SECC only with allow_engineering_tls_identity, which New-BenchConfiguration.ps1 -EngineeringPki sets), or provide operator-issued ISO 15118-20 Annex B material for both sides (docs/INSTALL-CHARGER.md, "TLS material"). The engineering PKI has no revocation service.
EV cases of the kitThe kit's EVCC runs the EV cases in vehicle/cases.The EVCC runs only these cases (marked qualification_only); it is a test peer, not a vehicle implementation.
Component versionschargelink --version reports the kit's version.The owner host and broker assemblies carry the .NET default assembly version 1.0.0; the kit identifies them by SHA-256 (manifest/SHA256SUMS) and by the source commit in manifest/source.json.
Operator screenShows the session's channels on the VeriStand screen.The operator screen shows the following wrongly; read the values from the channels when in doubt.
  • External EVCC page: the Recent Activity panel is a static picture, not live data. Its times do not belong to the running session.
  • Charging tab: the Power and SOC charts are swapped, and Present Power is clipped.
  • Operate page: the status shown after a stop is inconsistent.
  • MCS page and tiles: the tile headed Power (MW) shows the value in megawatts but labels it W (0.998 W means about 1 MW), and CE, ID, Heartbeat and Last Error show a stray unit "1".

Test, evidence and integration

AreaWhat ChargeLink doesLimits and requirements
Protocol-first test campaigns (test)Discovers test cases, plans and runs campaigns, and writes verdict reports for ISO 15118-2 and ISO 15118-20.PASS/FAIL only from an operator-supplied live-SUT or validated-replay evidence manifest.
Conformance test packagesNot part of ChargeLink 0.5.0.Conformance test packages for testing your own device are not part of ChargeLink 0.5.0; contact DEVlink about availability.
Deterministic simulation and replaySeeded paired simulations with transcript hashes and replay verification.Symbolic transcripts, not wire traffic.
Evidence: manifests, integrity, redaction, support bundleOne run directory per run with SHA-256 manifests, traces and reports."Signed" verdict manifests are SHA-256 integrity seals, not external signatures. No PCAP, CSV, JUnit or PDF output.
gRPC Integration APISession lifecycle, signals, campaigns and evidence for your own automation.The management API is local only: a non-loopback --listen is refused and there is no TLS transport. Every call needs the per-start access token (<state-root>\api-token, bearer header). A session whose configuration carries a "listener" object starts and observes a charger listener (bound listener); a listener started from the CLI stays unbound (GetProtocolState = unobserved). A bound listener reports only the first protocol session of its run.
ASAM XIL, HIL adapter SDK, factory/EOL, enterprise managementReference implementations of the service workflows.No NI XIL runtime, physical HIL equipment or production equipment is driven.
OPC UAProbe of an installed OPC Foundation stack.No endpoint is opened.
Engineering TLS material (evse tls-material-init)Generates an Annex B-shaped certificate chain marked "ENGINEERING ONLY" for bench use.The SECC refuses it unless evse start --allow-engineering-tls-identity is given. Never use it in production.
LicensingSigned offline licence files (.dlic) bound to the machine ID of one PC; a usable licence enables the licensed commands.There is no online activation service. This version accepts machine-bound licences only. Every computer that runs a licensed command needs its own licence. Any valid ChargeLink licence opens every licensed command in this release; there are no checks per package, role or edition. A licensed command needs the licence also with --dry-run. The licence is checked when a ChargeLink process starts: a session that is running when the licence expires runs to its end, and the next start is refused. See Licensing.
InstallationA signed setup that installs each version side by side, with a SHA-256 manifest of every file.Windows only. The setup installs no service; servers run in the foreground, so use your own supervisor. Prerequisites (Visual C++ runtime, .NET 10, NI VeriStand, Kvaser CANlib) are checked, not installed.

Test-case inventory versus executable reality

A test-case inventory can contain cases that are not executable in the current environment because PICS/PIXIT excludes them, a certificate path is not configured, physical hardware is absent, or a case is intentionally kept as a blocked audit row. Do not report a smaller executed campaign as "missing cases" until applicability and blockers have been reviewed.

Version-sensitive behaviour

CLI syntax, defaults, package contents, profile IDs and integration dependencies can change between releases. For a controlled procedure: record chargelink --version and the binary hash, archive the selected profile output, archive PICS/PIXIT and campaign inputs, record the documentation version, and never copy a command from a newer manual into an older build without checking --help. Some commands have built-in laboratory defaults for the peer address, the interface index and the TCP port; always pass your own values.

When to contact support before testing

  • Your installed profiles do not match the purchased scope.
  • The installed NI VeriStand version differs from 2024 Q4.
  • A production TLS setup requires certificate material not described for your edition.
  • The DUT requires a non-standard network or CAN configuration.
  • You need to make a certification or formal compliance claim based on ChargeLink output.