These controls allow you to make adjustments to key parameters. If you need to adjust these parameters, it's indicative of an issue elsewhere.
Only modify these parameters if you know what you're doing!
This will not clear any faults diagnosed by MemsFCR, you'll need a book and some spanners for that.
This is useful if you have made major changes to a number of key sensors.
Coolant Sensor Fault | |
Fuel Pump Circuit Fault | |
Intake Air Sensor Fault | |
Throttle Pot. Fault | |
Time | |
80x01 RPM | |
80x03 Coolant (°C) | |
80x05 Intake Air (°C) | |
80x07 MAP (kPA) | |
80x08 Battery (V) | |
80x09 Throttle Pot. (V) | |
80x0a Idle Switch | |
80x0c Neutral Switch | |
80x0f Idle Set Point | |
80x10 Hot Idle | |
80x12 IAC Position (Steps) | |
80x13 Idle Speed Deviation | |
80x15 Ignition Adv. Offset | |
80x16 Ignition Adv. | |
80x17 Coil Time (ms) | |
80x19 Crankshaft Position |
7dx01 Ignition Switch | |
7dx02 Throttle Angle (°) | |
7dx04 Air Fuel Ratio | |
7dx06 Lambda Voltage (mV) | |
7dx07 Lambda Freq. | |
7dx08 Lambda Duty Cycle | |
7dx09 O2 Circuit Status | |
7dx0a Close Loop Active | |
7dx0b LTFT | |
7dx0c STFT | |
7dx0d Purge Valve | |
7dx0f Idle Base Position | |
7dx12 Ignition Adv.Offset | |
7dx13 Idle Speed Offset | |
7dx1f Jack Count |
The MEMS ECU supports the ability to manually test various components and sensors.
When you switch on a control you should hear the relay click or the fuel pump run for example.
The temperature gauge control is very useful in verifying that the output from the ECU is operating the temperature gauge correctly.
These components are essential to the smooth operation of the engine, these controls are only available when the engine is not running.
No faults found
Battery Voltage Low
Coil Timing High
Coolant Sensor Fault
Idle Fault when Cold
Idle Fault when Hot
Stepper Motor Control (IACV) Fault
Idle Speed Control Fault
Inlet Air Temperature Sensor Fault
MAP Reading Too High
Possible Vacuum Leak
O2 System Fault
Possible Thermostat Fault
Throttle Potentiometer Circuit Fault
Possible Crankshaft Position Sensor Fault
ECU Reaching IAC Stepper Motor Limits (Jack Count High)
The Rover Modular Engine Management System (MEMS) ECU
The Rover MEMS ECU is a sophisticated engine management system. It's principle role is to create the most optimised air / fuel mixture for the engine given the current conditions. To do this the ECU needs to know the load and environmental conditions that it uses in the complex air / fuel ratio (AFR) calculation.

The early SPI (pre-1993) is fitted with the Rover MEMS 1.3, this ECU is distinguishable from later versions as it has 2 connectors. This ECU does not support O2 System information.

Later SPI's are fitted with the Rover MEMS ECU 1.6. This version of the ECU has a single connector and provides additional data for management of the O2 System / Closed-loop operation.
Sensors used by the ECU

Crankshaft Position Sensor (CAS)
Fitted on the front left side of the engine, this sensor is used to determine the position of the engine relative to top dead centre (TDC) and to calculate the speed of the engine. This sensor is the primary signal to initiate ignition and fueling.

Air Intake Temperature Sensor (ATS)
Fitted to the underside of the air filter, this sensor reads the temperature of the air entering the inlet manifold. Whilst used as a reference in the air / fuel ratio calculation, it has no impact on fueling.

Coolant Temperature Sensor (CTS)
Fitted to the underside of the inlet manifold, this sensor reads the temperature of the coolant. Normal operating temperature is usually from 80C to 100C and is a critical value in the calculation of ignition timing and duration.

