When Programming Failures Are Not (Entirely) Your Fault

 


Programming fault 2

 

If you are an experienced technician, you have no doubt had your share of programming mishaps, and you will no doubt have more. However, those among us who are new to the car repair industry, or those who have not had much exposure to control module programming, should know that to the unwary, this field of car repair abounds with pitfalls, rabbit holes, and room for mistakes. Lack of service information, even from official OEM resources, also contributes to programming failures, and in this article, we will discuss a programming mishap that happened as a result of an absence of service information, but let us start by saying that-

There are three kinds of programming events-

1. The first kind goes off without a hitch or trouble if you follow all recommended procedures closely, and you are using a clean power supply.

2. The second kind sometimes refuse to initiate or abort midway even if you follow recommended procedures to the letter, and you are using a clean power supply. In some cases, a second attempt will fix the problem, while in other cases, you may need to attempt the procedure multiple times before programming will complete successfully.

3. The third kind is the worst, and they usually involve used or remanufactured control modules. Used control modules often have internal faults that prevent reprogramming or updating procedures, and one often needs vehicle-specific scan tools to determine if a used module is fault-free. While remanufactured modules, on the other hand, are generally free of internal faults, their downside is that one often needs vehicle-specific scan tools and software that is only available from OEM sources to program them.

This article is a cautionary tale about the third kind of programming event, and in particular, a programming procedure that took nearly two weeks to complete, as opposed to the hour or so a simple ABS control module programming should take. In the interest of full disclosure, this writer assumed partial responsibility for the debacle but much of the blame attached to the Ford Motor Company as well, hence the title of this article- "When Programming Failures Are Not (Entirely) Your Fault.” Nonetheless, let us start this cautionary tale by stating-

The problem

The problem vehicle was a 2008 Ford F150 truck that belonged to a national transport company, and the vehicles' regular driver had reported a flashing ABS warning light. This company had been a long-standing customer, and because they followed a strict "We'll-have-it-repaired-before-you-can-drive-it-again” policy, their large fleet of vehicles had been a steady source of well-paying work for us over the years.

However, in this case, the vehicle was out of town on a delivery trip when the ABS fault occurred. According to the driver, he still had normal braking function but mindful of his employer's strict vehicle maintenance policy, he called his company to obtain permission to have the vehicle examined by the out-of-town Ford dealership. 

The short version of the subsequent events is that the Ford dealership diagnosed a failed ABS control module, and recommended its replacement. This dealership, however, did not have the correct module in stock, and obtaining one could take several days. Therefore, they also recommended the vehicle be transported back to its base, instead of the driver risking catastrophic brake failure while driving it back to base. The transport company agreed and had the vehicle delivered (on the back of a recovery truck) to this writer's premises, which is how this writer got involved in this tale.

The Ford dealership that diagnosed the defective ABS module sent their diagnostic report along with the vehicle, and when this writer used both his FORscan and IDS (Integrated Diagnostic System) scan tools to verify their findings, he had to agree that the module was beyond repair. The principal stored DTC extracted by the IDS system was C0020:11 – “ABS Pump Motor Control: Circuit Short to Ground”, for which the recommended repair is the replacement of both the ABS module and the HCU (Hydraulic Control Unit) if the fault codes returns after clearing it.

The transport company’s fleet manager accepted this second diagnosis and asked for a quote to complete the repair, and this is where the trouble began. This company does not accept mere price estimates; what they want is a firm, binding, final, and all-inclusive quotation with no hidden or unexpected costs. They want to know what they are in for regarding a repair, and bitter experience has taught this writer that changing a quotation after the fact is not possible with this company.

Thus, this writer prepared a quote based on the cost of remanufactured parts, labour to remove and install the parts, consumables, and the fact that it should not take more than about an hour to program the new module, which is something this writer had done many times before. The company’s fleet manager accepted the quotation without hesitation and instructed us to start work, which brings us to-

The start of our problems

Removing the old parts and installing their replacements went off without a hitch, so we can skip over that part, and pick up the story where the san told this writer that programming of the module had completed successfully.

The procedure took about 40 minutes, and rather pleased with himself, this writer cleared the fault code, switched off the ignition, disconnected the IDS scan tool and the clean power supply, left the ignition off for 30 seconds, and started the engine. That’s when the real trouble began.

Immediately upon starting, the ABS warning light came on and shone brightly, as if to say, "I'm back!" Somewhat in shock, this writer ran a diagnostic scan, and the IDS tool displayed code B2477-00 – Control module configuration failure”.   

