The Lotus Cars Community banner
  • Hi there! Why not register as a user to enjoy all of the benefits of the site? You may register here. When you register, please pick a username that is non-commercial. If you use a name that appears on any search engine commercially, you must pick another name, whether it applies to you or not. Commercial usernames are for supporting vendor use only. If you want to become a supporting vendor and grow your business, please follow this link. Thanks!

How to Partially DIY Set the VIN in the ECU for your 2005 Lotus Elise

3 reading
37K views 117 replies 33 participants last post by  6TVRs+  
#1 · (Edited)
A couple people have asked so I'm posting this here for everyone in case they need to clear their CEL with trouble code P0630.

GET THIS:
BAFX Products 34t5 Bluetooth OBDII Scan Tool - https://www.amazon.com/gp/product/B005NLQAHS/

Download ElmBasic for Android. Try these commands:

# AT Set [communication] Protocol automatic
AT SP 0

# AT Set [communication] Protocol ISO 14230-4 KWP (5 baud init, 10.4 kbaud)
AT SP 4

OBD Mode 3B PID 1 works:
"3B 01 30 4C 33 31 38"

"30 4C 33 31 38" are the hex values of the VIN as follows:
######################
# get HEX value for VIN
# you'll need to use a font with fixed width for the text below.
######################
# VIN SCCPC11105HL31834
# VIN MASK SCCPC111-5H------
# ASCII 0 L31834
# ASCII 0 L 3 1 8 3 4
# HEX 30 4C 33 31 38 33 34
######################

That should set your VIN except for the last digits (3, and 4). I haven't found a way to set those yet. Regardless, you should have a valid VIN now, so you won't get the CEL anymore. It just won't match the VIN that's on the windshield.

GL.
 
#2 ·
Did anyone ever figure out how to get the last 2 digits to work?
 
#3 · (Edited)
yes.

it's the same obd mode, but pid #2. it still needs 5 data bytes, but only the first two are used by the ecu.

nfiniti posted this after the ecu did not respond to the second message, so it's existence was omitted.

in some testing instances, my car would also not respond to the second message. however, when my VIN was actually lost due to battery drain mismanagement, i applied the command and both pids work. i still don't know why the car sometimes ignored the second pid. i speculate it may be related to battery voltage during the command (obd pulls the 12V to ground to make a binary signal, so if the battery charge is low then the signal line may not recover fast enough between bits to get data through).
 
#9 ·
I was lazy and just reused the supplied hex version of the VIN. I tried a couple different combinations of inputting the values. I may trigger the code again so I can verify the EXACT commands that did the trick.

Steps:
  1. Purchase (iOS version. There is also an Android Version) https://www.amazon.com/gp/product/B078K54MT5/ref=ppx_yo_dt_b_search_asin_image?ie=UTF8&psc=1
  2. Install https://apps.apple.com/us/app/elm327-wifi-terminal-obd/id1041700672
  3. Follow instructions above

It should me a couple tries to get the correct commands but it 100% let me clear the check engine code. Highly recommend trying this out and investing in the Bluetooth ODBII reader
 
#23 ·
I was lazy and just reused the supplied hex version of the VIN. I tried a couple different combinations of inputting the values. I may trigger the code again so I can verify the EXACT commands that did the trick.

Steps:
  1. Purchase (iOS version. There is also an Android Version) https://www.amazon.com/gp/product/B078K54MT5/ref=ppx_yo_dt_b_search_asin_image?ie=UTF8&psc=1
  2. Install https://apps.apple.com/us/app/elm327-wifi-terminal-obd/id1041700672
  3. Follow instructions above

It should me a couple tries to get the correct commands but it 100% let me clear the check engine code. Highly recommend trying this out and investing in the Bluetooth ODBII reader
First let me say this thread has been really helpful, saved me a drive up to the dealer to get my inspection done for this year.

I’d really recommend using your own VIN, as a different one might lead to some problems. For example, in Texas the inspection system is pretty automated. They inspection report gets uploaded to a state database and you need a valid inspection in that database to register your car. Having the wrong VIN might lead to that upload breaking and mean you have to go register the car in person with the inspection report in hand. That’s a pain.

Also, it seems like automated systems might report ODB milage numbers, etc, to the carfax of the VIN used in the example. That could get flagged as odometer rollback, or even multiple odometer rollbacks in multiple states, and that be a huge headache for whatever poor bastard has the car with that VIN in the OP of this if it exists.

That just seems cruel 😂.

Also, getting it right is pretty easy. Here is the exact sequence I used to set my vin to L-12345:

1276275


ASCI numbers in hexadecimal are really simple, you don’t even need a tool or a lookup table, just put a 3 before the number you want to write in hex.

1, 2, 3 ... 9, 0
becomes
31, 32, 33 ... 39, 30

And the L becomes 4C, which most cars will have. All those extra 30 values in the commands are zero padding to put the other digits in the right order. Swap out 12345 in that screenshot with the last five digits of your actual VIN in the commands in that log and you’re done.

Also, in that photo above the command 09 02 prints out the VIN, so you can see L-12345 showing up in the new VIN there in the log. You can pretty easily confirm that the new VIN has been written with that command before you taje out the key and reset the trouble code.

One more tip is that the free app for iOS doesn’t have a great interface, the keyboard and log are not designed very well and you can’t always see what you are typing before you hit send.

