Auf unserer Website setzen wir Cookies ein, um Ihnen den bestmöglichen Service zu bieten und unsere Website weiter verbessern zu können. Mit dem Button "Alle akzeptieren" stimmen Sie der Verwendung aller Cookies zu. Über "Auswahl akzeptieren" können Sie die verwendeten Cookies eingrenzen. Weitere Informationen und eine Option zum Widerruf Ihrer Auswahl finden Sie in unserer Datenschutzerklärung.


Diese Cookies sind für die grundlegende Funktionalität notwendig. Dadurch können Sie sich auf unserer Website und im Forum anmelden oder Produkte mit unserem Online-Shop bestellen.


Mit diesen Cookies erheben wir anonymisiert Nutzungsdaten für unsere Website. So können wir beispielsweise sehen, welche Inhalte für unsere Besucher interessant sind und welche Auflösungen verwendet werden. Anhand der Informationen optimieren wir unsere Website, um Ihnen eine möglichst gute Benutzererfahrung bieten zu können.



PCAN-Basic API for Windows Version History

2023-03-07 - Version 4.7.0



  • New TRACE_FILE_DATA_LENGTH value to be used with the PCAN_TRACE_CONFIGURE parameter, which allows showing the data length column instead of the DLC column within generated trace files
  • Enhancements regarding ARM64

Bug fixes:

  • Querying the PCAN_RECEIVE_EVENT parameter failed on x64 systems
  • Generating multiple trace files during a long time was generating an Access Violation error in some scenarios


  • Input of Device ID in the sample projects is now done in hexadecimal

PCAN-Basic .NET Assembly


  • A new value, ParameterValue.Trace.UseDataLength, can be used to configure traces to show the data length column instead of the DLC column

Bug fixes:

  • Querying the PcanParameter.ReceiveEvent parameter failed on x64 systems
  • Generating multiple trace files during a long time was generating an Access Violation error in some scenarios
  • The Worker class did not configure the reception of echo frames at connection time
  • The constructor parameter “bool closedFilter” of the Worker class was ignored
  • Adding a filter to receive only standard CAN frames was causing any message to pass the filter



2022-10-24 - Version 4.6.2


  • New ARM64 API library
  • New assembly PCAN-Basic.NET available as NuGet package

Bug fixes:

  • The Device ID of a hardware couldn't be read when its value was 0xFFFFFFFF

2022-08-31 - Version 4.6.1


  • The PCAN_IP_ADDRESS parameter can now be read without having the channel initialized

Bug fixes:

  • The value returned for PCAN_CHANNEL_CONDITION was wrong when retrieving this information from a PCAN-Gateway device
  • The BitrateFD parameter of the CAN_InitializeFD function was not written into the log file even though the function parameters were configured to be logged
  • Initialization of a PCAN-LAN channel succeeded even when the PCAN_BITRATE_ADAPTING parameter was not specified and the bit rate passed to the function did not match the bit rate used by the channel
  • Echo messages were not being marked as such when the channel used was a PCAN-LAN channel initialized for CAN FD communication
  • The PCAN_HARDWARE_NAME parameter couldn't be retrieved from an uninitialized PCAN-LAN channel, if the hardware associated to it was configured for CAN FD communication


  • The documentation of status frames within the CAN_ReadFD function was lacking of information about the status frame with a CAN_ERROR_OK as value

2021-12-10 - Version 4.6.0


  • Includes new parameter ALLOW_ECHO_FRAMES that allows the reception of self-sent messages
  • Includes new parameter PCAN_DEVICE_PART_NUMBER to get the part number of a PCAN hardware (a.k.a. IPEH number)
  • New set of samples in console mode in all supported programming languages (except Java)
  • Internal code enhancements

