This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

gettng NRF_ERROR_NO_MEM when initiating a bond in Peer Manager

I'm starting to get things moved over to Peer Manager in SDK11 and when I call pm_conn_secure I get NRF_ERROR_NO_MEM. When reading the manual it states that this error means:

"NRF_ERROR_NO_MEM If there is no more space in flash."

flash? Doesn't the bond information go into the fsd file system on fstorage? Is there some config that needs to happen to make things fit?

I have 11 custom UUIDs discovered from the custom service on my peripheral role radio code when I make the call. Is there some limit on the amount of data that can be cached? Im running on a NRF511422XXAC device.

Parents
  • so it looks like the docs are wrong. They state that NO_MEM means no space in the flash. My central code wasn't using the macro to build the ble enable param struct and was only setting the number of centrals and peripherals manually (this was fine before as I wasn't using security) there is a param in there for the number of SMP instances which was set to zero in my previous code. Switching over to using the macro put it at 1 and I no longer get the NO_MEM return code. The docs should be updated to remove the "no more space in flash" description and put in that there isn't enough SMP instances to handle the security operation.

  • Great that you figured it out. I'm guessing the error code originates from sd_ble_gap_authenticate() then? Above it in ble_gap.h it is written: @retval ::NRF_ERROR_NO_MEM The maximum number of authentication procedures that can run in parallel for the given role is reached. Maybe this should be the description of NRF_ERROR_NO_MEM in relation to pm_conn_secure(). I'll report it. Thanks.

Reply Children
No Data
Related