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

[nRF52832] [MESH] [light_control example] Increase server count - not working

Setup:

  • 3-10 servers (light_control_server example)

  • 1 client (light_control_client example) (provisioner)

  • nRF52832

  • SDK: nrf5_SDK_for_Mesh_v0.9.2

When I run default configuration 3 servers and 1 client everything works fine.

I tried to increase server count modifing:

  • SERVER_COUNT define in main.c (light_control_client)

  • nrf_mesh_config_app.h accordingly (light_control_client)

  • light_control_server unmodified

I started to test by turning on client and one server which has been provisioned ok using default setup (3 servers config).

After incresing count to 10 severs I was unable to provision even one server. The client sends:

access.c,  409, TX: [aop: 0x8008]

but never receives response from server which should:

access.c,  244, RX: [aop: 0x0002]

Insted it keeps resending "TX: [aop: 0x8008]" and finally it writes error:

provisioner.c,  272, Unexpected event: 24.

Log of working 3 server setup (client log):

<t:          0>, main.c,  486, ----- BLE Mesh Light Control Client Demo -----
<t:          0>, main.c,  592, Temp: 2402, Humi: 40
<t:          0>, main.c,  150, Initializing softdevice
<t:          0>, nrf_mesh_sdk.c,  112, Initializing SoftDevice...
<t:          2>, nrf_mesh_sdk.c,  121, Ram base: 0x200022D8
<t:         15>, nrf_mesh_sdk.c,  126, sd_ble_enable: app_ram_base should be adjusted to 0x200019C0
<t:         19>, main.c,  158, Initializing mesh stack
<t:        325>, main.c,  165, Enabling mesh stack
<t:        344>, main.c,  219, Setting up access layer and models
<t:        347>, device_state_manager.c, 1321, dsm_flash_config_load(): p_metainfo == NULL => FLASH EMPTY(?)
<t:      33415>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     519320>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     842433>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    1177534>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    1498759>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    1831030>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2169169>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2486464>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2579500>, access.c,  323, mesh_evt_cb(): p_evt->type == 3
<t:    2579503>, provisioner.c,  181, mesh_evt_handler(): NRF_MESH_EVT_UNPROVISIONED_RECEIVED
<t:    2579506>, provisioner.c,  186, mesh_evt_handler(): NRF_MESH_EVT_UNPROVISIONED_RECEIVED: start_provisioning
<t:    2579513>, provisioner.c,  192, mesh_evt_handler(): NRF_MESH_EVT_UNPROVISIONED_RECEIVED: start_provisioning NOT STARTED => m_prov_state != PROV_STATE_WAIT => 
<t:    2580842>, prov_bearer_adv.c, 1193, prov_bearer_adv_pkt_in(): PB_ADV_PACKET_C_CONTROL
<t:    2580847>, access.c,  323, mesh_evt_cb(): p_evt->type == 4
<t:    2580850>, provisioner.c,  255, mesh_evt_handler(): NRF_MESH_EVT_PROV_LINK_ESTABLISHED
<t:    2580853>, provisioner.c,  257, Local provisioning link established
<t:    2581202>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2581730>, prov_bearer_adv.c, 1175, prov_bearer_adv_pkt_in(): PB_ADV_PACKET_C_TRANSACTION_ACK
<t:    2582490>, prov_bearer_adv.c, 1166, prov_bearer_adv_pkt_in(): PB_ADV_PACKET_C_TRANSACTION_START
<t:    2582496>, access.c,  323, mesh_evt_cb(): p_evt->type == 10
<t:    2582498>, provisioner.c,  223, mesh_evt_handler(): NRF_MESH_EVT_PROV_CAPS_RECEIVED
<t:    2582503>, provisioner.c,  236, Using static authentication
<t:    2583100>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2584019>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2584378>, prov_bearer_adv.c, 1175, prov_bearer_adv_pkt_in(): PB_ADV_PACKET_C_TRANSACTION_ACK
<t:    2584844>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2585801>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2586641>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2587144>, prov_bearer_adv.c, 1175, prov_bearer_adv_pkt_in(): PB_ADV_PACKET_C_TRANSACTION_ACK
<t:    2587832>, prov_bearer_adv.c, 1166, prov_bearer_adv_pkt_in(): PB_ADV_PACKET_C_TRANSACTION_START
<t:    2588491>, prov_bearer_adv.c, 1184, prov_bearer_adv_pkt_in(): PB_ADV_PACKET_C_TRANSACTION_CONTINUE
<t:    2589385>, prov_bearer_adv.c, 1184, prov_bearer_adv_pkt_in(): PB_ADV_PACKET_C_TRANSACTION_CONTINUE
<t:    2589534>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2594168>, access.c,  323, mesh_evt_cb(): p_evt->type == 8
<t:    2594171>, provisioner.c,  244, mesh_evt_handler(): NRF_MESH_EVT_PROV_STATIC_REQUEST
<t:    2594191>, provisioner.c,  248, Static authentication data provided
<t:    2594494>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2594993>, prov_bearer_adv.c, 1175, prov_bearer_adv_pkt_in(): PB_ADV_PACKET_C_TRANSACTION_ACK
<t:    2595836>, prov_bearer_adv.c, 1166, prov_bearer_adv_pkt_in(): PB_ADV_PACKET_C_TRANSACTION_START
<t:    2596527>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2597352>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2597787>, prov_bearer_adv.c, 1175, prov_bearer_adv_pkt_in(): PB_ADV_PACKET_C_TRANSACTION_ACK
<t:    2598714>, prov_bearer_adv.c, 1166, prov_bearer_adv_pkt_in(): PB_ADV_PACKET_C_TRANSACTION_START
<t:    2599087>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2599825>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2600498>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2601013>, prov_bearer_adv.c, 1175, prov_bearer_adv_pkt_in(): PB_ADV_PACKET_C_TRANSACTION_ACK
<t:    2601698>, prov_bearer_adv.c, 1166, prov_bearer_adv_pkt_in(): PB_ADV_PACKET_C_TRANSACTION_START
<t:    2601703>, access.c,  323, mesh_evt_cb(): p_evt->type == 11
<t:    2601706>, provisioner.c,  214, mesh_evt_handler(): NRF_MESH_EVT_PROV_COMPLETE
<t:    2601709>, main.c,  394, Provisioning complete. Adding address 0x0010.
<t:    2602341>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2605520>, access.c,  323, mesh_evt_cb(): p_evt->type == 5
<t:    2605523>, provisioner.c,  198, mesh_evt_handler(): NRF_MESH_EVT_PROV_LINK_CLOSED
<t:    2605526>, provisioner.c,  200, Local provisioning link closed
<t:    2605529>, provisioner.c,  114, Getting composition data
<t:    2605536>, access.c,  409, TX: [aop: 0x8008]
<t:    2605556>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2606062>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2609137>, access.c,  317, mesh_evt_cb(): NRF_MESH_EVT_MESSAGE_RECEIVED
<t:    2609140>, access.c,  244, RX: [aop: 0x0002]
<t:    2609145>, provisioner.c,  300, Composition data: 0059000000000020000100000001010000EDFE0000FE00
<t:    2609149>, provisioner.c,  120, Adding appkey
<t:    2609156>, access.c,  409, TX: [aop: 0x0000]
<t:    2609160>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2609589>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2610384>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2611204>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2612682>, access.c,  317, mesh_evt_cb(): NRF_MESH_EVT_MESSAGE_RECEIVED
<t:    2612685>, access.c,  244, RX: [aop: 0x8003]
<t:    2612689>, provisioner.c,  127, Binding appkey
<t:    2612699>, access.c,  409, TX: [aop: 0x803D]
<t:    2612945>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2613773>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2615153>, access.c,  317, mesh_evt_cb(): NRF_MESH_EVT_MESSAGE_RECEIVED
<t:    2615156>, access.c,  244, RX: [aop: 0x803E]
<t:    2615160>, provisioner.c,  149, Setting publication state 0x0001
<t:    2615167>, access.c,  409, TX: [aop: 0x0003]
<t:    2615179>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2615515>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2616178>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2617111>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2618857>, access.c,  317, mesh_evt_cb(): NRF_MESH_EVT_MESSAGE_RECEIVED
<t:    2618860>, access.c,  244, RX: [aop: 0x8019]
<t:    2618864>, provisioner.c,  157, Adding subscription
<t:    2618870>, access.c,  409, TX: [aop: 0x801B]
<t:    2618874>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2619149>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2620041>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2620923>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2622057>, access.c,  317, mesh_evt_cb(): NRF_MESH_EVT_MESSAGE_RECEIVED
<t:    2622060>, access.c,  244, RX: [aop: 0x801F]
<t:    2622064>, main.c,  360, Configuration of device 0 successful
<t:    2653901>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2810105>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:    2956314>, access.c,  317, mesh_evt_cb(): NRF_MESH_EVT_MESSAGE_RECEIVED
<t:    2956317>, access.c,  244, RX: [aop: 0x00D4]

