Skip to content

Commit

Permalink
Merge pull request #124 from AllWashedOut/patch-1
Browse files Browse the repository at this point in the history
Strengthen Tesla VIN detection
  • Loading branch information
geohot authored Jul 31, 2018
2 parents 341e6d3 + d8fc9ff commit 5570dac
Showing 1 changed file with 4 additions and 6 deletions.
10 changes: 4 additions & 6 deletions examples/tesla_tester.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,19 +29,18 @@ def tesla_tester():

# BDY 0x248 is the MCU_commands message, which includes folding mirrors, opening the trunk, frunk, setting the cars lock state and more. For our test, we will edit the 3rd byte, which is MCU_lockRequest. 0x01 will lock, 0x02 will unlock:
print("Unlocking Tesla...")
p.can_send(0x248, "\x00\x00\x02\x00\x00\x00\x00\x00", bus_num)
p.can_send(0x248, "\x00\x00\x02\x00\x00\x00\x00\x00", body_bus_num)

#Or, we can set the first byte, MCU_frontHoodCommand + MCU_liftgateSwitch, to 0x01 to pop the frunk, or 0x04 to open/close the trunk (0x05 should open both)
print("Opening Frunk...")
p.can_send(0x248, "\x01\x00\x00\x00\x00\x00\x00\x00", bus_num)
p.can_send(0x248, "\x01\x00\x00\x00\x00\x00\x00\x00", body_bus_num)

#Back to safety...
print("Disabling output on Panda...")
p.set_safety_mode(Panda.SAFETY_NOOUTPUT)

print("Reading VIN from 0x568. This is painfully slow and can take up to 3 minutes (1 minute per message; 3 messages needed for full VIN)...")

cnt = 0
vin = {}
while True:
#Read the VIN
Expand All @@ -53,11 +52,10 @@ def tesla_tester():
vin_string = binascii.hexlify(dat)[2:] #rest of the string is the actual VIN data
vin[vin_index] = vin_string.decode("hex")
print("Got VIN index " + str(vin_index) + " data " + vin[vin_index])
cnt += 1
#if we have all 3 parts of the VIN, print it and break out of our while loop
if cnt == 3:
if 0 in vin and 1 in vin and 2 in vin:
print("VIN: " + vin[0] + vin[1] + vin[2][:3])
break

if __name__ == "__main__":
tesla_tester()
tesla_tester()

0 comments on commit 5570dac

Please sign in to comment.