Saturday, 3 January 2015

Rover MEMS 1.6 1.9 ECU Diagnostics tool


What is MEMS_Diag

MEMS_Diag is an android application designed to communicate with pre-OBD Rover engine management systems (ECU). Modular Engine Management System (MEMS 1.6 / 1.9) was used on many cars in the 1990s built by the Rover group (models equipped with different variants of K16 petrol engine)

Which MEMS versions are supported 

Currently only MEMS 1.6 and 1.9 are supported, later versions are OBD2 compliant so they're not in the scope of this project

Implemented features

- MEMS 1.6/1.9
- RealTime engine parameters (rpm, map, ignition advance, coolant temp, inlet temp, oxygen sensor, fuel trim/correction and more...)
- Retrieve and erase error codes
- Scrollable view (numerical/table display)
- Graph view (selectable parameters, multiple series)
- Data logging, csv format (full version only)

What is required

In order to use this application, the following componets are required:

- Android-enabled device (smartphone), minimum version 3.1+ (USB host access)
- USB port
- the so-called "USB OTG" cable

in addition to the above, depending on the MEMS version, you also need:

for MEMS 1.9:

- FTDI-based (FT232) 12V K-Line cable, commonly known as VAG-cable/VAG-KKL. These cables are widely available on ebay etc. Make sure it's build using the FTDI USB chip, perhaps PL2303 should also work but I haven't been able to test it. Avoid products based on CH340 chipset (reason being, there's one missing but crucial function not yet implemented in the driver)

For MEMS 1.6:

- Any USB-to-TTL converter, again, the most popular are FTDI and PL2303. Remember that MEMS 1.6 uses 5V logic (depending on the quality of the converter circuit a 3.3 V may also work)

ECU data link socket(s)

MEMS 1.9 uses a standard OBD2 16-pin connection (despite having nothing in common with OBD2 communication protocol). Usually it's located somewhere in the passenger compartment.

IMPORTANT UPDATE - Missing J1962 pin "5" (MEMS 1.9):

If the tool is unable to establish connection the the ECU, or it works intermittently, the connection is dropped as soon as the engine is started...then most likely explanation is the (in)famous missing pin issue.
Apparently, with some rover vehicles (400 1.6Si for example) there is a pin missing from the OBD SAE J1962 socket. The missing pin is No. 5 - "signal ground" and the only available "ground" signal is pin 4, see the picture below:

  (counting from right to left, 5th pin is missing)

Now, it depends on your FTDI USB cable, some of them have both pins 4&5 internally connected anyway - these are fine (usually the newer ones), while other designs require ground signal to be present on pin 5 - in this case it might be necessary to modify the cable connector by soldering both 4&5 pins together.

MEMS 1.6 on the other hand, uses a custom 3-pin connector located in the engine bay, just next to the ECU.

Pins/Signals (as seen at the MEMS side):

Pink/Black - GND (connect to USB/TTL GND)
White/Yellow - TXD (connect to USB/TTL RXD)
Black/Green - RXD (connect to USB/TTL TXD)

The diagnostic socket attached to your car ecu (engine bay) looks like the one below (male terminals):

If you don't want to connect pins directly (tricky but possible) a corresponding diagnostic plug is needed (female terminals). They are still sometimes available on ebay:
(ebay link)

(PL2303 USB/TTL + 3 pin socket TE Connectivity / AMP 172201-1)



ECU models/part numbers

So far the following ECU/Cars have been verified to work correctly:

MKC 103610 (MEMS 1.6)
MKC 101610 (MEMS 1.6)
MKC 104393 (MEMS 1.9, LandRover Freelander 1.8 Petrol 99')
MKC 104031 (MEMS 1.9, Rover 400 1.6Si - "missing pin 5")
MKC 101600 (MEMS 1.6, Rover 620Ti)
MKC 104072 (MEMS 1.9, Rover 620Ti - facelift)

Rover 800 coupe 2.0 turbo, MEMS 1.6
Lotus Elise '98, MEMS 1.9

"Lite" or Paid version ?


A lot of time has been invested to analyse and implement MEMS communication protocol, so it would be nice of you if you decide to download the paid version.

However, due to the fact there are many components (Android, USB, cabling etc) that could create some issues, preventing the application from working correctly, a free "lite" version is also available. Before going for the paid version please try the "MEMSDiag_lite" and see if it works for you.

Free/Trial version: 

Full version: 

(last edited: 2015-02-11, memsdiag (at)


  1. i need some help in getting this to work

  2. I've found a kkl bag cable that works make sure the cable you purchase is eobd2 because ur dealing with a European car

  3. Also the unknown value is the open loop fueling value so incrementing the value increase the amount of fuel and decrement obviously the opposit

  4. This comment has been removed by the author.

  5. This comment has been removed by the author.

  6. This comment has been removed by the author.

  7. This comment has been removed by the author.

  8. Also having trouble with this. When I connect everything I get the error message "USB device not found". I know the cable is OK as I have it working on some PC Software and a Terminal Emulator. The Android phone is a Cubot P9 running OS 4.2. I would rather not root it as it might brick the phone. Are there any other steps I can take to debug it ?

  9. Just to expand on this, I tried the app under the 'Andyroid' PC Emulator and I get the error message even though I had just checked everything was working OK with the Terminal Emulator.

  10. Are there any Android phones around the £50-60 mark that have been proven to work with MEMS_Diag ? I have tried 2 now with no success.

  11. what are the tuneable extra features in the paid for version please

    1. The afr ratios for the engine, idle speed and clearing fault codes

    2. - Idle RPM target speed (setpoint)
      - Fueling trim (additive trim, affects mainly idle)
      - Ignition advance trim (for mid & high load areas, where MAP pressure >= 60 kPa)
      - Return to idle decay rate (how quickly revs should drop to idle when throttle is closed)

  12. Hi,

    Does it work with my Freelander 1 (Rover engine) 2.0Di?


  13. How do you translate the error codes? I am getting bit1 error 4, bit2 no error... what does that mean?

  14. it means you have some sort error isnt it telling you what its related to, i had a coolant sensor error

  15. it seems there some unexplored options from mems diag that may be left unexplored the sometimes when im in the unknown(map,timing-what i call wot afr) tuning option it switches between 147 and another no @ times, it is really the afr ratio were changing wish i could get some more timing ttho

  16. I can´t connect, the program check the usb all is ok, but it has two error
    -ERR, no access,can´t open:usbserial.driver. FtdiSerial driver
    -ERR,coldstart: no response from ecu time_elapsed:6000
    could you help me?

  17. I get the same issue as the above, so would be interested to hear solution. Its Rover T16 - MEMs 1.6

  18. This comment has been removed by the author.

  19. Thank you so much for sharing valuable Tips...

    Avigna Diagnostics testing services provide patients accurate and diagnostically meaningful results. Avigna diagnostic is one of

    the best diagnostics center and labs in Hyderabad

    Visit for Best Diagnostics Centre

  20. Diagnostic mode lollipop android

  21. Super app.
    Just can not get it to connect, it says,
    ERR,ColdStart: no esponse from ECU [time_elapsed]:5000
    Freelander 1.8 2001, mems1.9

  22. Forgot to say, can anybody help re my last post,
    phone is Motorola G4, latest.
    cable is VAG 409.1 OBD2 KKL, VCDS-LITE FTDI from ebay

  23. Works with 1999 Mk2 MGF (MEMS 1.9).

  24. Hi, I send an email to you with some questions for answer, many thanks!

  25. hello i have a 1999 land rover freelander 1.8 petrol and i always get the message ERR.USB DEVICE NOT FOUND and i can't connect to the ECU.Can you help me please?

  26. Hello,

    The "usb device not found" could mean one of the following:

    - The phone/tablet does NOT support OTG host USB feature

    - The attached USB lead could be based on CH340/1 chip which is NOT supported. Use only the genuine FTDI-based leads.

    1. This comment has been removed by the author.

  27. Unfortunately, only the engine management ECU is supported. Neither ABS nor airbag modules. are implemented.


  28. Hey could I get support for the mems 2j Ecu?