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?

    1. Мне тоже интересно, что значат эти bit

  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.

  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?

  29. HI, what is the meaning of IdleError?
    Is it an error code.?
    Thanks in advance

    1. No, it's not an error code. I can't remember if we got to the bottom of what it is: it's quite a while since I looked at it and I've had no reason to go back to it. I think it's an insignificant parameter. But it would be interesting to tie up those 3 idle parameters, just for intetest's sake. Certainly, you don't need to worry about it.


  30. HI, what is the meaning of IdleError?
    Is it an error code.?
    Thanks in advance

  31. I am getting the "ERR, USB device not found"
    Lenovo Tab3, Lollipop 5.0.1
    USB OTG (Hosting on, checked on USB Host Controller and with several USB peripherals)
    VAG KKL 409.1 with FTDI - Red LED on, lead working between VAG car & laptop
    But no connection between MEMS Diag Lite and my 1998 Mems 1.9.
    Any help appreciated!

  32. Update: New FT232 lead obtained - now connecting but with:
    +OK, Starting initECU...
    +OK, starting wake up ECU...
    -ERR,Coldstart: no response from ECU [time_elapsed]:5000

    Repeated pushes of "Connect" yields a toggle between "-ERR,Coldstart" & "ERR,Warmstart"

    Any ideas?

    1. No real ideas except to adk if you're confident it's nothing to do with the missing pin 5, that Pawel mentions on this page? Also, just a wild thought, can you also test it on a device known to work such as a Samsung phone to see if you get the same response?

    2. Was there any solution to this problem as I have exactly the same thing Samsung phone with new lead. Connects to lead fine but lead can't connect to Mems. Checked pin 5 connected pin 4 on the new lead so definitely not that. Any ideas?

    3. I'm getting the same error, warm start issue on the lite version. Need to get connected before I buy the full version.

  33. Hi
    Thanks for the software. It works perfectly with my lotus elise mk1.

    I have an error data " Status byte 1 : Bit, 4: State: ERROR_PRESENT". What does that mean?

    I have some problems with my lambda sensor. Despite its change, I have always a voltage of 0.435 mV.

    May you help me, please?


    1. Hi

      I have same car and same, is it an error?
      Just purchased the full version to attempt diagnosing an emissions issue.
      Mine also showed air temp and throttle position faults, amongst others. These have now been cleared to leave just the remaining bit 4 fault.
      I noticed someone else had a similar fault read out to me...… wondering how reliable the fault read out feature is?
      Would be good to know what the fault bits mean.

  34. I just realised I'm trying to use this on what is probably a MEMS 2J not 1.9. I get the alternating ERR warmstart or ERR cold start can't contact ECU and timeout. Checked pins 4 & 5 are connected for ground all OK. Is this because it's a 2J? Has anyone got it to work with MEMS 2J? Thanks in advance.

  35. Managed to get the free version working with a KKL VAG cable and an old lenovo android tablet with a real usb port, it didnt work with my nexux 5x and an otg cable. Does anyone know what the error codes mean? I have a error on status byte 1 bit 4 - any idea what this actually refers to?

  36. Hi there, my name is norbert, germany. Thanks a lot for this app MEMS.diag ver.4.5, it works fantastic on my LENOVO tablet with my MEMS a rover 2L T16. MPi in a Morgan Plus4 car, built 1993.
    ECU is MKC 10034.
    Built my own connector USB-TTL-3pin connector to ECU.
    If anybody is interested I could send more information how to do this.
    Can someone help me with this?
    I coud store log files on my tablet, how can I open them?
    And does there exist a list and exlanations of all the parameters I can see in the app?

  37. Hi, this app is also compatible with Classic Mini Rover mems? I've a 1999 classic Mini MPI. Thanks

  38. It work on my classic mini SPI 1995


  39. Hi,
    I bought the KKL cable Vag-com 409.1 and an otg cable. My phone is enabled for external USB devices but Mems Diag does not recognize this cable and says "err, usb device not found". What can I do?

  40. Has the maker of this app now given up answering peoples questions, id like to get it for my 620 and 220 turbos but not sure if the support is here should issues occur?

  41. Hi All,

    I'm still here, bit busy recently, not able to always respond in a timely manner.


  42. Awesome I have downloaded the lite version and the leads required if it works I shall be purchasing the full version, thanks for all the time and effort you have put into this, considering a lot of cars use rover engines I'm surprised it wasn't done sooner, looking forward to trying it out, thanks again.

  43. Fingers crossed mine works, I'm trying it out tonight on my MPI mini that has bad running problems. Is there a forum out there that talks about this app ? I think we need one. Could I start one ? am I allowed to start one ???

  44. Not working for me, I'm getting cold start, can't connect to ecu, timeout 5000, and warm start with the same message. Anyone have an idea ?

  45. Do you have a link for a usb lead that is known to work? Samsung S8, but I just get 'no response from ecu'

  46. Figured it out now, had the App set to the wrong protocol. 1.9 instead of 1.6

    Full App purchased. Keep up the good work!!!

  47. Cool, glad to hear it works for you ! (btw: what car/model is it ?)

    1. Works great for me too on my MGZR turbo conversation running the T16 2.0 on MEMS 1.6.
      This cost me about a tenner to build including the app. Well worth the cost. Much cheaper than the
      Bought the full version to support you.
      Just wish I knew what Bit6: error_unknown was.

  48. Is this software capable of resetting the adaptive values in the ecu?

    Looking at the very last section in this article it says that it's possible.

    I'd be using it on a MEMS 1.9 MKC103730 if that's of any use it you.

  49. This comment has been removed by the author.

  50. I bought the full version for my mini spi with mems 1.3.
    So far I’am very satisfied with clearing my fault codes. Only problem is that I don’t know what errors the “bits” are connected with. I have “error bit 5 unknown” in my error code test.
    Does anybody know what error this is ?
    Thank you !

  51. Dear Mems Diag, What apps I can open log files?

  52. Does this work with mems2j ?

  53. Hi, would it possible to have a list of compatible devices, maybe from existing users that have had it working? Tablet /phone models, what cable and were it was purchased from?

  54. This is a great tool and I am happy to have acquired it, wasting no time in paying for the full version.
    Only thing is......I don't know what the errors mean or where to find out, any help would be appreciated...….

  55. So, anyone sorted the warm/cold start issue?

  56. Its no good having it read errors that are unknown, im also having this issue

  57. I bought an USB-to-TTL converter PL2303 and it doesn't work.

    Then I found this cable:

    It has the FDTI chip. My question is: Could it work?
    I still not bought it...

    THanks in advance for reply

  58. ftdi has to work.. I have it and it works

  59. I've been trying for ages to get this working
    I've confirmed my cable works with the windows programmes all OK but I really want to run android
    Trying to connect to my ecu (mkc10027) I just get the error message as follows

    OK ecu replied correctly [time elapsed] ;200
    Followed by many lines of
    -ERR,CMDfailed-timeout [time_elapsed]:200
    Etc etc

    Yes I've got it set to mems 1.6 and tried on Samsung galaxy s5 and acer tablet

    Aby ideas?