An Arduino library for sending and receiving data using CAN bus.
- Microchip MCP2515 based boards/shields
- Microchip MCP25625 based boards/shields
- Espressif ESP32's built-in SJA1000 compatible CAN controller with an external 3.3V CAN transceiver
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 MCP2515 which operate at 3.3V. The MCP25625 can run on 3.3V or 5V power, resolving this issue.
Requires an external 3.3V CAN transceiver, such as a TI SN65HVD230.
CAN transceiver | ESP32 |
---|---|
3V3 | 3V3 |
GND | GND |
CTX | 5 |
CRX | 4 |
CTX
and CRX
pins can be changed by using CAN.setPins(rx, tx)
.
As this is a fork of https://github.com/sandeepmistry/arduino-CAN with additional patches, you have to use git to install this version of the library:
cd ~/Documents/Arduino/libraries/ # ~/Arduino/libraries on Mac OS
git clone https://github.com/timurrrr/arduino-CAN CAN
See API.md.
See examples folder.
This library is licensed under the MIT Licence.