<?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>mesh gatt and ble gatt</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/78276/mesh-gatt-and-ble-gatt</link><description>Hi. I have read the documentation and I have a couple of questions: 
 
 What makes work different mesh_gatt and nrf_ble_gatt? Why can&amp;#39;t they work together (maybe it&amp;#39;s because of ATT_MTU, but I&amp;#39;m not sure). 
 Why can I write and read a characteristic without</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 10 Aug 2021 08:07:37 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/78276/mesh-gatt-and-ble-gatt" /><item><title>RE: mesh gatt and ble gatt</title><link>https://devzone.nordicsemi.com/thread/324145?ContentTypeID=1</link><pubDate>Tue, 10 Aug 2021 08:07:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:60fc9ca2-ff5c-40b4-bfe6-91f75d8bcf20</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Blastka,&lt;br /&gt;I afraid you may need to study the code. The point is that to advertise with connectable advertising, the mesh stack would need to use the softdevice to advertise. It&amp;#39;s because the mesh stack is not created to handle BLE connection. And the softdevice only allow one advertising set at a time. So you need to combine what you want to advertise with what the mesh stack advertise (either as PB-GATT or Proxy GATT).&amp;nbsp;&lt;br /&gt;So there are 2 options:&amp;nbsp;&lt;br /&gt;First option&amp;nbsp;is to remove what mesh is advertising, and only advertise with your own code in advertising_init and advertising_start in main.c&amp;nbsp;&lt;br /&gt;Second option is to do what I suggested, integrate what you want to advertise into mesh proxy/provisioning advertising.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;The draw back of option1 is that if you don&amp;#39;t advertise with correct format of Mesh unprovisioned UUID and Mesh proxy service, the mesh app won&amp;#39;t be able recognize the device as a mesh node/proxy.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: mesh gatt and ble gatt</title><link>https://devzone.nordicsemi.com/thread/324009?ContentTypeID=1</link><pubDate>Mon, 09 Aug 2021 12:41:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1f06ba34-85d5-4ea7-9942-eacb0b789844</guid><dc:creator>Blastka</dc:creator><description>&lt;p&gt;yes, I studied well about proxy and &lt;span&gt;PB-GATT in documentation. but nowhere is it clearly written that advertising and proxy cannot work together. an example of coexistence, I just got confused.&amp;nbsp;I would be grateful to receive information where you can find out how everything works in libraries. Or is it just to study the program myself?&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: mesh gatt and ble gatt</title><link>https://devzone.nordicsemi.com/thread/324007?ContentTypeID=1</link><pubDate>Mon, 09 Aug 2021 12:37:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a5693a54-b54e-4d92-80e4-03b6d843bb41</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;I removed it because when you enable PB-GATT, the advertising is handled inside&amp;nbsp;a_listen_start() in&amp;nbsp;nrf_mesh_prov_bearer_gatt.c&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Please try to study the mesh stack and get to understand how it work this is needed if you want to customize it and make something differently.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;What you need to know is how the advertising is handled before provisioning (handled by the prov_bearer_gatt and after provisioning it&amp;#39;s inside proxy.c .&amp;nbsp;&lt;br /&gt;&lt;br /&gt;In the default coexist we don&amp;#39;t have proxy and PB-GATT so that&amp;#39;s why it&amp;#39;s handled in main.c&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: mesh gatt and ble gatt</title><link>https://devzone.nordicsemi.com/thread/323999?ContentTypeID=1</link><pubDate>Mon, 09 Aug 2021 12:22:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d6e7cccd-3a93-41fb-8d99-35dcc8267a7a</guid><dc:creator>Blastka</dc:creator><description>&lt;p&gt;I tried, in your example you removed advertising, now I don&amp;#39;t understand&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: mesh gatt and ble gatt</title><link>https://devzone.nordicsemi.com/thread/323992?ContentTypeID=1</link><pubDate>Mon, 09 Aug 2021 12:13:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a5228dc3-f1dd-4ee7-b3b1-c3d06a49133a</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi,&amp;nbsp;&lt;br /&gt;Hardfault is not a deadend, please try to debug and find where it crashed. Have a look here:&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/12291/what-can-cause-a-hardfault-and-how-to-catch-it"&gt;https://devzone.nordicsemi.com/f/nordic-q-a/12291/what-can-cause-a-hardfault-and-how-to-catch-it&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Please try to check and compare your code to the coexist example or my example that I pointed to earlier.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: mesh gatt and ble gatt</title><link>https://devzone.nordicsemi.com/thread/323956?ContentTypeID=1</link><pubDate>Mon, 09 Aug 2021 10:03:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e136e969-e89a-46ff-a7f5-34281ac8143d</guid><dc:creator>Blastka</dc:creator><description>&lt;p&gt;I deleted, now my program hangs in this place when disconnecting from the phone, when i run &amp;nbsp;advertising without mesh:&lt;br /&gt;.thumb_func&lt;br /&gt; .weak HardFault_Handler&lt;br /&gt;HardFault_Handler:&lt;br /&gt; b .&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: mesh gatt and ble gatt</title><link>https://devzone.nordicsemi.com/thread/323916?ContentTypeID=1</link><pubDate>Mon, 09 Aug 2021 07:27:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a262c222-b50e-4c7a-8741-179fc096592e</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;As I mentioned the gatt_init() initialize&amp;nbsp;&lt;span&gt;nrf_ble_gatt&amp;nbsp;() which handle the ATT_MTU update and Data length update. This is already handled by&amp;nbsp;mesh_gatt so you don&amp;#39;t need that module. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Please remove the nrf_ble_gatt.h and nrf_ble_gatt.c from your project.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;It has no direct impact to GATT services and characteristics.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: mesh gatt and ble gatt</title><link>https://devzone.nordicsemi.com/thread/323905?ContentTypeID=1</link><pubDate>Mon, 09 Aug 2021 05:25:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8324af43-51ba-4598-a35a-708e39055e14</guid><dc:creator>Blastka</dc:creator><description>&lt;p&gt;3.&amp;nbsp; This is my project. The project has no uart.&lt;/p&gt;
