chargelink dc-can
IEC 61851-23/-24 System A (CHAdeMO) sessions, plus scripted DC-CAN sequences, adapter loops and campaigns.
chademo in command names refers to IEC 61851-23/-24 System A (CHAdeMO).
chargelink dc-can
chargelink dc-can [OPTIONS] <COMMAND>
Subcommands
| Subcommand | Purpose |
|---|---|
policy | Show DC-CAN crate foundation policy |
catalog | List CHAdeMO and ChaoJi/GB/T virtual CAN frame models |
virtual-run | Run virtual DC-CAN transport smoke |
chademo-live-run | Run ChargeLink-CHAdeMO DC-CAN EVCC/EVSE live closure simulator |
chademo-can-adapter-loop | Run CHAdeMO real CAN adapter binding and hardware-loop evidence session |
chaoji-gbt-can-adapter-loop | Run ChaoJi / GB/T real CAN/CAN-FD adapter binding and hardware-loop evidence session |
chademo-fault-campaign | Run CHAdeMO DC-CAN deterministic fault, retry, and watchdog campaign |
chademo-longrun-campaign | Run CHAdeMO DC-CAN repeated-session long-run campaign |
chademo | CHAdeMO DC charging (IEC 61851-23/-24 System A): the charger and vehicle roles, the CAN check and the case matrix |
release-gate | Show claim-safe DC-CAN release gate status |
operator-acceptance | Show operator acceptance checklist for DC-CAN foundation evidence |
chargelink dc-can catalog
List CHAdeMO and ChaoJi/GB/T virtual CAN frame models
chargelink dc-can catalog [OPTIONS]
No options besides the global options.
chargelink dc-can chademo
CHAdeMO DC charging (IEC 61851-23/-24 System A): the charger and vehicle roles, the CAN check and the case matrix
chargelink dc-can chademo [OPTIONS] <COMMAND>
Subcommands
| Subcommand | Purpose |
|---|---|
run | Run the CHAdeMO case matrix on one PC: the charger and the vehicle on a virtual CAN bus, with a simulated power stage |
evse | The charger side of a two-PC test: the charger, its simulated power stage and the plant link, CAN on the network hub or a Kvaser channel; runs and judges the chosen cases with the vehicle on the second PC. Stop with `chargelink evse stop --run-id <id>` |
ev | The vehicle side of a two-PC test: the vehicle on the charger PC's plant link, CAN on its hub or a Kvaser channel. Stop with `chargelink evcc stop --run-id <id>` |
kvaser-check | List the Kvaser channels; with --channel, open one at the CHAdeMO bus parameters and read them back, and send or listen for test frames (a cable test between the two PCs) |
chargelink dc-can chademo-can-adapter-loop
Run CHAdeMO real CAN adapter binding and hardware-loop evidence session
chargelink dc-can chademo-can-adapter-loop [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--run-id | <RUN_ID> | chademo-dc-can-adapter-p553-r1 | |
--adapter-kind | <ADAPTER_KIND> one of: peak-pcan, vector-xl, kvaser-canlib, socketcan, slcan, lawicel, usbtin | peak-pcan | |
--adapter-mode | <ADAPTER_MODE> one of: loopback, hardware | loopback | |
--channel | <CHANNEL> | PCAN_USBBUS1 | |
--bitrate-kbps | <BITRATE_KBPS> | 500 | |
--termination-ohms | <TERMINATION_OHMS> | ||
--hardware-present-proof | <HARDWARE_PRESENT_PROOF> | ||
--require-hardware | flag | ||
--evcc-profile | <EVCC_PROFILE> | chademo_dc_evcc_reference | |
--evse-profile | <EVSE_PROFILE> | chademo_dc_evse_reference | |
--requested-voltage-v | <REQUESTED_VOLTAGE_V> | 400 | |
--requested-current-a | <REQUESTED_CURRENT_A> | 125 | |
--initial-soc-pct | <INITIAL_SOC_PCT> | 35 | |
--target-soc-pct | <TARGET_SOC_PCT> | 80 | |
--max-loop-cycles | <MAX_LOOP_CYCLES> | 4 | |
--sample-period-ms | <SAMPLE_PERIOD_MS> | 100 |
chargelink dc-can chademo-fault-campaign
Run CHAdeMO DC-CAN deterministic fault, retry, and watchdog campaign
chargelink dc-can chademo-fault-campaign [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--run-id | <RUN_ID> | chademo-dc-can-fault-p554-r1 | |
--adapter-kind | <ADAPTER_KIND> one of: peak-pcan, vector-xl, kvaser-canlib, socketcan, slcan, lawicel, usbtin | peak-pcan | |
--adapter-mode | <ADAPTER_MODE> one of: loopback, hardware | loopback | |
--channel | <CHANNEL> | PCAN_USBBUS1 | |
--bitrate-kbps | <BITRATE_KBPS> | 500 | |
--termination-ohms | <TERMINATION_OHMS> | ||
--hardware-present-proof | <HARDWARE_PRESENT_PROOF> | ||
--require-hardware | flag | ||
--evcc-profile | <EVCC_PROFILE> | chademo_dc_evcc_reference | |
--evse-profile | <EVSE_PROFILE> | chademo_dc_evse_reference | |
--requested-voltage-v | <REQUESTED_VOLTAGE_V> | 400 | |
--requested-current-a | <REQUESTED_CURRENT_A> | 125 | |
--initial-soc-pct | <INITIAL_SOC_PCT> | 35 | |
--target-soc-pct | <TARGET_SOC_PCT> | 80 | |
--max-loop-cycles | <MAX_LOOP_CYCLES> | 4 | |
--sample-period-ms | <SAMPLE_PERIOD_MS> | 100 | |
--fault-kind | <FAULT_KINDS> |
chargelink dc-can chademo-live-run
Run ChargeLink-CHAdeMO DC-CAN EVCC/EVSE live closure simulator
chargelink dc-can chademo-live-run [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--run-id | <RUN_ID> | chademo-dc-can-live-p552-r1 | |
--evcc-profile | <EVCC_PROFILE> | chademo_dc_evcc_reference | |
--evse-profile | <EVSE_PROFILE> | chademo_dc_evse_reference | |
--requested-voltage-v | <REQUESTED_VOLTAGE_V> | 400 | |
--requested-current-a | <REQUESTED_CURRENT_A> | 125 | |
--initial-soc-pct | <INITIAL_SOC_PCT> | 35 | |
--target-soc-pct | <TARGET_SOC_PCT> | 80 | |
--max-loop-cycles | <MAX_LOOP_CYCLES> | 4 | |
--sample-period-ms | <SAMPLE_PERIOD_MS> | 100 | |
--inject-missing-heartbeat | flag |
chargelink dc-can chademo-longrun-campaign
Run CHAdeMO DC-CAN repeated-session long-run campaign
chargelink dc-can chademo-longrun-campaign [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--run-id | <RUN_ID> | chademo-dc-can-longrun-p554-r1 | |
--cycles | <CYCLES> | 25 | |
--mode | <MODE> one of: loopback, hardware, hardware-attested | loopback | |
--adapter-kind | <ADAPTER_KIND> one of: peak-pcan, vector-xl, kvaser-canlib, socketcan, slcan, lawicel, usbtin | peak-pcan | |
--channel | <CHANNEL> | PCAN_USBBUS1 | |
--bitrate-kbps | <BITRATE_KBPS> | 500 | |
--termination-ohms | <TERMINATION_OHMS> | ||
--hardware-present-proof | <HARDWARE_PRESENT_PROOF> | ||
--require-hardware | flag | ||
--evcc-profile | <EVCC_PROFILE> | chademo_dc_evcc_reference | |
--evse-profile | <EVSE_PROFILE> | chademo_dc_evse_reference | |
--requested-voltage-v | <REQUESTED_VOLTAGE_V> | 400 | |
--requested-current-a | <REQUESTED_CURRENT_A> | 125 | |
--initial-soc-pct | <INITIAL_SOC_PCT> | 35 | |
--target-soc-pct | <TARGET_SOC_PCT> | 80 | |
--max-loop-cycles | <MAX_LOOP_CYCLES> | 4 | |
--sample-period-ms | <SAMPLE_PERIOD_MS> | 100 |
chargelink dc-can chaoji-gbt-can-adapter-loop
Run ChaoJi / GB/T real CAN/CAN-FD adapter binding and hardware-loop evidence session
chargelink dc-can chaoji-gbt-can-adapter-loop [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--run-id | <RUN_ID> | chaoji-gbt-dc-can-adapter-r1 | |
--adapter-kind | <ADAPTER_KIND> one of: peak-pcan, vector-xl, kvaser-canlib, socketcan, slcan, lawicel, usbtin | peak-pcan | |
--adapter-mode | <ADAPTER_MODE> one of: loopback, hardware | loopback | |
--channel | <CHANNEL> | PCAN_USBBUS1 | |
--bitrate-kbps | <BITRATE_KBPS> | 500 | |
--termination-ohms | <TERMINATION_OHMS> | ||
--hardware-present-proof | <HARDWARE_PRESENT_PROOF> | ||
--require-hardware | flag | ||
--evcc-profile | <EVCC_PROFILE> | chaoji_gbt_evcc_compat_reference | |
--evse-profile | <EVSE_PROFILE> | chaoji_gbt_dc_evse_reference | |
--requested-voltage-v | <REQUESTED_VOLTAGE_V> | 750 | |
--requested-current-a | <REQUESTED_CURRENT_A> | 200 | |
--initial-soc-pct | <INITIAL_SOC_PCT> | 35 | |
--target-soc-pct | <TARGET_SOC_PCT> | 80 |
chargelink dc-can operator-acceptance
Show operator acceptance checklist for DC-CAN foundation evidence
chargelink dc-can operator-acceptance [OPTIONS]
No options besides the global options.
chargelink dc-can policy
Show DC-CAN crate foundation policy
chargelink dc-can policy [OPTIONS]
No options besides the global options.
chargelink dc-can release-gate
Show claim-safe DC-CAN release gate status
chargelink dc-can release-gate [OPTIONS]
No options besides the global options.
chargelink dc-can virtual-run
Run virtual DC-CAN transport smoke
chargelink dc-can virtual-run [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--protocol | <PROTOCOL> one of: chademo, chaoji-gbt, chaoji_gbt, chaoji, gbt | chademo | |
--profile | <PROFILE> | dc_can_virtual_evse | |
--frame-count | <FRAME_COUNT> | 4 | |
--sample-period-ms | <SAMPLE_PERIOD_MS> | 50 | |
--inject-watchdog-timeout | flag |
chargelink dc-can chademo ev
The vehicle side of a two-PC test: the vehicle on the charger PC's plant link, CAN on its hub or a Kvaser channel. Stop with `chargelink evcc stop --run-id <id>`
chargelink dc-can chademo ev [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--hub | <HUB> | The charger PC's CAN hub (with `--can-backend hub`) | |
--can-backend | <CAN_BACKEND> one of: hub, kvaser | hub | |
--kvaser-channel | <KVASER_CHANNEL> | 0 | Kvaser channel number (with `--can-backend kvaser`) |
--plant-link | <PLANT_LINK> | The charger PC's plant link | |
--listening-file | <LISTENING_FILE> | The station's listening file (`evse --listening-file`): the hub and plant-link addresses are read from it, in place of `--hub` and `--plant-link`. Read once, when the EV starts (waiting up to 30 s for it): for a charger that serves one cycle, as the repeatability run starts them | |
--connect-wait-s | <CONNECT_WAIT_S> | 300 | Seconds to keep retrying until the charger serves the next session; 0 retries until stopped |
--sessions | <SESSIONS> | 1 | Sessions to run, one after another; 0 runs sessions until `chargelink evcc stop`. A stop lets the current session finish. Each session runs the vehicle the charger asks for (a fault case may need its own vehicle configuration), or this PC's default |
--dry-run | flag | Validate the settings and register a dry-run session; opens no socket and no CAN channel | |
--run-id | <RUN_ID> | ||
--out | <OUT> |
chargelink dc-can chademo evse
The charger side of a two-PC test: the charger, its simulated power stage and the plant link, CAN on the network hub or a Kvaser channel; runs and judges the chosen cases with the vehicle on the second PC. Stop with `chargelink evse stop --run-id <id>`
chargelink dc-can chademo evse [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--hub-bind | <HUB_BIND> | 127.0.0.1:47100 | Address the CAN hub listens on for the vehicle on the second PC |
--plant-link-bind | <PLANT_LINK_BIND> | 127.0.0.1:47101 | Address the plant link listens on for the vehicle on the second PC |
--allow-network | flag | Required to listen on anything but loopback | |
--ev-wait-s | <EV_WAIT_S> | 300 | Seconds to wait for the vehicle of each session; 0 waits until stopped |
--cases | <CASES> | n1 | Cases to run with the vehicle on the second PC, comma-separated (for example n1,n2,k1,k5b), or `all` for every case but the one-PC bus self-test. The vehicle runs whatever session each case offers it |
--sessions | <SESSIONS> | 1 | How many times to run the cases, one after another; 0 repeats them until `chargelink evse stop` |
--can-backend | <CAN_BACKEND> one of: hub, kvaser | hub | `hub`: CAN over the network through the hub (a two-PC software test). `kvaser`: CAN on a Kvaser channel (a Kvaser interface, or a Kvaser virtual channel for testing) |
--kvaser-channel | <KVASER_CHANNEL> | 0 | Kvaser channel number (0 = the first channel; virtual channels count too) |
--ev-profile | <EV_PROFILE> | Demo power stage: a vehicle profile file (for example vehicle-40kwh-compact-bev.json). With --station-profile, N1 runs as a profile session: the battery, the BMS's current over state of charge and a normal stop at the target state of charge, in real time. A vehicle on a second PC takes the vehicle from the charger's offer and needs no flag | |
--station-profile | <STATION_PROFILE> | Demo power stage: a charger profile file: max voltage, current and power With the profiles: stream one JSON telemetry line every 100 ms. Without a path, to `telemetry.jsonl` in each cycle's folder of the run; with a path (one session only), to that file, created new | |
--fault-at-soc | <FAULT_AT_SOC> | With the profiles: the fault scene's state of charge, in % | |
--fault | <FAULT> one of: emergency_stop, station_stop | With --fault-at-soc: `emergency_stop` (case K1's stimulus, judged as K1) or `station_stop` (case N2's, judged as N2) | |
--plant | <PLANT> one of: model, bench | model | `model`: the built-in simulated CHAdeMO power stage in this process (the one-PC and two-PC software tests). `bench`: a power stage on a test bench, over the bench's gRPC signal service: one N1 session (`--cases n1 --sessions 1`), with --plant-grpc-endpoint and --lane-events, and the bench's safety owner from CHARGELINK_OWNER_SAFETY_BINDING |
--plant-grpc-endpoint | <PLANT_GRPC_ENDPOINT> | With `--plant bench`: the bench's gRPC signal service | |
--bench-ev-charge-ms | <BENCH_EV_CHARGE_MS> | 2000 | Bench EV duration at target current; keeps owner fault holds inside the session |
--bench-ev-abort-after-ms | <BENCH_EV_ABORT_AFTER_MS> | 0 | Bench peer-loss stimulus, sent to the remote EV after measured coupling (0 disables) |
--lane-events | <LANE_EVENTS> | With `--plant bench`: the bench events file (`chargelink.chademo.lane_events.v1`), created new; an existing file is refused | |
--dry-run | flag | Validate the settings and register a dry-run session; opens no socket and no CAN channel | |
--listening-file | <LISTENING_FILE> | Write the addresses the hub and plant link actually listen on to this file (JSON) once a session's sockets are bound. With port 0 in --hub-bind and --plant-link-bind the station takes free ports itself, and the EV is started with the ports this file names | |
--run-id | <RUN_ID> | ||
--out | <OUT> |
chargelink dc-can chademo kvaser-check
List the Kvaser channels; with --channel, open one at the CHAdeMO bus parameters and read them back, and send or listen for test frames (a cable test between the two PCs)
chargelink dc-can chademo kvaser-check [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--channel | <CHANNEL> | Channel to open (see the list); without it the channels are only listed | |
--send | <SEND> | 0 | Test frames (identifier H'7F0) to send on the channel, 10 ms apart |
--listen-s | <LISTEN_S> | 0 | Seconds to listen on the channel, after any sending |
--expect | <EXPECT> | Test frames that must arrive while listening (the other PC sends them) |
chargelink dc-can chademo run
Run the CHAdeMO case matrix on one PC: the charger and the vehicle on a virtual CAN bus, with a simulated power stage
chargelink dc-can chademo run [OPTIONS]
Options (global options --json, --runtime-root, --artifact-root and --license are accepted everywhere and omitted here)
| Option | Value | Default | Description |
|---|---|---|---|
--cases | <CASES> | all | Cases to run, comma-separated (for example n1,k1,k5b), or `all` |
--run-id | <RUN_ID> | ||
--out | <OUT> | Evidence folder; defaults to the CHAdeMO evidence folder under the artifact root |