Log of not working 10 server setup (client log):

<t:          0>, main.c,  486, ----- BLE Mesh Light Control Client Demo -----
<t:          0>, main.c,  592, Temp: 2511, Humi: 37
<t:          0>, main.c,  150, Initializing softdevice
<t:          0>, nrf_mesh_sdk.c,  112, Initializing SoftDevice...
<t:          2>, nrf_mesh_sdk.c,  121, Ram base: 0x200022D8
<t:         14>, nrf_mesh_sdk.c,  126, sd_ble_enable: app_ram_base should be adjusted to 0x200019C0
<t:         18>, main.c,  158, Initializing mesh stack
<t:        313>, main.c,  165, Enabling mesh stack
<t:        341>, main.c,  219, Setting up access layer and models
<t:        344>, device_state_manager.c, 1321, dsm_flash_config_load(): p_metainfo == NULL => FLASH EMPTY(?)
<t:     159283>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     161111>, access.c,  323, mesh_evt_cb(): p_evt->type == 3
<t:     161114>, provisioner.c,  181, mesh_evt_handler(): NRF_MESH_EVT_UNPROVISIONED_RECEIVED
<t:     161117>, provisioner.c,  186, mesh_evt_handler(): NRF_MESH_EVT_UNPROVISIONED_RECEIVED: start_provisioning
<t:     161124>, provisioner.c,  192, mesh_evt_handler(): NRF_MESH_EVT_UNPROVISIONED_RECEIVED: start_provisioning NOT STARTED => m_prov_state != PROV_STATE_WAIT => 
<t:     163420>, prov_bearer_adv.c, 1193, prov_bearer_adv_pkt_in(): PB_ADV_PACKET_C_CONTROL
<t:     163425>, access.c,  323, mesh_evt_cb(): p_evt->type == 4
<t:     163428>, provisioner.c,  255, mesh_evt_handler(): NRF_MESH_EVT_PROV_LINK_ESTABLISHED
<t:     163431>, provisioner.c,  257, Local provisioning link established
<t:     163673>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     164374>, prov_bearer_adv.c, 1175, prov_bearer_adv_pkt_in(): PB_ADV_PACKET_C_TRANSACTION_ACK
<t:     165214>, prov_bearer_adv.c, 1166, prov_bearer_adv_pkt_in(): PB_ADV_PACKET_C_TRANSACTION_START
<t:     165219>, access.c,  323, mesh_evt_cb(): p_evt->type == 10
<t:     165222>, provisioner.c,  223, mesh_evt_handler(): NRF_MESH_EVT_PROV_CAPS_RECEIVED
<t:     165227>, provisioner.c,  236, Using static authentication
<t:     165571>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     166546>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     167006>, prov_bearer_adv.c, 1175, prov_bearer_adv_pkt_in(): PB_ADV_PACKET_C_TRANSACTION_ACK
<t:     167238>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     168041>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     168848>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     169249>, prov_bearer_adv.c, 1175, prov_bearer_adv_pkt_in(): PB_ADV_PACKET_C_TRANSACTION_ACK
<t:     169969>, prov_bearer_adv.c, 1166, prov_bearer_adv_pkt_in(): PB_ADV_PACKET_C_TRANSACTION_START
<t:     170793>, prov_bearer_adv.c, 1184, prov_bearer_adv_pkt_in(): PB_ADV_PACKET_C_TRANSACTION_CONTINUE
<t:     171757>, prov_bearer_adv.c, 1184, prov_bearer_adv_pkt_in(): PB_ADV_PACKET_C_TRANSACTION_CONTINUE
<t:     172201>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     176539>, access.c,  323, mesh_evt_cb(): p_evt->type == 8
<t:     176542>, provisioner.c,  244, mesh_evt_handler(): NRF_MESH_EVT_PROV_STATIC_REQUEST
<t:     176562>, provisioner.c,  248, Static authentication data provided
<t:     177170>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     177224>, prov_bearer_adv.c, 1175, prov_bearer_adv_pkt_in(): PB_ADV_PACKET_C_TRANSACTION_ACK
<t:     178047>, prov_bearer_adv.c, 1166, prov_bearer_adv_pkt_in(): PB_ADV_PACKET_C_TRANSACTION_START
<t:     178559>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     179351>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     179593>, prov_bearer_adv.c, 1175, prov_bearer_adv_pkt_in(): PB_ADV_PACKET_C_TRANSACTION_ACK
<t:     180538>, prov_bearer_adv.c, 1166, prov_bearer_adv_pkt_in(): PB_ADV_PACKET_C_TRANSACTION_START
<t:     180769>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     181647>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     182364>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     182928>, prov_bearer_adv.c, 1175, prov_bearer_adv_pkt_in(): PB_ADV_PACKET_C_TRANSACTION_ACK
<t:     183710>, prov_bearer_adv.c, 1166, prov_bearer_adv_pkt_in(): PB_ADV_PACKET_C_TRANSACTION_START
<t:     183716>, access.c,  323, mesh_evt_cb(): p_evt->type == 11
<t:     183718>, provisioner.c,  214, mesh_evt_handler(): NRF_MESH_EVT_PROV_COMPLETE
<t:     183722>, main.c,  394, Provisioning complete. Adding address 0x0010.
<t:     184191>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     187409>, access.c,  323, mesh_evt_cb(): p_evt->type == 5
<t:     187411>, provisioner.c,  198, mesh_evt_handler(): NRF_MESH_EVT_PROV_LINK_CLOSED
<t:     187414>, provisioner.c,  200, Local provisioning link closed
<t:     187417>, provisioner.c,  114, Getting composition data
<t:     187425>, access.c,  409, TX: [aop: 0x8008]
<t:     187452>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     187832>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     195955>, access.c,  409, TX: [aop: 0x8008]
<t:     196635>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     204474>, access.c,  409, TX: [aop: 0x8008]
<t:     205047>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     220662>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     221511>, access.c,  409, TX: [aop: 0x8008]
<t:     221605>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     222371>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     254607>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     255357>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     255594>, access.c,  409, TX: [aop: 0x8008]
<t:     256194>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     287071>, access.c,  323, mesh_evt_cb(): p_evt->type == 24
<t:     287074>, provisioner.c,  272, Unexpected event: 24.
<t:     287279>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     319989>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     323750>, access.c,  409, TX: [aop: 0x8008]
<t:     323758>, access.c,  323, mesh_evt_cb(): p_evt->type == 24
<t:     323761>, provisioner.c,  272, Unexpected event: 24.
<t:     324295>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     357224>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     389538>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     422688>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     454848>, access.c,  323, mesh_evt_cb(): p_evt->type == 24
<t:     454851>, provisioner.c,  272, Unexpected event: 24.
<t:     460063>, access.c,  409, TX: [aop: 0x8008]
<t:     460357>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
<t:     472301>, access.c,  323, mesh_evt_cb(): p_evt->type == 1
Related