Skip to main content
Visitor II
April 12, 2021
Solved

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

  • April 12, 2021
  • 1 reply
  • 677 views

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.

    This topic has been closed for replies.
    Best answer by Cedric Dalban

    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.

    1 reply

    ST Employee
    April 12, 2021

    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.