Bug fixes:

  • The function CAN_InitializeFD returned a wrong error code when the channel was already in use by PCAN-View, but with a different bit rate as the requested one
  • The function CAN_Initialize returned a wrong error code when the channel to be initialized was already connected by PCAN-View as 'FD' channel
  • The functions CAN_GetValue and CAN_SetValue returned a wrong error code when the channel used was wrong or PCAN_NONEBUS
  • The function 'CAN_LookUpChannel' returned a wrong error code when the buffer for the channel handle was NULL
  • The function 'CAN_GetErrorText' returned PCAN_ERROR_OK when the language code passed to the function was invalid or not found
  • The parameter “PCAN_BITRATE:INFO_FD” returned always PCAN_ERROR_ILLMODE on an uninitialized channel, if that channel has been initialized as FD before, using a bit rate different than 500 kBit / 2MB @24 MHz
  • The PCAN_TRACE_SIZE parameter configured the log file size to its maximum possible (100 MB) instead of 10 MB, if it was intended to set the default value (using 0 as the size value)
  • The condition of a channel (PCAN_CHANNEL_CONDITION parameter) was erroneously returned as PCAN_CHANNEL_AVAILABLE in some scenarios
  • When an application used the parameter PCAN_ATTACHED_CHANNELS while having one or more channels initialized, the returned status for those channels was 'PCAN_CHANNEL_PCANVIEW' instead of 'PCAN_CHANNEL_OCCUPIED'
  • The function CAN_SetValue was failing for numeric values, if the buffer passed to the function was smaller than 4 bytes
  • The function CAN_GetValue truncated numeric values when the buffer passed to the function was too small for the data, instead of returning an error
  • The 64-bit parameters PCAN_ACCEPTANCE_FILTER_11BIT and PCAN_ACCEPTANCE_FILTER_29BIT were erroneously treated as 32-bit values under Python
  • Wrong casting of the type TPCANStatus within the Pascal header file corrected
  • An exception was thrown when the location of the log file (PCAN_LOG_LOCATION) was changed after activating the logging feature on French systems


  • The value of the constant/define MAX_LENGTH_VERSION_STRING was changed from 18 to 256
  • The function CAN_InitializeFD does not fail anymore, if the parameter PCAN_BITRATE_ADAPTING is used and the given bit rate string is not valid
  • The Sample projects are now shipped as a zip file within the PCAN-Basic package
  • French text translations were revised/corrected

2021-04-28 - Version 4.5.4

Bug fixes:

  • Error Frames were not written correctly into trace files using trace file format 2.0

2021-02-10 - Version 4.5.3

Bug fixes:

  • Starting with PCAN-Basic API v4.5.1, channel initialization failed if a PCAN driver with a version older than v4.2.1 was used

2021-01-27 - Version 4.5.2

Bug fixes:

  • PCAN-Basic API v4.5.1 returned the error PCAN_ERROR_ILLMODE when trying initializing CAN-FD devices with regular CAN bit rates

2021-01-21 - Version 4.5.1


  • Adjustments regarding the new PCAN-Gateway FD devices
  • header file now includes code to try to load the API from the third-party PCAN-USB driver for Mac, PCBUSB (MacCAN)
  • Documentation updated

Bug fixes:

  • The LookUpChannel function of the Python file returned a wrong data type

2020-12-03 - Version 4.5.0


  • New function added, CAN_LookUpChannel, for finding PCAN-Basic channels through some attributes

Bug fixes:

  • The function CAN_SetValue returned PCAN_ERROR_OK for the parameters PCAN_LOG_STATUS, PCAN_LOG_LOCATION, and PCAN_LOG_TEXT, even if the log file could not be created (e.g. due to permission issues)

2020-07-16 - Version 4.4.1


  • General code enhancements
  • Documentation was updated

Bug fixes:

  • When using the tracing functionality, echoed messages (hardware self-received frames) were being included in the trace file as "Tx" messages

2019-11-21 - Version 4.4.0


  • New structure TPCANChannelInformation to store information about a PCAN-Basic channel
  • New constant values added:
  • New parameters added:
    • PCAN_FIRMWARE_VERSION: reads firmware version of devices
    • PCAN_ATTACHED_CHANNELS_COUNT: returns the number of PCAN-Basic channels attached to the PC
    • PCAN_ATTACHED_CHANNELS: returns a list of TPCANChannelInformation items with information on channels found
  • New example with UI for Python 3.x
  • New error code PCAN_ERROR_ILLMODE added
  • General code enhancements

