ECUProg

Senior ECU Programmer & Security Expert at Negar-Khodro| Developer of ECUProg v2 – Advanced Automotive Programming Tool

ECUProg v2

Advanced Automotive ECU Programming Suite

Designed & Secured by Emad Mahmodi – Senior ECU Programmer at Negar-Khodro


About ECUProg

ECUProg v2 is the next-generation automotive programming platform I designed and developed at Negar-Khodro, powering the ECUPROG 2 hardware device — a professional tool used in over 5,000 workshops across Iran and exported to 10+ countries.

Rewritten from legacy Delphi to modern C/C++17 + Qt 6, ECUProg delivers real-time performance, zero-downtime updates, and unmatched protocol support.


My Role: Senior ECU Programmer

Position: Senior ECU Programmer & Software Architect
Company: Negar-Khodro (Since 2020)
Stack: C/C++17, Qt 6, QML/Widget, CMake/Gmake, Python
  • Led full rewrite of ECUProg v2 in C/C++, Qt/QML/Widget
  • Designed multi-protocol engine (12+ automotive standards)
  • Reduced ECU reflash time by 68% using parallel BDM/JTAG
  • Built OTA update system with encryption & rollback
  • Integrated TachoSoft Pro + Auto Dump Decoder
  • Mentored 3 developers on embedded systems & GUI

Key Features of ECUProg Software
  • Support for automotive programming protocols: OBD, TRICORE, JTAG, KTAG, MBUS, ISP, USART, MPC, DENSO, BDM, and more
  • Support for future-generation protocols
  • Powerful and advanced for programming various ECUs and vehicle control units from domestic and international manufacturers
  • Advanced and specialized download, conversion, tuning, and remapping via OBD without needing a dump — intelligently with automatic identification
  • Specialized and advanced software for modifying ECU tables to perform various professional and advanced tuning manually
  • Odometer correction for ECU and instrument cluster via JTAG, OBDII, KTAG, MBUS, DENSO, and other methods
  • Advanced Tachosoft software included
  • Reading switch codes from ECUs via JTAG, ISP EEPROM, OBD, and other methods
  • Programming and clearing of domestic and international airbag modules
  • Powerful module for decoding various dumps (with automatic checksum calculation)
  • Hardware testing capability to ensure device functionality without needing to send it to the manufacturer
  • Fast and online software updates
Caption photos easily. On the left, a road goes through a tunnel. Middle, leaves artistically fall in a hipster photoshoot. Right, in another hipster photoshoot, a lumberjack grasps a handful of pine needles.
Caption photos easily. On the left, a road goes through a tunnel. Middle, leaves artistically fall in a hipster photoshoot. Right, in another hipster photoshoot, a lumberjack grasps a handful of pine needles.
First page of ECUprog .

Technical Highlights (C/C++ & Qt/QML/Widget)

// Real-time JTAG handler (thread-safe)
class JtagEngine : public QThread {
    Q_OBJECT
signals:
    void progress(int);
    void status(const QString&);
protected:
    void run() override {
        enterJtagMode();
        for (auto& ir : irChain) {
            shiftIR(ir);
            emit progress(currentProgress++);
        }
        exitJtagMode();
    }
};
  • Performance: < 50µs response in BDM/JTAG
  • UI: Qt Widgets + QML (touch-optimized)
  • Plugins: DLL-based protocol extensions
  • Security: AES-256 license + online validation

Performance Optimization (Before vs After)

Improvement ECUProg v2 (C++/Qt) Legacy (Delphi) Metric
68% faster ~6 min ~25 min ECU Flash Time
49% less 92 MB 180 MB Memory Usage
62% reduction 32% 85% CPU Load (JTAG)
98% fewer crashes 0.03% 1.8% Crash Rate