Cannot build "mesh" sample into #nRF52810 emulating with #nRF52 DK #bluetoothmesh #nrf52 #nrf52810


Trond Snekvik
 

Hi, 

The Bluetooth Mesh sample in the default configuration simply doesn't fit on the nRF52810, unfortunately.
There are a couple of config files in this sample that are designed to fit on memory constrained devices though.
The nrf51_qfaa.conf config file, for instance, is built for a device with much less ram and flash than nRF52810.
You can either pass that directly to west with the -DCONF_FILE argument, like this:

west build -p -b nrf52dk_nrf52810 -- -DCONF_FILE=nrf51_qfaa.conf

or copy the contents of this file to a prj_nrf52dk_nrf52810.conf file and run your original command.
The nrf51_qfaa.conf file is probably a bit overkill though, so you can compare its contents with prj.conf, and see if you can find some middle ground that includes the feature set you'd like.

Trond


From: devel@... <devel@...> on behalf of david.heng via lists.zephyrproject.org <david.heng=smile.fr@...>
Sent: Thursday, March 18, 2021 14:20
To: devel@... <devel@...>
Subject: [Zephyr-devel] Cannot build "mesh" sample into #nRF52810 emulating with #nRF52 DK #bluetoothmesh
 
Hello everyone !

I am using the nRF52DK board to emulate the nRF52810, I succeed in running some samples like "blinky", "hello_world" or "beacon" in the path zephyrproject/zephyr/samples/bluetooth.

However, I cannot build the sample "mesh" which is in the same path as "beacon", because of an overflowing with 'FLASH' and 'SRAM'.


OS : Ubuntu 18.04 LTS
Toolchain : Zephyr SDK 0.12.3

Command I used :
west build -p -b nrf52dk_nrf52810 samples/bluetooth/mesh

Output :


I tried to modify the "prj.conf" file, but even if I disabled some not essential configurations, I still have an overflow with the 'SRAM'. My main goal is to use an nRF52810 as an end-device inside my mesh network.

Is there any kind of solution ?

Best regards

David HENG


david.heng@...
 
Edited

Hello everyone !

I am using the nRF52DK board to emulate the nRF52810, I succeed in running some samples like "blinky", "hello_world" or "beacon" in the path zephyrproject/zephyr/samples/bluetooth.

However, I cannot build the sample "mesh" which is in the same path as "beacon", because of an overflowing with 'FLASH' and 'SRAM'.


OS : Ubuntu 18.04 LTS
Toolchain : Zephyr SDK 0.12.3

Command I used :
west build -p -b nrf52dk_nrf52810 samples/bluetooth/mesh

Output :


I tried to modify the "prj.conf" file, but even if I disabled some not essential configurations, I still have an overflow with the 'SRAM'. My main goal is to use an nRF52810 as an end-device inside my mesh network.

Is there any kind of solution ?

Best regards

David HENG
/!\__EDIT__/!\  March 23th 2021: 

Thanks to Trond Snekvik, I create the "prj_nrf52dk_nrf52810.conf" file and putting what I need by combining and looking the "nrf51_qfaa.conf"  and "prj.conf" file. 

Finally the "prj_nrf52dk_nrf52810.conf" contains :

CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=1024

#CONFIG_BT_SETTINGS=y
#CONFIG_FLASH=y
#CONFIG_FLASH_MAP=y
#CONFIG_NVS=n
#CONFIG_SETTINGS=y

CONFIG_BT_OBSERVER=y
CONFIG_BT_CTLR_DUP_FILTER_LEN=0
CONFIG_BT_CTLR_LE_ENC=n
CONFIG_BT_DATA_LEN_UPDATE=n
CONFIG_BT_PHY_UPDATE=n
CONFIG_BT_CTLR_CHAN_SEL_2=n
CONFIG_BT_CTLR_MIN_USED_CHAN=n
CONFIG_BT_CTLR_PRIVACY=n

CONFIG_BT_PERIPHERAL=y

CONFIG_BT=y
CONFIG_BT_TINYCRYPT_ECC=y
#important_for_connection_stability a min value of 1545 is required
CONFIG_BT_RX_STACK_SIZE=1545
#CONFIG_BT_L2CAP_RX_MTU=23
#CONFIG_BT_L2CAP_TX_MTU=23
#CONFIG_BT_L2CAP_TX_BUF_COUNT=3

CONFIG_BT_MESH=y
#CONFIG_BT_MESH_MODEL_EXTENSIONS=n
#CONFIG_BT_MESH_RELAY=n
#CONFIG_BT_MESH_FRIEND=n
CONFIG_BT_MESH_PB_GATT=y
CONFIG_BT_MESH_PB_ADV=y
CONFIG_BT_MESH_GATT_PROXY=y

#CONFIG_BT_MESH_LOW_POWER=y
#CONFIG_BT_MESH_LPN_SCAN_LATENCY=30
#CONFIG_BT_MESH_LPN_RECV_DELAY=40
#CONFIG_BT_MESH_LPN_POLL_TIMEOUT=300

CONFIG_BT_MESH_SUBNET_COUNT=1
CONFIG_BT_MESH_APP_KEY_COUNT=1
CONFIG_BT_MESH_MODEL_GROUP_COUNT=1
CONFIG_BT_MESH_LABEL_COUNT=3

#CONFIG_BT_DEBUG_LOG=y

#CONFIG_BT_MESH_DEBUG=n
#CONFIG_BT_MESH_DEBUG_PROV=y
#CONFIG_BT_MESH_DEBUG_PROXY=y
#CONFIG_BT_MESH_DEBUG_BEACON=y
#CONFIG_BT_MESH_DEBUG_NET=n
#CONFIG_BT_MESH_DEBUG_TRANS=n
#CONFIG_BT_MESH_DEBUG_SETTINGS=n
#CONFIG_BT_MESH_DEBUG_LOW_POWER=y
#CONFIG_BT_MESH_DEBUG_FRIEND=n
#CONFIG_BT_MESH_DEBUG_MODEL=y
#CONFIG_BT_MESH_DEBUG_ACCESS=y
#CONFIG_BT_MESH_DEBUG_CRYPTO=y
#CONFIG_BT_MESH_DEBUG_ADV=y

 

Like this I can detect the emulate nRF52810 on the nRF Mesh application and do the provision ! However you won't see any log by using JLinkRTTClient.

Hope that it will help someone else ~ !