Manifold Absolute Pressure (MAP)
The MAP sensor is fitted inside the ECU and reads the inlet manifold vacuum via a vacuum pipe that runs from the inlet manifold to the ECU via a fuel trap. The fuel trap prevents vapours entering and damaging the MAP sensor. The MAP sensor is used to measure the load on the engine. Using the MAP value and the speed of the engine from the CAS, the ECU calculates the air / fuel ratio.

Oxygen (Lambda) Sensor (OS)
The MEMS injection system implements a closed-loop control system which monitors the oxygen content in the exhaust gases in order to reduce exhaust emissions. Fitted to the exhaust down pipe, this sensor is the critical component in the O2 System. The lambda sensor starts working once it reaches 300C. The lambda sensor is fitted with a heater which is switched on via a relay once the engine is running to reach this operating temperature as soon as possible. Once the sensor is at operating temperature it will read low oxygen level in a rich mixture and a high oxygen level in a lean mixture. The ECU uses these readings to adjust the fuel mixture accordingly. This adjustment happens many times a second.

Throttle Potentiometer Sensor (TPS)
The TPS is fitted to the side of the injector unit, you can see the connector and cable above the pen in the image. This sensor is used by the ECU to determine the angle of the throttle and whether the engine is idle.

Throttle Switch (TS)
Fitted on early SPI Minis only the Throttle Switch is used by the ECU to determine whether the engine is idling. On the later MEMS 1.6 ECU, the idle is determined using the Throttle Potentiometer Sensor.

Stepper Motor / Idle Air Control (IAC) Steps
The stepper motor is used to control the idle speed during normal idle and during engine warm-up by adjusting the throttle. The ECU will also use the stepper motor to adjust the idle when additional electrical load such as headlights are switched on as this can cause the engine speed to drop. The ECU drives the stepper motor via a cam, to a push rod (both are in the stepper housing lid) which acts directly on to what is called the Throttle Spindle Stop. This small round flat disc is attached, via the Idle Stop Screw, to the throttle body linkage (see pic) and therefore the throttle disc and air supply/flow into the engine. If you watch the push rod carefully when the engine is warming up, you will be able to see it moving in and out a bit. Never adjust this screw without using a diagnostic tool and follow this guide
It is important to understand that the ECU cannot read the position of the stepper motor. When you turn off the engine, you should hear an audible clicking, this is the ECU driving the stepper fully closed. It drives it for 180 steps and a few more to make sure its closed, in doing this it knows where it is, zero steps, and can then count the steps open. After it has driven the stepper full closed and before the ECU switches off, it then opens the stepper to a point determined by the engine temp, ready for the next start. The IAC Position reported by the ECU is based on this learnt position and reports the number of steps it has applied to the stepper motor.
Any reported sensor fault will cause the ECU to run the engine in limp mode and likely cause over fueling. Do not make any adjustments until the sensor fault is fixed.
Action Plan
- Clear the faults
- Switch off ignition
- Switch on ignition and check the fault codes again
- If the faults persist or after driving the car they reappear, replace the sensor / check the relevant circuit
The ECU will react to conditions based on the values it reads from the sensors fitted to the engine. The following details the behaviour and expected values.
Ignition is ON, Engine not Running
- Engine RPM 0
- MAP 100kPa (this is atmospheric pressure, e.g. no vacuum)
- Air Intake Temperature at general air temperature e.g 20C
- Lambda Voltage 435mV, not oscillating
- O2 System (Lambda Status) is Inactive (0)
- Loop is Open (Closed Loop = 0)
Ignition is ON, Engine COLD : Running and Idle
- Engine RPM 1200 and actively decreasing to 850 as the engine warms
- MAP 40kPa or less (lower is better), higher than 40kPa indicates a possible vacuum fault, 0kPA is a sensor fault
- Coolant Temperature increasing a degree every 10-15 seconds until the thermostat temperature is reached (88C). A static 60C indicates a possible fault
- Air Intake Temperature at general air temperature e.g 20C
- Lambda Voltage will rise and then gradually reduce, then start rapidly oscillating between 100mV and 900mV after 90 seconds
- O2 System (Lambda Status) is Active (1) after 90 seconds. If the lambda fails to oscillate then this value will change 0 and the ECU will enter limp home mode
Ignition is ON, Engine WARM : Running and Idle
- Engine RPM 850 +/- 10
- MAP 40kPa or less (lower is better)
- Coolant Temperature > 80C. Whilst the thermostat is 88C, the ECU determines a coolant temperature > 80C as operating temperature.
- Air Intake Temperature at general air temperature e.g 20C
- Lambda Voltage is oscillating
- O2 System (Lambda Status) is Active (1)
The oxygen monitoring system (O2 System) is critical to the fuel mixture determined by the ECU. The system relies on a working Lambda Sensor (O2 Sensor).
When the ignition is switched on, the ECU Lambda relay is energised to enable the Lambda Sensor heater. A failure in the lambda heater or the circuit will delay the start of the lambda oscillating and a failure in the O2 System.
After approximately 90 seconds the Lambda Sensor should start rapidly oscillating between 100mv and 900mV.
The ECU expects this behaviour, if the lambda voltage is a static or oscillations are slow, the ECU will determine a failure in the O2 System.
If the lambda is working correctly, the ECU will enter Closed Loop mode where it uses the lambda readings to adjust the fueling accordingly.
A Working O2 System
- Lambda Voltage oscillates rapidly between 100mV and 900mV after 90s of start
- O2 System Status is Active (O2 Lambda Status = 1) after 90s of start
- Loop is Closed (Closed Loop = 1)
- Lambda Heater relay is working, this can be tested
There are several parts to the vacuum system, namely the inlet manifold, the inlet manifold pipes and fuel trap, the vacuum rail and the carbon canister. Pressure is created in the inlet manifold when the engine is running and can be measured to determine the load and performance of the engine. A loss of vacuum pressure will result in the ECU being unable to accurately measure and adapt to engine load and lose the ability to control the rpm of the engine. In the worst case, this will result in erratic engine rpm and massive over-fuelling. The most notorious and troublesome part of this system is the inlet manifold vacuum pipes and fuel trap that run to the ECU. A break in the pipe can lead to complete loss of vacuum, however more common is a split in an elbow connector will give partial loss and over-fuelling will be the most notable symptom rather than erratic running.