Bug fixes:

  • CAN_GetValue(PCAN_CHANNEL_FEATURES) couldn't recognize if a channel was I/O capable
  • PCAN-Basic channel enumeration was wrong, if the device driver was configured to enumerate devices in a new way
  • When a read event was configured and the reception of messages was deactivated by a call to CAN_SetValue(PCAN_RECEIVE_STATUS), the event was still being triggered, even if no messages were placed in the reception queue


  • The parameter PCAN_DEVICE_NUMBER:
    • was marked as deprecated
    • was renamed to PCAN_DEVICE_ID
    • is applicable not only for USB devices, but also for PCI devices (beginning with PCAN device drivers v4.2.0)
  • The following parameters can now be requested without having a channel initialized:

2019-07-09 - Version 4.3.4


  • General code enhancements
  • Documentation: List of PEAK devices updated

Bug fixes:

  • Calls of the function CAN_Read were ending with the error 0x1C20 (PCAN_ERROR_ILLCLIENT + PCAN_ERROR_QRCVEMPTY)
  • The CHANNEL_IDENTIFYING parameter was behaving wrong on PCAN-USB devices with Firmware version v8.4 or later
  • Internal calculation for bit rates were causing a division by zero in some specific scenarios

2019-05-22 - Version 4.3.3

Bug fixes:

  • The generated PCAN-Trace file contained negative timestamps in some scenarios
  • The chronological inclusion of sent messages (Tx) in the generated PCAN-Trace file was not accurate enough

2019-02-04 - Version 4.3.2


  • The PCAN-Trace files generated with PCAN-Basic now contain information about the API version used to generate them

Bug fixes:

  • Compatibility issues fixed

2018-12-14 - Version 4.3.1

Bug fixes:

  • PCAN-USB X6 and PCAN-Chip USB modules were treated as standard PCAN-USB adaptors when identifying their channels. This caused the LEDs to remain on (orange color) until the devices were plugged out

2017-11-23 - Version 4.3.0


  • New parameters added:
    • PCAN_IO_DIGITAL_CONFIGURATION: Configures the digital pins of a device as digital outputs
    • PCAN_IO_DIGITAL_VALUE: Sets the values of all digital pins of a device
    • PCAN_PARAM_IO_DIGITAL_SET: Sets selected digital pins of a device to 'high'
    • PCAN_PARAM_IO_DIGITAL_CLEAR: Sets selected digital pins of a device to 'low'
    • PCAN_PARAM_IO_ANALOG_VALUE: Reads the value of the analog pin of a device
  • Parameters enhanced:
    • PCAN_CHANNEL_FEATURES can now determine if a channel supports using I/Os
    • PCAN_FEATURE_IO_CAPABLE: Device with I/O capabilities

Bug fix:

  • Calling CAN_GetValue with the parameter PCAN_CHANNEL_FEATURES returned an error when the channel had no support for INTERFRAME_DELAY

2017-09-08 - Version 4.2.0


  • Error Frames are now supported
  • New parameters added:
    • PCAN_ALLOW_STATUS_FRAMES: Enables/disables the reception of Status Frames
    • PCAN_ALLOW_RTR_FRAMES: Enables/disables the reception of RTR Frames
    • PCAN_ALLOW_ERROR_FRAMES: Enables/disables the reception of Error Frames
    • PCAN_INTERFRAME_DELAY: Pause between frames within the sending process
    • PCAN_ACCEPTANCE_FILTER_11BIT: Acceptance code and mask for 11-bit CAN-IDs
    • PCAN_ACCEPTANCE_FILTER_29BIT: Acceptance code and mask for 29-bit CAN-IDs, as 64-bit value
  • Parameter behavior changed: PCAN_HARDWARE_NAME and PCAN_CONTROLLER_NUMBER can now be read without the channel being connected
  • Parameter enhanced: PCAN_CHANNEL_FEATURES can be used to determine whether a channel supports the INTERFRAME_DELAY parameter
  • Unused dependencies removed
  • Library size optimized
  • General update of sample projects
  • Microsoft sample projects (.NET, MFC) were upgraded to Visual Studio 2010
  • Documentation was updated

