J1939 Implementation on Arduino + MCP2515

I’m currently working on learning and implementing the J1939 protocol using Arduino boards (Uno and Mega) connected to MCP2515 CAN modules. My goal is to send and receive J1939-format messages between nodes on the CAN bus.

I have successfully set up the hardware: MCP2515 modules are connected to both the Uno and Mega, and the CAN bus wiring (with 120Ω termination) is complete. I’ve installed and tested the MCP_CAN library for basic CAN communication—it works fine for standard CAN frames.

I’m now looking to move forward with J1939-specific communication. Has anyone worked with J1939 on Arduino + MCP2515? If yes, which library did you use or for handling J1939 features like PGNs, address claiming?

Have you looked into what they offer there https://copperhilltech.com/

Yes, I’ve checked Copperhill Technologies, but I couldn’t find a standalone library download for J1939. Most of their resources seem to be part of their books or commercial packages, so I’m trying to find an open-source library that works with MCP2515 for now.

May be this (based on their work)

1 Like