CAN Decoding Revisited - Trying to Correlate Messages to Modules

แชร์
ฝัง
  • เผยแพร่เมื่อ 23 พ.ย. 2024

ความคิดเห็น • 54

  • @boxedowl
    @boxedowl 2 ปีที่แล้ว +2

    Best books I got on it are:
    Data Acquisition from Light-Duty Vehicles Using OBD and CAN by Walter & Walter (SAE R-458)
    Data Acquisition from HD Vehicles Using J1939 CAN Bus by Walter & Walter (SAE R-446)
    The Car Hacker's Handbook by Craig Smith
    And for the very brave:
    Automotive Software Engineering 2nd Edition by Schäuffele & Zurawka (SAE R-432)
    Also to get into things cheap I found Korlan USB2CAN to be really useful and quite affordable.
    Some also experiment with a Ford OpenXC dongle and a little custom scripting. There's better equipment out there but it also tends to be more expensive.

  • @viktoroudovenko4496
    @viktoroudovenko4496 2 ปีที่แล้ว +2

    Dear Matt, I only recently discovered your amazing channel. The way you explain thing is fantastic! i wish you quick recovery from whatever you have and enjoy whatever you like in life! Happy New 2021 year!

  • @labradormcgraw
    @labradormcgraw 2 ปีที่แล้ว +3

    LMAO! I was so sure that you were going to introduce your headwear as your 'ass-hat'. I guess that's more applicable to the troll vids. lol 😆😄

    • @SchrodingersBox
      @SchrodingersBox  2 ปีที่แล้ว

      Good call! it is an asshat literally for sure

  • @chadbailey5900
    @chadbailey5900 2 ปีที่แล้ว +1

    3:25 assumptive of you to think i'd be watching :P
    3:45 IMO there's no substitute for understanding the underlying system when troubleshooting. even if you don't quite find the direct diagnostic application, i think it will go far to help you come up with your own test methods later. i see it as learning basic electrical so that you can apply that to troubleshooting a wiring issue.
    4:17 as i understand it, you may not ever know the target only the origin since it is a broadcast network. the destination merely chooses to subscribe to the published data and do something with it or not. in instances like RPM, that single message may be used by multiple controllers (transmission & instrument cluster, for example).
    7:33 CAN-FD is one of the newest standards which can transfer substantially more data than CAN. there may be even more coming along that you're referencing, not sure - but I think we will see wide adoption of CAN-FD fairly soon (2-3 years)
    8:58 honestly i just like this stuff because it fascinates me - i'm even below a hobbyist level if i'm honest. i'm here to learn with everyone else
    13:24 i believe i mentioned you need to be 4x the baud rate, but that's honestly bare minimum and not enough. 10x is much better than 4
    14:36 you're correct, message and frame are used interchangeably in CAN. a frame/message is a single packet of data on the CAN network. all data must be split into packets before being transferred on the network, then reconstructed on the other side (which is why i mentioned the OSI network layers).
    17:56 i understand it this way too, the reason for this behavior is resilience against noise. if you subtract the channels and one or the other has noise the overall impacted is reduced by a factor of 2
    19:28 maybe this is saying heuristics? in comp-sci heuristics typically means "look for a pattern using a less exact method". so i'm guessing if it says heuristics it's just looking at the data to make a suggestion for you
    20:13 i was suggesting binary because it's much easier to see the data in some scenarios like boolean values - on/off will be a 0 or 1, things like that. absolutely nothing wrong with using hex, i just didn't want to make things more confusing than necessary. i would say absolutely avoid decimal/base10 or ascii though, those could absolutely cause confusion
    45:02 it's probably broadcasting the same thing on a fixed interval which will be duplicated data unless the state changes. for example, you might get lots of messages that say "Speed: 0mph" all duplicates, but they represent the speed at the time of the broadcast which happen to not change
    1:10:14 i'm impressed at how far you got with excel and the picoscope decode feature! if it were me, i would use purpose-built CAN hacking tools such as comma's can_printer.py but even though that's a tool that works really well for me it doesn't translate to you and the audience. i will tell you how it works though. it monitors the CAN line for all messages that have come through so far, then you hit a key telling it all of these are "normal" and to hide all messages with the IDs that have already been shown. once the bus calms down and no new ones decide to show up at random, when you hit the brake pedal you see the new ID come in immediately. this doesn't seem too far off of what you were attempting, so i think you're on the right track

  • @Kamel419
    @Kamel419 2 ปีที่แล้ว +3

    this is chad... keep posting then check on another account only to find it disappeared. i think i attempted to post links on a prior video with that account and got on youtube's naughty list or something who knows. anyway, reposting sorry if this appears twice
    3:25 assumptive of you to think i'd be watching :P
    3:45 IMO there's no substitute for understanding the underlying system when troubleshooting. even if you don't quite find the direct diagnostic application, i think it will go far to help you come up with your own test methods later. i see it as learning basic electrical so that you can apply that to troubleshooting a wiring issue.
    4:17 as i understand it, you may not ever know the target only the origin since it is a broadcast network. the destination merely chooses to subscribe to the published data and do something with it or not. in instances like RPM, that single message may be used by multiple controllers (transmission & instrument cluster, for example).
    7:33 CAN-FD is one of the newest standards which can transfer substantially more data than CAN. there may be even more coming along that you're referencing, not sure - but I think we will see wide adoption of CAN-FD fairly soon (2-3 years)
    8:58 honestly i just like this stuff because it fascinates me - i'm even below a hobbyist level if i'm honest. i'm here to learn with everyone else
    13:24 i believe i mentioned you need to be 4x the baud rate, but that's honestly bare minimum and not enough. 10x is much better than 4
    14:36 you're correct, message and frame are used interchangeably in CAN. a frame/message is a single packet of data on the CAN network. all data must be split into packets before being transferred on the network, then reconstructed on the other side (which is why i mentioned the OSI network layers).
    17:56 i understand it this way too, the reason for this behavior is resilience against noise. if you subtract the channels and one or the other has noise the overall impacted is reduced by a factor of 2
    19:28 maybe this is saying heuristics? in comp-sci heuristics typically means "look for a pattern using a less exact method". so i'm guessing if it says heuristics it's just looking at the data to make a suggestion for you
    20:13 i was suggesting binary because it's much easier to see the data in some scenarios like boolean values - on/off will be a 0 or 1, things like that. absolutely nothing wrong with using hex, i just didn't want to make things more confusing than necessary. i would say absolutely avoid decimal/base10 or ascii though, those could absolutely cause confusion
    45:02 it's probably broadcasting the same thing on a fixed interval which will be duplicated data unless the state changes. for example, you might get lots of messages that say "Speed: 0mph" all duplicates, but they represent the speed at the time of the broadcast which happen to not change
    1:10:14 i'm impressed at how far you got with excel and the picoscope decode feature! if it were me, i would use purpose-built CAN hacking tools such as comma's can_printer .py but even though that's a tool that works really well for me it doesn't translate to you and the audience. i will tell you how it works though. it monitors the CAN line for all messages that have come through so far, then you hit a key telling it all of these are "normal" and to hide all messages with the IDs that have already been shown. once the bus calms down and no new ones decide to show up at random, when you hit the brake pedal you see the new ID come in immediately. this doesn't seem too far off of what you were attempting, so i think you're on the right track

    • @chadbailey5900
      @chadbailey5900 2 ปีที่แล้ว +1

      that really was me, if this message actually decides to appear

    • @SchrodingersBox
      @SchrodingersBox  2 ปีที่แล้ว

      Thanks Chad!!! very helpful!!!!!

    • @Kamel419
      @Kamel419 2 ปีที่แล้ว

      it's worth mentioning that some vehicles have multiple CAN networks - and sometimes not all of them are accessible from the OBD port. the only legal requirement as i understand is to be able to do emissions testing from the OBD port which is why i say it may not be in the OBD port. so it's entirely possible the brake message won't actually be on the one you're monitoring.

    • @SchrodingersBox
      @SchrodingersBox  2 ปีที่แล้ว

      Well son of a bitch hahahaha!!!!! That would suck!!!!!

    • @mattt4183
      @mattt4183 2 ปีที่แล้ว +1

      I agree that it would be better to use some kind of network analysis/snifffing/hacking software rather than attempting to decode traffic with the Pico. The Pico is a very powerful tool but isn't the right tool for this job IMO.
      Regards finding "brake pedal depressed", looking for a new/unique message identifier might not work. Could just as easily be a data bit change in "brake pedal status", or some larger message, which has already been transmitted.

  • @Ted_E_Bear
    @Ted_E_Bear 2 ปีที่แล้ว +1

    Matt, thanks for challenging our brain with your great work !!!

  • @vladcheshev4007
    @vladcheshev4007 2 ปีที่แล้ว

    I 10000% agree about "gearing up" with tech, performing diag without busting out a wrench, rc test vs messing comp gauge (just to see which cyl low, obviously would need gauge for further diag if its comp issue) but quick rc test.. BAM! Being tech for many years earned to reach for scope, dvom and scanner more.. back dont hurt as much haha! Prop to you matt

  • @TheDisgruntledMechanic
    @TheDisgruntledMechanic 2 ปีที่แล้ว +1

    Damn miss 1 or 2 videos and I come back to see you have your throat slit! Now I have to go back see and why! Whatever it was I wish you a speedy recovery and getting back to car repairs! Happy New Year Matt!

    • @SchrodingersBox
      @SchrodingersBox  2 ปีที่แล้ว +1

      Hahahaha no worries Mike- it was a disc replacement surgery in my neck. I am doing well!!’

  • @georgebonney90
    @georgebonney90 2 ปีที่แล้ว +1

    Thank you sir,Im Glad you're getting better

  • @kenneedham4674
    @kenneedham4674 2 ปีที่แล้ว

    I too follow your great series in an attempt to keep up with techology changes. As an engineer I want to know how things work and admire your presentations. Cars are a hobby and a challenge which your information exchange and presentation are great assistance. Looking forward to the next brain food

  • @jerrypeal653
    @jerrypeal653 2 ปีที่แล้ว +1

    Glad you’re doing well .

  • @detailedautodiagnostics
    @detailedautodiagnostics 2 ปีที่แล้ว

    You are correct.....saying "computers are stupid" is a cop-out, complete avoidance because they don't understand, don't want to understand or don't have the capacity to understand 👍

    • @SchrodingersBox
      @SchrodingersBox  2 ปีที่แล้ว +2

      Roger that!!!!
      I’ll even take it a step further in fact. Those same guys didn’t understand how to diagnose cars in the 60’s and 70’s either. They just had less parts to guess at. They connected up that vacuum gauge and no matter what it read they replaced plugs wires and distributer cap anyway lol.

  • @gezdipz5425
    @gezdipz5425 2 ปีที่แล้ว

    Find this fascinating at this point it's over my head lol,steep learning curve it is.
    Keep up the great content

    • @SchrodingersBox
      @SchrodingersBox  2 ปีที่แล้ว

      Thanks, will do! Yeah it’s over my head too still. for sure. but once I get it, I’ll be able to do my usual simple explanations for you guys. but yeah this is deep stuff. I appreciate you sticking with it!!!

  • @OneLegged-honda-mechanic
    @OneLegged-honda-mechanic 2 ปีที่แล้ว

    "That is a life long dream of mine, to fix my car using Microsoft Excel" that's funny, but at the same time very cool!

  • @user-yy5qi9fi7b
    @user-yy5qi9fi7b 2 ปีที่แล้ว

    The hex code filtering issue may be because it is filtering the Boolean of the 2 codes. Try "OR" instead of "AND"

  • @kerryb2689
    @kerryb2689 2 ปีที่แล้ว +2

    5 samples per waveform for a digital scope to get a good representation of a waveform. Logic analyzer needs to be synced to the signal. and only needs one clock per bit. Everything on the can bus automatically syncs based on the start of frame bit including the scan tool or an ELM327 device. I'm not sure how the logic analyzer syncs. or even if it can...maybe you can set a clock rate and use the clk input as a sync.
    Many of the messages are just each device on the bus saying 'hi I'm alive'.
    I'm most familiar with GM CAN on my 06 sierra SAE J1850VPW... GM CAN protocol changed to higher speed and more data bits in '07. I have been using an ELM 327 bluetooth device with a phone app to collect data.
    Everything you do such as lock doors causes one computer to talk to another on the can bus.
    My 06 sierra has about 10 computers on the bus. Every manufacturer may use a different protocol defined by SAE.
    The SAE information can be difficult to find because it is proprietary and are expensive to purchase.
    Every message has a start of frame, priority, destination, source, data, and end of frame.
    Some messages expect an in frame response from the destination..
    Source and destination can be from software modules within each computer.
    I use open office or libre office calc - open source.
    I will come back later and comment more if you want.

    • @SchrodingersBox
      @SchrodingersBox  2 ปีที่แล้ว +1

      Hell yeah!!!! That’s awesome explanation. Definitely comment more!!! Particularly if you have advice on if I am on right track that I should be able to generate new ID’s with the brake pedal and separate them out. is my procedure and thought process on track?

    • @kerryb2689
      @kerryb2689 2 ปีที่แล้ว +1

      @@SchrodingersBox You're sort of on the right track. I'm guessing you have the checksum errors because of sync problems with the data on your logic analyzer. You would have DTC errors if you had real checksum errors. There is no clock signal for the can bus, each computer has a comm section in the chip that uses a high frequency signal and divides it down to get fairly precise timing. When one computer jumps on the bus with a message, all the other computers sync up to it. The scan tool is just another device on the bus.
      Most networks these days work based on a priority assigned to the software modules within the computer chips. 000 has higher priority than 001, and 111 has lowest priority. if 2 devices jump on the bus at the same time the one with the highest priority wins the arbitration and the lower priority immediately stops sending it's packet, and retries later. Differential (+ and -) signals have very high noise immunity. Any noise introduced through power and ground, or via antenna coupling will be on both wires, so when you subtract one signal from te other, the noise cancels.
      A good place to start is to turn the key off then lock and unlock the doors (applying the brakes may even initiate communications while the key is off to turn on the brake lights)
      The next thing to look at is is a wiring diagram for your vehicle and see how many computers are tied to the network..
      In the case of lock/unlock, the unlock switch sends a signal to the driver door module and the driver door module unlocks the driver door. It also sends a message over the can bus to the passenger door module and the passenger door module unlocks the passenger door.
      I found info for my 06 sierra on the module id's (just a string of 1's and 0's), but it wasn't easy ... I think it was a pdf from an Iranian website, but my computer wouldn't let me save it as a pdf.
      I haven't studied enough to know if the driver door module and passenger door module are seperate computer chips, but I suspect they are, otherwise there would be no need to jump on the bus comms.
      The reason for this complexity is to reduce wiring but at the expense of complexity.
      Ya, I like the good old days when the switch was wired directly to the lock solenoid, or the ignition switch went directly to the starter solenoid.
      This is where the ELM327 chipset comes in. it has all the different OBD2 and CANbus protocols built in and can handle bus arbitration and timing sync onto the bus. The Viecar that I'm using is about $20, and the bluetooth serial terminal app by kai morich is free.
      I got to the point where with the ELM327 device plugged in to the obd connector and using the serial bluetooth app, I can lock/ unlock the doors from inside my house.
      I'm trying to find where I saw the different CANbus protocols all shown, but it may take me awhile. It has been about 8 months since I have messed with it.
      Things get real busy for me about march or april every year, and it doesn't let up until jan-feb.
      I'm only about 250 mi NorthEast of you.
      Oh, and with the key off, wait until the bus settles down before you try unlocking the doors or pushing the brake.
      With the key on, there is so much activity it just zooms by. With the engine running, it's just a continuous blur of activity. ECM talking to the driver display updating speed, rpm and gauges,, Radio, Onstar, brake controller, body control module, etc. like i said my 06 has about 10 computers each with several software modules.

    • @SchrodingersBox
      @SchrodingersBox  2 ปีที่แล้ว

      Thanks for the advice!! Will apply it.

    • @tuloko16
      @tuloko16 ปีที่แล้ว

      Look up and study the Datasheet for the ELM327 chip. It actually goes into great detal on how the different protocols(including can) are decoded.

  • @laneburgess1643
    @laneburgess1643 2 ปีที่แล้ว

    Thanks for making and sharing this video.

    • @SchrodingersBox
      @SchrodingersBox  2 ปีที่แล้ว +1

      You bet! I just wish I understood it hahahaha!!

  • @scientist100
    @scientist100 2 ปีที่แล้ว

    We may need to reach out to Ada Lovelace from afar for this one as she is the only one that may be able to decode it.

  • @chrissraceporting7055
    @chrissraceporting7055 2 ปีที่แล้ว

    I have a 2000 Honda crv which has the 3 pin can plug. I want live data but having trouble. I have the Delphi scan tool and a kess with ktag. How do I get the live data?

    • @SchrodingersBox
      @SchrodingersBox  2 ปีที่แล้ว

      Does it have pins at position 6 and 14 in the ALDL connector?

  • @jerrypeal653
    @jerrypeal653 2 ปีที่แล้ว +1

    Hat reminds me of the Noid .

  • @williamowens3905
    @williamowens3905 2 ปีที่แล้ว

    You need the services of the great code breaker, Jennifer Doudna. Someday, getting around will only be for those who can adapt to technology. And you will never make it without smarts.

    • @SchrodingersBox
      @SchrodingersBox  2 ปีที่แล้ว +1

      I actually met Jennifer Doudna- absolutely consider that more of a privilege than meeting a Hollywood celebrity honestly.
      And yes I agree with you. Hell it’s already that way. a wrench monkey even these days is going to be scraping by pretty much. You need these skills to survive comfortably even now much less 10 yes from now.

    • @williamowens3905
      @williamowens3905 2 ปีที่แล้ว

      @@SchrodingersBox I hear you.

  • @chrissraceporting7055
    @chrissraceporting7055 2 ปีที่แล้ว

    At 44 i have 3 discs in neck 1 t10/11 and l5s1 career end more like life ended. Can barely keep up with services

    • @SchrodingersBox
      @SchrodingersBox  2 ปีที่แล้ว

      Man sorry to hear that. jeeez…. wow.

  • @racheljames6021
    @racheljames6021 2 ปีที่แล้ว

    would it be easier to disconnect a module and look at the diffrent data?

    • @SchrodingersBox
      @SchrodingersBox  2 ปีที่แล้ว

      Oh hell that’s a fantastic idea!!!! Yeah then the module would not be putting out ID’s and I could find what they are vs when connected. Genius dude!!

  • @nathanieltatum5311
    @nathanieltatum5311 2 ปีที่แล้ว

    Hehhahahabahaa you're a damn fool with that gangster hat 👒 Bahahahah lol!

  • @nandor690
    @nandor690 2 ปีที่แล้ว

    The junk yard on Hall Street. Total street cred.

    • @SchrodingersBox
      @SchrodingersBox  2 ปีที่แล้ว +1

      HAHAHAHA THATS THE ONE!!!!!

    • @nandor690
      @nandor690 2 ปีที่แล้ว

      @@SchrodingersBox that’s cool. I thought you did mention living in st.Louis at one time.

  • @edwardhuber7864
    @edwardhuber7864 2 ปีที่แล้ว

    this was way over my head

  • @DependableAutoTruck
    @DependableAutoTruck 2 ปีที่แล้ว

    look at THE CAB BUSS GUY

  • @John76546-x
    @John76546-x 2 ปีที่แล้ว

    Matt, link to someone doing something similar and his pico scope setup. th-cam.com/video/Bc2R462dlac/w-d-xo.html Start around 25:00