cancel
Showing results for 
Search instead for 
Did you mean: 

Device side usage: STSW-ST25RU-SDK Firmware. Inventory does not show the tags in the area.

JStei.8
Associate

We would like to use the ST25RU3993 in device side usage as described in the ST UHF library manual. Therefore we installed the STSW-ST25RU-SDK Firmware and build it with the TRUE STUDIO. Unfortunatly the given function docycleinventory does not show the tags which are close to the Antenna.

We set the programm to use the internal PA and the antenna 1. The frequencyprofile is europe and continious modulation is also active.

We log the cycleData variable to know if the inventory found some tags.

Could you please tell us what our mistake is, or if there is a missunderstanding, on what this function does?

Is there a better way to do inventory etc. than wive the given do cyclicinventory? We found out that we could use the build in Stuhfl_evalApi functions. Unfortunatly we were not able to find good information on how to use them. If we trie them with the init values, the firmware jumps in to an infinit loop.

Some examples on how to use the Stuhfl_evalApi functions would be great.

And the given application example does not work. It is fully executable but it does not find any tags at all. Furthermore does the application example use two deprecated functions.

We would be very thankfull, if you could provide us with some help and information.

1 ACCEPTED SOLUTION

Accepted Solutions
Cedric Dalban
ST Employee

Hello JStei,

Ensuring the InventoryRunnerStart() is behaving exactly the same between Host and Device is part of our release process and I can confirm it is duly working.

As described in the documentation, the inventories are managed with two different approches:

  - Gen2_Inventory(): runs a single inventory round and reports all found tags in STUHFL_T_InventoryData.tagList (Tags number is reported in STUHFL_T_InventoryData.tagListSize) 

  - InventoryRunnerStart(): runs a given number of rounds (STUHFL_T_InventoryOption.roundCnt, infinite if 0) and calls the call back for each found tag, tags are then processed on the run

You can see the use of both in our demo code; respectively demo_inventoryGen2() (file: .../Applications/STUHFL_demo/STUHFL_demo/STUHFL_demoInteractive.c) and demo_InventoryRunner() (file: .../Applications/STUHFL_demo/STUHFL_demo/STUHFL_demoInventoryRunner.c),

and the difference of each:

  - Gen2_Inventory(): tags post-process

  - InventoryRunnerStart(): tags processing on the run

Some few recommendations:

  - Could you try first to inventory your tags with the ST25RU3993 Reader Suite and play with the various Reader settings for inventory, this will ensure the tags can be accessed.

  - Before your inventory, could you ensure to setup your FW with the values defined in function setupGen2Config() (file: .../Applications/STUHFL_demo/STUHFL_demo/STUHFL_demoEvalAPI.c) 

- Before the inventory, please ensure the frequencies are tuned (function: tuneFreqs(), file: .../Applications/STUHFL_demo/STUHFL_demo/STUHFL_demoEvalAPI.c)

  - Could you try to use Gen2_Inventory() instead of InventoryRunnerStart() with the post process approach

  - the only recommended API is the STUHFL api, the low level Stuhfl_evalApi functions do not provide much feature or performance, so better to use STUHFL API.

  - the only deprecated function that needs to be used with the tuning new approach (addressed with variable useNewTuningMechanism in our example code) is SetFreqProfile(profile = PROFILE_NEWTUNING), this has been fixed and will no more be required in next release.

   

best regards,

Cedric.

View solution in original post

1 REPLY 1
Cedric Dalban
ST Employee

Hello JStei,

Ensuring the InventoryRunnerStart() is behaving exactly the same between Host and Device is part of our release process and I can confirm it is duly working.

As described in the documentation, the inventories are managed with two different approches:

  - Gen2_Inventory(): runs a single inventory round and reports all found tags in STUHFL_T_InventoryData.tagList (Tags number is reported in STUHFL_T_InventoryData.tagListSize) 

  - InventoryRunnerStart(): runs a given number of rounds (STUHFL_T_InventoryOption.roundCnt, infinite if 0) and calls the call back for each found tag, tags are then processed on the run

You can see the use of both in our demo code; respectively demo_inventoryGen2() (file: .../Applications/STUHFL_demo/STUHFL_demo/STUHFL_demoInteractive.c) and demo_InventoryRunner() (file: .../Applications/STUHFL_demo/STUHFL_demo/STUHFL_demoInventoryRunner.c),

and the difference of each:

  - Gen2_Inventory(): tags post-process

  - InventoryRunnerStart(): tags processing on the run

Some few recommendations:

  - Could you try first to inventory your tags with the ST25RU3993 Reader Suite and play with the various Reader settings for inventory, this will ensure the tags can be accessed.

  - Before your inventory, could you ensure to setup your FW with the values defined in function setupGen2Config() (file: .../Applications/STUHFL_demo/STUHFL_demo/STUHFL_demoEvalAPI.c) 

- Before the inventory, please ensure the frequencies are tuned (function: tuneFreqs(), file: .../Applications/STUHFL_demo/STUHFL_demo/STUHFL_demoEvalAPI.c)

  - Could you try to use Gen2_Inventory() instead of InventoryRunnerStart() with the post process approach

  - the only recommended API is the STUHFL api, the low level Stuhfl_evalApi functions do not provide much feature or performance, so better to use STUHFL API.

  - the only deprecated function that needs to be used with the tuning new approach (addressed with variable useNewTuningMechanism in our example code) is SetFreqProfile(profile = PROFILE_NEWTUNING), this has been fixed and will no more be required in next release.

   

best regards,

Cedric.