<?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>ATT_MTU Throuput Example Setup GATTS &amp;amp; GATTC</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/40494/att_mtu-throuput-example-setup-gatts-gattc</link><description>Hello Community, 
 I have been trying to avoid asking this question here (it may be trivial) but I guess the answer will help other people as well. 
 In the ATT_MTU throughput example (SDK15.2.0 and previous ones) one unit is set as Central and the other</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 16 Nov 2018 13:22:49 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/40494/att_mtu-throuput-example-setup-gatts-gattc" /><item><title>RE: ATT_MTU Throuput Example Setup GATTS &amp; GATTC</title><link>https://devzone.nordicsemi.com/thread/157727?ContentTypeID=1</link><pubDate>Fri, 16 Nov 2018 13:22:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cedc4b5b-e0e0-427a-b19d-627b817f9cd0</guid><dc:creator>Sebastian</dc:creator><description>&lt;p&gt;Hello Hung Bui,&lt;/p&gt;
&lt;p&gt;Did that. The effect is very strange.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In the first kit I downloaded the ATT_MTU example as is.&lt;/p&gt;
&lt;p&gt;In the second kit I removed all references to client initialization and the BLE observer and also commented out the ble_db_discovery_start()&lt;/p&gt;
&lt;p&gt;Now the result is that the test does not fail but also it does not start.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;This is the 1st dev kit:&lt;/p&gt;
&lt;p&gt;throughput example:~$ run&lt;br /&gt;[00:00:00.000,152] &amp;lt;info&amp;gt; app: Preparing the test.&lt;br /&gt;[00:00:00.000,183] &amp;lt;info&amp;gt; app: Starting advertising.&lt;br /&gt;[00:00:00.000,335] &amp;lt;info&amp;gt; app: Starting scanning.&lt;br /&gt;[00:00:00.038,146] &amp;lt;info&amp;gt; app: Connected as a peripheral.&lt;br /&gt;[00:00:00.038,208] &amp;lt;info&amp;gt; app: Discovering GATT database...&lt;br /&gt;[00:00:00.038,238] &amp;lt;info&amp;gt; app: Sending PHY Update, 2 Mbps.&lt;br /&gt;[00:00:00.054,321] &amp;lt;info&amp;gt; app: ATT MTU exchange completed. MTU set to 247 bytes.&lt;br /&gt;[00:00:00.004,486] &amp;lt;info&amp;gt; app: PHY update accepted. PHY set to 2 Mbps.&lt;br /&gt;[00:00:00.006,439] &amp;lt;info&amp;gt; app: Data length updated to 27 bytes.&lt;br /&gt;[00:00:00.028,839] &amp;lt;info&amp;gt; app: AMT service discovered at peer.&lt;br /&gt;throughput example:~$&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;and this is the 2nd kit&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;[00:00:00.000,183] &amp;lt;info&amp;gt; app: ATT MTU example started.&lt;br /&gt;[00:00:00.000,213] &amp;lt;info&amp;gt; app: Press button 3 on the board connected to the PC.&lt;br /&gt;[00:00:00.000,213] &amp;lt;info&amp;gt; app: Press button 4 on other board.&lt;br /&gt;[00:00:00.130,279] &amp;lt;info&amp;gt; app: This board will act as responder.&lt;br /&gt;[00:00:00.130,279] &amp;lt;info&amp;gt; app: Starting advertising.&lt;br /&gt;[00:00:00.130,432] &amp;lt;info&amp;gt; app: Starting scanning.&lt;br /&gt;[00:00:00.055,358] &amp;lt;info&amp;gt; app: Device &amp;quot;Nordic_ATT_MTU&amp;quot; found, sending a connection request.&lt;br /&gt;[00:00:00.094,085] &amp;lt;info&amp;gt; app: Connected as a central.&lt;br /&gt;[00:00:00.010,070] &amp;lt;info&amp;gt; app: ATT MTU exchange completed. MTU set to 247 bytes.&lt;br /&gt;[00:00:00.060,516] &amp;lt;info&amp;gt; app: PHY update accepted. PHY set to 2 Mbps.&lt;br /&gt;[00:00:00.069,946] &amp;lt;info&amp;gt; app: Data length updated to 27 bytes.&lt;br /&gt;[00:00:00.092,437] &amp;lt;info&amp;gt; app: Notifications enabled.&lt;br /&gt;throughput example:~$&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;for some reason although the 2nd board is configured responder, when it is connected it assumes the central role. This happens although I have not initialized client_init().&lt;/p&gt;
&lt;p&gt;This is strange but I don&amp;#39;t want to bother you anymore. It is enough that you explained why you are initializing client and server at the same time and also that the database discovery only needs to run from the client.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thank you for your help.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ATT_MTU Throuput Example Setup GATTS &amp; GATTC</title><link>https://devzone.nordicsemi.com/thread/157720?ContentTypeID=1</link><pubDate>Fri, 16 Nov 2018 13:01:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f8a73cc4-01a8-4794-8c70-eac3da26ce20</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;No, it&amp;#39;s not needed on the server side, that&amp;#39;s why it shouldn&amp;#39;t be called. please remove any call to db_discovery in your server. (of course you can keep them if you do initialization for the db_discovery module, if not, please remove the call &lt;span&gt;ble_db_discovery_start()&amp;nbsp;&lt;/span&gt;)&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ATT_MTU Throuput Example Setup GATTS &amp; GATTC</title><link>https://devzone.nordicsemi.com/thread/157644?ContentTypeID=1</link><pubDate>Fri, 16 Nov 2018 07:47:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9273428a-b4d5-4442-8cb0-8079afefd034</guid><dc:creator>Sebastian</dc:creator><description>&lt;p&gt;Hello Hung Bui,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Check below the tester output:&lt;/p&gt;
&lt;p&gt;throughput example:~$ run&lt;br /&gt;[00:00:00.000,152] &amp;lt;info&amp;gt; app: Preparing the test.&lt;br /&gt;[00:00:00.000,183] &amp;lt;info&amp;gt; app: Starting advertising.&lt;br /&gt;[00:00:00.000,335] &amp;lt;info&amp;gt; app: Starting scanning.&lt;br /&gt;[00:00:00.046,295] &amp;lt;info&amp;gt; app: Device &amp;quot;Nordic_ATT_MTU&amp;quot; found, sending a connection request.&lt;br /&gt;[00:00:00.091,949] &amp;lt;info&amp;gt; app: Connected as a central.&lt;br /&gt;[00:00:00.091,979] &amp;lt;info&amp;gt; app: Discovering GATT database...&lt;br /&gt;throughput example:~$&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;And the responder output:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;[00:00:00.000,183] &amp;lt;info&amp;gt; app: ATT MTU example started.&lt;/p&gt;
&lt;p&gt;[00:00:00.000,213] &amp;lt;info&amp;gt; app: Press button 3 on the board connected to the PC.&lt;br /&gt;[00:00:00.000,213] &amp;lt;info&amp;gt; app: Press button 4 on other board.&lt;br /&gt;[00:00:00.101,287] &amp;lt;info&amp;gt; app: This board will act as responder.&lt;br /&gt;[00:00:00.101,318] &amp;lt;info&amp;gt; app: Starting advertising.&lt;br /&gt;[00:00:00.101,440] &amp;lt;info&amp;gt; app: Starting scanning.&lt;br /&gt;[00:00:00.036,834] &amp;lt;info&amp;gt; app: Connected as a peripheral.&lt;br /&gt;[00:00:00.036,865] &amp;lt;info&amp;gt; app: Discovering GATT database...&lt;br /&gt;[00:00:00.050,689] &amp;lt;error&amp;gt; app: ERROR 8 [NRF_ERROR_INVALID_STATE] at C:\nRF52840\SDK\nRF5_SDK_15.2.0_9412b96\examples\ble_central_and_peripheral\experimental\ble_app_att_mtu_throughput\main.c:269&lt;br /&gt;PC at: 0x00034569&lt;br /&gt;[00:00:00.071,350] &amp;lt;error&amp;gt; app: End of error report&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;so the error is ERROR 8 -&amp;gt; NRF_INVALID_STATE&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Does the database discovery need to run in both the client and server? I though that the client initiates a database discovery and the server reveals its services.&lt;/p&gt;
&lt;p&gt;Thank you for your help.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ATT_MTU Throuput Example Setup GATTS &amp; GATTC</title><link>https://devzone.nordicsemi.com/thread/157575?ContentTypeID=1</link><pubDate>Thu, 15 Nov 2018 15:52:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:81c77aed-69f8-45e6-9bbc-a81b4b7bb131</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;When you see a fault/assert could you check what it was about ?&lt;/p&gt;
&lt;p&gt;Most likely it was because of the ble_db_discovery_start() call inside on_ble_gap_evt_connected(). The db discovery module is not initialized if you comment out client_init()&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ATT_MTU Throuput Example Setup GATTS &amp; GATTC</title><link>https://devzone.nordicsemi.com/thread/157525?ContentTypeID=1</link><pubDate>Thu, 15 Nov 2018 13:39:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2d8a9e1e-c3c5-4597-9a87-46183b69ae43</guid><dc:creator>Sebastian</dc:creator><description>&lt;p&gt;Hello Hung Bui,&lt;/p&gt;
&lt;p&gt;Thanks for answering so quickly.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;At first this is what I thought but to test what you are saying I removed from the responder (aka server) the client observer by commenting out the:&lt;/p&gt;
&lt;p&gt;//NRF_SDH_BLE_OBSERVER(m_amtc_ble_obs, BLE_AMTC_BLE_OBSERVER_PRIO, nrf_ble_amtc_on_ble_evt, &amp;amp;m_amtc);&lt;/p&gt;
&lt;p&gt;and also did not initialize the client at all by commenting out&lt;/p&gt;
&lt;p&gt;//client_init();&lt;/p&gt;
&lt;p&gt;Then I run the test.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Although the two devices connect, database deiscovery fails and I get a weak fault in the responder.&lt;/p&gt;
&lt;p&gt;If what you are suggesting above is correct then it should not be a problem me removing the client initialization and observer from the server device.&lt;/p&gt;
&lt;p&gt;should it?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ATT_MTU Throuput Example Setup GATTS &amp; GATTC</title><link>https://devzone.nordicsemi.com/thread/157517?ContentTypeID=1</link><pubDate>Thu, 15 Nov 2018 13:25:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:38b93ba6-3c1b-4b3d-b5f2-cdd269fe4f9b</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Vasileios,&lt;/p&gt;
&lt;p&gt;I believe it&amp;#39;s just to simplify the firmware. This way we can have both side running on same firmware. We setup the same GATT client and server on both side. And depend on which feature we choose on the board, tester or responder, the client or the server will be used.&lt;/p&gt;
&lt;p&gt;Setting both client and server on the devices wouldn&amp;#39;t affect the performance. If you create dedicated firmware for tester and responder, you can remove the client/server accordingly.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>