Skip to content

Repository files navigation

NefMoto ME7 ECU Flasher

Open-source tool for reading, writing, and tuning VW/Audi ME7 ECUs via KWP2000

Features

Communication Protocols

  • KWP2000 (ISO 14230) - Full support for diagnostic and programming operations
  • KWP1281 - Legacy protocol support for older ECUs
  • Boot Mode - Connection, ECU information reading, register access, flash read and flash write (ME7/Simos3/EDC15 variants). Layout auto-detect from device ID. Bootmode implementation is derived from C167BootTool (ME7BootTool.py)

Connection Methods

  • Slow Init - The default. More reliable across multiple environments.
  • Fast Init - Connects much faster. Use this when you know it works reliably.

ECU Operations

  • Read flash memory (full or partial)
  • Write flash memory with verification
  • Erase flash sectors
  • Read ECU identification information (KWP2000 and Bootmode)
  • Bootmode ECU information: Device ID, CPU family, system registers (SYSCON, BUSCON, ADDRSEL), memory status
  • Read and clear diagnostic trouble codes (DTCs)
  • Extended data logging
  • Memory layout validation
  • Checksum calculation and verification

Supported Hardware

  • Dumb-mode K+DCAN or KKL cable — one unit with USB-to-serial (FTDI or CH340 chipset) and K-line pass-through to the ECU (no protocol translation)
    • KWP2000 slow init and fast init (same per-bit break timing for slow init on both chipsets)
    • Bootmode
  • Legacy Ross-Tech — discontinued HEX-USB or HEX-USB+CAN only; see Requirements
  • Some clone adapters or drivers may fail slow init — enable Slow init timing log in KWP2000 settings when diagnosing connect issues

Limitations

USB Adapters (KWP2000)

  • Slow init uses per-bit break timing (not a single low-baud UART frame). Validated on ME7.1 and ME7.5 bench with FTDI and CH340.
  • Clone or poor-quality adapters may fail slow init on either chip type; Slow init timing log helps compare timing.

Bootmode

  • Use 57600 or 38400 baud for best compatibility. 9600/19200 may fail non-deterministically on CH340 cables (wrong ACKs, NAK, readback errors). Likely cause: USB latency/buffering, jitter, or voltage; not baud error. Prefer FTDI for lower bootmode baud rates. See issue #44.
  • 124800 baud should work on many different ECU/cable combinations, and most reliably on the bench. Use this for best performance once you have verified it is reliable.

Platform

  • Windows only - Requires Windows for WMI-based device enumeration (CH340 detection)

ECU Support

  • ME7.x - Primary target; full KWP2000 and bootmode support
  • ME7.5 fast init - Not supported on one bench unit after address and timing sweeps. Use slow init instead. Other ME7.5 images may differ. See docs/KWP2000.md
  • Simos 3.x / EDC15 - Bootmode support (layout auto-detect)
  • Memory layouts provided for common flash chips (29F200, 29F400, 29F800 series)
  • Some ECUs may require specific connection parameters or timing adjustments

Known Issues

See GitHub Issues for current known issues and feature requests.

Building

See BUILDING.md for build instructions.

Cutting a Release

See RELEASE.md for release instructions.

Installation

Pre-built releases are available at: https://github.com/NefMoto/NefMotoOpenSource/releases/latest

Requirements

  • Windows operating system
  • OBD-II/USB cable — either:
    • A dumb-mode K+DCAN or KKL cable: USB-to-serial with an FTDI or CH340 chipset, K-line pass-through to the ECU (no protocol translation), or
    • A legacy Ross-Tech HEX-USB or HEX-USB+CAN with Ross-Tech VCP drivers, dumb K-line pass-through, and smart mode disabled — the interface must show up in NefMoto's device list (install VCP per Ross-Tech if it does not)

Ross-Tech HEX-V2 and HEX-NET are not supported; they lack dumb K-line pass-through. Do not use KII-USB (poor pass-through).

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

See LICENSE.txt for details.

Links

Development

Developed using C# (.NET 8.0) and C166 assembly (Keil uVision) for bootstrap loaders.

About

Open source collaborative projects driven by the NefMoto.com community

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages