cancel
Showing results for 
Search instead for 
Did you mean: 

MKI197V1 support for MKI109V2 (eMotion)

Balázs VARGA
Associate II

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.

5 REPLIES 5
Eleon BORLINI
ST Employee

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

Balázs VARGA
Associate II

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.

Balázs VARGA
Associate II

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?

Balázs VARGA
Associate II

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
-

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