Bug fixes:

  • Inconsistences between return code of CAN_Initialize and CAN_InitializeFD corrected
  • The function CAN_GetStatus didn't take into account if a channel was initialized as FD or not
  • MFC example edited: BRS checkbox was active at program start
  • Header file for Python was adjusted: literal strings were not being interpreted as "byte string"
  • Header file for Delphi was adjusted: The type TPCANBitrateFD was defined as "string", instead of "PAnsiChar"
  • Some compatibly issues were solved

2016-06-20 - Version 4.1.0


  • New Get-Parameter used to check the running status of the PCAN-LAN service
  • Samples were updated to use the new parameter
  • Python header file was updated to allow using it within Python 3.0
  • Documentation was updated

Bug fix:

  • Fixed incompatibility issues that were causing malfunctions of the library when using it within a Windows service

2016-04-22 - Version 4.0.4


  • Change regarding PCAN-Trace handling: The relative start time in a trace is no more the file creation time but the timestamp of the first message written in the trace. Therefore, the first entry will now always have the time offset 0
  • General code enhancements

2015-11-06 - Version 4.0.3


  • The header file and the Python example were enhanced to support multiple platforms
  • There is now a single file as Python example, which also includes Windows event support
  • General code optimization

Bug fixes:

  • Compatibility issue fixed: The ReadFD function was adjusted to return the status code represented by a received status message, as done in earlier driver versions
  • Compatibility issue fixed: It was possible to connect a PCAN-Light application and a PCAN-Basic application to the same channel simultaneously
  • Trace Format 2.0 adjustment: The word "RTR" was removed from Remote Frames records

2015-07-01 - Version 4.0.2

  • Improvement: The parallel port CAN interface (PCAN-Dongle) is now supported as a Plug & Play device. Please note that this feature is in BETA state

2015-06-24 - Version 4.0.1

  • Enhancement: Extra information was added to the properties of the PCANBasic.dll file, to show the platform for which the file was compiled (32-Bit or 64-Bit)

Bug fixes:

  • A problem regarding the creation of PCAN-Trace files was avoiding the storing of messages in the file
  • The Delphi sample had a text formatting problem. An error message appeared while the list of available channels has been filled out

2015-05-21 - Version 4.0.0


  • Added support for CAN with Flexible Data rate (FD) through 3 new functions: CAN_InitializeFD, CAN_ReadFD, CAN_WriteFD.
  • Added support for the new Trace Format 2.0 (FD Trace)
  • New device type support included: PCAN-LAN (Virtual PCAN-Gateway channels)
  • The maximum amount of channels that can be connected simultaneously was increased from 8 to 16 for devices of the types PCAN-USB, PCAN-PCI, and PCAN-LAN
  • New version is backward compatible, i.e. applications compiled for PCAN-Basic version 1.x still work with the new version

Please note: Version 2.x and 3.x were internal releases that added the CAN FD and PCAN-LAN support.

2013-12-13 - Version 1.3.3

Bug fixes:

  • Preconfiguring the Listen-Only mode was not being done fast enough, which could cause bus errors when the bit rate was not correct
  • The delay used in CAN_Uninitialize in order to transmit messages not yet sent was too short. This could cause that messages were truncated and generate bus errors in this way

2013-09-25 - Version 1.3.2


  • PCAN-Basic can now be used in multi-session environments (from different Windows-Sessions at the same time), for example, from a Windows-Service and a normal User-Application
  • Some compatibly issues were solved

2013-09-06 - Version 1.3.1


  • The CAN Trace records status errors (BUSLIGHT, BUSHEAVY, BUSOFF) too
  • Some compatibly issues were solved