&lt;p&gt;NRF_BLE_GATT_DEF(my_m_gatt);&lt;/p&gt;
&lt;p&gt;/**@brief Function for initializing the GATT module.&lt;br /&gt; */&lt;br /&gt;void gatt_init(void)&lt;br /&gt;{&lt;br /&gt; &lt;br /&gt; ret_code_t err_code = nrf_ble_gatt_init(&amp;amp;my_m_gatt, NULL);&lt;br /&gt; APP_ERROR_CHECK(err_code);&lt;/p&gt;
&lt;p&gt;err_code = nrf_ble_gatt_att_mtu_periph_set(&amp;amp;my_m_gatt, NRF_SDH_BLE_GATT_MAX_MTU_SIZE);&lt;br /&gt; APP_ERROR_CHECK(err_code);&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Because of observers it works so incorrectly.&amp;nbsp;NRF_BLE_GATT_DEF(my_m_gatt);&amp;nbsp; &amp;nbsp; &amp;nbsp; and&amp;nbsp;&lt;br /&gt;&lt;span&gt;NRF_SDH_BLE_OBSERVER (m_gatt_obs, NRF_MESH_GATT_BLE_OBSERVER_PRIO, mesh_gatt_on_ble_evt, &amp;amp; m_gatt);&lt;br /&gt;Why are they processed together.&amp;nbsp;nrf_ble_gatt_on_ble_evt and&amp;nbsp;mesh_gatt_on_ble_evt.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: mesh gatt and ble gatt</title><link>https://devzone.nordicsemi.com/thread/323767?ContentTypeID=1</link><pubDate>Fri, 06 Aug 2021 13:01:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f974735b-18c7-4f46-b31d-95c0b1c71b07</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;1. It&amp;#39;s commented out because the mesh_gatt.c already handle the ATT_MTU request.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2. Again the gatt_init() is only initialize the nrf_ble_gatt module which handles the ATT_MTU and the Data lenght request. It&amp;#39;s not related to the service and characteristics.&lt;/p&gt;
&lt;p&gt;3. Please send what inside your &amp;quot;gatt_init&amp;quot; maybe it&amp;#39;s different from my gatt_init. Please follow what I did in the example that I quoted. Note the change in&amp;nbsp; nrf_mesh_provisionee.c&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: mesh gatt and ble gatt</title><link>https://devzone.nordicsemi.com/thread/323712?ContentTypeID=1</link><pubDate>Fri, 06 Aug 2021 11:38:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d557a2cc-378d-4b7a-832f-8e515810eb0d</guid><dc:creator>Blastka</dc:creator><description>&lt;p&gt;1. yes, but in your coexistence example gatt_init is commented out.&amp;nbsp;In my example, gatt and mesh gatt do not work together.&lt;/p&gt;
&lt;p&gt;2. Why?&amp;nbsp;gatt is responsible for communicating characteristics and services.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;3.&amp;nbsp;another question.&amp;nbsp;I activated pb-gatt and proxy in config, but did not initialize. I use gatt_init. my treatments go to&amp;nbsp;&lt;span&gt;mesh_gatt_on_ble_evt&amp;nbsp;and call hardfault.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;static mesh_gatt_t m_gatt;&lt;br /&gt;NRF_SDH_BLE_OBSERVER (m_gatt_obs, NRF_MESH_GATT_BLE_OBSERVER_PRIO, mesh_gatt_on_ble_evt, &amp;amp; m_gatt);&lt;br /&gt;#endif&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: mesh gatt and ble gatt</title><link>https://devzone.nordicsemi.com/thread/323678?ContentTypeID=1</link><pubDate>Fri, 06 Aug 2021 09:26:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c2624a43-df8f-427c-89ef-de97b391e6aa</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Blastka,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1. Yes they can work together. In our co-exist example we don&amp;#39;t have GATT Proxy implemented but it&amp;#39;s possible to add that in. Please have a look at my example here:&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/53837/including-nrf5-sdk-for-mesh-functionality-in-an-nrf5-sdk-example/235538#235538"&gt;https://devzone.nordicsemi.com/f/nordic-q-a/53837/including-nrf5-sdk-for-mesh-functionality-in-an-nrf5-sdk-example/235538#235538&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2.&amp;nbsp;Could you explain more ?&amp;nbsp;&lt;span&gt;gatt_init&amp;nbsp;() function initialize the nrf_ble_gatt module. It&amp;#39;s not directly related to read/write characteristics&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;3. Mesh Gatt is only handling the Mesh GATT proxy/provisionining service. So it doesn&amp;#39;t handle any other service. You handle your service as usual.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>