cancel
Showing results for 
Search instead for 
Did you mean: 

Mems studio not identifying my board or connecting to it

tarunprasadoff
Associate

I have an X-NUCLEO-IKS4A1 mounted on top of a NUCLEO-L476RG and I am trying to connect that to Mems Studio. I get one of the two errors in the attached screenshots. Either "Board not identified" or "Some device is already connected".

device_error.pngboard_error.png

12 REPLIES 12
Miroslav BATEK
ST Employee

Hello @tarunprasadoff 

The NUCLEO (STM32) must be programmed with compatible firmware with MEMS Studio.
You can check chapter 2.6 Hardware and firmware compatibility in UM3233.

NUCLEO-L476RG + X-NUCLEO-IKS4A1 can be used in AlgoBuilder in MEMS Studio.

Sensor evaluation firmware (DatalogExtended) is unfortunately not available for NUCLEO-L476RG, please check X-CUBE-MEMS1 package.

Hi Miroslav,

I have the same issue as the OP.

However I am using the NUCLEO-H503RB with the X-NUCLEO-IKS4A1A and I have been trying to build the application using STM32CubeMX with X-CUBE-MEMS1 using the "Device MEMS1 Applications" mode.

I am running the following:

  • Windows 11 Pro Version 21H2
  • STM32CubeMX 6.12.0
  • STM32Cube FW_H5 V1.3.0
  • X-CUBE-MEMS1 10.0.0
  • STM32CubeIDE 1.16.0

I have also experimented with different X-CUBE-MEMS1 settings without success.

The "Board not identified" message is not helpful as it is.

I don't have at my disposal the NUCLEO-F401 board to compare against.

 

I don't know what is the root cause of the issue and what to look for:

  • Is it a firmware/hardware configuration issue in STM32CubeMX?
  • The "Getting started with the STMicroelectronics X-CUBE-MEMS1 software package for STM32CubeMX" documentation make use of the IC pin numbers for the NUCELO-64 board for the F401, but isn't compatible with every NUCLEO-64 such as the H503RB. So I have to manually remap all the GPIO to the corresponding IKS4A1 which has limited exposure in the documentation).
  • Is MEMS Studio working properly or are there possible OS, driver, firewall, antivirus interaction?
  • User error?
  • Incompatible hardware/firmware? I am unsure unless the H503RB is not supported.

The documentation is lacking a very important aspect which is establishing that all the prerequisites are met:

When attempting to establish communication with the board, what is MEMS Studio looking for? Is it trying to communicate with part of the code within the MCU or is it trying to communicate with the sensor devices over the I2C interface?

Can an incorrectly mapped GPIO between MCU and IKS4A1 be a problem (ie: swapped interrupt lines...)?

Are there any steps, documentation that can describe how the MEMS application on the board is supposed to work? How can I make sure it works on my board?

If the firmware and the hardware isn't the problem, then what would be next?

Any recommendations?

Miroslav BATEK
ST Employee

Hello @Apollo1,

Usually this kind of issue is caused by the firmware which is not working properly due to incorrect configuration in CubeMX.

Can you share your project and/or .ioc file. I can check it.

 

 

I do not have any project file. I have only connected the NUCLEO-L476RG to my windows device. I have the X-NUCLEO-IKS4A1 mounted on top of the NUCLEO-L476RG at the same time. I opened MEMS Studio and tried clicking on the Connect button in the Connect Tab after selecting the correct port number. This is the error that is being thrown. How do I successfully connect now?

Hello Miroslav,

I will try to recreate the project, but in the meantime, can you provide some details which can describe what MEMS Studio is doing in order to establish and accept a connection?

PS. In your setup,  will MEMS Studio be able to accept a connection when the sensor board (aka IKS4A1) is not connected to the NUCLEO board?

 

 

Miroslav BATEK
ST Employee

Hello @Apollo1 

the MEMS Studio opens the serial port and send "CMD_Read_PresString" command to read presentation string. This string describes the firmware and MEMS Studio can adjust the GUI according to the connected firmware.

The firmware from X-CUBE-MEMS1 will not work properly without appropriate X-NUCLEO board connected so it will not able able to respond to the "CMD_Read_PresString" command and the connection will not be establisted.

Hi Miroslav

 

I have been sidetracked by other projects and just came back to using MEMS-Studio and building the code using Cube-MX with different NUCLEO boards (G491RE, H503RB...) with X-NUCLEO-IKS4A1.

Currently running on STM32CubeIDE 2.0.0 and STM32CubeMX Version 6.17.0 with X-MEMS-App V12.0.0

So far I have encountered the following issues:

  • Using the X-CUBE-MEMS1 application: IKS4A1_DataLogTerminal, I am able to display sensor data using Putty Serial at 921600 Bd.
  • I cannot establish connection using MEMS-STUDIO as it returns "Board not identified.." error.

 

Doing some more investigation, the "CMD_Read_PresString" doesn't exist in the project and has been refferred in different forum post having to do with the "demo_serial.c". This code provided on the Git repo can only be implemented with the application set to IKS4A1_DataLogFusion, which details have been left undocumented in the STM32CubeMX project generation.

 

With application set to "IKS4A1_DataLogFusion", I am no longer able to display sensor data using Putty serial.

It would appear MEMS-Studio can now connect to the board.

However, I am not yet able to see any sensor data being displayed. Not sure if it is something I need to setup in MEMS-Studio.

It would seem I am not able to attach the .ioc file to this post.

If my .ioc file isn't attached to this post and knowing I am trying to recreate the project using STM32CubeMX targeting the X-NUCLEO-IKS4A1to be used with MEMS-Studio, it shouldn't be difficult for you or another ST employee to attempt recreating the project and validating if it is functional within MEMS-Studio.

Regards.

Hello @Apollo1,

 

First of all, let me clarify the purpose of different projects in the X-CUBE-MEMS1 package.
The DataLogTerminal is simple firmware that reads data and sends it to the serial terminal. It can be used as a starting point to see how to configure the sensor and read data. It does not cooperate with MEMS Studio.

Other projects, like DataLogFusion, are intended for middleware library evaluation. These projects cooperate with MEMS Studio to display sensor data and output data from the library.

I don’t have the NUCLEO-G491RE available at the moment, but I did a quick check of your STM32CubeMX project. I noticed one issue - the interrupt from TIM2 is not enabled.

TIM2_interrupt.png

Please enable this interrupt and try again with MEMS Studio. I believe you should see the sensor data coming from the firmware. If not, please let me know, and I will try to get the NUCLEO board to debug the issue.

 

 

 

 

Hello Miroslav,

 

Thank you for the prompt follow up.

I can confirm enabling the interrupt for TIM2 fixes the issue with MEMS-Studio regarding to data acquisition with the NUCLEO-G491RE board.

 

On a side note, attempting to run on NUCLEO-H503RB, I am faced with the following compiling error:

E:/STM32CubeIDE/H503RB_MEMS_App/Drivers/BSP/STM32H5xx_Nucleo/stm32h5xx_nucleo.c:666:5: error: 'NodeConfig' undeclared (first use in this function)
  666 |     NodeConfig.NodeType = DMA_GPDMA_LINEAR_NODE;
      |     ^~~~~~~~~~

I am including the .ioc file.

Do you know if the "LINKEDLIST" section in Cube-MX needs to be configured in a certain way or is X-CUBE-MEMS application supposed to handle it automatically?

I have successfully made use of "LINKEDLIST" on a couple other projects based on STM32H5 series, but I don't know how this is handled when X-CUBE-MEMS is involved

Do you know of any documentations or webinar/tutorial that address this particular application?

 

regards