Skip to main content
Visitor II
January 30, 2020
Question

MKI197V1 support for MKI109V2 (eMotion)

  • January 30, 2020
  • 4 replies
  • 1546 views

Hi,

I have an MKI197V1 breakout module for the LSM6DSOX sensor. The product page states that it should be supported by the MKI109V2 eMotion board (in fact, it is one of the recommended evaluation boards for this sensor):

https://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mems-motion-sensor-eval-boards/steval-mki197v1.html#overview

0690X00000Bx92SQAR.png

However, Unico GUI gives me this message:

0690X00000Bx92XQAR.png

I have the latest version of Unico (V9.3.0.0, Windows) and the board is flashed with the latest firmware that came with Unico (eMotionV5.0.27_C3.dfu). The creation date of the DFU file is April 2018, so the lack of support is not surprising. Is there a newer firmware to be found somewhere?

Any help is greatly appreciated.

    This topic has been closed for replies.

    4 replies

    ST Employee
    January 31, 2020

    Hi @Bal�zs VARGA​ , in the page you linked, under the title "key features", this statement is reported:

    >> Changing the resistor settings is also compatible with the STEVAL-MKI109V2 motherboard

    In order to make MKI197V1 compatible with MKI109V2, you have to de-solder R1, R3, R5 and R7 and solder R2, R4, R6, R8 resistors

    Regards

    Visitor II
    February 1, 2020

    Eleon, thank you for your quick reply. My resistors are already fitted the way you described. I probed all data pins, and there is complete silence, it looks like the board doesn't even attempt to communicate with the sensor, it just immediately reports back that it is not supported. If I select a different sensor in Unico GUI, I see traffic on the data pins as the board reads the WHO_AM_I register.

    Visitor II
    February 1, 2020

    The firmware used to be open source, and I have found the code in an older Unico installer (the firmware version is the same). Please take a look at these code lines:

    fwAccessTick firmwareAccessPointer[] = {
     /* STEVAL Adapters */
     { lis3lv02dl_AppTick, 	"009V1",	"LIS3LV02DL"	 },
     { lis302dl_AppTick,		"013V1",	"LIS302DL"		},
     { lis344alh_AppTick, 	"015V1",	"LIS344ALH"		},
     { ly3100alh_AppTick, 	"075V1",	"LY3100ALH"		},
     { lpy430al_AppTick,		"084V1",	"LPY430AL"		},
     { lis331dl_AppTick,		"087V1",	"LIS331DL"		},
     { lis331dlh_AppTick,	 "089V1",	"LIS331DLH"		},
     { lis331hh_AppTick,		"092V1",	"LIS331HH"		},
     { lpr430al_AppTick,		"097V1",	"LPR430AL"		},
     { lpr410al_AppTick,		"098V1",	"LPR410AL"		},
     { ek3dh_AppTick,		"105V1",	"LIS3DH"		},
     { lsm303dlhc_AppTick, 	"106V1",	"LSM303DLHC"	 }, 
     { l3gd20_AppTick,		"107V2",	"L3GD20"		},
     { nineAxisMod20_AppTick, "108V2",	"9AXISMODULE" 	},
     { ais328dq_AppTick,		"110V1",	"AIS328DQ"		},
     { lsm303dlm_AppTick, 	"113V1",	"LSM303DLM"		},	
     { magprobe_AppTick,		"114V1",	"MAG PROBE"		},
     { lps331ap_AppTick,		"120V1",	"LPS331AP"		},
     { lsm330dlc_AppTick, 	"122V1",	"LSM330DLC"		},
     { lsm330d_AppTick,		"123V1",	"LSM330D"		}, 
     { tenAxModMil20_AppTick, "124V1",	"10D"			},
     { a3g4250d_AppTick,		"125V1",	"A3G4250D"		},
     { lsm303d_AppTick,		"133V1",	"LSM303D"		}, 
     { lis3dsh_AppTick,		"134V1",	"LIS3DSH"		},
     { ek3dh_AppTick,		"135V1",	"LIS2DH"		},
     { l3gd20h_AppTick, 	 "136V1",	"L3GD20H"	 }, 
     { lis3mdl_AppTick,		"137V1",	"LIS3MDL"		},
     { hts221_AppTick, 		"141V2",	"HTS221"		},
     { lps25h_AppTick,		"142V1",	"LPS25H"		},
     { ek3dh_AppTick,		"151V1",	"LIS2DH12"		},
     { lis2dm_AppTick, "152V1", "LIS2DSM" },
     { h3lis331dl_AppTick, 	"153V1",	"H3LIS331DL"		},
     { LSM9DS0_AppTick,		"154V1",	"LSM9DS0"		},
     { lsm9ds1_AppTick, "159V1", "LSM9DS1" },
     { lsm6ds3_AppTick, "160V1", "LSM6DS3" },
     { lsm6ds0_AppTick, "161V1", "LSM6DS0" },
     { lsm303c_AppTick, "163V1", "LSM303C" },
     { lis2hh12_AppTick,		"164V1",	"LIS2HH12"		},
     { lps25h_AppTick,		"165V1",	"LPS25HB"		},
     { h3lis331dl_AppTick, 	"166V1",	"H3LIS100DL"		},
     { h3lis331dl_AppTick, 	"167V1",	"H3LIS200DL"		}, 
     { ek3dh_AppTick,		"168V1",	"IIS2DH"		}, 
     { l3g4200d_AppTick,		"169V1",	"I3G4250D"		},
     { ais328dq_AppTick,		"170V1",	"IIS328DQ"		},
     { lsm303agr_AppTick, "172V1", "LSM303AGR" },
     { lsm303ah_AppTick, "173V1", "LSM303AH" },
     { lis2de12_AppTick,		"175V1",	"LIS2DE12"		}, 
     { lsm6ds3h_AppTick, "176V1", "LSM6DS3H" }, 
     { lps35hw_AppTick,		"177V1",	"LPS35HW"		},
     { lsm6dsl_AppTick, "178V1", "LSM6DSL" }, 
     { lps22hb_AppTick,		"001V1",	"LPS22HB"		}
    };
     
    /* .... */
     
     if(strcmp(cmdBuffer, "SETDB")==0){ 
     for(i = 0; i < numberOfFirmware; i++) {
     str = firmwareAccessPointer[i].string;
     if(strcmp((char*)&buf[6], str)==0) {
     fwFound = 1;
     FW_Num = i;
     break; 
     }
     dev = firmwareAccessPointer[i].devName;
     if(strcmp((char*)&buf[6], dev)==0) {
     fwFound = 1;
     FW_Num = i;
     break; 
     }
     }
     
     if(fwFound == 1){
     return firmwareAccessPointer[i].applicationTick;
     }
     }
     
     return NULL;

    It really looks like there is no support for the 197v1 adapter board. Just to be sure, I opened the firmware binary with a hexeditor, and indeed, it contains all of the strings above, but not "197V1".

    Are you sure there isn't a newer firmware than the one that comes with Unico?

    Visitor II
    February 3, 2020

    I discovered that it's possible to fetch the list of supported devices via the serial port. Indeed, MKI197V1 is not listed.

    So we have one of the recommended development boards (that's not exactly cheap, but unavoidable, since Unico GUI will only communicate with proprietary boards), and now we have to write our own firmware for it in order to be able to use it?

    *ver
    V5.0.27
    *list
    MKI009V1 --> LIS3LV02DL
    MKI013V1 --> LIS302DL
    MKI015V1 --> LIS344ALH
    MKI042V1 --> LPR503AL
    MKI043V1 --> LPR510AL
    MKI044V1 --> LPR530AL
    MKI045V1 --> LPY503AL
    MKI046V1 --> LPY530AL
    MKI047V1 --> LPY550AL
    MKI048V1 --> LY503ALH
    MKI050V1 --> LY550ALH
    MKI074V1 --> LY330ALH
    MKI075V1 --> LY3100ALH
    MKI076V1 --> LY3200ALH
    MKI082V1 --> LPY4150AL
    MKI083V1 --> LPY450AL
    MKI084V1 --> LPY430AL
    MKI085V1 --> LPY410AL
    MKI086V1 --> LPY403AL
    MKI087V1 --> LIS331DL
    MKI088V1 --> LIS33DE
    MKI089V1 --> LIS331DLH
    MKI090V1 --> LIS331DLF
    MKI091V1 --> LIS331DLM
    MKI092V1 --> LIS331HH
    MKI093V1 --> LYPR540AH
    MKI095V1 --> LPR4150AL
    MKI096V1 --> LPR450AL
    MKI097V1 --> LPR430AL
    MKI098V1 --> LPR410AL
    MKI099V1 --> LPR403AL
    MKI105V1 --> LIS3DH
    MKI106V1 --> LSM303DLHC
    MKI107V1 --> L3G4200D
    MKI107V2 --> L3GD20
    MKI108V1 --> 9AXISMODULE
    MKI108V2 --> 9AXISMODULE
    MKI110V1 --> AIS328DQ
    MKI112V1 --> LPS001WP
    MKI113V1 --> LSM303DLM
    MKI114V1 --> MAG PROBE
    MKI120V1 --> LPS331AP
    MKI122V1 --> LSM330DLC
    MKI123V1 --> LSM330D
    MKI124V1 --> 10D
    MKI125V1 --> A3G4250D
    MKI133V1 --> LSM303D
    MKI134V1 --> LIS3DSH
    MKI135V1 --> LIS2DH
    MKI136V1 --> L3GD20H
    MKI137V1 --> LIS3MDL
    MKI141V2 --> HTS221
    MKI142V1 --> LPS25H
    MKI151V1 --> LIS2DH12
    MKI152V1 --> LIS2DM
    MKI153V1 --> HLIS331DL
    MKI154V1 --> LSM9DS0
    MKI156V1 --> UVIS25
    MKI159V1 --> LSM9DS1
    MKI160V1 --> LSM6DS3
    MKI161V1 --> LSM6DS0
    MKI162V1 --> LSM303E
    MKI163V1 --> LSM303C
    MKI164V1 --> LIS2HH12
    MKI165V1 --> LPS25HB
    MKI166V1 --> H3LIS100DL
    MKI167V1 --> H3LIS200DL
    MKI168V1 --> IIS2DH
    MKI169V1 --> I3G4250D
    MKI170V1 --> IIS328DQ
    MKI171V1 --> ASM330LXH
    MKI172V1 --> LSM303AGR
    MKI175V1 --> LIS2DE12
    MKI176V1 --> LSM6DS3H
    MKI177V1 --> LPS35HW
    MKI178V1 --> LSM6DSL
    MKI179V1 --> LIS2DW12
    MKI180V1 --> LIS3DHH
    MKI181V1 --> LIS2MDL
    MKI182V1 --> ISM330DLC
    MKI183V1 --> LPS33HW
    MKI185V1 --> IIS2MDC
    MKI186V1 --> IIS3DHHC
    MKI001V1 --> LPS22H
    MKIG3AV1 --> L3G462A
    MKIH31V1 --> HLIS331DL
    MKI3SNV1 --> AHTI2
    MKIG32V1 --> LPR410AL
    MKIOISV1 --> L3G4IS
    MKIHT3V1 --> HT331
    MKIOELV1 --> LSM330
    MKI326V1 --> AIS326DQ
    MKI3DEV1 --> LIS3DE
    MKI2ISV1 --> L2G4IS
    MKIL2G2I --> L2G2IS
    MKIPH3V1 --> PTH33
    MKIPH3V2 --> PTH33_I2C
    MKIUVI25 --> UVIS25 INT
    MKI3MDV1 --> LIS3MD
    MKIAFPV1 --> AFP
    MKIN2EV1 --> LIS2DG
    MKIDSMV1 --> LSM6DSM
    MKIL20G2 --> L20G20IS
    MKINDMV1 --> N2DM_I2C
    MKI2DWV1 --> LIS2DWU
    MKIROBV1 --> LSM6DSR
    MKIDSOV1 --> LSM6DSO
    MKIDS3TR --> LSM6DS3TR-C
    MKIDSMDL --> LSM6DSM + LIS2MDL
    MKICOMGX --> COMBO3_Gx
    MKICOMGZ --> COMBO3_Gz
    -

    ST Employee
    February 5, 2020

    Hi @Bal�zs VARGA​ , you are right, even if the online page declares the full compatibility with the profiMEMS... Did you already try to solder the resistors in the other way? For example, MKIDSOV1 --> LSM6DSO should be STEVAL-MKI196V1, but indeed is not supported... would be better to switch from eMorion to profiMEMS to take advantage of all features of the DSOX (e.g. FSM and MLC)... Regards