The appearance of this code should not have been possible. Trouble codes relating to internal faults in the control module would have made more sense but to make sure that everything was done in the right order and that no steps were missed, this writer repeated the programming procedure. However, the ABS warning light came on again, and the B2477-00 code reappeared.  

There are, of course, many reasons why control module configurations fail, but this writer had never seen a configuration failure when a scan tool says the process had been successful. Faults like poor ground connections, an abnormal power supply, incompatible software, and even outdated software can cause failures, but these things will typically not produce a "configuration successful" message. So clearly, this was the wrong module, or the replacement module was also defective, which at first, seemed unlikely, given that the scan tool had completed the programming event successfully- or at least, said it did. 

Mentally retracing the many steps involved in the programming of the ABS module did not reveal any useful information or omissions. Comparing the order of steps as they were completed with the procedure set out in the OEM-service information similarly did not yield any useful information or ideas. Since the original control module was known to be defective, it was pointless to attempt to reprogram it to see if the programming procedure itself was somehow at fault, so the only thing to do was to compare the various part numbers of the old module with those of the replacement. It turned out that all the numbers matched, which meant that we were not dealing with an incompatible module.

By this time, it was becoming increasingly clear that the rebuilt module was defective in some mysterious way. Nonetheless, since the module had not been remanufactured by Ford, but by a known and trusted third party, a decision was made to obtain a remanufactured module from the local Ford dealership. The module arrived the next day, which was also when we started running into-

Even more trouble  

If you have not done much programming of Ford control modules you may not know that the quickest method to program a replacement module on Ford products is to use the PMI (Programmable Module Installation) functionality on the scan tool.

In essence, this method extracts all the learned values and information that makes that module work on that specific vehicle from the old module and transfers the information to the new module, much like how you transfer files and settings from one PC or laptop to another laptop or PC. If the procedure is successful, the new control module will essentially be a clone of the old module. However, that method was not available to this writer in this case because the original module was known to be defective, and the recently purchased replacement module was apparently defective as well, but in ways that were not clear or apparent.

Thus, the only option that was available to this writer was to reprogram the Ford-rebuilt module from scratch, as it were. However, to be sure that we obtained software that included all fixes, patches, and updates that applied to that specific control module and software version, we purchased a subscription to an online resource. So, suitably armed, this writer connected the scan tool to the newly installed ABS control module (after having connected a clean power supply to the vehicle) and started following the prompts on the scan tool's screen to initiate the programming procedure. However, a few seconds into the programming procedure, the scan tool produced this error message-

Control Module Configuration Aborted

The error message also informed this writer that "This module will require manual entry of configuration data", which was hugely surprising because it meant that this module had not been "pre-loaded" with its unique As-built data. If you are wondering what As-built data is, let us attempt a short explanation-

As-built data is basic programming that serves as a sort of power shell, or perhaps a coding framework into which the specific operating parameters of a specific system or component can be "loaded". In this case, the basic framework for the ABS's operation on this particular vehicle was missing, meaning that the actual coding that controlled, managed, and monitored the operation of the ABS could not be programmed into the module. The image below shows what As-built data looks like in coded form-

As-built data example

Image source: https://www.searchautoparts.com/sites/www.searchautoparts.com/files/images/ma0318-mag9---Photo---As-Built-data-file-contents.png

In practice, you don't need an IDS-level scan tool to access As-built data if it is present in a control module. FORscan-level tools can extract this data, and if you are an expert coder, you can use a simple text editor to modify the coding to change or alter some, or all of the operating parameters of the ABS. However, doing so requires making corresponding changes in all the control modules that communicate with the ABS module, because failing to do this will result in erratic or unpredictable ABS behaviour, or set a host of fault codes that cannot be cleared by any means.

By this time, we were two days into the job, and since the transport company’s fleet manager was beginning to ask when he could have his vehicle back, there was no getting around this delay but to tell him that we were still looking for information that did not appear to be available.

However, this writer had often purchased As-built data for other Ford control modules before; the process was simple- you pay your money to this official Ford resource (that is the go-to resource for Ford dealership technicians from around the world) find what you need, and download it. Only this time though, it did not work that way, so-

Here is what happened next

Symptom code info

Image source: https://www.searchautoparts.com/motorage/electrical/what-do-when-theres-no-built-vehicle-data-published?page=0,2

The red arrow on this partial screenshot says it all; this page should have contained all the specs of the ABS control module, as well as information on the calibration version of the As-built data. The page should also have shown all updates, fixes, and patches, and of course, current download instructions. Note also one of the trouble codes listed here: B2477, the presence of which always indicates an un-repairable control module. In this case, the page says that no TSB's or other technical information is available, but, most importantly, this page says that the required As-built data for the ABS control module is not available from the Ford Motor Company.

