Skip to content

Linux-CAN / SocketCAN user space applications

Notifications You must be signed in to change notification settings

SECloudUNIMORE/can-utils

This branch is 96 commits behind linux-can/can-utils:master.

Folders and files

NameName
Last commit message
Last commit date
Jun 13, 2022
Sep 26, 2019
May 7, 2024
Aug 17, 2018
Apr 19, 2010
Feb 14, 2024
Apr 24, 2024
Mar 19, 2024
Sep 5, 2023
Feb 19, 2024
Oct 19, 2020
Mar 22, 2023
Feb 19, 2024
Feb 19, 2024
Apr 24, 2024
May 13, 2023
Mar 12, 2024
Jul 2, 2014
Oct 13, 2020
Oct 6, 2020
May 30, 2020
Nov 11, 2019
Dec 13, 2022
Mar 12, 2024
Apr 24, 2024
Apr 24, 2024
Jun 24, 2021
Jun 24, 2021
Apr 24, 2024
Mar 12, 2024
Apr 24, 2024
May 14, 2024
Apr 24, 2024
Dec 5, 2023
Mar 20, 2023
May 8, 2023
May 8, 2023
May 8, 2023
Nov 28, 2023
Nov 28, 2023
Feb 14, 2024
May 13, 2022
Mar 14, 2022
Dec 8, 2023
Mar 20, 2023
Mar 20, 2023
Nov 28, 2023
Nov 28, 2023
Oct 13, 2020
Apr 24, 2024
Mar 12, 2024
Oct 13, 2020
Jan 3, 2022
Mar 12, 2024
Mar 12, 2024
Nov 20, 2013
Feb 23, 2023
Mar 20, 2023
Apr 24, 2024
Nov 20, 2013
Jun 19, 2019
Mar 4, 2024

Repository files navigation

SocketCAN logo

SocketCAN userspace utilities and tools

This repository contains some userspace utilities for Linux CAN subsystem (aka SocketCAN):

Basic tools to display, record, generate and replay CAN traffic

  • candump : display, filter and log CAN data to files
  • canplayer : replay CAN logfiles
  • cansend : send a single frame
  • cangen : generate (random) CAN traffic
  • cansequence : send and check sequence of CAN frames with incrementing payload
  • cansniffer : display CAN data content differences

CAN access via IP sockets

  • canlogserver : log CAN frames and serves them
  • bcmserver : interactive BCM configuration (remote/local)
  • socketcand : use RAW/BCM/ISO-TP sockets via TCP/IP sockets
  • cannelloni : UDP/SCTP based SocketCAN tunnel

CAN in-kernel gateway configuration

  • cangw : CAN gateway userspace tool for netlink configuration

CAN bus measurement and testing

  • canbusload : calculate and display the CAN busload
  • can-calc-bit-timing : userspace version of in-kernel bitrate calculation
  • canfdtest : Full-duplex test program (DUT and host part)
  • isotpsend : send a single ISO-TP PDU
  • isotprecv : receive ISO-TP PDU(s)
  • isotpsniffer : 'wiretap' ISO-TP PDU(s)
  • isotpdump : 'wiretap' and interpret CAN messages (CAN_RAW)
  • isotpserver : IP server for simple TCP/IP <-> ISO 15765-2 bridging (ASCII HEX)
  • isotpperf : ISO15765-2 protocol performance visualisation
  • isotptun : create a bi-directional IP tunnel on CAN via ISO-TP

J1939/ISOBus tools

  • j1939acd : address claim daemon
  • j1939cat : take a file and send and receive it over CAN
  • j1939spy : spy on J1939 messages using SOC_J1939
  • j1939sr : send/recv from stdin or to stdout
  • testj1939 : send/receive test packet

Follow the link to see examples on how this tools can be used: Kickstart guide to can-j1939 on linux

Log file converters

  • asc2log : convert ASC logfile to compact CAN frame logfile
  • log2asc : convert compact CAN frame logfile to ASC logfile
  • log2long : convert compact CAN frame representation into user readable

Serial Line Discipline configuration (for slcan driver)

  • slcan_attach : userspace tool for serial line CAN interface configuration
  • slcand : daemon for serial line CAN interface configuration
  • slcanpty : creates a pty for applications using the slcan ASCII protocol

CMake Project Generator

  • Place your build folder anywhere, passing CMake the path. Relative or absolute.
  • Some examples using a build folder under the source tree root:
  • Android : cmake -DCMAKE_TOOLCHAIN_FILE=~/Android/Sdk/ndk-bundle/build/cmake/android.toolchain.cmake -DANDROID_PLATFORM=android-21 -DANDROID_ABI=armeabi-v7a .. && make
  • Android Studio : Copy repo under your project's app folder, add add_subdirectory(can-utils) to your CMakeLists.txt file after cmake_minimum_required(). Generating project will build Debug/Release for all supported EABI types. ie. arm64-v8a, armeabi-v7a, x86, x86_64.
  • Raspberry Pi : cmake -DCMAKE_TOOLCHAIN_FILE=~/rpi/tools/build/cmake/rpi.toolchain.cmake .. && make
  • Linux : cmake -GNinja .. && ninja
  • Linux Eclipse Photon (Debug) : CC=clang cmake -G"Eclipse CDT4 - Unix Makefiles" ../can-utils/ -DCMAKE_BUILD_TYPE=Debug -DCMAKE_ECLIPSE_VERSION=4.8.0
  • To override the base installation directory use: CMAKE_INSTALL_PREFIX ie. CC=clang cmake -DCMAKE_INSTALL_PREFIX=./out .. && make install

Additional Information:

About

Linux-CAN / SocketCAN user space applications

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 97.0%
  • Makefile 1.5%
  • Other 1.5%