Issue: Diagnosing and repairing issues requiring module programming or reprogramming
Vehicles: All 2004 and newer
Tools used:
- Scan tool
- Vehicle information
- Battery maintainer
- J2534 programming tool
Ever since CAN networks were installed on vehicles there has been a need to perform a more complete diagnosis when issues arise. Because networks rely on module-to-module communication, or sensor data shared by multiple modules, they require a complete diagnosis of the communication network. Once the functionality of the communication network has been verified, you can proceed with performing diagnostic tests on the system having the issue.
Network communication is the key to maintaining the ability of each vehicle system to function.
Let’s compare a vehicle network communication system to a printer at your home office. If the printer is connected to your Wi-Fi, then any device also connected can print a document. If you replace your cell phone and want it to print, you must first introduce the new phone to the network and make sure it has the ability to be recognized. Additionally, if the software on your phone is not compatible, or does not function as it should with other devices in the network, the software on the phone will need to be programmed, or updated, to work properly.
A vehicle network works in the same manner, it must have communication and the proper functionality of each component. If a component is not working properly, the software or the component, and in some cases both, must be changed.
A little history
In order to maintain emission compliance after vehicles were out of warranty, a way for independent automotive shops to change vehicle operating software was necessary. In order to accomplish this, J2534 was enacted to create a standard that required vehicle manufacturers to make a universal pass-through communication system available to the automotive aftermarket on all light duty vehicles starting with the 2004 model year. J2534 defines how the pass-through device, the OEM application, and the vehicle communicate.
Since the initial introduction to the J2534 standard, there have been some updates:
- J2534-1 is a mandatory requirement for vehicle manufacturers to make emission calibrations available to the aftermarket. (Written by SAE in 2004)
- J2534-2 is voluntary for vehicle manufacturers to make non-emission calibrations and dealer diagnostics available to the aftermarket. (Written by SAE in 2006)
- J2534-3 is a verification test to assure tool and vehicle manufacturers are complying with J2534-1. (Written by SAE in 2008)
- J2534-4 is the newest standard; starting for model year 2018, vehicle OEMs are required to make available the diagnostic and repair information for their vehicles. This also includes the ability to program all modules on the vehicle using a J2534 pass-through device. Some vehicle manufacturers are indicating they will make this retroactive for older models. (Written by SAE in 2013)
Well documented and discussed in many articles is a list of equipment and processes necessary to program vehicles. This list includes a laptop computer, a J2534 device, a battery maintainer, and access to the OE website to obtain the program files.
One thing that has not been discussed as much, and is becoming more of a requirement to perform reprogramming, is the ability to access some sensitive vehicle data without being properly licensed. Most vehicle manufacturers are now securing sensitive vehicle information, such as key codes, immobilizer resets, and PIN codes, in secure areas on their website (See Fig. 1). To completely program some modules, it will be necessary to access this information. Unfortunately, there are steps you will need to take prior to being allowed to download the information.
Most manufacturers require you to be registered as a Vehicle Security Professional (VSP), and supply a Locksmith Identification Number (LSID). There will be a fee, and a background check necessary to obtain your LSID. The information and application can be found at NASTF.org (See Fig. 2). All of this is required to ensure that your customer’s vehicles are safe and secure from theft. Once you have these credentials you will be able to obtain the necessary programming files from any vehicle manufacturer.
Step 1: Completely diagnose the vehicle
One of the first things you need to do is perform a complete diagnosis. This starts with determining what conditions are present, and interviewing the customer to see if any repairs or other factors that may have affected the vehicle operation have occurred.
Armed with this information, use your scan tool to check for codes, obtain freeze frame data and possibly use bi-directional controls to activate a component while you are monitoring a system.
Using bi-directional controls and monitoring sensor data can be very useful. For instance, observing upstream oxygen sensor data and controlling the purge solenoid can tell you if the EVAP system is functioning or not.
Observing freeze frame data can be useful to determine how and when the system recognized the issue. It can also provide you with the information on how to duplicate the circumstances that caused the failure so you can operate the vehicle in the same fashion to verify the repair was successful.
Testing and recording essentials like source and charging system voltages, engine vacuum, and fluid condition and levels should not be overlooked.
Step 2: Obtain vehicle information
Once you have your preliminary diagnosis, you need to obtain information on what could have caused the condition, or more information describing additional tests that will need to be performed. There is no substitute for having correct and up-to-date information for the vehicle you are diagnosing and repairing. Valid information can come from multiple sources, and in my opinion, you can never have too much information. Sources can include OE subscriptions; aftermarket providers such as Mitchell 1, ALLDATA and Identifix; or network sites such as IATN, where you can research issues other technicians have experienced with similar vehicles.
Having access to multiple sources of information can assist you in finding, diagnosing and repairing issues as well. TSB and programming information is also necessary for today’s vehicles. Most aftermarket sources provide very good and up-to-date TSB information, but up-to-the-minute programming information is necessary from the OE. This can be obtained from NASTF.org, or OEM1stop.com. Both of these sites will provide quick links to the OE websites where you can obtain data for programming and initiating modules, along with programming equipment requirements specific to the vehicle manufacturer.
Step 3: Repair the vehicle
Once you have completely diagnosed the vehicle, it is time to replace whatever parts are required to repair the system. After this is done, it may be necessary to program a module if it was replaced, or reprogram an existing module with the operating specifications of the new part.
If you utilized a TSB to perform the repair, and it lists a replacement part and a reprogram of the software, it is likely the component operates differently and it, or other parts in the system, will need to respond differently to the onboard computer. In many cases if a TSB lists a specific replacement part, aftermarket replacement parts may not work properly and should be avoided.
Step 4: Reprogram the module
The first step in programming after performing your diagnosis and making any mechanical repairs, is to fully charge the vehicle battery and hook up a battery maintainer to the vehicle’s battery. A battery maintainer will provide clean power with no voltage spikes, which many battery chargers are not able to do. Consistent power is required throughout the entire programming process because it will be necessary to have the key on and the modules powered up for the programming to occur.
You will next need to obtain the program files from the vehicle manufacturer’s website. The files will be downloaded to your laptop using the J2534 device. Once the files are loaded onto your laptop, they will be uploaded to the vehicle through the J2534 tool. This process can take anywhere from five minutes to several hours, depending on the vehicle and module, or modules, you are programming. If the vehicle just requires a quick rewrite of one file it can be very quick. But, if a complete rewrite of several modules is required, as well as rewriting files and interactions of other modules, it can take some time.
During the programming event, you may be directed to remove a fuse, or a module. These steps are necessary to completely program the module. Remember, there are no shortcuts when it comes to programming, so make sure to follow any steps called out in a TSB or in the program files.
Once modules have been programmed, it may be necessary to configure some data into the PCM. Items such as tire size, VIN and mileage may be required.
Case study: 2005 Dodge Ram 1500 5.7L with a check engine light illuminated, with the customer indicating that it had been an intermittent issue.
- Scan tool
- Vehicle information
- DMM
- Lab scope
- High-pressure smoke tester
- Battery maintainer
- J2534 programming tool
Step 1: Diagnose the issue
Scanned tests showed current codes P0420 and P0430 indicated issues with either the catalytic converter or the downstream oxygen sensors. Scanning the datastream showed normal readings and correlations of the front and rear oxygen sensors. All four sensors were scanned using a lab scope, with no apparent issues noted (See Fig. 3).
If our tests did not show the front and rear sensors switching at the same rate, indicating a faulty catalytic converter, the chances were that it was either a sensor issue, or possibly an exhaust leak. We used a high-pressure smoke tester to test for exhaust leaks and found none.
Step 2: Obtain vehicle information
We used Identifix to obtain information regarding the system and the parameters for setting the fault codes. Using this information, tests were performed to determine if the condition currently existed, which it did not. Further research showed a TSB that indicated there was an updated rear oxygen sensor and an updated program for its operation (See Fig. 4).
Since we were not experiencing the issue now, and there were no indications the catalytic converter or oxygen sensors were faulty, we checked to make sure all of the requirements for the vehicle met the requirements for the programming TSB. The VIN and production dates matched the TSB along with the current part numbers of the existing oxygen sensors and PCM.
Step 3: Repair the vehicle
We replaced the oxygen sensors with the part numbers called out in the TSB (See Fig. 5). We then went through the programming sequence using a J2534 programming tool. Also called out in the TSB was to affix a label indicating the vehicle had an update. Affixing labels is becoming more common, and it is advised even if it is not required by the OE.
After the program was installed the vehicle was driven under the conditions that were obtained from the freeze frame data stored when the codes were set. After the vehicle was driven, the vehicle was re-scanned paying close attention to the oxygen sensor data. Along with observing the data, Mode $06 was used to verify both the oxygen sensor and catalytic converter efficiency tests had passed.
Since programming modules has become more commonplace, having a way to perform this task is necessary. Let’s be honest, module programming here to stay. The sooner you start programming, the more opportunities you will have to gain experience and make money.
About the Author

Barry Hoyland
Barry Hoyland has been in the independent aftermarket for more than 45 years as a technician, technician instructor, shop owner, and shop management consultant. He owned and operated a successful Southern California automotive repair center that offers complete auto care and specialized in emission and diagnostic services for over 28 years. Hoyland also owned a company that modified vehicles to perform as emergency response units and mobile command centers, incorporating high-end electronic components into today’s vehicles. Hoyland has experience with all size and types of vehicles including traditional gas, hybrid electric, alternative fuel, and heavy duty diesel trucks.
Hoyland has provided consulting services for many automotive shops, fleets, and government agencies in order to improve their operational efficiencies.
In addition, he has worked with many NHRA drag racing teams as a crew chief on supercharged alcohol and nitro-methane fueled cars and currently serves as a crew chief on a Top Alcohol Funny Car, a Nostalgia Funny Car, and a Nostalgia Alcohol Dragster
Hoyland holds certifications in ASE: A1, A6, A8, and L1, MACS 609, maintains a California Advanced Emission license, and a CDL with endorsements for double and triple trailers, tankers, and HazMat.
When he is not helping to run a shop in the Pacific Northwest, Hoyland travels across the U.S. as an instructor of technical and shop management courses, many of which he has developed.