Skip to content

Using XCP Measurement and Calibration

Prepare and connect

  1. Configure the required BUSMASTER CAN channel for Classic CAN and connect CAN.
  2. Open XCP Settings. Set the channel, master CTO ID, slave response/DTO ID, identifier format, and timeout.
  3. In the A2L group, browse to the ECU A2L file. If more than one MODULE or XCP-on-CAN transport is present, select the intended entries. Review the imported CTO/DTO IDs, identifier format, and any reported nominal-bitrate mismatch before applying.
  4. Select an acquisition mode. For first use, choose Polling or Automatic. If the Measurement status reports high Polling load, increase the interval or reduce the acquired workset.
  5. Click OK, add the required objects from the A2L Browser, and click Connect.

Read values

  1. Highlight one or more readable scalar rows in the workset (Ctrl or Shift selects multiple rows). Acquire check boxes control continuous acquisition, not the one-time read.
  2. Click Read Now.
  3. Check Value, Unit, Quality, and Last Result. Use Properties when you need the selected object’s read-only A2L metadata. A Good quality applies only to a current successful session value; BUSMASTER marks cached values stale after Stop or Disconnect.

Write and verify calibration

  1. Double-click the Value cell of one writable scalar CHARACTERISTIC, or select the row and press F2. Masked and read-only objects cannot be edited.
  2. Enter the required physical value and press Enter. BUSMASTER validates numeric syntax, supported conversion, and A2L limits before it sends anything.
  3. BUSMASTER writes that object immediately and reads it back before you edit another object.
  4. Use Value, Quality, and Last Result to verify the ECU readback. Clicking or selecting elsewhere cancels an unfinished edit without sending. Esc retains its existing BUSMASTER meaning: disconnect Host CAN.

Start Polling or DAQ

  • Polling periodically reads the enabled workset objects. Increase the interval or reduce the workset if the load estimate is excessive.
  • DAQ builds dynamic DAQ lists using the ECU’s reported capabilities and MIN_DAQ list number. The configured event channel must exist in the ECU/A2L project.
  • Automatic uses DAQ when the plan is supported and falls back to Polling with a visible reason when it is not.

Use the Acquisition toggle to start and stop. Add, Remove, Move Up, Move Down, and Acquire check-box changes are disabled while acquisition is running. The UI refresh is intentionally slower than the sample stream; Value shows the latest available value without repainting once for every DTO.

Errors and recovery

Note: Existing CAN TX tasks can continue while XCP is connected. Before adding, deleting, or changing CAN TX tasks, stop acquisition and disconnect XCP. Applying a TX task snapshot can clear the shared hardware transmit queue and discard an in-flight XCP request. After changing tasks, reconnect XCP. If an XCP command times out and communication is reported out of sync, use the XCP Disconnect toggle, then disconnect and reconnect BUSMASTER CAN before retrying; do not retry a calibration write blindly.

  • If the ECU rejects a command, read Log / Diagnostics for the XCP error and the object or command category. Correct the session, access, address, value, or ECU state before retrying.
  • After an ambiguous CTO timeout, BUSMASTER does not blindly resend the command. XCP Disconnect remains available and completes locally without an error. Reconnect the Host CAN channel before starting another XCP session so that a late response cannot be mistaken for a new command.
  • If CAN goes down, the XCP session and measurement stop. Reopen the Main Window if it was hidden and follow the displayed recovery state.
  • If A2L loading fails, correct the reported file, include, line, MODULE, or reference problem. The previously committed model remains available.
  • A2L rebinding is rejected while a read or write is pending, including its result publication. Wait for the operation to finish before applying the candidate; an already-confirmed write must not move to an address from a newer A2L model.
  • If XCP_Protocol.dll is absent or ABI-incompatible, only XCP is disabled. Normal CAN, UDS, Trace, Logging, and other BUSMASTER functions remain available, and the CFX XCP section is preserved.

Run the repository acceptance simulator

On the BUSMUST two-device XCP bench, open PowerShell at the repository root and run Tests\Automation\XCP_HIL\start_xcp_simulator.ps1. The script builds the native BMAPI slave, exclusively opens the configured slave UID/port, and prints a status=ready JSON record plus the A2L path, 500 kbit/s bitrate, request ID 0x555, and response/DTO ID 0x556. Keep that window open, configure BUSMASTER with the printed values, and perform read, inline write, Polling, and DAQ. Press Ctrl+C in the simulator window to stop it and print final request, DOWNLOAD, and DAQ counters.

Current release boundaries

  • XCP on Classic CAN, one ECU, and one active XCP session.
  • Supported scalar types extend through 32-bit integers and FLOAT32. Unsupported arrays, curves, maps, or larger data types are shown as unsupported and are not silently accessed.
  • BIT_MASK objects are read-only in this release.
  • Resolved scalar MEASUREMENT values in the XCP workset can be added to the CAN Signal Graph as Physical elements. They update while XCP acquisition is running.
  • The XCP window follows the existing BUSMASTER Windows compatibility scaling model; it does not add independent per-monitor DPI behavior.

Authoritative source: BUSMASTER DITA help source XCP_Operations.dita, compiled into BUSMASTER.CHM with the application.