Sign in to follow this  
AshleyR

ELMConfig PCM firmware read extremely slow

Recommended Posts

I'm trying to enable cruise control on my Focus Mk2.5 1.6 TDCi, and am getting extremely slow speeds doing the initial step of "Read firmware from PCM to BIN-file".

I waited until it finished reading, with ELMConfig popping up a confirmation that it took 93 minutes, at which point I decided to call it rather than risk the battery dying mid-write.

I've read that this step takes other people closer to 5 minutes, once the setup is correct, so I'm trying to figure out where I went wrong.

I'm using a Tunnelrat Modified ELM327 USB adapter, and happened to get one based on the CH340 chip. I tried using the latest CH340 drivers from the manufacturer's website (v3.5 from 2019-03-05), but they never installed correctly on my Windows 7 laptop despite several attempts, so I'm using an older version (v3.4 from 2016-09-27) which installed successfully.

I'm using ELMConfig 0.2.17c which I downloaded directly from civil-zz's website.

I've explicitly set the adapter to use 500,000bps in ELMConfig, and it confirms that setting in the window titlebar.

Is there something I'm missing or doing wrong?

 

 

Share this post


Link to post
Share on other sites
1 hour ago, DaveT70 said:

Try Forscan

I've only used FORScan for reading and resetting DTC codes so far, and that worked fine. The same goes for configuring some GEM settings with ELMConfig.

The main issue seems to be with reading (and presumably writing) the PCM's firmware. Maybe I missed it, but where can I do this in FORScan?

Share this post


Link to post
Share on other sites

You need the windows PC version with an extendexd license and an ELM327 modified USB cable, you can reset and configure all modules then, plus perform some service functions (manual DPF regen etc)

I have used both ELMconfig and Foccus and they're nowhere near as good as Forscan

Share this post


Link to post
Share on other sites

Forscan does not have the ability to read/copy and write the MK2/MK2.5 PCM firmware. 

The Elmconfig program is the only free software that can do this. 

Share this post


Link to post
Share on other sites

nasty cable....

mine did it in 15 mins, many report 40 mins

I'd be wary of a flat battery in this weather, you always need super powerful voltage stabiliser.  On latest cars they talk about 100 Amp supply for programming.  At best ensure a pretty powerful battery charger is on, and turn off lights, interior lights, heated screens, radio and blower motor 

Share this post


Link to post
Share on other sites

Tonight I tried a fast Windows 10 laptop with the latest CH340 drivers and the same Tunnelrat adapter: 115 minutes to read the PCM firmware this time.

I tried to find a way to cancel the process in ELMConfig once I realized how slow it was, but as the app warns in the pop-up at the start of the process, it disables everything in the app and the keyboard (mouse still worked, though). I was tempted to turn off the ignition or yank the cable, but decided to play it safe and let it finish. 😞

I don't have a battery charger so I'm running it off the car's battery, which has thankfully been a trooper so far. It's a big battery, but still dropped 0.4v running the electronics for so long.

I've ordered an OHP adapter off amazon, so I'll try again tomorrow after that arrives.

Could it be the PCM itself, which is a EDC16C34-2? Or could it be ELMConfig 0.2.17c? I noticed it defaults to a blocksize of 128 bytes - is this normal?

Share this post


Link to post
Share on other sites

If I remember correctly mine took something similar to what you were seeing, around the 80 odd minutes ifirc, I did mine 4 years now, and my adaptor was from tunnel rat's as well, I failed on a few attempts and on one occasion pulled the lead out halfway through writing, totally bricked my car, s*** myself.

Share this post


Link to post
Share on other sites
3 hours ago, wilto said:

I failed on a few attempts and on one occasion pulled the lead out halfway through writing, totally bricked my car, s*** myself.

I've read about your misfortunes, really hoping to avoid landing in the same situation. 😉

How did you manage to unbrick it in the end? I haven't found a complete post on how you fixed it

Share this post


Link to post
Share on other sites

only 0.4 v drop in 100 mins don't believe it.

you shouldn't attempt any of this this without some form of electrical support... (reading about voltage stabilisers yesterday and they are saying up to 120 amps these days), I guess that means you never need to worry if you left the on the lights, fan or radio during a 3 hr programming session

reading might be OK, but you'll likely get a useless file,  But writing and hoping is plain stupid

FYI min backed up a copy in 15min and wrote back the modified one in 25 mins. 

