UK Supplier of Data Acquisition & Thermal Imaging systems, software and services

CANpie FD Protocol Stack

CAN Driver Source Code

For embedded applications.

SKU CANpie FD Protocol Stack Category

Call for price


The CANpie FD Protocol Stack (Controller Area Network Programming Interface Environment) is an open interface for the development of CAN-based applications.

The CAN driver forms the basis for higher layer protocols (CANopen / J1939) and may be used for manufacturer-specific CAN communication between embedded systems. CANpie FD is available for a wide range of microcontrollers (more than 160 at the moment). A variety of configuration options facilitates adjustment to individual target systems.

The CAN physical layer (data link layer) comprises two protocols: the classical CAN standard and CAN FD. The protocols are described in the ISO 11898-1:2015 specification. The CANpie FD API defines 19 functions to allow manufacturer independent access to the CAN controller to entirely support ISO specifications. The API is based on the concept of dedicated message buffers (mailboxes) in combination with acceptance masks to minimize the application software’s overhead for filtering and managing messages. Each message buffer can be expanded by FIFO function.

Product Features

  • supports (virtual) mailboxes
  • supports acceptance masks
  • optional FIFO for each mailbox
  • supports time-stamps
  • consistent structure of CAN messages
  • optional user-fields may be included in the CAN structure
  • supports all CAN FD formats (CBFF / CEFF / FBFF / FEFF)


The CANopen Slave protocol stack will come as C99 source together with a manual in English (electronic and print version). The scope of delivery also includes:

  • a site-related company license without additional runtime costs
  • 12 months technical support by email or phone


Manufacturer / Controller Options

50.10.079 Atmel AT90CAN32 / AT90CAN64 / AT90CAN128
50.10.011 Atmel AT89C51CC01 / AT89C51CC03
50.10.032 Atmel AT91SAM7X128 / AT91SAM7X256 / AT91SAM7X512
50.10.071 Atmel AT32UC3C family (AT32UC3Cx128C, AT32UC3Cx256C, AT32UC3Cx512C)
50.10.021 Freescale Coldfire (MCF523x / MCF528x)
50.10.023 Freescale XGATE (MC9S12XDP512)
50.10.016 Fujitsu 16LX family 340 (MB90F342 / MB90F347 / MB90F349)
50.10.017 Fujitsu 16LX family 385 (MB90F387)
50.10.024 Fujitsu 16LX family 495 (MB90F497 / MB90F498)
50.10.033 Fujitsu 16FX family 340 (MB96F347 / MB96F348)
50.10.002 Infineon C505
50.10.004 Infineon C16x family (C161 / C164 / C167)
50.10.030 Infineon XC16x family (XC161CS / XC164CS / XC167CI)
50.10.073 Infineon XMC4500 family (XMC4500 / XMC4502 / XMC4504)
50.10.074 Infineon TriCore AUDO MAX family (TC1791 / TC1793 / TC1798)
50.10.091 Infineon CANpie FD for XMC4700 family
50.10.036 Linux Driver for Linux socketcan
50.10.083 Linux Driver for can4linux
50.10.012 Microchip PIC 18Fxx8x family (18F4680 / 18F6680 / 18F8680)
50.10.022 Microchip PIC 18Fx68x family (18F2682 / 18F2685 / 18F4682 / 18F4685)
50.10.034 Microchip dsPIC33F family (dsPIC33FJ64 / dsPIC33FJ128 / dsPIC33FJ256)
50.10.037 Microchip PIC 32MX family (PIC 32MX5xx / PIC32MX7xx)
50.10.008 NEC μPD70F32xx family (AFCAN)
50.10.059 NuMicro NUC140
50.10.072 NXP LPC176x family (LPC1764 / LPC1765 / LPC1766 / LPC1768 / LPC1769)
50.10.063 NXP LPC 177x / LPC178x family
50.10.062 NXP LPC 18xx family
50.10.015 NXP LPC21xx family (LPC2119 / LPC2129 / LPC2292)
50.10.005 NXP SJA1000
50.10.064 Renesas R8C/34W family
50.10.078 Renesas RX63x family
50.10.038 Silicon Labs C8051F04x family (C8051F040, C8051F041)
50.10.027 ST STR7 family (STR710 / STR712)
50.10.028 ST STR9 family (STR910 / STR911 / STR912)
50.10.065 ST STM32 family (STM32F103)
50.10.066 ST STM32 family (STM32F105/107)
50.10.067 ST STM32 family (STM32F2xx)
50.10.068 ST STM32 family (STM32F3xx)
50.10.069 ST STM32 family (STM32F4xx)
50.10.089 ST STM32 family (STM32L4xx)
50.10.094 ST STM32 family (STM32G4xx)
50.10.031 ST ST10 family (ST10F26x / ST10F27x)
50.10.025 TI TMS320LF24xx family
50.10.075 TI TMS320F2803x Piccolo family (F28030 / F28031 / F28032 / F28033 / F28034 / F28035)
50.10.058 TI Tiva TM4C123x family
50.10.076 TI Concerto F28M36x family
CANpie FD - CAN driver source code
Identifier Standard Frame (11-bit)
Extended Frame (29-bit)
Formats Data Frame
Remote Frame
Error Frame (Receive)
Monitoring of fault conditions
(depending on controller)
Bit Error
Format Error
CRC Error
Stuff Error
Data Flow Interrupt
Special Features Mailbox Access
Software Filter
CANpie FD CAN Driver Source Code Specifications

CANpie FD User Manual

Protocol Stacks CANopen, J1939 Brochure