A Working Vacuum System
- Manifold Absolute Pressure (MAP) is 40kPa or lower. A warm engine is likely to be in the range of 34kPA - 40kPA.
- Carbon Canister Value relay operates after the throttle has been held open at >= 2000 rpm for a period of time (30 seconds or so)
Action Plan for a Failing Vacuum System
- Check vacuum pipes for breaks, in particular check the elbow connectors for splits and are firmly attached to the pipes
- Check vacuum pipes are not pushed so far on to the fuel trap so they block the air flow.
- Check fuel trap by sealing one end with your finger and blowing into it
Action Plan for a Partial Vacuum System
In many cases the Manifold Absolute Pressure (MAP) in a partially failing system maybe just above 40kPa, probably in the range of 41kPA - 50kPA. Over-fuelling will be the most notable symptom rather than erratic running
- Follow steps for a Failing Vacuum System
- Check inlet manifold is tightened correctly
- Check vacuum pipe from inlet manifold to vacuum rail
- Check vacuum pipe to carbon canister
- Optionally replace the vacuum pipes with silicon vacuum pipes (3mm internal diameter).
Much of the information and guidance has been sourced from the community, if your images or words feature and I haven't thanked you specifically for your contribution, then thank you. I have reused guides and images as these are publicly searchable and available in various forums and doing so reinforces a single source of the truth in a web full of rumours and misinformation.
- Roger Carpenter, Classic Mini NLA: Rare & Alternative parts
- Leopold Gunther, mems-rosco
- James Portman, rovermems.com
- Colin Bourassa, memsgauge / memsreader
- The MiniForum, SPI Section, in particular the articles by Sprocket
- Black Box Solutions, FCR diagnostics
In addition, a number of organizations have been generous enough to support the development and distribution of open-source software. Thanks to:
- Jetbrains who provide IntelliJ for open-source software development
- Advanced Installer who provided the installation software for Windows distribution