Your not trying with the engine running r u ?

 

 

Share this post


Link to post
Share on other sites

1 hour ago, Botus said:

only 0.4 v drop in 100 mins don't believe it.

you shouldn't attempt any of this this without some form of electrical support... (reading about voltage stabilisers yesterday and they are saying up to 120 amps these days), I guess that means you never need to worry if you left the on the lights, fan or radio during a 3 hr programming session

reading might be OK, but you'll likely get a useless file,  But writing and hoping is plain stupid

FYI min backed up a copy in 15min and wrote back the modified one in 25 mins. 

Your not trying with the engine running r u ?

I'm hoping to avoid spending a heap of money on a battery charger that I'm only going to use to keep the battery going while enabling cruise control. I am, after all, trying to get away with doing this cheaply. 😉

No, definitely not doing this with the engine running, but absolutely everything optional is turned off. I'm also not willing to proceed with writing until my reading times match what other people tend to experience.

 

So, the OHP adapter arrived today, and... it doesn't work with ELMConfig. 😡

On the Windows 10 laptop, FORScan picks it up in FTDI mode and can happily read the DTC codes.

On the Windows 7 laptop, FORScan picks it up in COM mode and can happily read the DTC codes.

ELMConfig can't open a connection to the adapter at all, no matter which mode or laptop I try (Yes, FORScan is closed when I try to use ELMConfig). In all cases, it pops up an error saying "Correct response from adapter timed." Usually, the request and response are both empty, as in this screenshot I took:

spacer.png

On the Windows 10 laptop, I got a slightly different error a few times, similar to this:

spacer.png

I'm desperately trying to get cruise control working by the weekend, as I'm leaving on a long road trip on Sunday. As of this morning, it's slightly more crucial, as I managed to give myself a suspected broken toe on my right foot, so driving long distance with that foot on the accelerator the whole way is gonna suck if I can't get cruise control sorted.

Any advice or leads at this point is greatly appreciated!

Share this post


Link to post
Share on other sites

What assigned COM port number does the OHP adapter have?

ELMconfig requires the assigned COM port number to be below 10. If the assigned COM port number is above 10 ELMconfig will not recognise the adapter. In this case the assigned COM port number needs to be changed to a number below 10 to make it work.

Share this post


Link to post
Share on other sites
28 minutes ago, JW1982 said:

What assigned COM port number does the OHP adapter have?

ELMconfig requires the assigned COM port number to be below 10. If the assigned COM port number is above 10 ELMconfig will not recognise the adapter. In this case the assigned COM port number needs to be changed to a number below 10 to make it work.

The OHP adapter came up as COM5 on the Windows 10 laptop, and COM4 on the Windows 7 laptop.

The Tunnelrat adapter was COM3 on both before I uninstalled its drivers in an effort to get the OHP working with ELMConfig.

Share this post


Link to post
Share on other sites
21 hours ago, AshleyR said:

How did you manage to unbrick it in the end?

I had to download a copy of the PCM "as built" data from a Russian website, by finding my PCM number listed then upload the file to my car.

Share this post


Link to post
Share on other sites

 I've copied and pasted this reply I had off @Dan P that sorted out my problems when I was having trouble, he was excellent, fair play to him.

Here are a set of instructions that I wrote for someone else (possibly @wilto)that was having difficulty with the PCM:

 

On the Information Page select “Read” in order to determine the module type (ESU-131 
in my case). 
 
Click on “Procedures” then “Page 2”
Select the PCM type as identified on the information page from the drop-down menu. 
Then select “Read firmware from PCM to BIN-file”
You will get a warning about disabling power saving and screen saver. Click OK. 
This next step may take some time and you may feel decidedly anxious whilst you wait –
I certainly did – it took 78 minutes to read the PCM. 
Then select “Load firmware from PHF/HEX/BIN-file”. 
You will get a warning about a non-empty VID block – select “No”. 
 
Click on “Configuration”
Ticked the box for “Integrated speed control”. 
 
Click on “Procedures” to switch back to the procedures page. 
Turn the ignition off. 
Switch it back on to position 2. 
Then select “Write current firmware to PCM”. I think it was at this stage that I was asked 
if I wanted to use the current configuration for the PCM – I selected “Yes”. 
This stage took about 15 minutes. 
Click on “Configuration”. 
Click on “Read from PCM”. 
Click on “Save to file” and save it to laptop. 
Check that “Integrated Speed Control” box is ticked. 
Click on “Write to PCM”. 

