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-UDS API Version History

2021-05-20 - Version 2.1.1


  • Added SecuredDataTransmission 2020 service handling
  • Added UDS_SvcClearDiagnosticInformation_2020 (ClearDiagnosticInformation service with memory selection parameter)
  • Added UDS_SvcAuthentication[...]_2020 functions to handle Authentication service (ISO 14229-1:2020)
  • Added uds_nrc enumeration that represent UDS negative response codes
  • Added uds_svc_authentication_subfunction and uds_svc_authentication_return_parameter enumerations for Authentication service (ISO 14229-1:2020)
  • Added PUDS_ONLY_PREPARE_REQUEST definition that allows to use a UDS_Svc* function to prepare a message without sending it

Bug fixes:

  • Fixed PUDS_STATUS_SERVICE_ALREADY_PENDING error: do not raise this error if the previous call of the service resulted in network error
  • Fixed memory access violations due to empty UUDT messages
  • Fixed padding when sending UUDT messages which use a length that is not equal to a valid DLC
  • Fixed missing PUDS_SVC_PARAM_LC_BAUDRATE_PROGSU definition for LinkControl service
  • Fixed minor errors in examples
  • Fixed missing status handling in UDS_GetErrorText_2013 function
  • Changed debug mode enumeration (replaced by debug levels)
  • Changed auto TesterPresent management: physical auto TesterPresent are managed sequentially, functional auto TesterPresent are managed periodically
  • Fixed service already pending error while sending multiple NRC messages with different service identifier
  • Changed uds_sessioninfo: using a null s3_client timing disable automatic TesterPresent
  • Fixed UDS_SvcDynamicallyDefineDataIdentifierDBMA_2013: addressAndLengthFormatIdentifier parameter was inverted in DynamicallyDefineDataIdentifier service with defineByMemoryAddress subfunction


2021-01-25 - Version 2.1.0


  • New UDS_MsgCopy_2013 function added to copy a uds_msg structure
  • New UDS_MsgMove_2013 function added to move a uds_msg structure into another uds_msg structure
  • New attribute added, can_tx_dlc, to the uds_msgconfig structure
  • New enumeration added, uds_errstatus, to store UDS error codes
  • New parameter added, PUDS_PARAMETER_RESET_HARD, to perform a hard reset (and keep settings and mappings)
  • New status value added, PUDS_STATUS_HANDLE_INVALID, to handle invalid cantp_handle error
  • New Examples 08/09/10 for C#/VB/C++_CLR/Delphi added
  • Examples reviewed:
    • Add missing uds_msg initialisations (fill structure with zero)
    • Example 05_server_simulator: remove useless uds_msg structure zero filling after UDS_MsgFree_2013
    • Examples 06_client_all_request: replace invalid RequestUpload sizes parameters
    • Examples 7 and 8 reviewed: remove useless mapping 'uid' initialization
    • Documentation of samples reviewed
  • Check potential PUDS_STATUS_SERVICE_ALREADY_PENDING error on pending postive responses and extended timing negative responses
  • Documentation updated

Bug fixes:

  • Fixed UDS_RemoveMapping_2013 return code, if the mapping is not a valid mapping, the function retrurns PUDS_STATUS_MAPPING_INVALID
  • Fixed WaitForServiceFunctional_2013 prototype in Pascal header (do not pass max_msg_count as a reference)
  • Fixed UDS_SvcDynamicallyDefineDataIdentifierDBMA_2013, UDS_SvcWriteMemoryByAddress_2013, UDS_SvcRequestDownload_2013 and UDS_SvcRequestUpload_2013: Check that addressAndLengthFormatIdentifier parameters are valid
  • File description of the 64-bit version of the library corrected. It was showing '32-bit' instead of '64-bit'


  • Changed backward compatibility UDS_Write function: the no response flag is now automaticaly corrected in message data if needed
  • Automaticaly remove no response flag in UDS_Svc*_2013 if the service does not have a subfunction
  • Changed UDS_WaitForService_2013 and UDS_WaitForServiceFunctional_2013: confirmation message buffer is now mandatory
  • Changed UDS_WaitForServiceFunctional_2013/WaitForServiceFunctional_2013 arguments order
  • Changed UDS_WaitForServiceFunctional_2013: functional UUDT request are allowed
  • Changed message structure checks: prevent user to reuse an already allocated buffer (PUDS_STATUS_MESSAGE_BUFFER_ALREADY_USED error)

2020-12-03 - Version 2.0.0


  • New interface ISO 14229 with CAN-FD support, revision 2013
  • Fully binary compatible with applications using PCAN-UDS.dll, version 1.x
  • Backward compatibility support for projects based on ISO 14229, revision 2006 (PCAN-UDS.dll, version 1.x)
  • General code enhancements

2019-11-22 - Version 1.3.4


  • New sample project in C#
  • Automatic correction of server address: When setting the server address, the value is now automatically corrected to fit into a byte (except if address is specified as enhanced)

Bug fixes:

  • Fixed different issues caused by frames with non-default priority
    • Fixed issue when receiving a 29-bit ISO-TP frame with non-default priority
    • Fixed issue when waiting for a service with a 29-bit UDS message with non-default priority
    • Fixed issue with an internal check for CAN-TP confirmation with non-default priority 29-bit message
  • Structure alignment information was missing within the header files

2019-06-27 - Version 1.3.3


  • Certificate checking of the libraries improved. In some special environments the initialization process of a channel could last about 20 seconds

Bug fixes:

  • Fixed problems with Endianness conversions
  • The following missing RDTCI definitions have been added which are now supported by the UDS_SvcReadDTCInformationNoParam function:

2019-05-24 - Version 1.3.2


  • New function 'CheckResponse' in TPUDSMsg (C#, VB.NET, and C++/CLR) for checking UDS service responses for validity, supersedes 'IsPositiveResponse'
  • The function 'IsPositiveResponse' of TPUDSMsg has been marked as obsolete/deprecated
  • New enumeration TPUDSServiceResult (C#, VB.NET, and C++/CLR), representing result values of UDS services
  • Added support for UUDT message writing with new protocol: PUDS_PROTOCOL_NONE
  • General code enhancements
  • The documentation was updated

2018-03-05 - Version 1.3.1


  • Added parameters PUDS_PARAM_MAPPING_ADD and PUDS_PARAM_MAPPING_REMOVE to configure non-standard UDS messages
  • Added support for UUDT response with new PUDS message type: PUDS_MESSAGE_TYPE_CONFIRM_UUDT

Bug fixes:

  • Wrong signature of the function 'SvcWriteMemoryByAddress' in the Pascal header file PUDS.pas corrected

2017-02-03 - Version 1.3.0


  • Added support for new ISO-TP message type PCANTP_MESSAGE_INDICATION_TX
  • Added PUDS_MESSAGE_INDICATION_TX to TPUDSMessageType to distinguish incoming and outgoing start of message

2016-04-22 - Version 1.2.1


  • Added parameter PUDS_PARAM_PADDING_VALUE to set value for CAN Data Padding
  • Updated to support new PCAN channels (PCAN-Basic 4.x)

Bug fix:

  • Fixed timeout deadlock when calling PUDS_Uninitialize with value PUDS_NONEBUS

2015-09-01 - Version 1.2.0

  • Improvement: PCAN-UDS Header files edited to support PCAN-Basic 4.x
  • Bug fix: C++ header file was edited: default value for parameters in "UDS_Initialize" are now C-compatible

2015-08-13 - Version 1.1.0


  • General updates due to ISO-TP changes
  • General performance improved

2014-11-14 - Version 1.0.0

  • First Release