Heard about CAN bus but don’t know what all the hype is about? This video’s for you!
It’s the first Monday in May, and that means… new ATP! Today, I’m going to talk about CAN bus. What’s that? “CAN” stands for “Controller Area Network”, and it’s a twisted-pair, multi-master data bus that’s really resilient against noise, along with having framing, error detection and lossless bus arbitration built into its spec. If you’re looking for a short-range (40 meters) data bus with good throughput (1Mb/s) and good noise immunity, CAN bus has a lot to offer. So much so that it’s used in automotive and industrial applications where nothing else will work.
In today’s video, I dig into the CAN bus esoterica to give you a look into how it does what it does. This video also tees me up for the next ATP, which is a natural extension to the CAN bus topic: OBD2 (spoiler: CAN bus is sort of a subset of OBD2).
As far as additional reading goes, you should definitely check out the Wikipedia articles for CAN bus and optionally OBD2, but ISO- docs and SAE- docs that cover CAN bus cost money from those sources, so I hesitate to post any links. If you search for ‘ISO-11898,” you’ll get lots of good info, but any PDFs that bear that title are suspect because they’re all bootlegs of the originals. YMMV.
Lastly, if you want to play with some CAN bus goodness on a really simple-to-use platform, check out the AST-CAN485 board!
Hey 773! Thanks for chiming in. I'm still sorting what sort of info I can get out of an OBD2 port, but I should hopefully know something for the next video, not sure how far I can get. Odometer? Beats me, man, I haven't got that far yet. But since you mentioned it I'll look for it specifically.
VSCP (http://www.vscp.org) can be worth checking out for people interested in CAN.
Great video! A few years ago, when I was working for a company that made something that "supported CAN bus" it seemed like to actually get it going was an "arcane art" that required getting software from (IIRC) only one "consulting house". My memory is that a couple of the car companies had "in-house knowledge bases", but most purchased "support" from that consutling house. (Don't ask me the name - it sort of went in one ear and out the other!)
A couple of years ago, I'd toyed with building a R-Pi based "logger" for my car, but (again, IIRC) was disappointed to find that the OBD-2 doesn't include the ability to (directly) read the odometer. (I'm kinda hoping I was wrong about that.)
Interesting tidbit: the requirement for "emmissions testing" for vehicles newer than a certain model year (sorry, I again don't recall the actual number) consists of the inspection station plugging into the OBD-2 port and checking some values WITHOUT ever actually "sniffing the tail pipe" (at least here in the Phoenix area).