Share this post


Link to post
Share on other sites
1 hour ago, wilto said:

I had to download a copy of the PCM "as built" data from a Russian website, by finding my PCM number listed then upload the file to my car.

Ah, I think this is the part I hadn't seen before, as I had seen Dan P's post, though it seemed to be general instructions for enabling cruise control. By "as built" data, do you mean the stock PCM firmware for your car from civil-zz's website? (Archived copy - his site seems to be down at the moment)

Share this post


Link to post
Share on other sites

Yeh that looks like the website I downloaded it from.

Share this post


Link to post
Share on other sites

Well, several attempts later, and no luck. My toe is thankfully not broken, and I drove through to Amsterdam yesterday without cruise control, though I really do wish I'd had it working for the trip.

ELMConfig 0.2.17c is happy to write PCM configuration changes successfully, which I tried first. When I read the configuration back from the PCM, all the changes are there. Despite this, and having enabled the options in the GEM and HEC modules, cruise control does not work.

I then took the plunge, and wrote the full PCM firmware back to the car (After confirming that the 2MB firmware dumps I read on the separate two laptops were byte-identical), which took about 50 minutes with the Tunnelrat adapter. However, I didn't get any questions about which VID-block to use, no matter what I tried.

As I have a TDCi, I also tried the advice in OldLen's post to read the PCM firmware with the "Read calibration data only" checkbox ticked. I once again got a 2MB file, but ELMConfig recognizes it as being calibration only as opposed to the full firmware. I wrote this to the PCM as well, which took about 20 minutes, but again, I didn't get any VID-block related questions, and despite everything being successful, cruise control still does not work.

I tried searching specifically for people enabling cruise control on the same PCM as I have (EDC16C34-2), and I found Milosh's post where he details having the same problems as me. However, in my case, all the configuration fields seem to be correctly filled in already, including the Tire/Axle ratio.

The only exception I've discovered is that if I load my car's As Built data from the internet, it populates most of the fields but resets a few of the drop-downs to "Base calibration". When I try to write that to the PCM (after correcting those fields), I get the error "VID-block doesn't match chosen PCM type". If I load it from the internet, immediately save to a file, and load that file back in, then writing to the PCM works fine. I suspect something not visible in the UI is being loaded from the internet As Built data, but isn't being saved to or loaded from the file.

The only other result I could find for my PCM was on a non-English forum where the poster apparently managed to manually edit the relevant configuration bytes in the PCM firmware dump to enable cruise control and then wrote that back to the car. Unfortunately, they didn't seem to document how they did this, and I'd be hesitant to try the same without a very clear understanding of what I was changing.

Share this post


Link to post
Share on other sites
3 hours ago, AshleyR said:

 I found Milosh's post where he details having the same problems as me. However, in my case, all the configuration fields seem to be correctly filled in already, including the Tire/Axle ratio.

Just read his points in that post, I would think its this  " Speed Signal Source to ABS via CAN is unticked ",  without it, how's anything going to tell the car how fast its going to allow cruise to function.  Modern cars use lots of info from these sensors to do stuff.

Before I read that, I was going to suggest you set it in the button test beep mode, to see if your steering wheel buttons are communicating with the car.

 

Share this post


Link to post
Share on other sites
1 hour ago, Botus said:

Just read his points in that post, I would think its this  " Speed Signal Source to ABS via CAN is unticked ",  without it, how's anything going to tell the car how fast its going to allow cruise to function.  Modern cars use lots of info from these sensors to do stuff.

Before I read that, I was going to suggest you set it in the button test beep mode, to see if your steering wheel buttons are communicating with the car.

 

The speed source is a drop-down and is indeed set to "ABS (via CAN)", both in the current PCM configuration and the downloaded As Built configuration. As I say, all the fields in my PCM configuration are filled in with the current PCM configuration, except one of the fuel-related ones, which doesn't have an option for diesel.

I had the same thought and have done the GEM module test, with all the buttons being picked up. I even went as far as unplugging the cable to the GEM module and checking that the resistance between the two cruise control pins is correct, which they are (2,110Ω, dropping to 1,110Ω when the On button is pressed).

Searching further, I found dentex's post that shows they have the same PCM as me in a screenshot they posted. Surprisingly, their PCM configuration has "Unleaded Petrol / Base calibration" as the fuel type, which I believe is different to mine. I'll try matching their config and seeing how that works.

