<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Need help to improve Bluetooth Mesh throughput</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/31148/need-help-to-improve-bluetooth-mesh-throughput</link><description>I am currently using two nRF52832 SDK boards to implement text message exchange with another nRF52832 SDK board via BLE Mesh. 
 I based my development on the Light Switch example that was included with the Mesh SDK 1.0.0 
 One of the board was based on</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 22 May 2018 10:12:30 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/31148/need-help-to-improve-bluetooth-mesh-throughput" /><item><title>RE: Need help to improve Bluetooth Mesh throughput</title><link>https://devzone.nordicsemi.com/thread/132706?ContentTypeID=1</link><pubDate>Tue, 22 May 2018 10:12:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:15355e11-175b-4e7d-9137-eabb8a56e4a1</guid><dc:creator>David Edwin</dc:creator><description>&lt;p&gt;Just to summarize, you are looking at a&lt;/p&gt;
&lt;p&gt;1. Throughput of about 200 kbits per 10 second per node (25 KBytes per 10 seconds per node)&lt;/p&gt;
&lt;p&gt;- This will mean that the bandwidth at the gateway/exit node from the mesh is number of nodes multiplied by the per node bandwidth , i.e. for 15 nodes it would mean&amp;nbsp; 15 x 200 kbits per 10 seconds , i.e. 3000 kbits per 10 seconds or 300 kbits per second.&lt;/p&gt;
&lt;p&gt;2. Number of nodes sending data : assumed to be 15&lt;/p&gt;
&lt;p&gt;- We assume 1 exit node in addition&lt;/p&gt;
&lt;p&gt;3. Maximum number of hops : Let me assume 2 hops&lt;/p&gt;
&lt;p&gt;=&lt;/p&gt;
&lt;p&gt;As you can see the throughput at the gateway node will need to scale for the number of nodes, so you need to look at that to see if it is viable for your products final configuration or examine ways to reduce data being generated from the nodes.&lt;/p&gt;
&lt;p&gt;More hops will also degrade the bandwidth substantially even with instaburst&lt;/p&gt;
&lt;p&gt;To test the instaburst, I would suggest using only 2 nodes first, i.e. 1 node sending the data and 1 node receiving the data as gateway or exit node measure the time taken and then add more nodes to understand the behavior that you see. Additionally get the statistical data from the mesh so you see where the bottlenecks are.&lt;/p&gt;
&lt;p&gt;Your usecase is using significant bandwidth and I think will need tuning and good understanding of hops and node count to get the numbers you want, so approach this carefully.&lt;/p&gt;
&lt;p&gt;You can also consider using the &lt;a href="https://github.com/mwaylabs/fruitymesh"&gt;Fruity Mesh&lt;/a&gt; as the mesh backend for your project as that is connection oriented and could get better throughput.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need help to improve Bluetooth Mesh throughput</title><link>https://devzone.nordicsemi.com/thread/131199?ContentTypeID=1</link><pubDate>Mon, 07 May 2018 12:45:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2ce9c310-b7b6-4504-a75a-25f178369d43</guid><dc:creator>vishal</dc:creator><description>&lt;p&gt;Hi aleccontrol,&lt;/p&gt;
&lt;p&gt;I have facing same issue in my current project i have developed complete application using nRF mesh technology. But my sensor data is 24KB this all data is transmitted but it took near about 2 minutes. But this time is much more we want to send this all data within 5-6 second. Can you tell me is it possible in nRF mesh technology. currently i have using mesh experimental instabrust feature for increase throughput and larger bandwidth. using this feature it took 2 minutes.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Can anyone tell me is it possible to transmit 24-25 KB data within less than 10 second in mesh network with relaying functionality.&lt;/p&gt;
&lt;p&gt;Thanks..&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need help to improve Bluetooth Mesh throughput</title><link>https://devzone.nordicsemi.com/thread/130368?ContentTypeID=1</link><pubDate>Tue, 01 May 2018 09:04:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8a4c0081-efa9-44e7-ba0c-1bdc4a8e312b</guid><dc:creator>mike</dc:creator><description>&lt;p&gt;Is there any need to change something in the node configuration or node setup on the provisioner side?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need help to improve Bluetooth Mesh throughput</title><link>https://devzone.nordicsemi.com/thread/130270?ContentTypeID=1</link><pubDate>Mon, 30 Apr 2018 11:43:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2601e225-0934-4bff-a95a-7a8466647b96</guid><dc:creator>leonwj</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Yes, from recollection the code was built on top of the light switch example in v1.0.1 of the mesh SDK. I recall that a few changes were made to get it up and running but the custom model was left intact.&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need help to improve Bluetooth Mesh throughput</title><link>https://devzone.nordicsemi.com/thread/130233?ContentTypeID=1</link><pubDate>Mon, 30 Apr 2018 07:54:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:715bbe51-dcd5-4ff2-82b2-b07b20915c12</guid><dc:creator>mike</dc:creator><description>&lt;p&gt;Hello, your&amp;#39;e saying you had no issues with the attached code, so naturally I&amp;#39;m wondering where the difference lies=) do you call send_command_client() from main.c or how have you set it up?(newbie here). I suppose you built it on top of the light switch example?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need help to improve Bluetooth Mesh throughput</title><link>https://devzone.nordicsemi.com/thread/130231?ContentTypeID=1</link><pubDate>Mon, 30 Apr 2018 07:51:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6bf0f352-1408-46cd-a2d9-62c552297ece</guid><dc:creator>David Edwin</dc:creator><description>&lt;p&gt;Have you got some data on the packet losses from the statistical interface so you can be sure if it is an RF side packet loss or an internal buffer restriction.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need help to improve Bluetooth Mesh throughput</title><link>https://devzone.nordicsemi.com/thread/130230?ContentTypeID=1</link><pubDate>Mon, 30 Apr 2018 07:51:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ef6012be-e294-41d5-b97b-0213081785f4</guid><dc:creator>David Edwin</dc:creator><description>&lt;p&gt;Have you got some data on the packet losses from the statistical interface so you can be sure if it is an RF side packet loss or an internal buffer restriction.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need help to improve Bluetooth Mesh throughput</title><link>https://devzone.nordicsemi.com/thread/130229?ContentTypeID=1</link><pubDate>Mon, 30 Apr 2018 07:51:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e28665bf-7e0c-4929-be06-90937e1ea7f3</guid><dc:creator>David Edwin</dc:creator><description>&lt;p&gt;Have you got some data on the packet losses from the statistical interface so you can be sure if it is an RF side packet loss or an internal buffer restriction.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need help to improve Bluetooth Mesh throughput</title><link>https://devzone.nordicsemi.com/thread/130214?ContentTypeID=1</link><pubDate>Mon, 30 Apr 2018 00:24:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ea3ef2fc-9ff4-46e9-a35c-623cf74fecdf</guid><dc:creator>aleccontrol</dc:creator><description>&lt;p&gt;I have not been able to get any further improvement in the performance. It appears to me that either the BT Mesh or the Nordic stack is not be able to handle the throughput I need for my application (which really is nothing more than to replace serial connection at a modest at 9600bps). The large latency and high percentage of packet loss I experienced makes it unsuitable for a command/response communication exchange between two device via the BT mesh. I will probably have to look for another technology.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need help to improve Bluetooth Mesh throughput</title><link>https://devzone.nordicsemi.com/thread/130211?ContentTypeID=1</link><pubDate>Sun, 29 Apr 2018 18:23:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:355b2284-8e41-4c62-831e-b068f7856f86</guid><dc:creator>mike</dc:creator><description>&lt;p&gt;Hello&lt;/p&gt;
&lt;p&gt;I am sitting with the exact same problem, with a similar setup as you. Did you get any further on your original issue? Is it only packet loss that is the problem or did you find anything else in code?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need help to improve Bluetooth Mesh throughput</title><link>https://devzone.nordicsemi.com/thread/129838?ContentTypeID=1</link><pubDate>Wed, 25 Apr 2018 16:06:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4576176a-ce23-47d9-9c68-a60f759e81d9</guid><dc:creator>Hadi Deknache</dc:creator><description>&lt;p&gt;Hi, this might be an off topic question, but we were testing this and wanted to log something similar to what is done above with timestamps when starting and stopping. &amp;nbsp;How did you achieve this when running Segger J-Link RTT Viewer?&lt;/p&gt;
&lt;p&gt;Thanks in advance :)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need help to improve Bluetooth Mesh throughput</title><link>https://devzone.nordicsemi.com/thread/125831?ContentTypeID=1</link><pubDate>Sat, 24 Mar 2018 07:11:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4f5f404b-761b-4841-baed-771eec95784a</guid><dc:creator>aleccontrol</dc:creator><description>&lt;p&gt;Hi Leonwj,&lt;/p&gt;
&lt;p&gt;I appreciate that you took time to reply and provided some useful statistics. I agree that your test case was pretty intense since you are using 3 servers to trigger the client to send command every 100ms so the air wave is probably pretty congested.&lt;/p&gt;
&lt;p&gt;In our case we are just sending the command out of the client (the frequency of sending the command is entirely controlled by the client) and then the client will wait to receive the response back from one single server. Only when the client has received a response from the server will it continue to send another command. This is pretty common method in industrial control where the master (client) send a command to a slave (server) and then wait for the slave to return the response before continuing further.&lt;/p&gt;
&lt;p&gt;Would you be able to test such a setup and determine the latency that is expected for a complete command/response exchange?&amp;nbsp; We are interested in knowing how many command and response exchanges that can realistically be accomplished via the BLE mesh to determine if we could use BLE Mesh as a communication media.&lt;/p&gt;
&lt;p&gt;What we experienced is that it seems impossible for the client to sustain a continuous command/response exchanges with the server without frequent errors. One in every few commands that were sent out by the client did not get a response from the server and so the client side blocks until time-out (set at 2 seconds). In our test case we are sending just a few bytes (below 11 bytes threshold before SAR kicks in) and in real life the client and server will be sending and receiving many more bytes per exchange so it is important that latency and packet loss are kept to minimum.&lt;/p&gt;
&lt;p&gt;In our application the client may occasionally need to retrieve say 2000 bytes of data from a server.&amp;nbsp; What would be best the way to achieve it in the shortest possible amount of time? In traditional communication via UART the client will send a command packet that tell the server to return say up to 100 bytes per response packet and so it will take about 20 successful exchanges to retrieve 2000 bytes.&amp;nbsp; How long would you expect it will take to retrieve this amount of data?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Thank you very much!&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need help to improve Bluetooth Mesh throughput</title><link>https://devzone.nordicsemi.com/thread/125824?ContentTypeID=1</link><pubDate>Sat, 24 Mar 2018 01:05:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c25c0244-b190-4d61-9a72-094d65ea1a6a</guid><dc:creator>leonwj</dc:creator><description>&lt;p&gt;Additionally, (&lt;em&gt;for both yourself and anyone else who&amp;#39;s interested in the throughput level expectations of Bluetooth Mesh&lt;/em&gt;), you might want to listen to the following &lt;a href="https://www.youtube.com/watch?v=y1vOSEjQRHY" rel="noopener noreferrer" target="_blank"&gt;podcast/webinar&lt;/a&gt; in which &lt;a href="https://www.bluetooth.com/membership-working-groups/working-groups/awards/working-group-awards" rel="noopener noreferrer" target="_blank"&gt;Szymon Slupik&lt;/a&gt;, Chair of the Bluetooth SIG Mesh Working Group highlights why &lt;em&gt;he&lt;/em&gt; believes that Bluetooth Mesh meets the required performance levels (among other benefits) for both industrial and home.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;(&lt;em&gt;please also note that I&amp;#39;m not affiliated with&amp;nbsp;Szymon and/or Mr. Beacon in any way but have simply followed the mesh specification process since FRD 0.7&lt;/em&gt;)&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need help to improve Bluetooth Mesh throughput</title><link>https://devzone.nordicsemi.com/thread/125823?ContentTypeID=1</link><pubDate>Sat, 24 Mar 2018 00:41:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:61eab888-1066-41b5-a0f9-87729d0b64ca</guid><dc:creator>leonwj</dc:creator><description>&lt;p&gt;hello&amp;nbsp;aleccontrol,&lt;/p&gt;
&lt;p&gt;Apologies for the belated response to your latest comment...&lt;/p&gt;
&lt;p&gt;Certain&amp;nbsp;things that I wanted to point out regarding the packet loss statistics that I presented, are as follows:&lt;/p&gt;
&lt;p&gt;1. the stats were from using the model that you uploaded without any changes, so we would possibly need to review the model before attributing any loss to the underlying mesh&lt;/p&gt;
&lt;p&gt;2. We implemented the cmd/resp mechanism under the heartbeat callback mechanism, which may not be the most appropriate place to do so. e.g. if we set the heartbeat period to 100 msecs for each server, that means that when each server sends a message, the client immediately publishes a &amp;quot;Test&amp;quot; command to the group (i.e. 3 servers) which then each send back a response. So every 1/10th sec we have:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a. 3 heartbeat messages (server(s) -&amp;gt; client)&lt;/li&gt;
&lt;li&gt;b. 1 command message published to the group (client -&amp;gt; server(s))&lt;/li&gt;
&lt;li&gt;c. 3 response messages sent to the client (server(s) -&amp;gt; client)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Given that there shouldn&amp;#39;t be any relaying taking place (&lt;em&gt;the nodes are within close proximity and message caching would ensure that repeats are avoided&lt;/em&gt;), that means 70 messages every second across the mesh. Also, we haven&amp;#39;t done any timeline analysis&amp;nbsp;to determine&amp;nbsp;if there&amp;#39;s a specific point(s) within our &lt;strong&gt;basic&lt;/strong&gt; test where we start to see&amp;nbsp;packet loss or whether the loss was uniform.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;I do recall reading a vendor produced whitepaper, where circa 900&amp;nbsp;mesh&amp;nbsp;devices were deployed&amp;nbsp;over a 2,000 sq m. area with a target response time/latency of 300 msec being set for message delivery in message traffic configs of &lt;em&gt;(low - ~150bps) - (medium - ~1kbps) - (high - ~3kbps)&lt;/em&gt;. I grabbed a screenshot of the results at the time (see below), which highlighted that at least 99.1% of messages were successfully delivered with 300 msec latency across a high traffic (enhanced configuration) in both sparse and dense deployments. I recall that &lt;em&gt;enhanced&lt;/em&gt; meant that source message re-transmissions were&amp;nbsp;performed as well as advertising randomization whereas Baseline was a standard mesh implementation.&amp;nbsp;Also note that this &lt;strong&gt;wasn&amp;#39;t&lt;/strong&gt; Nordics&amp;#39;s mesh stack!! (&lt;em&gt;If you are interested, let me know and I&amp;#39;ll see if I can dig out the link to the whitepaper&lt;/em&gt;.)&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/687x192/__key/communityserver-discussions-components-files/4/2703.mesh_2D00_message_2D00_delivery_2D00_reliability.png" /&gt;&lt;/p&gt;
&lt;p&gt;I guess the general takeaway(s) from the above would be:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;that we shouldn&amp;#39;t base any firm design decision(s) on the packet loss figures that I provided (&lt;em&gt;since the config is/was not optimized or validated&lt;/em&gt;)&lt;hr /&gt;&lt;/li&gt;
&lt;li&gt;the High traffic w/Dense deployment Baseline stat (69.2% - from the table), does reflect a similar level of degradation to what we saw in our basic test&lt;hr /&gt;&lt;em&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;there are Enhanced optimizations that can be implemented to increase mesh reliability and throughput&lt;hr /&gt;&lt;/li&gt;
&lt;li&gt;the results reflect fairly well on Bluetooth mesh when compared to results i&amp;#39;ve seen across Zigbee, Z-wave etc. based on lower device numbers (the caveat being that this &lt;strong&gt;&lt;em&gt;is only one specific configuration&lt;/em&gt;&lt;/strong&gt; under test)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I hope the above helps.&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need help to improve Bluetooth Mesh throughput</title><link>https://devzone.nordicsemi.com/thread/124680?ContentTypeID=1</link><pubDate>Fri, 16 Mar 2018 05:06:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:268191ca-e69b-42d0-ae54-25742a449dbb</guid><dc:creator>aleccontrol</dc:creator><description>&lt;p&gt;Hi Leonwj,&lt;/p&gt;
&lt;p&gt;You are right that I was looking at the wrong &amp;quot;case&amp;quot; statement so yes, the following statement was indeed the default for &amp;quot;case :PROV_STATE_CONFIG_PUBLICATION_HEALTH&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; pubstate.publish_period.step_res = ACCESS_PUBLISH_RESOLUTION_10s&lt;/p&gt;
&lt;p&gt;Thank you very much for testing out the command/response program. I think the large percentage of packet losses at the server is probably the reason why we feel that the communication appears to choke when attempt to send out faster than 2 packets a second.&lt;/p&gt;
&lt;p&gt;In an M2M communication typically when the client sends out a command packet, it will wait for a response packet to be received from the server before it proceed to send the next command. If the server fails send a response, then the client will time out after some time (in our case we set the time out to 1 second). The client will only send the next command packet after the time out.&lt;/p&gt;
&lt;p&gt;If 25% of the consecutive commands is lost as per your test, that means that the client will fail to receive 1 in 4 responses. The client is thus unable to sustain a smooth command/response communication with the server every 100ms as it constantly have to wait for the time out before it can send the next packet. So the communication appears to stop frequently due to the time out.&lt;/p&gt;
&lt;p&gt;What is the reason for such high packet loss and is there any way to minimize the packet loss? &amp;nbsp;The client and the server are actually sitting at less than 1 meter apart and I only have 1 client and 1 server communicating. There wasn&amp;rsquo;t any other Bluetooth devices communicating nearby. &amp;nbsp;What would be the maximum command/response exchange rate in order to maintain &amp;lt;= 1% packet loss?&lt;/p&gt;
&lt;p&gt;Thanks again for your expert advise!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need help to improve Bluetooth Mesh throughput</title><link>https://devzone.nordicsemi.com/thread/124509?ContentTypeID=1</link><pubDate>Thu, 15 Mar 2018 08:18:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ace3e53f-037b-4923-b4b3-10325c1a98b0</guid><dc:creator>leonwj</dc:creator><description>&lt;p&gt;&lt;span&gt;hello&amp;nbsp;aleccontrol,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I just re-downloaded both the v1.0 and v1.01 Mesh SDKs from the Nordic website and they both have the&amp;nbsp; &lt;em&gt;case PROV_STATE_CONFIG_PUBLICATION_HEALTH:&lt;/em&gt; set to &lt;em&gt;ACCESS_PUBLISH_RESOLUTION_10S&lt;/em&gt;. (Possibly you are confusing this with the&amp;nbsp;&lt;em&gt;case PROV_STATE_CONFIG_PUBLICATION_ONOFF&lt;/em&gt;: case which is directly below in the code). So i&amp;#39;m not sure if that setting pertains to your issue.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;In any case, I went ahead and implemented the simple_on_off model that you attached within our environment. As you suggested, we commented out the UART &lt;em&gt;comm1_strout&lt;/em&gt; functionality and simply echoed back out the received command string along with a counter value to iterate through the responses from each server node. We set the&amp;nbsp;&lt;strong&gt;send_command_client(&amp;amp;m_clients[GROUP_CLIENT_INDEX], command, 4)&lt;/strong&gt;; function to trigger every time&amp;nbsp;we received a heartbeat message from any of the 3 provisioned nodes.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;So in the above scenario, the 3 server nodes send out a heartbeat message (at the specified interval, we tested 1 sec and 0.1 sec) which then triggers the client node to send the &amp;quot;Test&amp;quot; command to the 3 servers which each then send back an echoed response.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Needless to say, we are not seeing the same throughput issue that you have reported. I have attached the RTT log file from the 100MS (0.1 sec) test run that we analyzed over a 5 minute (300 sec) period. Within that log we see significant mesh network throughput (albeit a simple echo of the &amp;quot;Test&amp;quot; string with a counter value returned). We do however see approximately 25% packet loss at that message frequency.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Regards,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/rtt_2D00_log_2D00_100ms_2D00_cmd_2D00_resp_5B00_3_2D00_svrs_5D00_.zip"&gt;devzone.nordicsemi.com/.../rtt_2D00_log_2D00_100ms_2D00_cmd_2D00_resp_5B00_3_2D00_svrs_5D00_.zip&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need help to improve Bluetooth Mesh throughput</title><link>https://devzone.nordicsemi.com/thread/124487?ContentTypeID=1</link><pubDate>Thu, 15 Mar 2018 07:06:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b09bf1ce-10af-4ded-abb7-272e267513bf</guid><dc:creator>aleccontrol</dc:creator><description>&lt;p&gt;Hello Leonwj,&lt;/p&gt;
&lt;p&gt;Thank you very much for the suggestion.&lt;/p&gt;
&lt;p&gt;The BLE Mesh version 1.0.0 that I have downloaded already contain this line in the &amp;nbsp;&lt;/p&gt;
&lt;p&gt;case PROV_STATE_CONFIG_PUBLICATION_HEALTH:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pubstate.publish_period.step_res = ACCESS_PUBLISH_RESOLUTION_100MS;&lt;/p&gt;
&lt;p&gt;Does that mean the stack I have been working on is already flooding the comm channel with heartbeat check every 0.1s?&amp;nbsp; Could that be the reason why the intended command/response packet is being affected by the rapid heart beat check? &lt;/p&gt;
&lt;p&gt;I tried changing it back to 10s (I assume that is what it should have been) but I am still experiencing the same latency issue. Do I need to re-provision the client and the server for the heart beat period to change?&lt;/p&gt;
&lt;p&gt;By the way is there a quick way force the client to re-provision the server? So far I have used &amp;quot;Erase All Memory&amp;quot; option to clear the provisioning data on both clients and servers so that a new provisioning can take place.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;pre class="ui-code"&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need help to improve Bluetooth Mesh throughput</title><link>https://devzone.nordicsemi.com/thread/124467?ContentTypeID=1</link><pubDate>Wed, 14 Mar 2018 20:51:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4c8e96a2-1481-403f-988d-2e19d0e77e8c</guid><dc:creator>leonwj</dc:creator><description>&lt;p&gt;hello&amp;nbsp;aleccontrol,&lt;/p&gt;
&lt;p&gt;We have also setup a command/control model to test Bluetooth mesh throughput/reliability, however we have not experienced the issue(s) that you mentioned. I&amp;#39;m not clear on the use case that you are trying to implement which requires the mesh client model to send messages with that level of frequency but would suggest that in order to test throughput across your mesh environment, do the following...&lt;/p&gt;
&lt;p&gt;Bluetooth Mesh implements&amp;nbsp;a Health server as a root model so by utilizing that you can quickly monitor message delivery across the mesh network. Using the default light-switch example (with 1 x client and 3 x servers) amend&amp;nbsp; &lt;em&gt;provisioner.c&lt;/em&gt; in the client to request heartbeat messages every 100 milliseconds as follows (note: the default 10s heartbeat has been commented out):&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;        /* Configure the publication parameters for the On/Off server: */
        case PROV_STATE_CONFIG_PUBLICATION_HEALTH:
        {
            config_publication_state_t pubstate = {0};
            pubstate.element_address = m_target_address;
            pubstate.publish_address.type = NRF_MESH_ADDRESS_TYPE_UNICAST;
            pubstate.publish_address.value = PROVISIONER_ADDRESS;
            pubstate.appkey_index = 0;
            pubstate.frendship_credential_flag = false;
            pubstate.publish_ttl = SERVER_COUNT;
            pubstate.publish_period.step_num = 1;
            //pubstate.publish_period.step_res = ACCESS_PUBLISH_RESOLUTION_10S;       // WJL
            pubstate.publish_period.step_res = ACCESS_PUBLISH_RESOLUTION_100MS;
            pubstate.retransmit_count = 1;
            pubstate.retransmit_interval = 0;
            pubstate.model_id.company_id = ACCESS_COMPANY_ID_NONE;
            pubstate.model_id.model_id = HEALTH_SERVER_MODEL_ID;
            __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, &amp;quot;Setting publication address for the health server to 0x%04x\n&amp;quot;, pubstate.publish_address.value);

            ERROR_CHECK(config_client_model_publication_set(&amp;amp;pubstate));
            break;
        }&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;This will obviously request each provisioned server to send&amp;nbsp;10 messages a second across the mesh, with the expectation that the 3 servers would push 30 such heartbeats each second. Based upon the results, both reliability and throughput can be measured. The results we see in our environment are as follows:&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/666x755/__key/communityserver-discussions-components-files/4/8407.rtt_2D00_sect_2D00_start_2D00_end_2D00_3_2D00_14_2D00_2018-3_2D00_32_2D00_04-PM.png" /&gt;&lt;/p&gt;
