Automotive and Embedded Networks

cancel
Showing results for 
Search instead for 
Did you mean: 

Error -8053 occurred at Diagnostic Service.vi

Solved!
Go to solution

Hi everyone,

 

I'm using the Automotive Diagnostic Command Set library and I can reset an ECU but when I try to get Security access requesting a seed and sending the value that I get, I always get this error -8053 when I send the seed. It says that the key is invalid, but I'm using exactly the same that I get from Request Seed.vi Do I need  to change any gotten value? 

 

I'm sure there's communication between the PC and ECU because I can reset and get the "ECU seed". 

Thank you

0 Kudos
Message 1 of 3
(2,485 Views)
Solution
Accepted by topic author JMOsiris

@JMOsiris wrote:

 

I'm using the Automotive Diagnostic Command Set library and I can reset an ECU but when I try to get Security access requesting a seed and sending the value that I get, I always get this error -8053 when I send the seed. It says that the key is invalid, but I'm using exactly the same that I get from Request Seed.vi Do I need  to change any gotten value? 


Yes you do.  So most ECUs have to be unlocked before some operations are allowed.  This is basically telling the ECU that you are allowed to use these features.  Most of the time these are for things that might actually damage the ECU, or for reprogramming.  So to make sure that only authorized personnel get these features, the ECU manufacturer puts in a Seed and Key algorithm.  Some are simple, some are not.

 

For instance lets say that I have a 4 byte seed, and a 4 byte key.  What this means is to unlock those features of the ECU I need to request a seed, then figure out what the proper key is and send that back.  For every seed there is only one key that will unlock it.  Lets pretend the algorithm is simply a NOT operation.  This means if I ask for a seed and the device returns 0x12 34 56 78, then I must send the key of 0xED CB A9 87.  If I send anything other than this it won't unlock.  If the ECU is expecting 3 bytes and I send 4 you might get the invalid error you got.  There is usually a different negative response if the key is wrong, and then there usually is some kind of timeout on the order of 5 minutes before it allows you to try again.

 

So your next question will likely be "How do I know how many bytes to send in a key?"  And "How do I figure out the key for a specific seed?"  And the only answer I know of is to talk to the manufacturer of the ECU.  They have the algorithm, and they typically have a DLL that will generate a key from a seed.  Beyond that you can try to sniff the bus of a proper unlock and see what is sent back and forth.

0 Kudos
Message 2 of 3
(2,425 Views)

Thanks for your reply

0 Kudos
Message 3 of 3
(2,375 Views)