I am working with the light switch example and am having some issues surrounding node configuration, namely getting the composition data.
Setup: 1 client/provisioner (both in the same device), 50 servers. All devices within 1-2 meters of one another. All devices using nRF52840 with s140 softdevice.
Currently I am trying to provision all servers but for unknown reasons it never seems to be able to get past around 35-40 devices before repeatedly failing to get composition data.
Provisioning stage seems to work fine. SERVER_NODE_COUNT has been increased to 60.
Example log of successfully getting composition data:
<info> app: Provisioning complete. Node addr: 0x0102 elements: 1 <info> app: Configuring Node: 0x0102 <info> app: Config client setup: devkey_handle:4 addr_handle:2 <info> app: NODE_SETUP_CONFIG_COMPOSITION_GET <info> app: Getting composition data <info> app: Net TX <info> app: TX: [aop: 0x8008] <info> app: TX: Msg <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Got segment 2 <info> app: Sending ACK... <info> app: Net TX <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Got segment 0 <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Got segment 1 <info> app: Sending ACK... <info> app: Net TX <info> app: Message decrypted <info> app: RX: [aop: 0x0002] <info> app: RX: Msg <debug> app: Config client event with opcode: 2 and message event type: 2 <info> app: NODE_SETUP_CONFIG_NETWORK_TRANSMIT <info> app: Updating network transmit: count: 2 steps: 1 ...
Example log of composition data failing:
<info> app: Provisioning complete. Node addr: 0x012A elements: 1 <info> app: Configuring Node: 0x012A <info> app: Config client setup: devkey_handle:44 addr_handle:42 <info> app: NODE_SETUP_CONFIG_COMPOSITION_GET <info> app: Getting composition data <info> app: Net TX <info> app: TX: [aop: 0x8008] <info> app: TX: Msg <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Got segment 1 <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Got segment 2 <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Sending ACK... <info> app: Net TX <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Got segment 0 <info> app: Sending ACK... <info> app: Net TX <info> app: Message decrypted <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net TX <info> app: TX: [aop: 0x8008] <info> app: TX: Msg <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Got segment 1 <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Got segment 2 <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Sending ACK... <info> app: Net TX <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Got segment 0 <info> app: Sending ACK... <info> app: Net TX <info> app: Message decrypted <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net TX <info> app: TX: [aop: 0x8008] <info> app: TX: Msg <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Got segment 1 <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Sending ACK... <info> app: Net TX <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Got segment 2 <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Sending ACK... <info> app: Net TX <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Got segment 0 <info> app: Sending ACK... <info> app: Net TX <info> app: Message decrypted <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net TX <info> app: TX: [aop: 0x8008] <info> app: TX: Msg <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Got segment 1 <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Got segment 0 <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Got segment 2 <info> app: Sending ACK... <info> app: Net TX <info> app: Message decrypted <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net TX <info> app: TX: [aop: 0x8008] <info> app: TX: Msg <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Got segment 0 <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Got segment 2 <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Sending ACK... <info> app: Net TX <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Got segment 1 <info> app: Sending ACK... <info> app: Net TX <info> app: Message decrypted <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net TX <info> app: TX: [aop: 0x8008] <info> app: TX: Msg <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Got segment 1 <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Sending ACK... <info> app: Net TX <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Got segment 2 <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Sending ACK... <info> app: Net TX <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Got segment 0 <info> app: Sending ACK... <info> app: Net TX <info> app: Message decrypted <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Got segment 0 <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Net RX (enc) <info> app: Sending ACK... <info> app: Net TX <info> app: Net RX (enc) <info> app: Net RX (unenc) <info> app: Net RX (enc) <info> app: Net RX (enc) <debug> app: Config client event with opcode: 1024 and message event type: 0 <info> app: Acknowledged message status not received <info> app: app_config_failed_cb
I have attempted to repeat the provisioning process when it fails multiple times and it always fails on getting composition data.
Any ideas what could be the issue?