&lt;p&gt;So across a 4 minute and 2 second time-span (242 seconds), we&amp;#39;re seeing 7,200 messages across the mesh which equates to approx. 30 per sec. which in turn is reflective&amp;nbsp;of the 30 heartbeats that we expected (The mesh spec limits each&amp;nbsp;node to 24 Hz so this is within spec)&lt;/p&gt;
&lt;p&gt;You could additionally amend your environment by increasing the distance between the server nodes and the base client (and adding simple relay nodes where required). Again, the above doesn&amp;#39;t mimic your command/response model but it does allow you to at least verify mesh throughput with a single line change to the basic example code.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ll try to implement your model in our environment and post back if I see any extraneous results.&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need help to improve Bluetooth Mesh throughput</title><link>https://devzone.nordicsemi.com/thread/124389?ContentTypeID=1</link><pubDate>Wed, 14 Mar 2018 13:59:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d44c81fe-54f1-4e22-874b-6e33287af1be</guid><dc:creator>David Edwin</dc:creator><description>&lt;p&gt;statistical information is available through scanner.h -&amp;gt;&amp;nbsp;scanner_stats_get() , this should get you the statistics for the normal(excludes instaburst) mesh channel operations.&lt;/p&gt;
&lt;p&gt;Instaburst statistics are available through&amp;nbsp;instaburst_rx.h -&amp;gt; instaburst_rx_stats_get(channel) , you will need to iterate through all the channels you are using.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need help to improve Bluetooth Mesh throughput</title><link>https://devzone.nordicsemi.com/thread/124350?ContentTypeID=1</link><pubDate>Wed, 14 Mar 2018 10:46:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:da1242d9-4962-41ab-936c-a818753f70c1</guid><dc:creator>vishal</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I am also trying to send text message over ble mesh but until not find solution.&lt;/p&gt;
&lt;p&gt;Can you provide me your light switch main.c file. I have download the above .zip file but try to send simple test message but this also not send. Please help me for send text message client to server.&lt;/p&gt;
&lt;p&gt;Thanks..&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need help to improve Bluetooth Mesh throughput</title><link>https://devzone.nordicsemi.com/thread/124346?ContentTypeID=1</link><pubDate>Wed, 14 Mar 2018 10:38:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:52b1f9cd-1e82-4bce-b093-adc750d01623</guid><dc:creator>David Edwin</dc:creator><description>&lt;p&gt;Segmentation And Reassembly&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need help to improve Bluetooth Mesh throughput</title><link>https://devzone.nordicsemi.com/thread/124302?ContentTypeID=1</link><pubDate>Wed, 14 Mar 2018 09:03:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:74025c4d-e1de-4847-b40d-b9bbc6a4072f</guid><dc:creator>au</dc:creator><description>&lt;p&gt;What is SAR here?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need help to improve Bluetooth Mesh throughput</title><link>https://devzone.nordicsemi.com/thread/124283?ContentTypeID=1</link><pubDate>Wed, 14 Mar 2018 07:53:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4163bb31-d698-4bf2-bd36-92f50af5b103</guid><dc:creator>David Edwin</dc:creator><description>&lt;p&gt;The fastest transfer methods are unreliable and where the application manages the responses and not the lower stack. It appears you are doing this. However verify that you are not using a reliable message. (I have not checked the zip file as I noticed it quite late)&lt;/p&gt;
&lt;p&gt;Edited : 4 packets a second is within the capability of the Mesh. 24-20 packets per seconds is possible to be transmitted but there will be a portion of packets lost based on topology. You many need to consider the Nordic Instaburst as well if you want larger bandwidth&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;"&gt;Get the statistical data from the stack so you can check if your configuration of queue sizes are ok. i.e. no overflows etc.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;You can also check the return codes of the functions where you are sending data to the stack to see if did manage to get to the incoming queues.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need help to improve Bluetooth Mesh throughput</title><link>https://devzone.nordicsemi.com/thread/124275?ContentTypeID=1</link><pubDate>Wed, 14 Mar 2018 06:39:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6a2b1530-0b4d-48da-a949-4e90c780c150</guid><dc:creator>aleccontrol</dc:creator><description>&lt;p&gt;Thanks I did try with sending command message that is only 4 bytes long and got&amp;nbsp; response that is also 4 bytes long. It has improved a bit when tried to send two commands every seconds but the communication still chokes when tried to increase the frequency to sending about 4 commands a second. When the communication chokes you can see that the server simply stop responding for a few seconds and then handle the last command it receives.&lt;/p&gt;
&lt;p&gt;We are hoping to be able to exchange text messages of possibly between 10 to 100 bytes via BLE Mesh, just like how we normally do via UART. Many control applications make use of such command/response messages to exchange data between devices (e.g. Modbus ASCII or RTU).&amp;nbsp; BLE Mesh is supposed to be able to handle data payload as large as 300+ bytes, but even when we tested with small packets such as 10 to 15 bytes the delay we experienced frankly is unacceptably high to be useable for command/response message exchange. I hope what I encountered is due to my configuration and not something inherent to BLE mesh.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Need help to improve Bluetooth Mesh throughput</title><link>https://devzone.nordicsemi.com/thread/124273?ContentTypeID=1</link><pubDate>Wed, 14 Mar 2018 06:20:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:63d54527-a273-4d94-afe5-8fee2e30881b</guid><dc:creator>aleccontrol</dc:creator><description>&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/simple_5F00_on_5F00_off.zip"&gt;devzone.nordicsemi.com/.../simple_5F00_on_5F00_off.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Thanks for your reply.&lt;/p&gt;
&lt;p&gt;I have attached the modified files for the &amp;quot;simple_on_off_client&amp;quot;, &amp;quot;simple_on_off_server&amp;quot; used for testing.&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;Client&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;To test the command/response, add the following code fragment to the main.c in the simple_on_off_client project:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;extern uint32_t send_command_client(simple_on_off_client_t * p_client, uint8_t *command, uint16_t length);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint8_t command[] = &amp;quot;Test&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; status = send_command_client(&amp;amp;m_clients[GROUP_CLIENT_INDEX], command, 4);&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Note: I have edited the length to 4 (was 9 when first posted) since the command string now only contains 4 bytes)&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;Server&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The simple_on_off_server has been modified so that it will simply copy the message it received and echo back to the client as a response package.&lt;br /&gt;&lt;br /&gt;The client will run the function &amp;quot;handle_response_cb() when it receives the response from the server. You can log the response it received from the server. In our program we actually send the message out of the UART that requires to link with the app_uart files so you can simply comment out the call to &amp;quot;com1_strout() in our program&amp;quot;.&lt;br /&gt;&lt;br /&gt;Thank you if you can share with us your finding and suggested solutions.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>