0

how to handle PM_EVT_PEER_DATA_UPDATE_FAILED

gkovelman_tap gravatar image

asked 2017-10-10 12:03:56 +0100

updated 2017-10-11 12:49:37 +0100

Hi,

I'm seeing this error PM_EVT_PEER_DATA_UPDATE_FAILED sometimes and I need to understand what are the options on handling this error except for just asserting it. I can't seem to find any information on it.

So far, I've seen this happen when

  • Paired with Windows 10, removed peripheral on Windows menu and paired again
  • After DFU and the GATT profile was modified (added some characteristic)

I'm using SDK14.0 with S132 v5.0.0 on a custom board with nRF52832.

I'll appreciate the help.

Edit:

Screenshot of assert and the callstack, error's value is 10: image description

edit retag flag offensive close delete report spam

1 answer

Sort by ยป oldest newest most voted
0
hungbui gravatar image

answered 2017-10-11 12:35:19 +0100

Hi,

Could you try to debug deeper and find where the PM_EVT_PEER_DATA_UPDATE_FAILED is thrown ? There are only a few places it's assigned to evt_id.

I assume what you described are 2 different scenarios that you see the issue, they are not related ?

On the first scenario, have you enable allow_repairing = true when there is PM_EVT_CONN_SEC_CONFIG_REQ event in pm_evt_handler() in main.c ? Without that the nRF5 will reject pairing if the central try to pair again.

Do you have any flash operation in your application ? I suspect there could be some corruption in the flash area dedicated for peer manager.

edit flag offensive delete publish link more

Comments

  1. I've indeed enabled repairing, but this specific failure happens anyway.
  2. I'm using FDS in general, but not during general connection event. I've seen the notes on FDS and the peer manager and the IDs that I'm using are not in the peer manager's range.

I added a screenshot with the call stack showing the assertion.

gkovelman_tap ( 2017-10-11 12:53:13 +0100 )editconvert to answer

Thanks for the screenshot, but we need to debug deeper, please add a breakpoint where the PM_EVT_PEER_DATA_UPDATE_FAILED is assigned , basically add break points on this line:

pm_evt.evt_id = PM_EVT_PEER_DATA_UPDATE_FAILED;

There are 3 of them in the code, please use CTRL+SHIFT+F to find them in the code.

Can you reproduce the issue using our examples in the SDK ?

Hung Bui ( 2017-10-11 14:20:43 +0100 )editconvert to answer

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer. Do not ask a new question or reply to an answer here.

[hide preview]

User menu

    or sign up

Recent questions

Question Tools

1 follower

Stats

Asked: 2017-10-10 12:03:56 +0100

Seen: 34 times

Last updated: okt. 11