7 ms·
The most surprising part about this to me is that there seems to be a somewhat standardized computer interface for controlling cars with an external device. I w
by raziel2p 6y ago
The most surprising part about this to me is that there seems to be a somewhat standardized computer interface for controlling cars with an external device. I would never have guessed that, I thought for sure every maker would come up with their own unique design and require you to buy adapters or whatnot.
- retSava 6y agoIt's mandated by regulation in all cars after..2002? It's a port most often situated close to the steering wheel, the interface is a bog standard CAN bus. Where it differs between cars is what command sets are used and allowed (eg sometimes proprietary ones are used, and controlling things may not be possible). It's common to extract diagnostics about the car from this port. For example, when buying a used car this is highly recommended. Buy a cheap adapter that you plug in, connect to it over BT from a phone, and read out error codes. Perhaps the owner has temporarily put out an error to mask it during your inspection?
- raziel2p 6y ago> Perhaps the owner has temporarily put out an error to mask it during your inspection? To be clear, I don't have a car or a driver's licence, I was just surprised that this standardization was a thing at all. Seems like a stark contrast to all the walled gardens in every other technology-related industry these days.
- voqv 6y agoActually not really all cars have one standard. Most German cars use Flexray which Openpilot does not currently support and is a bit more tricky to hack into as described by Comma.ai: https://medium.com/@comma_ai/hacking-an-audi-performing-a-man-in-the-middle-attack-on-flexray-2710b1d29f3f https://medium.com/@comma_ai/hacking-an-audi-performing-a-ma...
- bipson 6y agoOnly very recent cars use Flexray, and also not true for all manufacturers. CAN is still widely used, and some want to skip Flexray entirely for the next thing...
- jinzo 6y agoOnly the really basic data (mostly related to emissions) and connector is standarised. Even the pinout of the connector (apart from the power supply and ground) differs quite a bit between manufacturers. The level of integration needed for actually driving the car is far from a standard. Not even that, most of the new cars have specific gateways which firewall the car electronics from the OBD port. TL;DR: Apart from really basic data and physical connector, everything else is (ever more increasing) walled garden. With new VWs and Fiats requiring online connection for even most basic operations - so even if you know the protocol, you have to unlock it online (See VW SFD and Fiat SGW)
- numpad0 6y agoIt is mandated by law that cars have an OBDII port that supply diagnostic data over CAN interface for emissions testing. It is not, however, required that said CAN bus is used for anything other than for passing emission tests. Easiest way to implement that feature is by exposing main CAN bus on that port, but you don’t have to.
- stefan_ 6y agoThis is a bit simplistic. By now, most cars will have multiple CAN buses, not least to separate the infotainment crap from the safety-critical subsystems like the ECU, steering, ABS braking and others. Chances are the mandated diagnostic part you can access will not be able to control these subsystems (or even receive their messages). Of course a hardware air-gap is inconvenient when you are trying to ship subpar hardware and software on a shoestring budget, so the industry invented smart CAN "switches" and it's possible to escalate the access the diagnostic port provides, or tunnel from the infotainment network to the safety one. In newer cars, you can also possibly substitute CAN in this post with Ethernet.
- cartoonworld 6y agoI personally respect OpenAI, Love the data link on cars. I think we should never be frightened of hacked cars, we should definitely be hacking our cars (and trucks, forklifts, lawnmowers, combines, papershredders, robots). Just wanted to add many comments on Can and obdII: In the United States the obdII port is required beginning in model year 1996. The obdII port and the CAN is analogous to rj45 and cat5, 5e, 6, etc. Should note, the can bus is anything but bog standard. However, in 2008 the United States required that all vehicles provide an iso15765 interface as the basis of the on board diagnostics. Iirc, 15765 is a subset of Can that's for cars and not forklifts. Can is controller area network. There are a large variety of protocols talked across Can, far too many to list as you have noted. There are schemes which are serial, parralel addressed and not, and even analog signaling cohabitating this generic breakout port. Where it differs between cars is the capabilities of the DLC, if the vehicles isn't equipped with a sensor suite, there will be no correspondent ecu subsystem to query, but for the most part you can send control messages to anything you want on a DoT approved vehicle, unless it is locked away behind a specific gateway and the car manufacturer is still hiding the method to control access to the device. None of this applies to infotainment devices or comfort features. Consumers should rue the day we return to the age of mystery subsystems requiring special protocols. The reason I say this (and I suspect but, can't remember the 2008 iso 15765 mandate rationale) is that you probably want your mechanic to be able to fix your car, right? Anybody who might be interested in the wild and fun world of automotive Com protocols such as this I can recommend to you this good and recent resource from 2020: https://www.csselectronics.com/screen/page/simple-intro-to-can-bus/ https://www.csselectronics.com/screen/page/simple-intro-to-c...
- retSava 6y agoThanks for expanding on my knowledge. I have only experience implementing support for talking to a fluid property sensor in an industrial process and not much more. Thankfully, I might add. Looked at it like a fixed phy layer with some parts of the messaging fixed as well, although now that you brought it up, I remember adding J1939 support too. Ugh, it was, in my opinion, a bit-hacked mess :) I can really appreciate when things that despite being messy and hackish, solve real, actual problems, and for that, I thank thee, CAN-bus :).
- Cactus2018 6y ago> It's mandated by regulation in all cars after..2002? I don't think the port is the surprising part, it's the ability to articulate brakes and steering wheel!
- m463 6y agomandated for cars that have emissions requirements. I think the obd connector on tesla doesn't do anything
- bronco21016 6y agoHa I never really thought of that. Now I wish I had looked for the port last time I was in one.
- muzika 6y agoTeslas don’t have an OBD port.
- m463 6y agosome do.
- ezconnect 6y agoCAN bus is the standard physical interface. What is not standard is the message being passed, so each car will have it's own message for car information. What surprised me about OpenPilot is how some of the electric steering system can be tricked into turning using false sensor data. It's actually amazing that almost all cars now can be driven by software the only thing missing are more accurate and complicated sensors.
- bipson 6y agoIt is actually concerning that you can inject false sensor data this easily. I mean, sure, the messages on the CAN will not be encrypted or signed in any way, I know, but still...
- jinzo 6y agoIt's not that easy and it's getting harder with each new car platform. But on the other end, some of the sensors are basic and will always be suspectable to false inputs. But don't worry, maybe it looks easy -> but it's not.
- izacus 6y agoWhy exactly would be concerning? You need to physically plug cables in the car you yourself own. If anything, every access to hardware you own SHOULD be this easy.
- bambax 6y agoWell, not exactly. Once you have plugged this device into your can, it can be hacked. It's just a phone after all, and it has normal wireless connection options available.
- netsharc 6y agoIt seems the system only works when the driver activates the cruise control, which hopefully Honda has programmed correctly: i.e. if cruise control is deactivated, steering inputs from the CAN-bus will be ignored. So the driver can still regain control from a hacked device by deactivating cruise control, which s/he can do by moving the steering wheel or pressing one of the pedals.
- agumonkey 6y agothe engine i'm not surprised, the wheel I am.. I thought powered steering was only amplifying, not fully controlling.