CAN Bus MCP2515 / D230 (SN65HVD230) DIY Module Schematics

In case anyone decides to incorporate a hardware CAN Bus solution in their design, I have made public a CAN-BUS module. Benefits are it uses SPI and can be incorporated in any hardware design to CAN-Bus-able it across any hardware platform supporting SPI.The library is really small, simple and easy to use and MCP2515 takes care of all heavy lifting. This will allow your project to use CAN-Bus regardless of the hardware as long as you have a free SPI port. I’ve tested it on whatever Arduino I had in my drawer, and also incorporated in my development driver board.

Public domain, knock yourself out.

You can clone, and manufacture yourself. All components are in stock.

CAN-BUS is a common industrial bus because of its long travel distance, medium communication speed and high reliability. It is commonly found on modern machine tools and as an automotive diagnostic bus. This CAN-BUS Shield gives your hardware CAN-BUS capibility. With an OBD-II converter cable added on and the OBD-II library imported, you are ready to build an onboard diagnostic device or data logger.

Implements MCP2515 / SN65HVD230 3.3v input and logic combination. If you have a 5V board you need to supply 3.3v with a divider.

EASYEDA Project:

Using Arduino library:

MCP2515 has very rich functionality. I used only the most basic features. You can use this as a jump-start to further explore CAN Bus in your hardware design without the scary hardware-specific coding.

I added the termination resistors, so if your solution requires high-speed and not an end-node device you need to familiarize yourself with the concept of CAN-Bus termination resistors and remove the resistor from these nodes. In my shield you need to de-solder the 0R resistor to open the termination circuit. Or add a jumper yourself to the board.

When I get time in the future I’ll post a small control board that incorporates 5v to 40v power supply-able, voltage and current protection, resettable fuse, canbus, wifi and usb serial in one small package to use as a control center for multiple canbus-able simplefoc boards. You can send the commands via wifi and control whatever other motor boards you have via canbus at great distance/length.


This looks interesting. Would it be possible to configure it for CANOpen as used by Odrive?

This would enable people to substitute SimpleFOC hardware in systems coded for Odrive.

Yes. But someone needs to write / test the code.

1 Like

Great, I’ll have a poke around in the Odrive code