PassThru (SAE J2534) DLL

SAE J2534-1 API is the “Recommended Practice for Microsoft Windows 32-Bit Application Programming Interface for Pass-Through Vehicle Reprogramming”. Vehicle manufacturers will be required to provide a Windows software application for reprogramming their model year 2004 and beyond vehicles using a J2534-1 capable interface (e.g. CarDAQ-Plus). This standard and associated EPA requirements will give all vehicle service/repair facilities, not just dealers, the ability to perform in-field ECU software updates.

In addition to reprogramming, J2534 supports diagnostics and calibration. The API provides protocol-independent functions to: read and write messages, establish periodic messages, perform filtering, and assert ECU reprogramming voltages.

Introduction to PassThru (J2534) Programming

Discovery of the DLL

Possible Error Codes

The PassThru (SAE J2534-1) v0404 specification can be purchased from SAE by clicking HERE. The following pages explain DrewTech’s implementation, and should be useful to end-users who want to program with our DLL:

Category Name Description
Setup PassThruOpen Initialize and connect to a CarDAQ
  PassThruClose Disconnect from a CarDAQ
  PassThruConnect Connect to a vehicle network
  PassThruDisconnect Disconnect from vehicle network
  PassThruIoctl Fast init sequence (ISO 9141)
  PassThruIoctl Five baud init sequence (ISO 9141)
  PassThruIoctl Report configuration parameter
  PassThruIoctl Set configuration parameter
  PassThruIoctl Add functional address (J1850PWM)
  PassThruIoctl Delete functional address (J1850PWM)
  PassThruIoctl Clear functional address table (J1850PWM)
Status Report version information
  PassThruGetLastError Describe most recent error
  PassThruIoctl Read vehicle battery voltage
Reading PassThruReadMsgs Receive network message(s)
  PassThruStartMsgFilter Apply a network message filter
  PassThruStopMsgFilter Stop a network message filter
  PassThruIoctl Halt all network message filters
  PassThruIoctl Clear receive buffer
Writing PassThruWriteMsgs Transmit network message(s)
  PassThruStartPeriodicMsg Continuously transmit message(s)
  PassThruStopPeriodicMsg Stop transmitting a message continuously
  PassThruIoctl Halt all continuous messages
  PassThruIoctl Clear transmit queue
Reflashing PassThruSetProgrammingVoltage Apply voltage on J1962 pin
  PassThruIoctl Report programming voltage
Analog PassThruIoctl Read most recent analog sample
  PassThruIoctl Read stored analog sample(s)
For any further assistance, contact our Support team via 877.888.2534 (option 3) or email Office hours are 8:30 – 6:30 EST Monday – Friday.