How to disable the Mazda i-stop system

Introduction

Mazdas i-stop system stops the engine when the car is not moving. It’s a clever and well engineered “hack” to get better results on the emission tests.

When the system decides to stop the engine, the pistons are stopped at a very specific position. This makes it possible to restart a gasoline engine without using the starter motor.

For a diesel engine, the starter motor is used, and Mazdas official explanation is a bit “fuzzy”:

Unlike gasoline engines, which use a spark plug to ignite the air-fuel mixture, diesel engines compress the mixture until it spontaneously combusts. Therefore, to restart a diesel engine, sufficient compression is required.

While conventional diesel engine idling stop systems require two engine cycles to restart, Mazda’s unique i-stop needs just one cycle, thanks to its precise control of the piston positions.

According to Mazda, the gasoline engine is restarted in 0.35 seconds, the diesel engine in 0.40 seconds. Mazda calls these measurements “internal measurement on vehicles with automatic transmission”, meaning that they should be taken with a grain of salt.

The real numbers are higher, especially for diesel engines.

The i-stop system is enabled by default. It has to be deactivated on every trip.

This project shows you how to use a micro controller to create an “i-stop disabler” or “anti i-stop” device that turns the i-stop system off when the engine is started.

Perfboard and cable



Table of contents

Other ways to disable the i-stop system

There is a number of creative suggestions around the web for disabling the i-stop system. Some are quite crude, and others have side effects.

Using brake pedal pressure

Learn to control the i-stop activation by applying the correct brake pressure.

If you press hard on the brake pedal, the i-stop system activates. Light pressure keeps the engine running.

The “after engine start” checklist hack

Just like airline pilots have checklists for everything, make your own routine of always remembering to disable the i-stop system manually.

The hood switch hack

There is a switch in the engine compartment used to detect if the hood is open or closed. Disabling this switch “tricks” the car into thinking the hood is open, disabling the i-stop system.

This hack makes it impossible to activate the i-stop system without opening the hood and enabling the switch.

Note! Disabling this switch could interfere with the cars alarm system.

The paper hack

Wedge a piece of paper into the i-stop button, pressing it in permanently.

This approach works, but has one big drawback. Three of the buttons in the cluster switch stops working.

The OBDII hack

Write some magic values to the cars computer using the OBDII port. This might work if you know what you’re doing, but seems risky.

Micro controller based solution

Using a micro controller to simulate pressing the i-stop button seems like the best option.

The goals for the project are:

Similar projects

A German guy has already made a micro controller solution, which I didn’t like for several reasons:

How the cluster switch works

The cluster switch (part number GMJ8-66-170) has five buttons in the front, and a 10 pin connector at the back.

Mazda i-stop cluster switch front Mazda i-stop cluster switch back

Two of the ten pins are used to detect which of the five buttons that are pressed.

This observation is confirmed by looking at the Mazda repair manual.

Mazda i-stop cluster switch wiring

Since the buttons are arranged in series with six resistors, it’s not possible to detect if two buttons are pressed simultaneously, which is the drawback of the paper hack.

When the i-stop button is pressed, the resistance between terminals C and B should be 83.66-85.34 ohm.

Measuring the circuit with a multimeter confirms the information in the repair manual.

Pin Usage
I Ground for the leds/back light
G Unused
E Unknown
C Button resistors
A Unused
   
J +12v for the leds/back light
H Unused
F Unknown
D Unknown
B Button resistors

Inside the cluster switch is a circuit board labeled ALPS AJM971172A.

Mazda i-stop cluster switch PCB front Mazda i-stop cluster switch PCB back

How the micro controller works

A micro controller is just a cheap, simplified and slow computer. A small program is uploaded to the micro controller. When the micro controller is powered on, it just starts running the program that was uploaded to it.

The micro controller (attiny85) is on a small board called “trinket”. The trinket board has a voltage regulator (5.5-16V) and USB plug for uploading code. More technical details about the trinket can be found here.

Adafruit trinket Adafruit trinket

The micro controller is powered from the ignition (IGN in the schematic), through a fuse tap from the cigarette socket fuse. It “hooks” into the cluster switch through a pair of 10 pin OEM connectors, and sits between the cluster switch box and the wiring harness.

When the engine starts, the micro controller activates a small relay simulating an i-stop button press. After the button press has been simulated, the micro controller goes to sleep. When the engine is stopped, the micro controller is powered off, and the cycle repeats the next time the car is started.

How to build

This is a simple and fun project to build, provided you have the necessary tools, some basic electronics skills and a little experience with Arduino compatible micro controllers.

Schematic

The circuit consists of only four components:

Important notes!
ECU TERMINAL#C -----------------------------+
                                            |
CLUSTER SWITCH TERMINAL#C -------------- +  |
                                         |  |
    +-------------------------------+    |  |
    |  IGN                          |    |  |
    |   |             +=========+   |    |  |
    |   +------- BAT--‖         ‖   |    |  |
    |----------- GND--‖ TRINKET ‖   |    |  |
    |                 ‖   5V    ‖   |    |  |
GND-+       +--- PIN3-‖         ‖   |    |  |
            |         ‖         ‖   |    |  |
            |         +=========+   |    |  |
            |                       |    |  |
            |               +-------+    |  |  +--------+
            |               |       |    |  |  |        |
            |               |    +================+     |
            |             +---+  ‖  8    7  6  5  ‖   +---+
            |             | | |  ‖        |\   |  ‖   | Z |
            |      1N4007 | V |  ‖  RELAY DPDT    ‖   | Z | 85 OHM
            |      DIODE  | ‾ |  ‖        |/   |  ‖   | Z | RESISTOR
            |             | | |  ‖  1    2  3  4  ‖   | Z |
            |             +---+  +================+   +---+
            |               |       |    |  |  |        |
            |               +-------+    |  |  +--------+
            |                       |    |  |
            +-----------------------+    |  |
                                         |  |
