• I use the Kvaser Leaf Light v2. Does it have an internal 120 ohm termination?

    The Kvaser Leaf Light v2 does not contain any CAN bus termination, because their inclusion could cause severe disturbance in a system which is already correctly terminated.

  • When I call CANwrite, is the CRC added to the message automatically?

    The CRC in the CAN frame is calculated and inserted by the CAN controller automatically.

  • Using Object Buffers in a USBcan Light 2xHS

    The answer is No to using Object Buffers in a USBcan Light 2xHS:

    1. The USBcan Light 2xHS does not support Object Buffers.
    2. An Object buffer can only contain a single message to be transmitted. So, to perform SRDO you would need to setup two periodic Object buffers and then have no control over the synchronicity between the two buffers. To achieve SRDO, this is not a desirable design.

    I believe a USBcan Pro v2 unit using t programs could handle SRDO processing locally. The SRVT is specified in milliseconds (the maximum gap between the two periodic transmissions (normal and inverted)). Since the t program scheduler runs at 1 ms and handles every timer event and one message event, as long as the SRVT is 2 ms or greater, they will probably not see an issue. At an SRVT of 1 ms, they may see some issues depending on how the receiving nodes timers are aligning with the scheduler timing (ie. race conditions).

    Here is a link to where you can download the SRDO description:


  • Why isn’t my interface recognized by my PC?

    We have seen some of these silently delete files or block the installation of files due to false positives through the software’s heuristic virus detection.

    Try this first:
    Connect the interface to another machine and check if it is possible to use it.

    Then follow this procedure:

    1. Disconnect the unit.
    2. Uninstall the drivers using Control Panel
    3. Reboot the PC
    4. The logged in user on the PC must have Administrator rights for the remaining steps.
    5. Turn off any virus/firewall protection software. We have seen some of these silently delete files or block the installation of files due to false positives through the software’s heuristic virus detection.
    6. Download and install the latest driver version (5.26 2019-02-04)
    7. Connect the unit to a USB port and wait for the Found New Hardware wizard to complete.

    If reporting to [email protected] , please also report this:

    • What Windows version is being used?
    • Is there anything special about the PC?
    • Is there anything special about the USB ports on the PC?
  • Do I need to rewrite software if I use a different Kvaser interface?

    I have developed an application for “Kvaser Leaf Light HS v2”, now I must use a “Kvaser PCIEcan HS v2”. What do I need to change in my application?

    All our Kvaser Interfaces share the same SDK and our Kvaser Driver will take care your interface

  • When using CanKing, how do I find my LEAF?

    You must download and install the Kvaser Drivers for Windows from:
    (Also recommend to download the Kvaser SDK, help file included)

  • Kvaser on Ubuntu

    • Follow the guide: https://www.kvaser.com/linux-drivers-and-sdk/
    • Make sure that you follow the instruction below(Kvaser Hybrid x2 on Ubuntu 18.04):
      – unplug Kvaser device(s)
      – run
      $ sudo apt-get update
      $ sudo apt-get upgrade
      – reboot
      – run:
      $ sudo make uninstall
      – remove the “old” folder which contains uncompressed LinuxCAN:
      $ rm -rf linuxcan
      – run:
      $ wget –content-disposition
      $ tar xf linuxcan.tar.gz
      $ cd linuxcan
      $ make
      $ sudo make install
      Now you may try your example code and see if it works!
  • Secure Boot

    If you want to have Secure Boot enabled and sign the drivers:

    • https://www.kvaser.com/developer-blog/secure-boot-linux-systems/
    • https://www.kvaser.com/developer-blog/build-install-signed-kvaser-driver-modules/
  • LinuxCAN and SocketCAN install problem

    You may not have both LinuxCAN and SocketCAN on a Linux machine as by installing LinuxCAN the SocketCAN gets blacklisted.

  • Error when running python code from your website

    When I run the python code from your website, I get error. I installed the kvaser driver and the canlib.

    I get this message:
    wrapper.py”, line 15, in
    File “C:\Python37-32\lib\site-packages\canlib-1.8.812-py3.7.egg\canlib\dllLoader.py”, line 147, in load_dll
    aKey = winreg.OpenKey(aReg, aKeyName)
    FileNotFoundError: [WinError 2] The system cannot find the file specified

    What Shall I do? Am I missing something?

    Have you installed the Python wrapper for Kvaser CANlib SDK?

    If not, go to the following address

    and unzip pycanlib.zip (I strongly recommend you to go through the documentation and read the part which is related to the installation and supported libraries).

    Then, you may install the Python module using e.g. pip:
    $ pip install canlib-x.y.z-py2.py3-none-any.whl

  • Can I repair my KVASER interface?

    In general, we do not perform repairs. We do offer a two year warranty on all of our CAN products.

    Is the unit is out of warranty, we might offer a 50% discount off of Kvaser’s standard list price for a replacement unit.

    Please contact [email protected] and provide the EAN and serial number of the unit.

    The EAN will look like 73-30130-*****-*. Both numbers should be visible on the back label.

    IMPORTANT: Never send any unit to KVASER without an RMA number!

  • Is SAE J1939 supported in Kvaser CANlib

    CANlib works at the raw CAN frame level. This means the API can be used with any higher layer protocol like J1939, CanOpen, DeviceNet, etc. The work of packing/unpacking CAN frames into the particular higher layer protocol is left to your application code.

    So when you write or read a CAN frame in CANlib, you will provide or receive the 11 or 29 bit identifier, the dlc, and the 0 to 8 data bytes. Your code will translate the identifier and data bytes based on the higher layer protocol you are using.

  • Do you recommend adding an external terminator to the device?

    Yes and no! Every CAN bus must be terminated with a 120 Ohm resistor at each end of the bus. If you “split” a bus, then you must add terminators. If the bus already have proper termination, do not add a terminator.
    Please check: www.kvaser.com/product/kvaser-d-sub-9-pin-120-ohm-termination-adapter-2/

  • My Leaf Light HS V1 creates noise on CAN bus

    Because the Leaf Light HS (00241-8) or the Leaf Light J1939-13 (00642-3) are not galvanic isolated it is most important that the measurement set-up share the same grounding voltage potential. Otherwise leakage currents will occur which make the set-up sensitive to disturbances.
    On the J1939-13 connector ground on pin A must be connected. It can be connected with shield pin E if the shield is the ground voltage potential.
    The shield (protection ground) of the PC has to be connected to the J1939 shield.
    If a lap-top with an AC-adapter is used the ground voltage potential on the PC might have an offset due to the design of the AC-adapter. To come around this problem try run the PC on battery mode without an AC-adapter plugged.

  • Is my interface galvanic isolated?

    All Kvaser interfaces (2019-02-08) is now galvanic isolated. All our Memorators are also galvanic isolated when used as interfaces. If the interface has multiple channels, then the channels are galvanic isolated from each other.

    Please check the USERGUIDE for correct information about the galvanc isolation.

  • Do I need a splitter cable for Kvaser USBcan Pro 5xHS?

    The Kvaser USBcan Pro 5xHS has five CAN channels integrated in a single 26-pin HD D-SUB connector. A five channel breakout cable is included. If needed, this cable can be bought separately, sen a question to [email protected] and we will help you.

  • Memorators sold with “non valid disk”

    Recommendation: (When taking a new Memorator out of the box)

    • Upgrade the firmware
    • Initialize the disk
    • Set the clock

    Update 2019-01-31 The production instruction now includes an initialization procedure.

  • We logged data with our Memorator. Do Kvaser have a tool for to view logged data?

    Kvaser do not develop any data visualizing software. However, you may use Kvaser CANlib SDK to develop your own program. You may download it from:

    On the other hand, there are a number of Kvaser technical associates that provide software which might meet your requirements, such as Vision:

    The following is a list of our Technical Associate who can help you:

  • LIN with Python

    “Using the Kvaser 2x CAN/LIN device, find and example program to send LIN
    commands through python so i can test the interface. Do you have any example for it or at least a program that i might use to test the commands cause I only seen python CAN commands in your site”

    If you have CANlib SDK installed on your PC, you can find a tutorial for using LIN at the linlib.html in the following CANlib SDK install directory:
    C:\Program Files (x86)\Kvaser\Canlib\Samples\Python\pycanlib.zip\pycanlib\docs\tutorials\

    Don’t forget that when using a channel as a LIN interface, you must provide power V+ on pin 9 of the channel connector and GND on pin 3.

  • Best practices of handling CAN Bus errors?

    With good cabling there will be no Error-frames to handle.

    If you get Error frames it should be registered by date and time.

    This will help you to find the reason for the Error-frames.
    There is no reason to have a CAN-bus with Error frames and if they occur regular with a certain intensity there is reason to find the cause of the Error-frames and take action to remove the cause of the Error-Frames.

  • Are there preferred analysis tools for CAN Bus testing?

    Error-frames are very rare and in a good system there should be no Error-frames.

    Even if you have Error-frames there main cause in a system is a delay of information.

    It is better to handle problem on a system level where communication Errors are covered as any other error in a control system.
    It should also be noted that in a real time system is one sample error like a small glitch than have very short duration in time and in most cases cannot be recognized.

    The best to test a system is to place a test unit between the unit and the CAN-bus. By this test unit it is possible to delay CAN-frames and even remove CAN-frames to check how the system handle loss of information.

    By this it is even possible to modify the data to check that the system can handle wrong input data without causing dangerous conditions in the system.

  • Can I use a Kvaser interface on my CANopen/J1939/Devicenet bus?

    As long as it is CAN based, yes.

    The CAN standard defines the hardware (“the physical layer” – there are several) and the communication on a basic level (“the data link layer”). In order to manage the communication within a system, a higher layer protocol (HLP) is commonly required. Our interfaces work on the raw CAN level, and any HLP can be used on top of that.

    Read more about higher layer protocols here: https://www.kvaser.com/about-can/higher-layer-protocols/

    Depending on which HLP you need to work with, you have a number of options.

    * Implementing it yourself, using our API CANlib.

    * Find the right software tool. Kvaser has a number of prominent Technical Associates (TA), who has tools, and domain knowledge, for a number of different areas. Find your software here: https://www.kvaser.com/products-services/associate-software/

  • Do Kvaser interfaces include a terminating resistor?

    No. We do not include terminating resistors in our products since the desired location for the terminating resistors is based on your network topography. The terminating resistors would typically be mounted at the furthest points of your CANbus backbone.

  • Do Kvaser interfaces support the J1587 protocol?

    Yes, Kvaser supports J1587 through the Kvaser Linx Cable. The J1587 Linx is an ‘add-on’ dongle which must be used in conjunction with another Kvaser CAN interface (e.g. Kvaser Leaf Light, Memorator Professional, etc).

  • What protocols do Kvaser interfaces support?

    Kvaser interfaces support all CAN higher layer protocols.  The hardware and SDK are designed to work at the raw CAN frame level, therefore you can use Kvaser’s CAN hardware with any higher layer protocol, such as J1939, CanOpen, DeviceNet, NMEA 2000, etc.

  • What is a ‘rugged’ product?

    Kvaser’s ‘rugged’ branded products are designed to meet IP65 rating, which protects against moisture, vibration, shock, oil, and dust.   

  • How many CAN channels can I run simultaneously on the Kvaser driver?

    64 channels (in any combination of Kvaser hardware) into one PC with the appropriate Kvaser driver.

  • What operating systems do Kvaser interfaces support?

    Windows, Windows CE, and Linux.  To see a full chart of supported OS versions, click here.  For Windows and Linux drivers downloads, please visit our Downloads page.

  • What is ‘Silent Mode’?

    Silent Mode in a Kvaser interface or data logger is implemented in two different ways that both bring the same results to the operation of a device on a CAN bus; as a configuration option, as in Memorator Configurations Tool software, and in hardware as in the Kvaser USBcan Pro 4xCAN Silent interface. Both configurations result in a device that does not transmit anything onto the CAN bus. This means it does not transmit any CAN data frames, error frames, or any other frames, and it does not participate in the normal CAN protocol by transmitting an Acknowledge (ACK) slot after receiving a proper frame from another device. More simply stated, in ISO 11898 terminology, a CAN device in Silent Mode will never drive the CAN bus to a dominant state.

  • Can I configure the Memorator Light HS?

    No, the Memorator Light HS does not require configuration before data logging.  You use the Memorator Tools software with the Memorator Light HS only for extracting recorded data.

  • When does the timestamp wrap around?

    The timestamps returned in for example the canRead() call are currently stored in 32 bits. This means that the resolution used for the timestamps decided how long it takes for the time stamp to wrap around.

    The default millisecond resolution yields almost 50 days.
    A microsecond resolution gives almost 72 hours.

    The resolution is be set by using the canIoCtl() call with the canIOCTL_SET_TIMER_SCALE flag to set the desired time-stamp clock resolution in microseconds. The default value is 1000 microseconds, i.e. one millisecond.

  • Is the channel numbering persistent?

    We try to keep the channel numbers as persistent as reasonably possible.
    Usually, they are persistent after a reboot, but it cannot be guaranteed.
    If you want to make sure that you are using a specific hardware channel, you can use the EAN and serial number combination to make sure you are working with the correct interface.

  • Can I change the battery in my Memorator Professional?

    The battery in the Memorator Professional is used to keep track of the real time clock in the unit, and to make sure that the log files are correctly closed. It is automatically charged when the unit is used, but can get worn out after a couple of years.

    If you notice your Memorator Professional loses the clock settings, it is probably a battery problem. If it has been unused for years, it might help to leave it connected to the computer over night. If this doesn’t help, it is possible to change the battery, but please note that you have to open the unit, and thereby voiding warranty. Since we don’t expect batteries to get worn out for quite a few years it not a problem. If you have battery problem within the 2 years warranty time, we will of course replace the unit at no cost for you.

    Please contact us at [email protected] if you think you need a battery change.

  • What is the difference between handles and channels?

    By channel we mean the actual physical CAN channel.
    A handle can be seen as a virtual bus extension, that you need to open with a canOpenChannel() call to programmatically access the channel. You can have many handles open to the same channel.

  • Can I power my Ethercan on the CAN side?

    Yes, the Ethercan Light HS can be powered by either by Power over Ethernet, or by providing power to the CAN channel.

    Also receives power over CAN, so the Ethercan can be powered through devices like our T-Cannector v2 (click to view product).

  • Could you recommend the most suitable Baud Rate for our analysers?

    (48 devices connected on one bus with a cable length of 20m)

    To optimize the CAN-bit-rate it is necessary to have more information about the cable layout.
    The optimal cable is a straight line with a termination in both ends, where all units are connected directly to this bus-line with only recessive load.
    The delay in such cable is typically 5 ns/meter cable.
    With a 20 meter cable that will result in a delay of 100 ns at the propagation segment in the CAN-bit must be twice this length in time ( 200 ns).
    If everything else is perfect in the CAN-system it could be possible to have a bit-length of 250ns which indicate a bit-rate of 4 Mbit/s. (1/250*1000)=4)
    Unfortunately is there a number of other factors that has to be considered, that will reduce the maximum usable bit-rate.

    In most cases is the installation not this perfect. Below is a list of parameters that must be known before it is possible to define the best bit-configuration.

    Longest signal delay

    One important factor for CAN is the longest signal delay between any two nodes connected to the CAN-bus. The main source for delays is the CAN-bus wire which the units are connected to but there is other parts in signal chain that could cause considerable delays and phase shift in the CAN-bit edges;

    1. The drop-length: typically is there some wire extension from the bus line down to the CAN-driver in the installed unit and that length must be known. This drop-line will add some delay time that has to be considered, but worse it will cause distortion to the signal which will show up as oscillation at the bit-edges where there is a signal level switch.
    2. The EMC-filter: the best is to have a clean connection between the drop-line wires and the CAN-driver. In some cases it is necessary to add on EMC-filters which could include inductors and/or capacitors. This LP-filter could cause some signal-delay that would add up to the signal delay over the CAN-bus. Such energy storage components will also be part in the signal oscillation in the same way as the drop-lines.
    3. The CAN-driver delay: the CAN-driver have some internal delay from the TX-pin out to the CAN-bus. There will also be a delay from the level change at the CAN-bus to the RX-pin. This delay will add up to the total signal delay over the CAN-bus (20 meter). This delay is in the range from 50 to 500 ns, depending on the CAN-driver model and the temperature.
    4. The galvanic isolation delay: An galvanic isolation between the CAN-driver and the CAN-controller will delay the signal both to the CAN-driver TX-pin and from the RX-pin back to the CAN-controller. For fast galvanic isolators could this delay be between 5 to 50 nanosecond, but there is devices with delays far above 1000 nanosecond.
    5. The delay between CAN-driver and galvanic-isolation and CAN-controller: Normally is the wire distance between components on the PCB short and negligible but if the distance is long also this delay must be considered. Normally is the wire length less than 0.1 meter which is a delay less than 1 nanosecond.
    Oscillator tolerance

    The second important factor is the oscillator tolerance. By using good oscillators, like a crystal oscillator it is possible to more or less neglect this problem. If the oscillator tolerance is worse than +/-100 ppm it is necessary to use correct compensation for this problem. It should be noted that it is the two units with lowest tolerance that will set the rules for all installed units. In other words if you have 46 units with a tolerance of +/-30 ppm and two units with +/- 800 ppm all 48 units have to adjust to the worse tolerance of 800 ppm.

    By knowing the worse oscillator tolerance and the maximum delay it is possible to assign minimum propagation segment, Synch-Jump Segment, Phase Segment 1 and Phase Segment 2.
    If those values are assigned to the CAN-bit you will get the highest possible bit-rate. In many cases is a lower bit-rate selected and that will provide a slack in the CAN-bit.
    This slack can be be used to extend the propagation segment and by that make the system robust to future delays caused by extension of the CAN-bus or possible units with more delays in the CAN-driver, galvanic oscillation or EMC-filter. It could also be used to extend the SJW to make it possible to use future units with less oscillator tolerance. It should also be noted that a larger Phase segments that necessary to handle the oscillator tolerance will move the sample point further away from the edge and by that less sensitive to edge phase offset caused by noise.

  • Best Sampling point for a system?

    The signal delay will push the sample point to the rear end of the CAN-bit and bad oscillator tolerance will push the sample point to the center of the CAN-bit. When oscillator tolerance and propagation delay is known it is possible to calculate the optimal sample point. For more information read “CAN bittiming_v3.pdf”.

  • Do the CAN cards contain a visible firmware revision from the API that can be BOM controlled ? If so can it be checked by the .NET lib

    Yes! You can read (in your software using our SDK) the serial number, the EAN code, the SW version and some more information. The same information can be read with our software “Kvaser Device Guide” that is installed when installing the drivers.

  • For a Linux OS is it preferred to use Socket-CAN or Linux specific Driver as provided by Hardware vendor.

    Ok to use but must check third part deliverer updates.
    Linux/Win driver from Kvaser
    Possible to track changes.
    Possible to specify driver and SDK version.

  • Can Multiple Instances of .NET programs connect via the CANLib to the same IO Card at the same time , if so Is the .NET library Thread Safe ?

    In general, all our SDK are thread safe.
    If the card has one, two or four channels does not matter. One channel does not know if it has a “neighbour” or not. In the SDK you can open a HANDLE to a channel. It is important that all instances opens its own HANDLE to the channel, even if it is the same channel.

    Can Filters be setup via software for each program calling the card (i.e. does it support software filtering as well as hardware filters ?)

    I will not answer this question until I have been able to talk to the developers.

    • Do the CAN cards contain a visible firmware revision from the API that can be BOM controlled ? If so can it be checked by the .NET lib
      Yes! You can read (in your software using our SDK) the serial number, the EAN code, the SW version and some more information. The same information can be read with our software “Kvaser Device Guide” that is installed when installing the drivers.
    • Do you plan to support the .NET UWP Platform (Universal Apps)
      It is our list of things todo in the future. There are no plans for the moment.
    • Is there a .NET Core Implementation of the library , if not can they provide one ?
      Same answer here, we have not yet started this implementation, but it is not forgotten…

    How long has the .NET library and its associated C++ API been released (i.e. how many years). What was the reason for the last major change V4 – > V5?

    The first time I can find .NET in our releases is in V4.5 (Release 02-MAY-2011), but it was not fully implemented until V4.6 (Release 16-SEP-2011).
    V4 vs V5 , When I check the documentation I do not find anything extraordinary, some regular bugfixes, minor addons and some fixes.
    When I read the press release I find this:
    The latest version of Canlib, the software development kit that is used across Kvaser’s interface range, is now available. Canlib v5.0 adds support for SAE J2534, the so-called ‘Pass-Thru’ standard for vehicle programming. Whilst J2534 CAN traffic could be read in previous versions, it will now run three times faster than in earlier releases. Canlib 5.0 also includes the latest version of Kvaser’s t compiler, an important element of the programming language used to develop customised applications for Kvaser’s Eagle CAN datalogger (Memorators).

    Well I have never used SAE J2534… I do not think it was so dramatic.

    (This info added 2019-01-23) Main reason: Harmonizing the WINDOWS SDK with the LINUX SDK. Earlier the WIN and Linux had been separated, but we try to make them as similar as possible.

  • Can I set the bitrate after the channel has been opened with canOpenChannel()?

    You have to go BusOff prior changing the bitrate.

  • C# application selects X32 driver instead of X64

    The canlib32.dll used by your application comes in 32 bit and 64 bit. The appropriate version is placed in the Windows\system32 and the Windows SysWow64 subdirectories by the driver installation. So, the 32 in the dll name does not indicate 32 bit.

    If you are getting an exception thrown, you could be running into one of the following:

    1. Missing the proper Framework version for the application target.
    2. The Visual Studio x64 C++ runtime is not installed.  The canlibCLSNET.dlls are built using C++. So, you need the x64 bit version of the C++ runtime redistributable for the 64 bit canlibCLSNET.dll.