Fipy on beta firmware 1.20.3.b0, Core Dump issues with BLE



  • Hi,

    I'm currently working on a Fipy board on a BLE project. My board takes the role of Master (GATT Client). I'm using the beta firmware v1.20.3.b0

    I used a nRF Connect device from Nordic as BLE server wich emits advertisement frames. The Fipy was missing a lot of frames with FiPy-1.20.2.r4 firmware version that why I'm using v1.20.3.b0 beta firmware wich catching far more frames.

    I'm here to report Core Dump issues with BLE. The code source being unavailable I can't investigate the issues with the backtrace.

    The first issue occurs after several use of the function bluetooth.connect(). Everything works fine until the Core Dump occurs and after that the Core Dump will happens everytime i'm calling the function bluetooth.connect().
    By "everything works fine" i mean that i can connect to a BLE device, read characteristics, write char...

    To resolve this issue I Flash FiPy-1.20.2.r4 firmware and when I am coming back to the beta firmware I can use the connect() function and it will work.

    Here the backtrace of the Core Dump:

    Guru Meditation Error: Core 0 panic'ed (LoadProhibited). Exception was unhandled.
    Core 0 register dump:

    PC : 0x401b446d PS : 0x00060630 A0 : 0x801c37a0 A1 : 0x3ffeef20
    A2 : 0xe0020800 A3 : 0x3fbc75f9 A4 : 0x00000006 A5 : 0x00000000
    A6 : 0x00000000 A7 : 0x00000001 A8 : 0x000000f3 A9 : 0x00000054
    A10 : 0x00000001 A11 : 0x3fbc7418 A12 : 0x3fff0774 A13 : 0x3fff0774
    A14 : 0x3ffedd74 A15 : 0x00000001 SAR : 0x00000018 EXCCAUSE: 0x0000001c
    EXCVADDR: 0xe0020804 LBEG : 0x4008fffa LEND : 0x40090005 LCOUNT : 0x00000000

    Backtrace: 0x401b446a:0x3ffeef20 0x401c379d:0x3ffeef50 0x401c3866:0x3ffeef80 0x401c38dd:0x3ffef0b0 0x401c5593:0x3ffef0d0 0x401c69c7:0x3ffef100 0x401c567e:0x3ffef130 0x401c5789:0x3ffef150 0x401c8a8d:0x3ffef170 0x401b4ad7:0x3ffef190

    The second issue is similar, everything works fine until the Core Dump occurs but this time it will appear when calling Bluetooth() function to init BLE device. Flashing FiPy-1.20.2.r4 firmware doesn't resolve the issue, to resolve it I need to use advanced settings of Pycom Firmware Update, the RESET of NVS partition and CONFIG partition.

    Backtrace: 0x40093d4c:0x3ffef160 0x40094055:0x3ffef180 0x4003814:0x3ffef1a0 0x40083992:0x3ffef1d0 0x40083a0d:0x3ffef200 0x401ad669:0x3ffef250 0x401a5146:0x3ffef270 0x401c126c:0x3ffef290 0x401c896f:0x3ffef300 0x401c8901:0x3ffef320 0x401c8a8d:0x3ffef340 0x401b4ad7:0x3ffef360

    Best regards.



  • I never managed to reproduce the Core Dump but I found this :
    https://github.com/pycom/pycom-micropython-sigfox/commit/3f690a5733d31ff938aad6219c498f7d1bf98346

    A bug fix, the issue was not resolved in the version I used. This issue could explain the core dump I encountered. The issue is fixed in the last beta version (v1.20.3.b3) and in the last release (1.20.2.r4) of the firmware.



  • Hi Gijs, thank you for your answer.

    I am aware that the beta can be unstable but the advertisement sniffing performance on r4 release was too poor for my objectives. The performance on that regard with the beta was far more better.

    I will try to reproduce the Core Dump and come back to you when I found out what's exactly triggering the Core Dump and share the code with you.

    Best regards



  • Hi,
    Could you share code samples for me to reproduce the coredumps? Note that the beta firmware is still in development, meaning it might be unstable in certain scenarios. The r4 release on the other hand should not give coredumps like that every time you do a certain task.
    Let me know!



Pycom on Twitter