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
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 | PassThruReadVersion | 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) |