After the model deployment is complete, the system output will only print the feature data information once. What could be the issue?

Hello everyone:
After I deployed the model, the output only includes the returned feature data, without any classification information, and the system only prints once. What could be the issue?
Thank you!
The actual output information is shown in the figure below:
Uploading: 微信截图_20250115103820.png…

The model uses a random forest classifier. I have successfully deployed the example model provided on EI, but my model is experiencing issues. Has anyone encountered this problem?

Sorry, this is my project ID: 597584. I am using the open CMSIS Pack deployment method, deployed on the STM32F405RGT6.

Hi @sq18856514787

Can you share the code where you implement the run classifier? Are there any errors?

What IDE are you using can you please fill in the template for this issue with as much detail as possible? Have you tried using the CUBE or Arm Keil MDK route? https://docs.edgeimpulse.com/docs/run-inference/using-cubeai

I will try to get some assistance from our embedded team, are you currently in contact with our sales/solutions team? cc: @yodaimpulse @jbuckEI @ei_francesco

Best

Eoin

Hi@ Eoin
Thanks for your reply!
Firstly,There are no errors on my project.
Secondly, the IDE I am using is Arm Keil MDK, and I have already tried both this CUBE and Arm Keil MDK. The current error is similar to the one shown in the image I sent in my previous email, with no output results; the output values only consist of feature data. Thirdly, I have not yet contacted anyone else from your company.
Thank you!
sq18856514787

1 Like

Hi @sq18856514787

If you can look at the signal data further and share the debugging with us in plaintext i will try to get one of the embedded team to review, but you may need to speak with our sales/solutions team to get deeper assistance on implementation Contact Sales

For now can you try sharing some more of the signal data that is being collected on device? It may differ from what was used in training, in your code, signal.get_data = &get_feature_data; suggests that the signal data is being populated using a callback function. Ensure that the function get_feature_data is implemented correctly and that it returns the feature data expected by the model.

Validate Input Data:

  • Print the input features being passed to the model to confirm they are correct.
for (int i = 0; i < sizeof(features) / sizeof(features[0]); i++) {
    ei_printf("Feature[%d]: %f\n", i, features[i]);
}
  • Add debugging print statements before and after ei_run_classifier to verify that the function is called and returns as expected. For example:
ei_printf("Calling run_classifier...\n");
EI_IMPULSE_ERROR res = run_classifier(&signal, &result, true);
ei_printf("run_classifier returned: %d\n", res);

Please share the output

cc @ei_francesco

Best

Eoin

@sq18856514787

Actually is the run classifier ever being hit? Can you put a breakpoint in the while loop and make sure the tick refresh condition is being met? Maybe its something that simple.

Best

Eoin