We use cookies on our website to provide you with the best possible service and to further improve our website. By clicking the "Accept All" button, you agree to the use of all cookies. You can limit the cookies used by clicking on "Accept selection". Further information and an option to revoke your selection can be found in our privacy policy.


These cookies are necessary for basic functionality. This allows you to register on our website and forum or order products with our online shop.


With these cookies, we collect anonymized usage data for our website. For example, we can see which content is interesting for our visitors and which resolutions are used. We use the information to optimize our website to provide you with the best possible user experience.


show more

PCAN-XCP API Version History

2023-10-05 - Version 2.2.5


  • General code enhancements
  • Information regarding the use of BRS (Bit Rate Switch) within CAN FD connections has been added to the documentation


2021-05-27 - Version 2.2.4

Bug fixes:

  • Attempting to use XCP_Download and XCP_Program in 'block mode' failed with error XCP_ERR_OUT_OF_RANGE
  • The XCP_DownloadNext and XCP_ProgramNext functions failed erroneously, if the 'number of elements' passed to the functions was greater than 6 (granularity 1), 3 (granularity 2) or 1 (granularity 4)


  • The functions XCP_Download, XCP_DownloadNext, XCP_Program, XCP_ProgramNext, and XCP_Upload now return XCP_ERR_INVALID_PARAMETER, if a DTO buffer is passed as parameter while block mode is used and not all desired elements can be transmitted with the current command call

2020-12-01 - Version 2.2.3

Bug fixes:

  • The function XCP_Upload returned a wrong result code when it was called asynchronously
  • The subcommand GET_SLAVE_ID of the function XCP_TransportLayerCommand couldn’t be called asynchronously
  • The subcommand GET_SLAVE_ID of the function XCP_TransportLayerCommand was sent using the Master-ID and not the Broadcast-ID

2019-07-09 - Version 2.2.2


  • The configuration of the underlying certificate checking was changed to avoid delays at initialization time due to certificate revoke-search online

2018-12-13 - Version 2.2.1

Bug fixes:

  • The function XCP_TransportLayerCommand was broadcasting commands, even though the GET_SLAVE_ID command is the only one supporting broadcasting
  • Issuing transport layer commands was not increasing the DTO filter, so that dedicated DTOs couldn't be received

2018-01-31 - Version 2.2.0


  • New function XCP_GetErrorText for error code parsing added

2017-09-06 - Version 2.1.0


  • Unused dependencies were removed and the DLL sizes reduced

Bug fixes:

  • Function XCP_InitializeCanChannel had a wrong signature, causing an access violation when used dynamically (LoadLibrary/GetProcAddress)
  • A special case with the XCP_Program function has not been taken into account: Sending a message with 'numberOfElements' equal to 0

2016-02-23 - Version 2.0.1

  • Bug fix: The setting for MAX_DTO, at CONNECT response time, was not being set, causing a malfunction within the function XCP_DequeueMsg(DTO)

2015-10-07 - Version 2.0.0


  • CAN-FD support was added, new API function XCP_InitializeCanChannelFD()


  • API was updated to support the new version of PCAN-Basic
  • The members "MotorolaFormat" and "AddressGranularity" of the TXCPProtocolLayerConfig structure are deprecated. These values are now automatically used when the XCP_Connect() function is called sucessfully

2014-01-27 - Version 1.1.0

  • Patch: A security issue was fixed

2013-09-06 - Version 1.0.1

  • Bug fix: DTO packages were wrongly being included into the CTO queue
  • Bug fix: Due to a filter problem, the API was not able to receive "Dedicated DTOs"
  • Enhancement: A new Header file for VB.Net is now available
  • Enhancement: A new example project for VB.Net is now available

2012-10-31 - Version 1.0.0

  • FIRST release version