Skip to main content
Graduate II
June 16, 2025
Solved

ST25R3916B Software Implementation

  • June 16, 2025
  • 4 replies
  • 564 views

Hi everyone,

I’m currently working on integrating the ST25R3916B NFC reader into my custom hardware and would like to avoid implementing the complete driver from scratch in C/C++. Therefore, I’m trying to base my work on the X-CUBE-NFC6 software package provided by ST.

Is this the right starting point for using the ST25R3916B as a standalone chip (not on an evaluation board)?

I manually downloaded the full package from:
:backhand_index_pointing_right:https://www.st.com/en/embedded-software/x-cube-nfc6.html#get-software
— because STM32CubeIDE didn’t seem to import all relevant source files automatically.

Now I’m struggling a bit to understand which components or folders I actually need from the package to get the basics working.

Also, in CubeMX / CubeIDE I can see the following configuration options (see screenshot).

pic1.png

 

 

However, I'm unsure what to select in terms of the “Board Extension” and “Board Part” settings. Since I’m not using any ST eval board, just the bare ST25R3916B, I don’t know which options are still relevant, and which might introduce unwanted dependencies.

If anyone has experience using this IC in a custom setup and can give some guidance (e.g. which RFAL features to enable, how to adapt the board interface), I’d be very grateful!

Thanks a lot in advance!

    This topic has been closed for replies.
    Best answer by Brian TIDAL

    Hi,

    yes I've seen you do not have any free pins (except if you reassign some of GPIO_output e.g. PA2/PA3 for USART2 and PC13 for the button).

    Anyway, the generated application is designed for bare metal and will probably not run with FreeRTOS. I recommend again to have a look to the FreeRTOS demo inside the ST25 embedded NFC library and to port from STM32L4 to STM32F0.

    Rgds

    BT

    4 replies

    Technical Moderator
    June 16, 2025

    Hi,

    simply follow the STMicroelectronics.X-CUBE-NFC6_GettingStarted.pdf from X-CUBE-NFC6\3.1.0\Documentation. As a ST25R3916B is used, make sure to replace NFC06A1 by NFC08A1.

    Rgds

    BT

    MERSIAuthor
    Graduate II
    June 16, 2025

    Thank you, @Brian TIDAL !

    I'm currently struggling a bit with integrating the ST25R3916B IC on my custom PCB using the STM32F030.

    STM32CubeIDE automatically generates a demo.h file with demoIni() and demoCycle() declarations, but it doesn't include a corresponding demo.c file with the actual function definitions.

    Could you please point me in the right direction or let me know how I should proceed? I'd really appreciate your help!

     

    image.png

     

    Technical Moderator
    June 16, 2025

    Hi,

    feel free to share your ioc file so that I can have a look.

    Rgds

    BT

    MERSIAuthor
    Graduate II
    June 17, 2025

    @Brian TIDAL That would be great. Currently i've set the NFC Middleware Settings as Board Parts / Extension.

     

     

    Technical Moderator
    June 17, 2025

    Hi,

    The Device NFC Application has not been selected in your setup:

    BrianTIDAL_0-1750145407016.png

    Make sure to select it if you want the demo being included. In your case this is the ndef_demo as the NDEF application has been selected:

    BrianTIDAL_1-1750145672039.png

    I've seen that the FreeRTOS is being used. I would suggest you have a look to the FreeRTOS demo inside the ST25 embedded NFC library.

    Rgds

    BT

     

    MERSIAuthor
    Graduate II
    June 17, 2025

    Thank you for the fast reply @Brian TIDAL 

     

    When i activate "Device NFC Application" it wants me to specify the UART and User BTN Pins (see picture below). The Problem is that i don't have these implemented on my PCB. I only have the ST25R3916B IC. When i leave the "Found Solutions" as undefined it will give me multiple Build Errors.

     

    MERSI_0-1750146651234.png

     

    Technical Moderator
    June 17, 2025

    Hi,

    yes I've seen you do not have any free pins (except if you reassign some of GPIO_output e.g. PA2/PA3 for USART2 and PC13 for the button).

    Anyway, the generated application is designed for bare metal and will probably not run with FreeRTOS. I recommend again to have a look to the FreeRTOS demo inside the ST25 embedded NFC library and to port from STM32L4 to STM32F0.

    Rgds

    BT