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-Basic API for Linux Version History

2020-12-16 - Version 4.4.2


  • Fixed compilation error in -std=gnu90
  • 'Initialize' functions will try to retrieve a more precise error when 'pcanfd_open' fails
  • API version string will end with "(debug)" if library is built in debug mode
  • Refactored logging in debug mode and fixed syslog logging
  • pcaninfo changed to v1.2.0: Outputs version of the installed PCAN-Basic API


2020-08-14 - Version 4.4.1


  • Added checks to prevent possible buffer overflows when copying CAN/CANFD message's DATA
  • Added mutex in API entries to provide more robust thread-safe system

2020-08-07 - Version 4.4.0


  • Updated libpcanbasic/pcanbasic to match features from Windows PCAN-Basic 4.4
  • Updated libpcanbasic/pcaninfo to display a short or detailed list of devices
  • Updated pcanbasic_java/libpcanbasic_jni to support features from PCAN-Basic 4.4
  • Updated pcanbasic_java/examples to support features from PCAN-Basic 4.4

2020-03-05 - Version 4.3.4

  • Fixed pcanbasic/Makefile_latest.mk so that shared object can be built under Xenomai 3.1

2020-02-19 - Version 4.3.3

  • Updated the included licensing information

2019-10-09 - Version 4.3.2


  • PCAN-Basic example now supports Python 3
  • Added change logs to the sub projects (libpcanbasic, pcanbasic_java and libpcanbasic_jni)


  • PCANBasic.java: loadLibrary will try "pcanbasic_jni" first and fallback to "PCANBasic_JNI" on failure

2019-04-15 - Version

  • Added support to param PCAN_FIRMWARE_VERSION (0x29)
  • Added support to sysfs params: clk_drift, dev_name, init_flags, mass_storage_mode, nom_sample_point, nom_tq, data_sample_point, data_tq, and ts_fixed
  • Fixed check on pcanfd_open's return value as RT system can return the value 0

2018-08-03 - Version

  • Added missing support of device PCAN_USBX6

2018-03-16 - Version

  • Added a 50ms temporisation when closing a channel that still has Tx pending messages

2018-03-06 - Version

  • Fixed PCANBasic status when receiving EAGAIN from libpcanfd (error is either QXMTFULL or QRCVEMPTY whether read or write function is called)

2018-03-03 - Version

  • Fixed CAN FD timestamp issue
  • Added PCANBasic_enu_linux_addenda.txt that lists differences within documentation compared to Windows

2017-11-03 - Version

  • Fixed alignments in generated trace file (timestamp and 11bit CAN ids)

2017-10-31 - Version

  • Fixed wrong month number in generated trace file
  • Fixed ill use of snprintf in trace file leading to trace only first byte of message data

2017-10-09 - Version

  • Added support of features of PCAN-Basic 4.2 for Windows® (only with PCAN Linux driver > 8.5.x):
    • Reception of status frames: PCAN_ALLOW_STATUS_FRAMES
    • Reception of RTR frames: PCAN_ALLOW_RTR_FRAMES
    • Reception of error frames: PCAN_ALLOW_ERROR_FRAMES
    • Interframe Transmit Delay: PCAN_INTERFRAME_DELAY
  • The package now includes documentation (same as the Windows® version, open .chm files with "xchm" for instance)

2017-10-04 - Version

  • Fixed PCAN_TRACE_xxx features (the feature was never launched when a session was activated by the user)
  • Header now includes new features of PCAN-Basic 4.2 for Windows® (not yet implemented, status will return "illegal operation")

2017-02-17 - Version 4.1.1

  • Patched overflow timestamp issue
  • Corrected a few status error (bad convertions from errno to status)

2016-09-08 - Version

  • Fixed memory leaks issues within "pcanjni" library
  • Replaced the PCANBasic java example with the sample in pcanjni folder

2016-07-20 - Version

  • Changed the version number to match PCAN-Basic for Windows
  • Fixed C99 problem in make file
  • Fixed a bug in Java implementation

Please note: The old API 2.0.4.x is still included to support PEAK linux driver prior version 8.x).

2016-05-20 - Version + Version legacy driver

  • CAN_GetErrorText now returns PCAN_ERROR_ILLPARAMVAL on unknown error status
  • v2.0.4.6: Fixed an issue when retrieving/setting PCAN_DEVICE_NUMBER
  • Java 'peak.can' package updated to match the Windows version of PCAN-Basic

2016-03-16 - Version + Version legacy driver

  • v4.0.0.3: Fixed a null pointer exception when calling CAN_Unitialize(PCAN_NONEBUS) and continuing using the API

2016-03-01 - Version + Version legacy driver

  • v4.0.0.2: Upgraded pcaninfo to match changes in PCAN driver v8.0.17

2016-01-29 - Version + Version legacy driver

  • v4.0.0.1: Upgraded to match changes in PCAN driver v8.0.7

2016-01-18 - Version 4.0.0 + Version legacy driver

  • v2.0.4.5: Fixed GetStatus function. Please note: PCAN driver v7.16.0 is required
  • v2.0.4.5: Known issue: USB channel's handles will be offset if the minor number of the first PCAN-USB device is not 0 (or n=32 in cat /proc/pcan)

2016-01-12 - Version 4.0.0

  • Upgraded PCAN-Basic Linux API to match the Windows version 4.0.2 of PCAN-Basic
  • Please note: PCAN driver v8.0.6 is required

2015-11-04 - Version 2.0.4

  • Fixed impossibility to write an enhanced message with RTR flag

2014-10-17 - Version 2.0.3

  • Changed licences from GPL to LGPL
  • Fixed an issue with using CAN2 of PCAN-USB Pro

2014-01-08 - Version 2.0.2

  • Changed DWORD definition in pcanbasic_jni.c to ensure 32-bits implementation whatever Linux arch data model is used

2013-11-12 - Version 2.0.1

  • Changed all "c_ulong" types to "c_uint" to ensure 32-bits implementation whatever Linux arch data model is used

2013-11-08 - Version 2.0.0

  • Fixed a problem running in 32-bits applications with 64-bits Kernel in python and C++ examples

2013-11-05 - Version 1.0.0

  • Included the version number in PCANBAsic.h and removed the TPCANMsg struc definition to use the one in <pcan.h>
  • Examples setup an initial bitrate of 500k now