CLUSTER SWITCH TERMINAL#B ---------------+  |
                                            |
ECU TERMINAL#B -----------------------------+

If the micro controller is not powered, the i-stop button works as if the modification was not installed. When the relay is not energized, the relay pins 2+3 and 7+6 are connected.

Relay schematic

So to temporarily disable this modification, just remove the power to the micro controller (IGN in the schematic).

While the relay is energized, none of the buttons in the cluster switch will work.

Bill of materials (BOM)

A list of all the parts needed to complete the build.

Amount Description
1 Adafruit trinket 5V
1 Piece of perfboard
1 DPDT signal relay
1 1N4007 diode
1 85 ohm resistor
2x4 Male headers
2x4 Female headers
10 x 30 cm 0.35 mm wire, ideally 10 different colors      
1 Sumitomo 10 pin male housing 6098-3869
1 Sumitomo 10 pin female housing 6098-3909
10 Sumitomo male terminals 8100-3624
10 Sumitomo female terminals 8100-3622
4 Zip ties
1 Fuse tap
1 1A blade fuse
1 Heat shrink tubing

Notes:

Source code

The code running on the micro controller is quite simple.

When the micro controller is powered on, it activates the relay for 2.5 seconds to simulate pressing the i-stop button, and then goes to sleep.

#include <avr/sleep.h>

const int RELAY_PIN=3;

void setup() {
  pinMode(RELAY_PIN, OUTPUT);
}

void loop() {
    digitalWrite(RELAY_PIN, HIGH); 
    delay(2500);
    digitalWrite(RELAY_PIN, LOW); 

    while(true){
        set_sleep_mode(SLEEP_MODE_PWR_DOWN);
        sleep_enable();
        sleep_cpu();

        delay(4294967295L);
    }
}

Take a look at Adafruits guide on how to upload the code to the trinket board.

Assembly

Some tips:

The pictures below shows just one of many ways to build this project.

Perfboard side view Perfboard front view

The trinket is attached to the perfboard via header pins, allowing easy removal when programming it via USB. Yellow wire is IGN, black is GND.

Perfboard underside view Perfboard and cable connected to cluster switch Perfboard and cable Perfboard heat shrunk to cable

Verification/testing

It’s a good idea to verify that everything is wired correctly before installation.

Installation

DISCLAIMER:

This modification is installed at your own risk! It works in my European 2015 Mazda 6, but I can’t give you any guarantee that it will work on your Mazda. Use the information provided here to figure out how the modification works, and then decide if you want to add it to your vehicle.

Follow the repair manual instructions on how to remove the cluster switch.

An alternative approach is to remove the coin tray below the cluster switch. This apporach works, but it’s very fiddly to remove the cover behind the coin tray. It’s quicker to just follow the repair manual instructions.

It’s also a good idea to invest in a set of plastic panel removal tools before starting the installation.

car panel removal tools

FAQ

Where do I buy the Sumitomo 10 pin OEM connectors?

The 10 pin Sumitomo connectors are difficult to source. Finding a supplier is not easy, and most are not willing to sell in small quantities.

I sell the connectors for $25, including shipping. I get $5 in profit per connector, which should cover the time I spend packing and shipping, and the expenses I’ve had researching this project (~$400).

All sold out, sorry..

Buying automotive OEM connectors in small quantities is expensive. And import taxes and shipping adds to the cost.

Finding the correct connectors took a lot of time and some money, so I have done you a huge favor by supplying the part numbers in the BOM. So you have the option of buying them somewhere else.

Known limitations?

Won’t work if just the ignition is turned on, and the engine is started later. As soon as the micro controller is powered on, it assumes that the engine has been started.

It’s possible to detect if the engine is actually running, but I have not found a way to do this without adding a significant amount of complexity.

Which Mazda models does this modification work on?

So far it’s been installed in an European 2015 Mazda 6 2.2 AWD.

Send me an email (address at the bottom) if you have successfully installed this in your vehicle.

Can I use a different relay?

Yes, but the trinket can only deliver 20 mA of current on a pin. The relay in the BOM draws only 10 mA, is really small, quiet and makes the whole assembly compact.

Most relays draws more than than 20 mA, so you need a transistor to switch it on. The transistor must also have resistor in front of it. And you might need a different flyback diode.

This adds two extra parts to the build, and complicates the wiring and soldering.

Will the relay wear out?

A relay has moving parts. When it’s energized, a magnet moves a pair of contacts which makes an audible click. Eventually, the relay will wear out.

According to the relay data sheet, it’s good for 10⁸ operations, or 100 million operations.

If you start your car 100 times every day, the relay will wear out after ~270 years. In other words, it will outlive your car.

Will it void my warranty?

This modification can be removed without leaving any traces, it would be hard for the dealer to prove that you have done anything wrong.

How much does it cost to build?

Provided you already have the necessary tools, somewhere between $30 and $90, depending on where you source the parts.

It’s possible to build this using cheaper/other parts, but I’m not an electronics expert. I just wanted something that was quick and easy to put together.

Questions, comments or suggestions?

If you have any questions, comments or suggestions, please drop me an email at:

[email protected]

Please note that I don’t have the time to “hold your hand” and walk you through this project step by step.