Hacker News new | ask | show | jobs
by javawizard 11 days ago
I really, really wish that CAN had caught on more for sensor networks in the hobbyist community.

It's so much nicer than I2C in so many regards: much longer range, masterless (any node can talk directly to any other node), packet prioritization built-in, deliberately designed to be more or less impossible to wedge, possible to do IC-to-IC on a board without transceivers by using a shared open-drain bus (like I2C, but with only one wire!)... and plenty more.

Really the only downside to CAN is that the spec requires timing that's tight enough that everything has to have a crystal on board. Ah, to have an alternate reality where CAN's timing requirements were relaxed enough for that not to be a requirement and it had caught on as the IC-to-IC interconnect standard instead of I2C...

1 comments

LIN bus isn't masterless though, if I recall correctly.

That's the nice thing about CAN: every node is equal, and every node can send a message whenever it wants. As far as I know, LIN doesn't do that: you have one node on a given LIN network that initiates all communication, much like I2C, and the most other nodes can do is reply.

It's fine for what it is, of course, it's just missing some things that I think make CAN really neat.