Filled out my Kickstart Survey

Now just to wait for my beta hardware. I can’t say I’ve got a project in mind, but I do have a lot of experience with CAN development, specifically with J1939 and some OBD-II/UDS. I also maintain an Arduino CAN library for the MCP2515.

Personally, I have messed around with reverse-engineering the streaming CAN traffic on my 2006 Ford Escape and now my 2015 Jeep Renegade. Its difficult work, but when you start finding interesting data, it pays off. I especially enjoy finding the ABS wheel speed sensor message.

As for the Macchina and its future, well I hope we can all make it become “The Ardunio of Car Hacking” for lack of a better phrase. :slight_smile:

Some things that would add significant value to this project would be support for J2534 and RP1210; these are both software interfaces for a host side driver.

Question for information but does the MCP2515 deal with RAW data below the UDS level or does it filter out the UDS packet information and only return stuff within that UDS packet?

In scope this question would be similar to standard sockets programming. Where you can get TCP and UDP packets with the packet information filtered out or get the raw sockets where you have access to the whole packet and determine for yourself if it is a TCP or UDP packet.

Does the MCP2515 go down another layer like the raw sockets or are we limited to UDS packets like being limited to standard network TCP/UDP packets?

Hopefully that makes sense…

The MCP2515 is a generic CAN 2.0B protocol controller, it does not care what the protocol is as long as the bus is CAN 2.0B compliant. It can be configured to filter based upon the CAN IDs that OBD-II/UDS use, but this just helps to ease the load on the microcontroller that it is connected to. The MCP2515 would essentially be a “raw CAN socket” in that sense with some hardware filtering options. If I was to bust out the OSI model, generic CAN would be layers 1 and 2 and any protocols would be responsible for supporting the other layers.

Hope that helps.

yup…as long as the bitrate is set correctly, it’ll spit out ANYTHING thats on the bus.

As Cory said, there are hardware filters/masks available in the MCP2515, but I think its easier to just do it in your software/main loop. Even an 8-bit AVR has plenty of horsepower to read everything on a 500k CAN bus with an MCP2515.

The Cortex M3 (due/macchina) wont even break a sweat handling two 500k busses natively, and then a third via an MCP2515.

Ben

This is good to know… Should be able to do pretty much anything on the bus we want to do then with no additional hardware needed. Very nice… Just got notification mine has been sent so will be looking forward to working with it.

According to the tracking information, mine should be waiting on my stoop when I get home this evening. Nifty.

Just got mine… Now to figure out how to program a Due since I have not yet joined the Arduino experience yet…

Rodney