.. _ecu_reprogramming: ECU Reprogramming ========================== Putting the ECU in programming mode ----------------------------------- Several methods exist for putting the ECU into reprogramming mode, depending on the pre-existing application software. 1. If the application includes a **CCP Configuration** block, use a CCP tool to send a reprogramming command. 2. If those blocks are absent, use the :ref:`FEPS ` pin for reprogramming. 3. Applications with a **CCP Inhibit Reprogramming** block may need specific conditions met for reprogramming through CCP. Bypass with :ref:`FEPS ` if needed. 4. For software errors that don't trigger the excessive reset handler, use :ref:`FEPS ` to force reprogramming. .. note:: - Positive :ref:`FEPS ` uses application-specific CAN settings. - Negative :ref:`FEPS ` uses default CCP settings. - See :ref:`Dead ECU ` if ECU doesn't respond. Large vs. Small Image Files --------------------------- - The small image targets only the ECU memory used by the application. - The large image fills unused memory with 0xFF. .. note:: Use the small image file to avoid checksum errors during reprogramming. Programming Tools ----------------- OpenECU supports reprogramming via CCP with various tools. The user guide outlines setup for each tool, and each tool uses a unique .a2l file format. - **OpenECU Calibrator** - ASAP2 File: `_generic.a2l` - ATI Vision - ASAP2 File: `_vision.a2l` - Vector CANape - ASAP2 File: `_canape.a2l` - Edit .a2l settings if using the Large image. - ETAS INCA (deprecated) - ASAP2 File: `_inca.a2l` Tested with INCA v7.1.9; other versions may work. .. image:: ecu_reprogramming_img1.png Running the Application ----------------------- After programming, power-cycle the ECU to exit reprogramming mode. .. note:: OpenECU intentionally stays in reprogramming mode to reduce risks.