Bug fixes:

  • An incompatibility issue with the Fixed Hardware-Handle Procedure was corrected. This was causing some channels to be marked as available when they were not
  • Problem in header file for Python corrected. The functions GetValue and SetValue were failing and returning the error PCAN_ERROR_ILLPARAMVAL, when the Parameters PCAN_TRACE_LOCATION and/or PCAN_HARDWARE_NAME were used
  • Sent messages were not included in the Trace file, if the status of the CAN bus was BUSHEAVY, BUSLIGHT, or BUSOFF

2013-03-27 - Version 1.3.0


  • With PCAN-Basic is now possible to record transmitted CAN data (CAN_Read and CAN_Write data) using PCAN-Trace files. The configuration of the Traces as well as the activation of it is achieved using new parameters within the functions CAN_SetValue and CAN_GetValue
  • It is now possible to physically identify an USB channels, by blinking its associated LED. The use of this feature is achieved using the functions CAN_SetValue and CAN_GetValue
  • Some compatibility issues were solved


  • The logging file shows now the API version being used, including platform version (32- or 64-bits)
  • Internal code-optimizations

Bug fix:

  • Problem in header file for C/C++, when compiling as  C Code. Default-Parameters within the function CAN_Initialize will only used when C++ is declared (Compiled as C++ Code)

2012-10-26 - Version 1.2.3 - Update

Update of the PCAN-Basic JNI interface DLL (Java Native Interface) to version 1.8

  • Bug fix: Memory leak in CAN-Send function removed
  • Some smaller performance problems solved

Update of the JAVA PCAN-Basic sample source code

  • Enhanced the PCAN-Basic Java sample with a send timer

2012-09-20 - Version 1.2.3

  • Improvement: A channel will be automatically reset at initialise, when the status of the CAN bus is other than PCAN_ERROR_OK
  • Enhancement: Better BTRs values for the standard baud rates 33,333 kBit/s and 83,333 kBit/s

2012-03-13 - Version 1.2.2

  • Improvement: Some compatibility issues were solved

2012-01-25 - Version 1.2.1

  • Improvement: Some compatibility issues were solved

2011-11-16 - Version 1.2.0


  • A new read-only parameter, PCAN_CONTROLLER_NUMBER, makes possible to ask the index of the physical channel(s) in a PCAN device
  • The examples were changed to support the new parameter
  • A new error code, PCAN_ERROR_ILLDATA, was added

Bug fixes:

  • Minor issues fixed within the function CAN_SetValue
  • A access-problem using the Log functionality from different threads was fixed
  • The example for C++ / MFC was edited. The read-thread was blocking the application in some scenarios

2011-08-17 - Version 1.1.0

  • Bug fix: A small bug when closing the filter within the example C++ MFC Project was fixed
  • Bug fix: An internal cast of a handle was wrong. This could cause problems on 64-bit platforms
  • Enhancement: New pre-initialization capable parameter, PCAN_RECEIVE_STATUS, makes possible to allow/disallow reading of messages regardless of the filter configuration
  • Improvement: A full open filter needs no more to be first closed, before calling the function “CAN_FilterMessages” in order to restrict the reception of messages
  • Enhancement: A new define, LOG_FUNCTION_ALL, makes it possible to configure all the available Log functionality with only one value
  • Improvement: The format of the Log file was updated in order to make the information more readable
  • Change: The examples were updated to support the new Parameter. Added to this, they have now a new configuration for x64 platforms
  • Improvement: The log file can now be read/opened while it is being written

2011-06-09 - Version 1.0.10

  • Improvement: The header file for Visual Basic 6 was changed to support optional parameters within the function CAN_Initialize
  • Improvement: Some compatibility issues were solved

2011-05-13 - Version 1.0.9

  • Bug fix:  Incoming messages were not logged even though having configured the logging functionality with the value LOG_FUNCTION_READ

