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

Soft device vs native configuration

Hi, I am using an nRF51822 EK board to develop a custom application and I was wondering about the usage of the SoftDevice. Under what conditions should I use the soft device and when would it be better to just program what i want natively? for example for BLE, i know that Soft Device offers a lot of programming options. but if i wanted to, i could program BLE manually as well. so it there a table or a list that shows what situations would be better suited for Soft Device?

  • I don't think there is any reasonable way to draw up such a table or list. You have to look at the requirements of the project you are trying to implement, weigh the trade offs and pick your path forward.

    I realize you are probably using trading off using Nordic's BLE implementation vs. writing your own as an example, but why wouldn't you use Nordic's implementation? It is a full BLE stack implementation with tons of standard profiles all of which have been qualified with the SIG. That is no small amount of work.

  • Hi John, I was just using BLE as an example. But really what I'm thinking about is whether it is worth it to load a soft device which occupies 88 KB of my flash. without it, i can occupy less memory for my program. My thought is that the soft device is 'all or nothing'. it would be great if there was a way to generate a soft device by selecting which modules you want. sort of like a uOS with only the modules you need.

  • I think you have a good point. It would be perhaps convenient to have smaller versions of the stack for miniature applications so customer can utilize more of the flash with user data. This is however what we currently offer, the 5 different stacks, S110, S120, S130, S210, S310. The S110 is in fact a miniature version in a way because it only supports the peripheral role, while e.g. S130 stack supports both peripheral and central roles, which also consumes more flash space.

  • As Stefan said, you have a good point. That said I'll go back to my thing about trade offs. For a user to know which parts of the BLE stack they don't need will require quite a bit of expert knowledge to know what to pick and what to discard. That requires a lot of time to come up the learning curve. What the Nordic stacks give you is a way to get a functioning BLE stack without having to become a full BLE expert. The cost is of course you can't optimize in the fashion you are asking about.

  • Hi Stefan, I understand. I am used to working with FPGAs and if you are familiar with those, when programming a soft processor for those, you can select exactly which features you want and do not want to get the smallest CPU for your needs. I guess I was thinking along those lines for the soft device as well. maybe it is something Nordic can consider for the future? to have a way for users to custom design their own softdevice with only what they need?

Related