/arduino-CAN

An Arduino library for sending and receiving data using CAN bus.

Primary LanguageC++MIT LicenseMIT

Arduino and ESP32 CAN library

Build Status

An library for sending and receiving data using CAN bus, forked from sandeepmistry/arduino-CAN with some improvements on documentation.

Compatible Hardware

Microchip MCP2515 wiring

Microchip MCP2515 Arduino
VCC 5V
GND GND
SCK SCK
SO MISO
SI MOSI
CS 10
INT 2

CS and INT pins can be changed by using CAN.setPins(cs, irq). INT pin is optional, it is only needed for receive callback mode. If INT pin is used, it must be interrupt capable via attachInterrupt(...).

NOTE: Logic level converters must be used for boards which operate at 3.3V.

Espressif ESP32 wiring

Requires an external 3.3V CAN transceiver, such as a TI SN65HVD230.

CAN transceiver ESP32
3V3 3V3
GND GND
CTX GPIO_5
CRX GPIO_4

CTX and CRX pins can be changed by using CAN.setPins(rx, tx).

Installation

Using the Arduino IDE Library Manager

  1. Choose Sketch -> Include Library -> Manage Libraries...
  2. Type CAN into the search box.
  3. Click the row to select the library.
  4. Click the Install button to install the library.

Using Git

cd ~/Documents/Arduino/libraries/
git clone https://github.com/sandeepmistry/arduino-CAN CAN

API

See API.md.

Examples

See examples folder.

For OBD-II examples, checkout the arduino-OBD2 library's examples.

License

This library is licensed under the MIT Licence.