Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs

Can I implement pairing with LESC enabled with OOB in nRF52805; SDK 17.1.0 v7.2.0 S112 ?

I’m having nRF52805 on a custom board (for our own application) using SDK 17.1.0 v7.2.0 S112 ( IDE: Segger Embedded Studio). Given the amount of memory this chip has (192/24 KB) according to data sheet.

The SoftDevice occupies 100Kb of flash(0x00000-0x19000) with Bootloader for DFU and around 15KB of RAM(0x2000 0000 - 0x2000 3D00), Please correct me,if I'm wrong. I included all the files and library from ble_app_hrs example and now i am running out of flash memory and want to optimize so that i can use LESC with pairing and bonding. I am attaching picture below.

So,my queries is below:

  1. Is it possible to implement pairing and bonding using LESC using OOB as there is memory constrains?
  2. Which crypto Library will be best suited for fast and cheap memory.?
  3. List of relevant files needed for crypto library so that I can use LESC with less memory consumption.
  4. Can i use the flash memory reserved by SoftDevice for DFU (if i plan to skip DFU) for my Application, so that flash will be more for application code writing.
  5. How to simulate OOB value without generated by nordic API? (Because in my application i will get OOB from Cloud but this feature is not available for now but i want to test with some fixed OOB value for now).
  6. Kindly, suggest any tutorial, example or link that will be helpful for above points.
  7. How to minimize memory consumption in writing application. 

any help will be appriciable. Thanks in advance.

Parents
  • Hi

    It does indeed seem like you've run out of memory. The easiest way to circumvent this would be to go for a device with more RAM and Flash memory available like the nRF52832 and up. The nRF52805 and nRF52810 are designed for small and simple applications, and fitting both an application, the SoftDevice and a bootloader will be a tight fit in and of itself. Adding a lot of features like LESC and multiple services will be hard to do I'm afraid.

    You're free to try with optimizing for size in the SES IDE, but I don't think you'll be able to fit all this in an nRF52805, and you won't be able to debug as that will require you to remove optimization. You can also try removing services and features you don't need in your application as the ble_app_hrs example has multiple services that take up space, etc. but I don't think you'll get DFU, the SoftDevice and an application implementing BLE services and LESC pairing to fit on an nRF52805. You can check out this adjustment guide to see how you can edit the available flash and RAM size in your application.

    Best regards,

    Simon

Reply
  • Hi

    It does indeed seem like you've run out of memory. The easiest way to circumvent this would be to go for a device with more RAM and Flash memory available like the nRF52832 and up. The nRF52805 and nRF52810 are designed for small and simple applications, and fitting both an application, the SoftDevice and a bootloader will be a tight fit in and of itself. Adding a lot of features like LESC and multiple services will be hard to do I'm afraid.

    You're free to try with optimizing for size in the SES IDE, but I don't think you'll be able to fit all this in an nRF52805, and you won't be able to debug as that will require you to remove optimization. You can also try removing services and features you don't need in your application as the ble_app_hrs example has multiple services that take up space, etc. but I don't think you'll get DFU, the SoftDevice and an application implementing BLE services and LESC pairing to fit on an nRF52805. You can check out this adjustment guide to see how you can edit the available flash and RAM size in your application.

    Best regards,

    Simon

Children
Related