
Unlike simple serial protocols, Controller Area Network (CAN) transmits data in frames with error detection capabilities. The Bus Pirate wasn’t designed to handle frame-based data transmissions, but have no fear the CAN Pirate adapter is here!
In order to send and sniff CAN data for debugging an application, Stefano came up with the CAN Pirate. It uses a stand-alone CAN controller with SPI interface (MCP2515) and a high speed CAN transceiver (MCP2551). Schematics for the board are available in the forum.
Currently, the MCP2515 is setup and accessed manually from the Bus Pirate SPI mode. Stefano is offering a few extra PCBs to developers who help write a new Bus Pirate mode that supports the CAN Pirate directly.
You can get a Bus Pirate for $30, including worldwide shipping.

Simply Awesome
OBD-II-Pirate would be at least as awesome as this is. Great work!
Thank you for the comments!
We are still searching for people to write some code to make it simple!
Kisses
Stefano
Do you still seek people writing code for this? I need a fairly open CAN bus analyzer as I would like to interface to my BMW motorcycle instrument cluster unit. I also need a bus pirate and a logic sniffer.
Hi Stephan,
I’m pretty interested in reading the instrument clusters CAN signals, to replace it by some homebrewed arduino-powered device. Can you provide some more information on which pin does what? (Using a F650GS btw)
Cheers
Steffen
Stephan – did you ever find anything out? I’m thinking of using an Arduino shield to get data from the CAN-BUS on my 650GS. Email me at wlm2048 at google’s email service if you want to compare notes.
I’ve been using my Bus Pirate, oscilliscope, and ELM OBD-II tool to scan and sniff as much as I can on my Mercedes-Benz. This summer I’m going to invest a lot of time developing a Arduino based controller to interface with the CAN bus network and push information to the cluster and other ECUs. This looks like a great start to what I plan on doing. I’d be willing to help develop some code.
BTW, I have a Star Diagnosis multiplexer as well.
Did you get anywhere with this?
No need for an interface anymore as I got my own CAN bus interface working last week. Interface code was easy and works like a charm.
Hi,
By this do you mean you have the Bus Pirate reading the CAN directly without this adaptor, or you built a totally separate interface.
Would you share some more details as to how your new interface works?
Hi,
I was seeking for something prebuilt at that time as I had no experience with CAN before, but then it turned out to be all very easy using an ATMEL+MCP2515+PCA82C250 and a few hours coding+debugging using in oscilloscope. I was surprised to find out BMW went all for a standard compliant CAN on their motorcycles (tried on an R1200GS+F800GS).
Best,
Stephan
Hi,
I was seeking for something prebuilt at that time as I had no experience with CAN before, but then it turned out to be all very easy using an ATMEL+MCP2515+PCA82C250 and a few hours coding+debugging using an oscilloscope. I was surprised to find out BMW went all for a standard compliant CAN on their motorcycles (tried on an R1200GS+F800GS).
Best,
Stephan
Hi
Is this device available commercially ? its a bit beyond my skills to build one from parts but its exactly what i need at the moment.
“Unlike simple serial protocols, Controller Area Network (CAN) transmits data in frames with error correction and handling capabilities.” ?????
Sorry, but where did you see that CAN was correcting errors? CAN bus implements an error detection mechanism based on CRC, that’s all. A corrupted frame is always rejected.
You’re right it should probably read ‘error detection capabilities.” Fixed.
@Stephan: can you tell me more how you got the bmw bikes read?
would be very thankful for contacting me at ulix_s@yahoo.com
cheers