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

merging #BluetoothMesh into #SoftDevice ?

I think instead of releasing separate SDK for #BluetoothMesh, Nordic Semiconductor should merge #BluetoothMesh into #SoftDevice. Is it possible ?

If yes, then we can even add support for all Models defined by Bluetooth_SIG in it.

Firmware app developer will only enable feature of MESH & required Models using preprocessor like

#define Bluetooth_Mesh  
#define GEN_ONOFF_SRV_MODEL  
#define GEN_ONOFF_CLI_MODEL  
#define GEN_LEVEL_SRV_MODEL ...etc....etc...  

Then internally all functions within every Model (which are part of #SoftDevice) will transfer control to one function let's say foo(model, ctx, buf, OPCODE).

With foo() Firmware app developer could do whatever he wants like ......

void foo(struct bt_mesh_model *model, struct bt_mesh_msg_ctx *ctx, struct net_buf_simple *buf, uint16_t opcode)
{
	switch(opcode)
	{

		case 0x8201:	//GEN_ONOFF_SRV_GET
  
                                       // firmware App's Logic

                                      break;

		case 0x8203:	//GEN_ONOFF_SRV_UNACK

                                      // firmware App's Logic
                        
                                      beak;
                  
                :
                :
     }
 }

Thank You !!

Note : my foo() is inspired from Zephyr OS implementation.

Parents
  • Hi

    We don't have any plans to merge the mesh library with the SoftDevice.

    One problem with this, as endnode commented, is that it would increase the size of the SoftDevice. Since the SoftDevice is a pre-compiled and pre-linked library, you are not able to optimize out functionality that you don't use.

    As it is today it is relatively little work to remove the link to the SoftDevice completely, so that you can use Bluetooth mesh and get away with a considerably lower flash requirement.

    Another drawback of putting it into the SoftDevice is that the Bluetooth mesh would be held back by the SoftDevice release schedule. Today Bluetooth mesh is developed by a separate team, and can be updated independently of the SoftDevice.

    In regards to putting models or services into the stack itself, this is not the way Bluetooth low energy is intended to work. The idea with BLE is that you can easily redefine or add new models/services in the application space, without having to wait for the stack provider to include new models/services.

    Best regards
    Torbjørn Øvrebekk

Reply
  • Hi

    We don't have any plans to merge the mesh library with the SoftDevice.

    One problem with this, as endnode commented, is that it would increase the size of the SoftDevice. Since the SoftDevice is a pre-compiled and pre-linked library, you are not able to optimize out functionality that you don't use.

    As it is today it is relatively little work to remove the link to the SoftDevice completely, so that you can use Bluetooth mesh and get away with a considerably lower flash requirement.

    Another drawback of putting it into the SoftDevice is that the Bluetooth mesh would be held back by the SoftDevice release schedule. Today Bluetooth mesh is developed by a separate team, and can be updated independently of the SoftDevice.

    In regards to putting models or services into the stack itself, this is not the way Bluetooth low energy is intended to work. The idea with BLE is that you can easily redefine or add new models/services in the application space, without having to wait for the stack provider to include new models/services.

    Best regards
    Torbjørn Øvrebekk

Children
  • I think it is 100% possible. If you can add BLE core under Blackbox same way you can do it with Mesh. Means whatever mentioned as standards by Bluetooth_SIG will be get covered under that black box.

    You should give facility to app developer to rebuild SoftDevice as per his requirements after configuring it.

    So please re-think over it. Take view from both team members.

    Thank You !!

  • It's definitely not possible today as Nordic do not supply their stack in source code but just binaries and API. So what you propose is kind of in contradiction with whole business strategy of Nordic Soft Device:) Which I'm not saying is the right one, they already changed approach once because originally it looked that the biggest IP and selling point of Low Power radio chips will be chip + stack so SD was originally pre-loaded and normal developer should never see it. However today it lives routinely in binary form out there so maybe one day they will throw away everything including source code. But I doubt that would be now and because of integration with BT SIG mesh to let the developers messing up with stack through ton of global defines. Also having the stack pre-qualified is important value for many users, merging it with more features and making it openly configurable is... (1/2)

  • (2/2) ...is obviously making this longer and more expensive. So what looks much more possible is that one day Nordic Soft Device won't be so widely used because open source projects like Zephyr - which btw. has big support from Nordic already - will take over. So I guess that's the way for you right now in 2018: rather ask Zephyr people on their forum when BT SIG mesh network will be implemented and integrated inside. Sounds like better way to me.

  • Yes, because of this personally I don't like Nordic APIs for GATT based peripheral as well as Bluetooth Mesh development. Currently I'm working on Zephyr only. Wonderful work done by Zephyr Team. Very simple APIs.

    Once Zephyr release support for flash to save provising and configuration, no one will go with Nordic Mesh SDK

  • Hello vikrant8051,

    (1/3) Just to add... whilst I appreciate your enthusiasm, I believe that you're letting it get ahead of the logical side of things. As endnode and Torbjørn have pointed out, there are many Nordic BLE developers who would not like to see the extra 'bloat' of mesh added to the softdevice. Inversely, there will be some proponents of the SIG 'flooding' mesh who will feel that they don't need the full softdevice stack and could call for a slimmed down version of that. Given that the Bluetooth SIG have not ruled out a possible 'routing' mesh standard in the future, I believe that Nordic have struck the right balance. i.e. provide the softdevice 'as is' and run the current implementation of Bluetooth mesh on top of that. This also enables the future possibility of running other mesh stack implementations. And do all this, whilst providing 'best-of-breed' SoCs to run them on.

Related