SmartChecker Platform Architecture
SmartChecker is an open, high-performance, professional automotive diagnostic scan tool, lab scope, bi-directional actuator tester, and ECU programmer built natively in C# / .NET 10 for Windows WPF.
Direct native implementation of SAE J1979 (OBD-II $01-$0A), ISO 14229 (UDS), SAE J1939 (Class 8 Trucks), and legacy buses (J1850 VPW/PWM, ISO 9141-2, KWP2000).
Operates with low-cost ELM327 dongles, high-speed STN/OBDLink adapters, USB, Bluetooth SPP, Wi-Fi TCP, and professional SAE J2534 Pass-Thru hardware.
Every clear, write, routine, output control, or flash operation is physically and logically gated by Safe Mode. Guaranteed return-of-control fail-safes prevent vehicle lockups.
Autonomous ASE Master L1 mechanic agent running locally via Ollama (Qwen 8B/14B) with read-only vehicle tools, offline Whisper speech-to-text, and optional Claude cloud API.
Technology Specifications
| Subsystem | Framework / Tech | Key Library / Component |
|---|---|---|
| User Interface | .NET 10 WPF | Custom Dark Automotive Styling, Hardware Acceleration |
| Hardware Bridges | Win32 P/Invoke, IPC Pipes | SmartChecker.J2534Host.exe (32-bit x86 helper) |
| Speech & Audio | Whisper.net & NAudio | Local ggml-base.en.bin model, System.Speech TTS |
| Document Retrieval | PdfPig & In-Memory BM25 | PDF text extraction, ranking engine for OEM manuals |
| Packaging & Updates | Velopack (vpk) | Self-contained win-x64 release, delta auto-updater |
Adapter Requirements & Capabilities
SmartChecker supports a wide range of hardware, but not all adapters are created equal. The features available in the software directly depend on the processing power, memory buffers, and protocols supported by your OBD-II adapter.
Feature Matrix by Adapter Type
| Feature Category | Generic ELM327 Clones (-) | OBDLink EX/MX+ & vLinker FS/MC+ (-) | J2534 pass-thru (-+) |
|---|---|---|---|
| Standard OBD-II (Emissions) | YES | YES | YES |
| Read/Clear OEM Trouble Codes | SLOW (HS-CAN only) | YES (All networks) | YES (All networks) |
| Live Data & Graphing | LIMITED (~3-5 PIDs/sec) | FAST (Up to 100 PIDs/sec) | VERY FAST (Hardware buffering) |
| Bi-Directional Tests & Actuators | NO (Often drops packets) | YES | YES |
| Medium Speed CAN (Ford MS-CAN) | NO | YES (Automatic switching) | VARIES (Adapter dependent) |
| Heavy Duty J1939 (Trucks) | NO | YES | YES |
| Module Programming / Reflash | NO (Blocked by Safe Mode) | NO (Blocked by Safe Mode) | YES (Native PassThru IPC) |
Specific Adapter Recommendations
If you are building out your toolkit, here is what we recommend based on your workflow:
1. The Sweet Spot: OBDLink EX (or vLinker FS)
Best for: 95% of users. Independent mechanics and advanced DIYers.
These wired USB adapters use the STN instruction set. They feature massive internal buffers and hardware-level ISO-TP frame packing. They can automatically switch to Ford's MS-CAN network without a manual toggle switch. They support full diagnostics, all bi-directional controls, and live data graphing at dealer-level speeds. They cannot do module flashing.
2. The Heavy Hitter: J2534 Pass-Thru Devices
Best for: Flashing modules, keys, and advanced OEM coding.
Any SAE J2534-1 pass-thru device. SmartChecker calls the vendor's own J2534 driver, and 32-bit drivers work through a built-in helper process. Programming uses the ISO 14229 reflash engine with your own calibration files (VBF/HEX/S-record/BIN). We haven't certified specific devices yet; tell us which one you use.
3. The Budget Option: vLinker MC+ or OBDLink MX+ (Bluetooth)
Best for: Quick scans without wires, test drives.
Wireless versions of the high-end chips. Excellent for reading codes, live data on road tests, and most bi-directional controls. Programming refuses to start over a wireless link, so a Bluetooth drop-out can never interrupt a reflash.
4. The Clone: Generic ELM327 "v1.5" or "v2.1"
Best for: Very basic emissions checks only.
SmartChecker includes clone-detection heuristics (identifying counterfeit PIC/STM chips). If a clone is detected, SmartChecker locks into a restricted mode to protect the vehicle. Clones frequently corrupt multi-frame ISO-TP messages and drop packets when the bus gets busy. Do not attempt serious diagnostics with these.
Hardware Communication & Transports
The transport layer abstracts low-level byte streaming across USB COM ports, Bluetooth RFCOMM, Wi-Fi TCP sockets, and virtual bus simulators.
Auto-Baud Probing Mechanism
On connection, SerialTransport.cs dynamically probes baud rates in decreasing order to discover the highest stable transfer speed:
115,200 baud -> 38,400 baud -> 57,600 baud -> 230,400 baud -> 500,000 baud -> 1,000,000 baud -> 2,000,000 baud -> 9,600 baud
Adapter Classification Tiers
| Tier | Hardware Targets | Capabilities | Reflash Authorized? |
|---|---|---|---|
GenuineSTN | OBDLink SX, EX, MX, MX+ (STN11xx, STN21xx) | High throughput, HW ISO-TP, MS-CAN switching | YES |
J2534PassThru | Any SAE J2534-1 pass-thru device | Vendor driver (32- or 64-bit), PassThru v04.04, J2534-2 pin switching | YES |
GenuineElm | ELM Electronics ELM327 v1.3 - v2.2 | Standard diagnostic speeds, limited buffers | NO |
GenericClone | PIC18F25K80, STM32 clones ("v1.5", "v2.1") | Unstable buffers, dropped frames, timing jitter | NO |
Simulator | Virtual in-process electronic ECU simulator | Synthetic bus physics, fault injection | TEST ONLY |
SAE J2534 Pass-Thru & 32-Bit IPC Helper
Professional reflash tools and OEM pass-thru adapters communicate via the SAE J2534-1 v04.04 C-API. Because most vendor drivers are distributed strictly as 32-bit DLLs, SmartChecker bridges the 64-bit .NET 10 runtime to 32-bit DLLs via an out-of-process helper.
SmartChecker.J2534Host.exe runs as an independent 32-bit child process using anonymous standard input/output pipes. Hex-encoded line commands (LOAD, CONNECT, FILTER, WRITE, READ) transfer data with microsecond latency without COM or RPC overhead.
J2534 Supported IOCTLs & Features
- Registry Auto-Discovery: Scans both 64-bit and 32-bit (
WOW6432Node) registry paths underSOFTWARE\PassThruSupport.04.04. - PE Machine Inspection: Reads the binary header of vendor DLLs to determine bitness (
IMAGE_FILE_MACHINE_I386vsAMD64). - Hardware Pin Switching: Dispatches
PassThruIoctlwithJ1962_PINS(0x030B) to switch CAN lines between Standard Pins 6 & 14 (HS-CAN) and Ford Pins 3 & 11 (MS-CAN). - Flow-Control Filter Management: Configures hardware flow control filters directly on the J2534 device to handle ISO 15765-2 frame reassembly in firmware.
Standard OBD-II Diagnostic Services
Full implementation of all 10 diagnostic modes defined by SAE J1979 and ISO 15031-5.
| Mode | Service Name | Key Capabilities |
|---|---|---|
$01 | Live Powertrain Data | Multi-PID batch requests (up to 6 PIDs per single CAN query frame). Real-time scaling. |
$02 | Freeze Frame Snapshot | Reads vehicle conditions at the instant a confirmed emissions DTC was logged. |
$03 | Stored Emissions DTCs | Reads confirmed trouble codes (SAE J2012 B, C, P, U categories). |
$04 | Clear DTCs & Reset | Erases confirmed/pending codes, freeze frames, and resets all readiness monitors. |
$06 | On-Board Monitor Tests | Appendix E unit scaling, catalyst/O2/EVAP test limits, cylinder misfire counts. |
$07 | Pending Trouble Codes | Reads codes flagged during the current or previous trip before MIL illumination. |
$08 | Bi-Directional Control | TID $01 EVAP leak test sealing for smoke machine inspection. |
$09 | Vehicle Information | VIN ($02), Calibration IDs ($04), CVN Checksums ($06), In-Use Tracking ($08/$0B). |
$0A | Permanent DTCs | Non-volatile codes that can only be cleared by the vehicle ECU passing self-tests. |
Unified Diagnostic Services (UDS / ISO 14229)
Manufacturer-level diagnostics for modern CAN networks supporting both 11-bit standard and 29-bit extended addressing.
Supported UDS Service Identifiers (SIDs)
Default ($01), Programming ($02), Extended ($03), Safety ($04).
Hard Reset ($01), Key-Off-On ($02), Soft Reset ($03).
Erases fault memory in body, chassis, and powertrain modules.
Subfunction 0x02 (by status mask), 0x04 (freeze frame), 0x06 (extended data).
Reads 16-bit DIDs (VIN, part numbers, sensor readings, As-Built data).
Seed/Key authentication negotiation for programming and coding.
Writes configuration records and calibration values.
Actuator takeover: freeze, short-term adjust, return control.
Start ($01), Stop ($02), and Poll Results ($03) for ECU self-tests.
Request Download ($34), Transfer Data ($36), Transfer Exit ($37).
Periodic keep-alive watchdog preventing diagnostic session timeout.
Heavy-Duty Diagnostics (SAE J1939)
Commercial vehicle diagnostics for Class 7/8 tractors, buses, and diesel equipment on 250 kbps 29-bit CAN.
Diagnostic Messages & Broadcast Groups
| PGN | Identifier | Description |
|---|---|---|
65226 (0xFECA) | DM1 | Active Diagnostic Trouble Codes and MIL / Amber / Red / Protect lamp states. |
65227 (0xFECB) | DM2 | Previously Active (history) Fault Codes. |
65228 (0xFECC) | DM3 | Clear Previously Active Faults. |
65235 (0xFED3) | DM11 | Clear Active Diagnostic Trouble Codes. |
61444 (0xF004) | Engine Speed & Torque | Live broadcast engine RPM and actual percent torque. |
65262 (0xFEEE) | Temperatures | Coolant temp, fuel temp, and engine oil temp. |
64966 (0xFE56) | DEF Tank Level | Diesel Exhaust Fluid level percentage. |
Bi-Directional Actuator Testing Engine
Safe, bi-directional control over cooling fans, fuel pumps, horn relays, and ABS bleed pumps with real-time watchdog loops.
Precondition Safety Verification
- EngineOff: Queries PID $0C. Blocks start if RPM exceeds 50.
- VehicleStopped: Queries PID $0D. Blocks start if speed exceeds 0 km/h.
- MinVoltage: Confirms battery voltage is above specified limit (e.g. 12.0V).
- Active Watchdog Loop: Re-measures safety conditions every 2.0s during test. Aborts instantly if vehicle moves.
- Guaranteed Return-of-Control: Always sends
$2F [DID] 00and$10 01on stop, timeout, or page change.
ECU Reflashing & Configuration Subsystem
ISO 14229 flash execution engine backed by strict pre-flight safety gates.
- Safe Mode must be turned OFF.
- Wired USB or J2534 connection required (Wireless Bluetooth/Wi-Fi blocked).
- Adapter must be Genuine STN or J2534 (Clones strictly blocked).
- Battery voltage must be between 12.4 V and 14.8 V.
- Engine must be stopped (RPM ≤ 50).
- Target ECU address must match image header address.
Reflash Execution Lifecycle
[1] Software ID Read -> [2] Extended Session ($10 03) -> [3] DTC Setting Off ($85 02)
-> [4] Programming Session ($10 02) -> [5] Security Access ($27)
-> [POINT OF NO RETURN]
-> [6] Erase Flash Routine ($31 01 FF00)
-> [7] Request Download ($34) -> Transfer Data ($36) -> Transfer Exit ($37)
-> [8] Check Dependencies ($31 01 FF01) -> [9] ECU Reset ($11 01) -> [10] Clear DTCs ($14)
AI "Head Tech" Master Mechanic
An integrated master diagnostic technician operating with an offline-first philosophy.
Connects to local Ollama instance running Qwen 2.5/3 8B or 14B models. Full zero-telemetry diagnostics.
The AI autonomously queries vehicle data (codes, live PIDs, Mode $06, recalls, manuals) to formulate evidence-based tests.
The AI cannot alter the vehicle. When code clears are needed, it dispatches a ProposedAction modal requiring technician confirmation.
Inspects photos of spark plugs, leaks, and warning lights. Transcribes hands-free technician speech via Whisper.net.
Advanced Diagnostic Telemetry Analyzers
Cross-module odometer audit (Cluster vs PCM vs ABS vs BCM). Flags mileage rollback fraud, recent code clearing, and salvage airbag deployment history.
Passive CAN bus monitor measuring inter-frame timing. Pinpoints stuck-awake modules draining the battery after key-off.
GPS/VSS speed integration (0-60 mph, 1/4 mile). Continuously compares 4-wheel ABS wheel speed sensors to detect mismatched tires (>2% variance).
Calculates Pearson correlation (r ≥ 0.97) between unknown manufacturer DIDs and known OBD PIDs to reverse engineer proprietary sensor streams.
Repair Shop Management & Knowledge Base
Complete lifecycle management for automotive repair businesses.
| Component | Data Format & Location | Key Functionality |
|---|---|---|
| Shop Store | JSON in %APPDATA%\SmartChecker\shop\ | Customers, vehicles, estimates, ROs, parts line items, invoice taxes. |
| Confirmed Fix DB | JSON in %APPDATA%\SmartChecker\fixes\ | BM25 search ranking across verified shop repairs. |
| Service Manuals | PDF / TXT / Markdown Index | PdfPig page extraction, BM25 semantic token search for TSBs. |
| 16 Guided Procedures | Interactive Service Library | EPB retract, steering angle calibration, DPF regeneration, throttle relearn. |
The 20 Specialized User Interface Pages
| Page Key | Page Name | Primary Purpose & Operations |
|---|---|---|
garage | Garage | Hardware connection manager, COM port prober, simulator preset picker. |
scan | System Scan | Full vehicle module topology scan, visual network graph, DTC clearing. |
codes | Diagnostic Codes | DTC list by severity, freeze frame inspector, AI diagnostic explanation. |
classic | Classic & Moto | OBD1 and motorcycle blink/display codes, GM ALDL datalogger, K-line bike scan, Chrysler CCD/SCI Scanner, connector guide. |
scope | Scope (experimental) | PicoScope 2000 series or demo waveforms, with a live-data strip chart. |
heavy | Heavy Duty | SAE J1939 commercial truck fault center, DM1/DM2, live PGN engine data. |
live | Live Data | High-speed multi-PID scope, vector line charts, CSV recording, triggers. |
tests | Monitors & Tests | Emissions readiness inspection verdict, Mode $06 tests, cylinder misfire counts. |
functions | Actuator Tests | Bi-directional control over cooling fans, fuel pumps, horns, and ABS pumps. |
inspection | Pre-Purchase | Used car odometer rollback audit, cross-module VIN check, crash history. |
sleep | Sleep Test | Parasitic battery drain finder, passive bus sniffer, awake module tracker. |
guides | Guided Diagnostics | Interactive symptom trees for misfires, no-starts, overheating, battery drain. |
trainer | Trainer | Apprentice training scenarios with planted faults on virtual Ford F-150. |
road | Road Test | 0-60 mph sprint timer, 1/4 mile sprint, 4-wheel ABS tire circumference check. |
service | Service Procedures | 16 guided service procedures (EPB, SAS, DPF regen, throttle relearn). |
program | Programming | ISO 14229 ECU reflashing, Ford As-Built configuration backup and comparison. |
info | Vehicle Info | Decoded VIN specs, firmware CALID/CVN checksums, open NHTSA recalls. |
reports | Reports | Customer-facing HTML health reports (Pre-Scan, Post-Scan, Inspection). |
fixes | Fix Database | Shop confirmed repair database with BM25 natural language search. |
shop | Shop Manager | Repair orders, customer management, invoicing, parts and labor tracking. |
terminal | Terminal | Low-level AT/ST command console, raw hex CAN frame sniffer and logger. |
settings | Settings | Units (Imperial/Metric), Ollama/Claude AI config, Whisper setup, updates. |
Classic Cars & Motorcycles
Pre-1996 vehicles and motorcycles that don't speak standard OBD-II. Code meanings are SmartChecker's own short descriptions; always confirm in the factory service manual.
| Tool | Vehicles | How it works |
|---|---|---|
| Blink & display codes | GM 1982–95, Ford EEC-IV, Chrysler, Toyota, Honda, Nissan; Harley-Davidson, Suzuki, Kawasaki, Honda and Yamaha bikes | Step-by-step entry into self-test. Tap a button along with the warning light (or type the codes) and SmartChecker decodes them; it adapts to your tapping rhythm. |
| GM ALDL datalogger | 1986–1995 GM with 8192-baud ALDL | Live data and codes through an ALDL-to-USB cable. Import a TunerPro .adx definition you own; CSV logging; clear codes (license). |
| K-line bike scan | Motorcycles and older cars on ISO 14230 | Finds the module address on the bike itself, then reads and clears codes with the standard ISO 14230 services through an ELM327/OBDLink adapter. |
| Chrysler CCD/SCI | 1983–2003 Chrysler, Dodge, Jeep | Works with the open-source Chrysler CCD/SCI Scanner hardware: listen to the CCD body bus and send raw SCI bytes. |
| Euro 5 motorcycles | 2020+ EU bikes (ISO 19689 connector) | Standard OBD through an adapter cable: connect normally. |
Experimental: DoIP, CAN FD and Scope
Built to the published standards but not yet proven on every vehicle and interface. Turn them on in Settings → Experimental features.
| Feature | Standard | Notes |
|---|---|---|
| DoIP (Ethernet) | ISO 13400-2 | Vehicle discovery, routing activation and UDS through a DoIP cable on the PC's network port. |
| CAN FD | SAE J2534-2 | 500 kbps / 2 Mbps on J2534 devices that support CAN FD; falls back to classic CAN automatically. |
| Scope | PicoScope 2000 (A API) | Install Pico's free PicoSDK. A demo scope works without hardware. |
| Seed/key plug-ins | ISO 14229 $27 | No manufacturer algorithms are included. Shops entitled to one can add it with the plug-in SDK. |
Licenses & Accounts
Every license is a lifetime license for SmartChecker 2.x. Without a license, SmartChecker reads codes, live data and reports on any vehicle and runs everything on the built-in demo vehicles.
| Tier | PCs | Moving to a new PC |
|---|---|---|
| Mobile Tech ($150) | 1 | Once every 6 months (free within 48 hours of activating) |
| Hardware Starter Bundle ($219) | 1, plus a USB adapter | Once every 6 months |
| Pro Shop ($349) | 3, with tech accounts | Unlimited. Includes shared customers, repair orders and Fix Log, and branded reports. |
Activate in Settings → License (online, or offline with a request code and a license file from your account). Manage PCs, keys and your shop on the website.
System Safety Architecture & Guardrail Matrix
SmartChecker incorporates multi-layered defense-in-depth safety systems designed to prevent personal injury and vehicle damage.
Master toggle in the header. When enabled, absolutely zero write, clear, or control frames are dispatched. Intercepts at the session API level.
Prevents closing the application window or disconnecting the adapter while an ECU reflash is in progress, preventing corrupt bootloaders.
Bi-directional actuator tests continuously sample vehicle speed and engine state; tests abort instantly if the vehicle begins moving.
Cloud AI API keys are encrypted using Windows Data Protection API (DPAPI) tied to the current Windows user. Keys are never stored in plain text.
Before a test takes control of an output, SmartChecker saves how to hand it back. If the adapter is unplugged or the app closes, control is returned on the next connection. Tests also stop below 11 V.
Cheap ELM327 clones can't run module tests. Reflashing needs the technician to type AGREE, confirming a battery maintainer is connected.