Share this post


Link to post
Share on other sites
15 hours ago, AshleyR said:

Searching further, I found dentex's post that shows they have the same PCM as me in a screenshot they posted. Surprisingly, their PCM configuration has "Unleaded Petrol / Base calibration" as the fuel type, which I believe is different to mine. I'll try matching their config and seeing how that works.

Sadly, I remembered incorrectly. My PCM configuration is already identical to dentex's, except for the alternator, which is 150A on my car.

I'm back to not knowing what more I can try to enable cruise control. 😞

Share this post


Link to post
Share on other sites

get someone with same set up to share their config files and open them offline and compare ?

Share this post


Link to post
Share on other sites

Milosh kindly shared his ELMConfig save files and firmware with me.

Unfortunately, I discovered that his module number is different from mine; his is a 8M51-12A650-LG for the 90PS 1.6 TDCi, while mine is a 8M51-12A650-XE for the 110PS 1.6 TDCi. This means I can't use his firmware, which does have some differences to mine, despite being the same release version.

The PCMConfig.elm save files were also handled differently. When you take an existing config, tick the cruise control box, and save it, ELMConfig changes two bytes to new values. However, the values it uses seem to be different between my config and his. It could be that I'm maybe looking at a bitfield of settings rather than individual bytes per setting, but besides that, our configs seem to be aligned.

Is it possible that my 8M51-12A650-XE doesn't support cruise control at all?

Share this post


Link to post
Share on other sites

the way I understood it (which may be wrong) is a car without cruise is lacking the software in the PCM to effectively hold the speed setting by moving the fly by wire throttle about.... you thus need to write this logic into your PCM's original map (although a few very rare cars might already have it and its just not in use as speed control is unticked in the PCM config)

as I say may be wrong....  if I was right, the 2meg engine map would thus have or could have three elements to the map,

a) the map it runs on, b) the immobiliser settings and c) an area you can write the cruise bit to... which I think is the empty vid block

so as to not mess anything up... the safest method is to make an exact copy of what's there on to your PC.... then duplicate this so you have an original spare to write back unmolested if it goes horribly wrong...

now without needing to be connected to the car, on the second copy you open it up in the EML config tool and write the cruise software into the empty vid block.... (with this part coming from the ELM calibration files you saved when setting up the tool before playing).  This then gives all three elements in the right places on a new version of your map still sitting on your laptop.   You now write all three elements to the car's PCM in one go.  With this new enhanced map on the car (so long at the HEC and the GEM have there speed control bits ticked) it would work.

reading what you have been doing confused me, as I don't get how you can take a bit off the internet and play about without messing up your specific immobiliser data that must be unique to your car

 

 

 

Share this post


Link to post
Share on other sites

My PCM, the Bosch EDC16C34-2, seems to allow writing of configuration data separately from the firmware, as ELMConfig presents no errors or warnings when writing configuration changes back to the PCM. In other words, the "Write to PCM" button on the PCM Configuration page works fine. Reading configuration from PCM successfully reflects newly written values, which indicates that the changes are being persisted, although there's not much there that I could use to test whether the changes are actually taking effect. Maybe I should try set the Vehicle Speed Limit down from 255kph to something I could reasonably reach to see if these changes are actually being used.

When simply enabling the PCM cruise control configuration option didn't work, as Milosh experienced, I tried following the firmware read-load-write process that people with other PCMs use. I did this with both the full firmware read from my car, as well as just the calibration data read from my car using the "Read calibration data only" checkbox below the "Read firmware from PCM to BIN-file" button. ELMConfig never said anything about the VID-block being empty or non-empty or asked which one to use. Everything just writes successfully, and cruise control still won't turn on, much the same as Milosh experienced. I'm not sure what dentex's experience was, but I have sent them a message to try find out more. In Milosh's case, their PCM configuration had some invalid values, so it seemed that their PCM ignored all configuration settings until everything was valid, at which point Milosh's cruise control started working.

On the PCM Configuration page in ELMConfig, there is a button to "Load from As-Built", which will use your VIN to look up your PCM's As Built configuration data from the internet (I don't know what server ELMConfig uses to retrieve this information). Again, this is configuration only, with no firmware changes. This is also the only place where ELMConfig says anything about the VID-block, in this case telling me that the As Built data it retrieves from the internet doesn't match my chosen PCM type. I'm not sure how this can be, as my PCM type is definitely set correctly.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this