← Back to context

Comment by itsrobreally

16 hours ago

You may not be aware but there are a lot of proprietary PIDs on your OBD2 bus you can't interpret without specialized software - you can get like oil pressure and temperature, but not say, shift points or anything the manufacturer doesn't think you should see. True right to repair would mean all of the PIDs get documented and there is a marketplace where I can purchase software or documentation without having to be a certified brand X mechanic.

I’m not sticking up for car manufacturers, but at what size or capacity should you be required to document and publish these things? It requires employer time and effort and has a cost associated with it.

As a counter argument: I was just looking at a small open source utility. As I was going through the code I found cases where certain arguments could be set to magic values that cause useful, but undocumented behavior. Should the developers be forced to document these options?

I don’t think a manufacturer should be able to lock you out of reading diagnostics on your own devices, or that anyone should be prevented from reverse engineering what those values mean. But I also don’t think there should be any requirement that they are forced to do additional work. That seems just as immoral.

  • Between reading basic diagnostics and documenting every signal and field is routine or recurring write operations that will need to happen in the field.

    Resetting the oil/maintenance light, recoding key fobs, resetting the battery stats upon replacement, etc.

    I want independent mechanics to be able to do that. I also want to be able to do that myself, if I’m so inclined.

    • Let’s invert the car analogy: if someone writes an app with a backend service or library, should they be required to document the API for people to build their own tools on top of? Where between software and car does this requirement or regulation change and why?

      I’m absolutely in favor of being able to repair my own stuff and voiding any warranty or liability in the process. I absolutely support reverse engineering and preventing companies from issuing copyright strikes on uncopyrightable facts about their products. I’m mostly OK with the idea that unqualified people can make potentially life threatening changes to their 2-ton vehicle barreling down the road at 80mph.

      Would I like documentation for all these things? Absolutely! Should it be enforced by law? I don’t think so.

      3 replies →

  • > I was just looking at a small open source utility. As I was going through the code I found cases where certain arguments could be set to magic values that cause useful, but undocumented behavior. Should the developers be forced to document these options?

    You were able to do that because it was open source. If a car mfr was willing to do that, it would be plenty enough for me. They shouldn't be forced to do any additional work beyond the 5 seconds it takes to type `git remote add origin github.com/honda/civic`. Then the community would have everything it needs to carry things forward.

    Failing that, yes, I do think everything should be documented.

    • I can poke at OBD and try to interpret values. CAN bus sniffers exist.

      You want to force companies to publish and maintain repositories using your preferred toolset?

      4 replies →

  • the issue is not that this information is undocumented, it's that an "authorized service center" gets information that an "owner" does not. Also cars are not "small open source utilities" with undocumented arguments; do you think that an auto manufacturer has hidden, untested diagnostics that only the dealer uses?

    >> don’t think there should be any requirement that they are forced to do additional work

    At one time seatbelts, airbags, emission controls, etc were all viewed in this category. Now we have regulations enforcing aspects of all of these. Why would diagnostics be different?

    • That’s why I said, at what level should this disclosure be required? Obviously a small open source utility shouldn’t have to document everything. What about a $20 electric screwdriver with an unpopulated JTAG header? a $200 door buster TV? A $2,0000 OLED TV? A Kickstarter device that unexpectedly takes off? A small ICE engine? A house?

      If you’re starting up a small business, selling at-a-loss widgets to gain market share do you want to be forced to publish a diagnostic manual that not only increases your work, but may also increase your liability?

      Seatbelts and airbags are safety, but if you talk to anyone at a body shop, they will tell you there are significant regulation changes in the past decade that have made cars more expensive to fix while not necessarily safer.

      I just don’t think it’s as cut and dry as everything must be forced to be documented. What is everything, at what size or industry is this documentation required, why this industry and not that one, is it just OBD or _everything_ including all CAN bus communication, etc. Minimally the end result is increased cost for everyone.

      If it’s already published, perhaps libraries should start collecting the service manuals.

      3 replies →

  • > I don’t think a manufacturer should be able to lock you out of reading diagnostics on your own devices, or that anyone should be prevented from reverse engineering what those values mean.

    But they do do that. Also what’s the difference between a lot of obfuscation and prevention and how will you enforce that without lawsuits and discovery?

    Also, what is those values have the ability to do damage and cause safety issues? Like losing your own software onto a control by wire car? Then you can rent a car and install your own software surreptitiously.

  • >I’m not sticking up for car manufacturers, but at what size or capacity should you be required to document and publish these things? It requires employer time and effort and has a cost associated with it.

    You're talking about things that by definition have to be documented and internally published in order to design and build the powertrain in the first place. You can't design a computer-controlled automatic transmission without documenting the shift points.

    The cost is therefore essentially nothing, because the information already exists. Just copy paste it into a PDF and put it on your website.

  • > at what size or capacity should you be required to document and publish these things?

    The reason there is an opaque number in that open source utility is precisely because of a lack of open documentation for that register definition. Independent black box analysis of the messages only got as far as "write this value to do effect X". Whomever developed that utility would have loved to spell that bitfield out, but not at the cost of more days reverse engineering.

    But manufacturers aren't reverse engineering register definitions, they're working off of vendor datasheets or protocol definitions they themselves created. All of this documentation has already been produced, as it was used to develop the tractor from its various subsystems. It just needs to be published!

    • I’ve worked on enough internal and third-party SOA to know that documentation could be in an email, a slack chat, or a hallway conversation. The public docs go through writers and reviews. How many software teams could make their service or library docs public based only on internal documentation and produce anything useful?

      1 reply →

Yes and I'm just pushing back against GP who seems to think gatekeeping that access is a good thing. And it's still way better than John Deere who (according to TFA), when the tractor detects that some wires are disconnected, wants you to pay $195 to find out which ones.

I'd love to move towards a world where owners can access everything, flash the firmware in the headlamps, etc. But all I can do as an individual is vote with my wallet and avoid the 2020s computers-on-wheels.