That screenshot is from this app, which is $2.99, but has a much better interface, and has a bunch of built in commands: ‎OBD Terminal for ELM327
 
#10 ·
If you don't want to have to manually input the commands for the ELM device, I also wrote a Java program that works with a VAG com OBD cable (K- and L- lines with FTDI ft232rl microchip) to interface with the ECU. This includes the VIN update OBD command as discussed in this thread.

 
#11 ·
So I'm trying to make this work on my Elise and all I get is a "?" Response in the ELM application. I'm getting a connection, but I'm not sure how to exactly write the commands so the ECU will take them. Any help on exactly what I need to enter in the application to make it write a VIN and finally get rid of my check engine light?
 
#13 ·
So I'm trying to make this work on my Elise and all I get is a "?" Response in the ELM application.
I'm having the same issue with my 2008 Elise SP. I'm using a WI-FI version of the OBD-II tool. FWIW I purchased this one from Amazon and am using an iPhone.

The tool takes the AT SP commands correctly but only returns ? to the command "3B 01 30 4C 33 31 35". I'm sending the string with the quotation marks exactly as shown.

SCCZC11108HL31569

I'm late for my state inspection so any help is greatly appreciated. And thanks to Nfiniti for starting the thread.
 
#14 ·
the 2008+ cars use a different byte set and communicate over the CAN bus. so let the elm device auto detect the obd protocol to use (don't send the 'at sp 4' to force the incorrect key word protocol, instead use 'at sp 6' or 'at sp 7' if you want to force CAN protocol obd, otherwise the 'at sp 0' should automatically select the CAN mode), and send your vin in sets of four characters like cybernet shows in the following link:


he shows the whole can frame, including the length byte (08) and a trailing zero. I'm not sure if you have to explicitly send those (since the elm device creates the packet header and checksum in the k-line obd modes, maybe it adds some here too).

then, the command set is mode 3B and pids 01, 02, 03, and 04 in four separate commands.
 
#15 ·
the 2008+ cars use a different byte set and communicate over the CAN bus...
Thanks for the quick reply. I gave it a try but suspect I have the format wrong. I checked the link to cybernet's post and digging into the github link I see '07+ ECUs may have to be reflashed/unlocked before they will listen to commands.

In any case here's what I punched in. Maybe it needs the quotation marks? I also tried it with each line prefixed with 07 DF just in case that was required.

I have to run to an appointment but will give it another try tomorrow morning.

Thanks again for the tips.

Image
 
#18 ·
i expect that bus init errors come because the elm device auto detects the incorrect obd protocol. it is important to manually configure the iso 9141-2 protocol as a first step with a 'at sp 03' command. (this works sometimes with the 'at sp 04' command because the key word protocol uses the same 5 baud init, but this is not the correct protocol).

after the correct initialization, i think the command without quotes might work.

you can check the currently programmed VIN with a mode 9, pid 02 query (send '0902' ).
 
#19 ·
it might also be necessary to send a 'AL' command to allow messages longer than 7 bytes.

according to the data sheet for the elm device, the '?' response is returned when the input command is improperly formatted:

"?
This is the standard response for a misunderstood
command received on the RS232 input. Usually it is
due to a typing mistake, but it can also occur if you try
to do something that is not appropriate (eg. trying to do
an AT FI command if you are not set for protocol 5)."
 
#22 ·
7B 01 is the affirmative response from the ECU (the full message is [48 6B 10 7B 01 sum], but the elm device doesn't show it all to you). that should result in a different vin being programmed (except for the last two characters- those come from the mode 3B, pid 02 3B02xxxx... command). the car evaluates the mil condition upon ecu boot cycles. so, you'll need to key-off for a bit (don't pull battery power, the ecu needs time to save the parameters and shut down). I'm not sure how long to wait, but after some time, key on again and then read the vin with the mode 9 pid 02 query.

if for some reason the vin changed from the default 'sccpc11105ha30000', but the cel persists, you can try sending a mode 03/04 command set to read and clear the cel.
 
#27 ·
Trying to get the vin programmed in one of my cars and was hoping for some help. From the app I can't get anything to connect with the vehicle. Do you have to input of the commands just to establish a link with the vehicle? It just pops up a message that says something like "device not found". I have another app just for code reading and the elm device works fine with that. Hopefully this makes sense. Here is a screen shot of what I see when I try to connect with the Lotus.
1292543
 
#28 ·
Kevin, I can give you a play by play. Hit me up through FB Messenger. "Zakk Farkas", should only be one. I've got all the info saved on my phone to include screenshots. I'm only going to tell you what worked for me and many others, you don't have to trust me. With that, you'll need to purchase two apps. OBD Terminal and OBD Fusion. I'll send you all the info if you hit me up.
 
#32 ·
I have the dreaded "lost VIN" problem. I have:

BAFX Products 34t5 Bluetooth OBDII Scan Tool
ElmBasic for Android
Tourque Pro

I can pair and get to the ECU. But I can't get the ElmBasic connection to entering the codes. What am I missing? Thanks
 
#34 ·
I took a shot using the example above. After a few restarts, I got to the end >09 02 , I ran out of instructions. Do I hit enter again, wait..... I use Torque Pro should I then clear the codes (ignition with off the engine/off). Since this is not my car it's a pain to run back and forth with questions. Thanks