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?

Parents
  • 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.

Reply
  • 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.

Children
  • 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.

  • 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.

Related