Of course, in practice, this meant that the module that Ford had supplied could not be programmed, because its code framework was not available. Programming it with software intended for 2007 or 2009 modules was out of the question, given that if it worked (which was doubtful) there was no telling how reliably or effectively, the module would communicate with other control modules- if it communicated at all.

This job was now fast turning into an unmitigated disaster because a relatively simple job that should have taken a few hours at most has taken three days. Therefore, since there was no telling how many more days it might take to resolve the issue with the missing As-built data, the only thing to do at that point was to contact Motorcraft.com with a direct request for assistance. However, an automated response told this writer that responding to such requests could take up to four business days, with no guarantees that a request for assistance would have a positive outcome. This message was, of course, Ford-speak for "We will get back to you as soon as we can, but don’t hold your breath”. This response was not good enough, so after we held our collective breath for three days without receiving a response from Motorcraft.com, we launched a team effort to find a solution and to find it quickly. Here are some details of that search and how-

Ford saved the day

Recounting all the details of the four-day long search for the missing As-built data would fill a large volume, so suffice to say that it is not true that one can find anything on the internet. This writer pulled two technicians of the floor, gave each a computer, and set them to looking for the As-built data in all the usual places that supply OEM service information. If they could not find it, they were to start combing through every single Ford-oriented forum and discussion board in the English language. If that did not work, they were to use Google's translation function to look for the data in forums and discussion forums in other languages. None of that worked though: the As-built data we wanted was not available, not even from Professional Technician Society (PTS) (formerly known as FordInstallerSupport.com), or NASTF, where we also filed a Service Information Request.  

We were now more than week into the job, and by this time, the situation with the F150 truck had progressed from being uncomfortable to difficult to unmanageable. The transport company's fleet manager was also getting more than restive; he was getting downright impatient, but he stopped short of threatening to take his business elsewhere during his most recent call. Not that that would have helped him in any way because no other workshop had access to the missing data, but at the time, we thought that the better part of valour was not to remind him of that fact.

By the end of day eight, there was still no solution in sight, short of returning the truck to the transport company, and risk losing their business. Just then, though, the phone rang, and the caller introduced himself as an engineer at Ford’s electrical engineering department in Germany.

The gist of this entirely unexpected call was that he (the engineer) had received a call from Ford's International Parts Distribution Division, who wanted to know if he could assist a non-dealer workshop that had been experiencing trouble finding As-built data for F150 truck. The non-dealer workshop, of course, being us.

Although we had left copious contact information with various suppliers of OEM service information, it was not clear who had sent out the call to Ford USA, but that was beside the point. The point was that the German engineer had what we wanted, and he would be glad to send it over via email- free of charge. All he required from us was the vehicle’s VIN to be sure he sent over the correct data. 

The call and email exchange lasted about 20 minutes, by the end of which we had a copy of the ABS control module’s As-built data. We did not get an explanation of why the data was not available through official Ford resources, though, but for obvious reasons, we did not press that particular point.

There is not much more to relate, except that we worked a bit of overtime to program the module, which took less than an hour. When we started the truck, the ABS light stayed off, and a rigorous test drive showed that the ABS worked perfectly, which leaves us with this-

Conclusion

The transport company was extremely grateful to have their truck back but not nearly as much as this writer was to receive high-level assistance from a major car manufacturer. One could argue about what motivated them to go out of their way to assist a non-dealer workshop but their motives aside, their assistance helped us get one of their products back on the road, and for that, they deserve recognition and many thanks.

Nonetheless, if you are new to the car repair industry you might have missed some or all of the lessons contained in this sorry tale, so if you did miss them, here are the short versions of the most important ones-

1. You can’t always find everything you need online, or from official OEM resources

2. Don’t be overconfident. Never assume that a job will take “X” amount of time simply because you have done similar jobs in similar amounts of time

3. Make sure you have all the information you need before you give time estimates. Refer to point #1.

4. Learn from your mistakes; we all make mistakes all the time, and how experienced one becomes depends on how much one learns from one's mistakes. Refer to points 1 & 2.

5. Don’t blame others for your mistakes. It would be easy and even tempting to place all the blame on the Ford Motor Company, but the fact is that this writer had ignored lessons 2 & 3, which makes him partly responsible for the delay in getting the truck fixed.

One final thought though: this article describes an extreme case of module programming gone wrong, but the vast majority of control module programming events typically complete successfully, and with a minimum of fuss or trouble. The only provisos are, of course, that you follow OEM procedures to the letter and that you have all the information you need before starting the programming process. The rest is plain sailing.