NFC and FOTA does not work

Hi

SDK: nRF Connect v2.6.1
uP: nRF52832

In my project I try to compbine NFC and FOTA (DFU over BLE). First I did setup a NFC project from the example "writable_ndef_msg". This is running. Then I did setup a demo project based on that example: https://academy.nordicsemi.com/courses/nrf-connect-sdk-intermediate/lessons/lesson-8-bootloaders-and-dfu-fota/

But after combining those two example project, FOTA does not run. In the "Device Manager" App on my mobile phone I received a "GATT CONN TIMEOUT" error, after starting a firmware upgrade. To speed up the start time, CONFIG_BOOT_VALIDATE_SLOT0=n is set to no in child_image/mcuboot.conf

I think I missed to set a configuration in the prj.conf file but I have no idea what could be wrong.

Further could that be a problem that NFC is allowed to write to the flash?

CONFIG_MPU_ALLOW_FLASH_WRITE=y
CONFIG_FLASH=y
CONFIG_FLASH_PAGE_LAYOUT=y
CONFIG_NVS=y

Attached you find my project.

Thanks and best regards
Markus

  • Hi Hieu

    sorry for my late replay, I hade to work on an other project.

    Meanwhile I was able to run the BLE sniffer. Attached you will find two test project.
    1. Hello World with DFU support (hello_world_dfu) --> DFU is running as expected
    /cfs-file/__key/communityserver-discussions-components-files/4/6644.hello_5F00_world_5F00_dfu.zip

    2. NFC witfh DFU support (writable_ndef_msg) --> DFU is not running.
    /cfs-file/__key/communityserver-discussions-components-files/4/1882.writable_5F00_ndef_5F00_msg.zip

    1. In Hello World with DFU project:
    DFU is running and the BLE sniffer is able to see the BLE communcation between device and smartphone

    /cfs-file/__key/communityserver-discussions-components-files/4/HelloWorld_5F00_ble_2D00_log.pcapng

    2. NFC With DFU project:
    There is no communication between device and smarphone. Sniffer sees no package. But in the Nordic "Device Manager" App on the smartphone BLE device is visible. When trying to get some infos form device over BLE then a "GATT CONN TIMEOUT" error pops up.




    Please help to solve this issiue

    Thanks a lot and best regards
    Markus

  • Hi

    can anybody help me to solve this issue, or let me know what I am doing wrong

    thanks a lot and best regards
    Markus

  • Markus, I am really sorry for late response, We did not find anything useful in your sniffer trace as it seems like you are not seeing the sniffer by filtering. Also in your second picture we do not see any nearby devices advertising, so it seems like the sniffer is not working right in your second image? Is it possible that you flashed your firmware into sniffer instead of the DK?

    You see some sort of timeout after enabling NFC, having some serial logs from the nRF52832 would have been helpful.

  • Hi Susheel

    Thanks for your replay. You right, something went wrong with the sniffer. No I get some log data. But DFU is still not working. Here is the sniffer log file: /cfs-file/__key/communityserver-discussions-components-files/4/NFC_2B00_DFU_5F00_sniffer-Log.pcapng

    This is the serial log from the nRF52832

    *** Booting nRF Connect SDK 3758bcbfa5cd ***
    I: Starting bootloader
    I: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Boot source: none
    I: Image index: 0, Swap type: none
    I: Bootloader chainload address offset: 0xc000
    �*** Booting nRF Connect SDK 3758bcbfa5cd ***
    Starting Bluetooth Peripheral LBS example
    I: SoftDevice Controller build revision: 
    I: 36 f0 e5 0e 87 68 48 fb |6....hH.
    I: 02 fd 9f 82 cc 32 e5 7b |.....2.{
    I: 91 b1 5c ed             |..\.    
    I: HW Platform: Nordic Semiconductor (0x0002)
    I: HW Variant: nRF52x (0x0002)
    I: Firmware: Standard Bluetooth controller (0x00) Version 54.58864 Build 1214809870
    I: Identity: E4:1A:44:1A:4D:96 (random)
    I: HCI: version 5.4 (0x0d) revision 0x118f, manufacturer 0x0059
    I: LMP: version 5.4 (0x0d) subver 0x118f
    Bluetooth initialized
    Advertising successfully started
    Starting Nordic NFC Writable NDEF Message example
    I: 2 Sectors of 4096 bytes
    I: alloc wra: 0, fe0
    I: data wra: 0, 18
    Found NDEF file record.
    Starting NFC Writable NDEF Message example
    E: ***** MPU FAULT *****
    E:   Stacking error (context area might be not valid)
    E:   Data Access Violation
    E:   MMFAR Address: 0x200053b0
    E: r0/a1:  0x8a66d18c  r1/a2:  0x1f979a1f  r2/a3:  0xd845493a
    E: r3/a4:  0x568bc750 r12/ip:  0xe68cb61a r14/lr:  0xe5a48eef
    E:  xpsr:  0xf0fa4a00
    E: Faulting instruction address (r15/pc): 0x9cb8ce29
    E: >>> ZEPHYR FATAL ERROR 2: Stack overflow on CPU 0
    E: Current thread: 0x200019c0 (unknown)
    *** Booting nRF Connect SDK 3758bcbfa5cd ***
    I: Starting bootloader
    I: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Boot source: none
    I: Image index: 0, Swap type: none
    I: Bootloader chainload address offset: 0xc000
    �*** Booting nRF Connect SDK 3758bcbfa5cd ***
    Starting Bluetooth Peripheral LBS example
    I: SoftDevice Controller build revision: 
    I: 36 f0 e5 0e 87 68 48 fb |6....hH.
    I: 02 fd 9f 82 cc 32 e5 7b |.....2.{
    I: 91 b1 5c ed             |..\.    
    I: HW Platform: Nordic Semiconductor (0x0002)
    I: HW Variant: nRF52x (0x0002)
    I: Firmware: Standard Bluetooth controller (0x00) Version 54.58864 Build 1214809870
    I: Identity: E4:1A:44:1A:4D:96 (random)
    I: HCI: version 5.4 (0x0d) revision 0x118f, manufacturer 0x0059
    I: LMP: version 5.4 (0x0d) subver 0x118f
    Bluetooth initialized
    Advertising successfully started
    Starting Nordic NFC Writable NDEF Message example
    I: 2 Sectors of 4096 bytes
    I: alloc wra: 0, fe0
    I: data wra: 0, 18
    Found NDEF file record.
    Starting NFC Writable NDEF Message example

  • Hello Markus,

    From the shared log, I can see a stack overflow error. The GATT timeout error you are receiving from the mobile app indicates no response from the nRF52832 in time. I guess the stack overflow might be crashing the BLE thread, causing the timeout. Could you try increasing the stack size? See CONFIG_MAIN_STACK_SIZECONFIG_SYSTEM_WORKQUEUE_STACK_SIZE

    I haven't checked the sniffer logs. Please see if resolving the stack overflow resolves the issue you are seeing.

    Kind Regards,

    Abhijith

Related