Introduction to PassThru (J2534) Programming

The EPA has mandated that all 2004 model cars must support the SAE J2534 standard. What is this new standard and what does it mean for you?

First, some history:

The EPA has long been interested in automobiles. In 1994, the EPA mandated that all light-duty vehicles have a standard connector for On-Board Diagnostics (OBD). The SAE (Society of Automotive Engineers) created the OBD standard, also known as ‘J1962’. This standard specifies the size, position and design of the OBD connector. Anyone can plug a device (called a scan tool) into the connector to monitor the car’s emissions and review any recent emission-related faults.

A computer in the car called the Engine Control Unit (ECU) controls the fuel injection, spark plugs and (indirectly) the car’s emissions. The software running on the ECU is called ‘firmware’ because it’s more difficult to change than normal software. One ECU can be used in many different car models with only slight changes to the ECU firmware. In fact, one car model can comply with emission laws in different countries just by modifying the firmware. Upgraded firmware can fix bugs and tighten emissions output well after a car leaves the factory.

The EPA wants more:

The EPA quickly realized that a car’s emissions are only as good as the firmware on the ECU. Until now, only auto dealers were able to upgrade the ECU firmware with tools that sometimes cost as much as the car itself. Starting with model year 2004, the EPA wants anyone (including auto repair shops and car enthusiasts) to be able to upgrade their car “for a reasonable cost.” To accomplish this, they asked SAE to create the J2534 API.

What is an API?

An API (Application Programming Interface) is a ‘rendezvous point’ between two pieces of software. For example, any Windows application (such as MS Word and Photoshop) can print to any printer. How is this possible? The application and the printer driver communicate via an API. Even though each printer has different hardware, all printer drivers ‘look the same’ to Windows applications. You are free pick any printer based on your preferences (color, size, durability, cost, speed) without worrying about software incompatibilities. In a similar vein, the J2534 API makes all “car communications” hardware look the same.

The Software

The EPA is forcing car manufacturers to release software that updates the firmware on their cars. The application must run on Windows and use the J2534 API to talk to the car. Anyone can buy this software, even individual car enthusiasts. The software must be sold ‘for a reasonable price’, which will probably be a few hundred dollars.

The Hardware

A J2534 device plugs into a cars’ OBD connector on one side, and a computer on the other side. These devices are not made by car manufacturers, but by any company that sees an opportunity. Under the hood, the device must speak a myriad of different vehicle protocols (ISO9141, J1850VPW/PWM, CAN, etc.) used by the different manufacturers. Each protocol has different voltage and timing requirements, so this is no trivial task. Fortunately, each device comes with a software driver that implements the J2534 API. Since the driver invisibly handles communication to the device, application software writers don’t have to worry about the connection details or low-level car protocols.

What’s it good for?

The combination of “reasonable cost” ECU upgrade software and competition among J2534 device manufacturers will create new markets. We predict that car repair shops and some car enthusiasts will find it profitable to charge for ECU upgrades. Imagine pulling into Midas or Jiffy Lube and learning, “Your car manufacturer recommends new ECU firmware. It will cost a few dollars, but it will help your engine run cleaner.” By purchasing the upgrade, consumers will be helping to cleanup the environment.

Here’s what this means for you

For ordinary car users, this means that your car can be fully serviced in any garage. No longer will you have to pay the dealer’s monopoly price for firmware upgrades. The latest firmware might offer better gas mileage, or just the pleasant feeling of lower emissions. It might also make ECUs cheaper, since retailers will be able to stock one ECU and reprogram it for many related car models.

For car enthusiasts, performance-enhancing firmware will get easier to install. Even better, ‘downgrading’ back to the original firmware will be easier too. A lot of the ‘enhanced’ firmware is not ‘street legal’ because it has not been EPA approved. J2534 will allow weekend warriors to upgrade their car when they race on a track, then return to regulation firmware for the Monday commute.

For car manufacturers, it means the extra hassle of writing and selling software. On the other hand, it will be easier to fix emissions problems in the future. If the EPA finds an emissions-related problem, upgrades can be made available to the consumer at their nearest car repair shop instead of recalling millions of cars back to the dealers.


J2534 is a definite a win-win situation for consumers, manufacturers, environmentalists and car enthusiasts. The EPA is using open standards and the free market to help keep cars in tip-top shape.

The EPA legislation can be found by clicking HERE.