2011-03-08 - Version 1.0.8

  • Improvement: The examples were adjusted to work with a better performance when a lot of CAN data is being received
  • Bug fix: Minor issues within 32/64 bits data types were solved
  • Bug fix: Some problems regarding backward compatibility to PCAN-Light were solved
  • Bug fix: Problems with the Clean-up of orphaned connections has been fixed

2011-01-25 - Version 1.0.7

  • Bug fix: The function CAN_GetErrorText did not work correctly if the given buffer was not empty 
  • Some compatibility issues were solved 
  • Improvement: New baud rate register values were added to the definitions / enumerations used to set the baud rate of a connection

2010-10-15 - Version 1.0.6

  • Bug fix: In some scenarios, the detection of available channels was reporting channels as occupied when they aren’t
  • Improvement: New parameter added "PCAN_HARDWARE_NAME". Now it is possible to differentiate models of a same device, e.g. PCAN-USB and PCAN-USB Pro
  • Improvement: The property PCAN_LISTEN_ONLY was adjusted to be used with an uninitialized channel. Now it is possible to pre-initialize a channel in Listen-Only mode, I order to avoid arbitration problems at the moment of connecting the channel
  • The Help files were updated

2010-09-08 - Version

  • Changes: The German resources where edited
  • Bug fix: The core CAN communication was actualized
  • Improvements: The Header file and the example for Delphi were edited to avoid compile errors when using them within new versions of Delphi

2010-08-17 - Version 1.0.5

  • Improvement: The functionality of the parameter PCAN_BUSOFF_AUTORESET was adjusted due to some compatibility issues between some device drivers

2010-07-06 - Version 1.0.4

  • Bug fix: Checking the availability of channels in a computer with the function CAN_GetValue and the parameter PCAN_CHANNEL_CONDITION was retuning wrong values
  • The header files were edited. The defines related to the parameter PCAN_CHANNEL_CONDITION were changed
  • The samples and the Help files were edited due to the mentioned changes

2010-06-21 - Version 1.0.3

  • Some compatibility issues were solved
  • New example for Python 2.6 available

2010-05-26 - Version 1.0.2

  • Bug fix: The return value of the CAN_Initialize function was still wrong in some scenarios
  • Bug fix: More than one channel could not be connected at the same time under 64-bit systems
  • Extras/Improvements: New PCAN-Basic examples for Delphi and for C++ Builder
  • Extras/Improvements: German documentation added

2010-05-04 - Version

  • Bug fix: The return value of the function CAN_Initialize could be CAN_ERROR_OK even when the initialization was not successful

2010-04-30 - Version 1.0.1

  • Bug fix: All CAN_* functions were updated due to possible wrong return values in multi-threading scenarios
  • Adjustment of the supported operating systems to Windows® 7/Vista/XP
  • Bug fix: The return value of the function CAN_Write could be wrong in multi-threading scenarios
  • Bug fix: A wrong declaration of the overloaded method Read() caused problems in C# and VB.Net. Both headers were edited
  • Improvement: A PCAN-Basic header file for VB-6 was included

2010-01-21 - Version

  • Bug fix: A wrong German text resource for showing CAN-messages was corrected
  • Improvement: The functions CAN_Read and CAN_Write were improved to accept the structures TPCANMsg and TPCANTimestamp without byte-alignment information (using the default alignment)
  • The header files were modified. The byte-alignment information was deleted from all headers

2010-01-20 - Version

  • Inclusion of new error codes: HWINUSE, NETINUSE, ILLHW, ILLNET, ILLCLIENT in all header files
  • Inclusion of description texts for the new error codes in the languages: English, Spanish, French, Italian, and German
  • Modification of the PCAN-Basic function GetErrorText in order to support the new error codes

2010-01-07 - Version

  • Inclusion of the project's configuration for 64-bit platforms

2009-12-16 - Version

  • Inclusion of the new header file This is a python module which represents the PCAN-Basic header file

2009-12-11 - Version 1.0.0

  • Changed the default value of the parameter AUTO_RESET_ON_BUSOFF to false
  • FIRST release version

2009-12-02 - Version 0.0.6

  • First BETA released