<?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>Ble eddystone and ibeacon simultaneously nrf52832</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/93529/ble-eddystone-and-ibeacon-simultaneously-nrf52832</link><description>Hello, I am working on a project that consists of sending Eddystone and ibeacon packets simultaneously, to begin with, I started by sending one package of each separately, it was a success but the problem is that when I send both packages through my uc</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 09 Dec 2022 14:46:07 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/93529/ble-eddystone-and-ibeacon-simultaneously-nrf52832" /><item><title>RE: Ble eddystone and ibeacon simultaneously nrf52832</title><link>https://devzone.nordicsemi.com/thread/399966?ContentTypeID=1</link><pubDate>Fri, 09 Dec 2022 14:46:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:095f6a79-69cc-4b8a-853e-c48fa87fa66f</guid><dc:creator>Abdullah_M</dc:creator><description>&lt;p&gt;Hi Hieu&lt;/p&gt;
&lt;p&gt;No thank you very much and no I don&amp;#39;t have any questions, you have answered all my questions, thank you very much,&lt;/p&gt;
&lt;p&gt;Good luck, I wish you the best !!!&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Abdullah&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Ble eddystone and ibeacon simultaneously nrf52832</title><link>https://devzone.nordicsemi.com/thread/399913?ContentTypeID=1</link><pubDate>Fri, 09 Dec 2022 12:34:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:471866bf-f0d4-4828-989c-6b7d25f48df4</guid><dc:creator>Hieu</dc:creator><description>&lt;p&gt;Hi Abdullah,&lt;/p&gt;
&lt;p&gt;I am well now. Thank you for your kind words.&lt;/p&gt;
&lt;p&gt;Your reply was not late. It is me who have to apologize for the amount of time I took to resolve your&amp;nbsp;question. Sorry again for that.&lt;/p&gt;
&lt;p&gt;I noticed you initially ask about how to read from an accelerometer and then add that data to an iBeacon?&amp;nbsp;I assume you edited your comment and no longer wish to ask about that.&lt;/p&gt;
&lt;p&gt;In any cases, I can quickly tell you what I know on that topic.&lt;/p&gt;
&lt;p&gt;Regarding how to get data from your accelerometer, it is going to depends on&amp;nbsp;the sensor&amp;#39;s specifics. However, that topic is sufficiently different. If you need help with that, please open a new ticket.&lt;/p&gt;
&lt;p&gt;Regarding adding data to beacons, I can tell you that adding a few (&amp;lt;10) bytes of data to&amp;nbsp;&lt;em&gt;&lt;strong&gt;a&lt;/strong&gt;&lt;/em&gt; beacon data is simple and doable.&lt;/p&gt;
&lt;p&gt;For iBeacon specifically, I am not sure it is allowed.&amp;nbsp;I have not been able to find official documents from Apple about the iBeacon specifications other than their &lt;a href="https://developer.apple.com/ibeacon/Getting-Started-with-iBeacon.pdf"&gt;Getting Started guide&lt;/a&gt;. Therefore, I cannot claim whether adding something to its beacon data is allowed. Perhaps you could find develop support from Apple on that.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://stackoverflow.com/questions/29246805/can-an-ibeacon-have-a-data-payload"&gt;This stackoverflow thread&lt;/a&gt; suggest that is allowed. However, while it could be OK for the current date, but in the future, iOS can be changed to judge such beacon data not iBeacon, and then not process your beacon properly. It is totally up to Apple&amp;#39;s discretion.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Please feel free to follow up if you have further questions regarding the same initial topic. If everything is fine now, it would be great if you can verify an answer &lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f603.svg" title="Smiley"&gt;&amp;#x1f603;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Happy coding!&lt;/p&gt;
&lt;p&gt;Hieu&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Ble eddystone and ibeacon simultaneously nrf52832</title><link>https://devzone.nordicsemi.com/thread/399866?ContentTypeID=1</link><pubDate>Fri, 09 Dec 2022 09:29:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6ad62862-5b5d-4f3c-a91b-5da99e049a85</guid><dc:creator>Abdullah_M</dc:creator><description>&lt;p&gt;&lt;span style="font-weight:400;"&gt;Hi Hieu,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Thank you very much Hieu!!!!, you helped me a lot, sorry for the delay, I hope now you are well and not sick anymore. I wish you the best!!!!&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Best reagrds, THANK YOU VERY MUCH,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Abdullah&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Ble eddystone and ibeacon simultaneously nrf52832</title><link>https://devzone.nordicsemi.com/thread/398937?ContentTypeID=1</link><pubDate>Mon, 05 Dec 2022 10:03:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ac870d67-1531-47de-a2e0-fb71c195e91a</guid><dc:creator>Hieu</dc:creator><description>&lt;p&gt;Hi Abdullah,&lt;/p&gt;
&lt;p&gt;There was one missing line in the previous code after all. I&amp;nbsp;fixed it and updated the behavior to work like you initially want. All information is edited into my previous comment.&lt;/p&gt;
&lt;p&gt;By the way, if you are curious, the missing line of code is:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;    // Since there would be only one member in the array, just pass the service data&amp;#39;s address instead
    ble_advdata.p_service_data_array = &amp;amp;t_service_data;
    
    // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
    ble_advdata.service_data_count = 1; // &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; This is the missing line
    // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    // Encode the adv data into GAP adv data buffers
    err_code = ble_advdata_encode(&amp;amp;ble_advdata, es_url_gap_adv_data.adv_data.p_data, &amp;amp;es_url_gap_adv_data.adv_data.len);
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Hieu&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Ble eddystone and ibeacon simultaneously nrf52832</title><link>https://devzone.nordicsemi.com/thread/398853?ContentTypeID=1</link><pubDate>Fri, 02 Dec 2022 23:46:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8b282b29-1756-476f-b1eb-d58f41149020</guid><dc:creator>Hieu</dc:creator><description>&lt;p&gt;Hi Abdullah,&lt;/p&gt;
&lt;p&gt;Thank you for your patience.&amp;nbsp;There were&amp;nbsp;some&amp;nbsp;delays due to&amp;nbsp;unforeseen sicknesses, but I finally completed the sample code I promised.&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:line-through;"&gt;There is one problem however, I haven&amp;#39;t fully tested the behavior. I am working remotely, and my remote test setup is malfunctioning in some parts, so I am could not test the following:&lt;/span&gt;&lt;br /&gt;&lt;span style="text-decoration:line-through;"&gt;- Eddystone URL Service Data&lt;/span&gt;&lt;br /&gt;&lt;span style="text-decoration:line-through;"&gt;- Advertising Flags&lt;/span&gt;&lt;br /&gt;&lt;span style="text-decoration:line-through;"&gt;- Button handling (so I use a timer-based approach to change advertising data instead)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:line-through;"&gt;So, if you&amp;nbsp;want it now, below is the code. Otherwise, I will&amp;nbsp;perform the necessary test next week when I return to office.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:line-through;"&gt;Just create a new project using the &amp;lt;SDK root&amp;gt;/example/ble_peripheral/ble_app_template, replace main.c with the content below, and observe&amp;nbsp;that the device should cycle between&lt;/span&gt;&lt;br /&gt;&lt;span style="text-decoration:line-through;"&gt;- 2 seconds of advertising as an iBeacon&lt;/span&gt;&lt;br /&gt;&lt;span style="text-decoration:line-through;"&gt;- 4 seconds of advertising as an Eddystone-URL beacon&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:line-through;"&gt;You can find the update implemented in&amp;nbsp;&lt;em&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;update_gap_adv_data()&lt;/span&gt;&lt;/em&gt; and&amp;nbsp;&lt;em&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;app_timer_handler()&lt;/span&gt;&lt;/em&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Below is the tested code that works as you expected. To test, just create a new project using the &amp;lt;SDK root&amp;gt;/example/ble_peripheral/ble_app_template, replace main.c with the content below.&lt;/p&gt;
&lt;p&gt;The expected behavior is:&lt;br /&gt;It starts up broadcasting as an iBeacon.&lt;br /&gt;Button 1 makes it broadcast as an iBeacon.&lt;br /&gt;Button 2 makes it broadcast as an Eddystone URL&lt;/p&gt;
&lt;p&gt;You can find the update implemented in &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;em&gt;update_gap_adv_data()&lt;/em&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;I hope I included sufficient comments. Don&amp;#39;t hesitate to let me know if you have any questions.&lt;/p&gt;
&lt;p&gt;Sorry again for the very long wait.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/5875.main.c"&gt;devzone.nordicsemi.com/.../5875.main.c&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hieu&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Ble eddystone and ibeacon simultaneously nrf52832</title><link>https://devzone.nordicsemi.com/thread/398247?ContentTypeID=1</link><pubDate>Wed, 30 Nov 2022 08:33:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:185df6b6-ff02-4c01-904d-6e6d1aef84b7</guid><dc:creator>Abdullah_M</dc:creator><description>&lt;p&gt;Hi Hieu,&lt;/p&gt;
&lt;p&gt;No problem, take your time, and thanks again.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Abdullah&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Ble eddystone and ibeacon simultaneously nrf52832</title><link>https://devzone.nordicsemi.com/thread/397515?ContentTypeID=1</link><pubDate>Thu, 24 Nov 2022 23:29:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3657f628-cf41-4061-a39e-3e000586ee6f</guid><dc:creator>Hieu</dc:creator><description>&lt;p&gt;Hi Abdullah,&lt;/p&gt;
&lt;p&gt;Just want to let you know that I have started working on it. There are a few issues, I will hopefully be done soon.&lt;/p&gt;
&lt;p&gt;I was using my colleague&amp;#39;s guide here:&amp;nbsp;&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/guides/short-range-guides/b/bluetooth-low-energy/posts/how-to-update-advertising-data-dynamically-using-ble-advertising-library"&gt;How to update advertising data dynamically using BLE Advertising library&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;It&amp;nbsp;turned out the library that he used is only for connectable advertising.&amp;nbsp;Here we are using beacon, so that method is not applicable.&lt;/p&gt;
&lt;p&gt;However, I still share the link, because that example shows a way to change advertising data during connectable advertising.&lt;/p&gt;
&lt;p&gt;I will have to&amp;nbsp;redo this work using the basic API. However, I am out of office tomorrow, so I will resume on next Monday, unless I find some time in the weekend.&lt;/p&gt;
&lt;p&gt;Sorry again for the wait. It is quite bad, this is not supposed to&amp;nbsp;be a major workload.&lt;/p&gt;
&lt;p&gt;Hieu&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Ble eddystone and ibeacon simultaneously nrf52832</title><link>https://devzone.nordicsemi.com/thread/395922?ContentTypeID=1</link><pubDate>Wed, 16 Nov 2022 09:25:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:46c4442c-b326-4999-a580-db2b8369c7d1</guid><dc:creator>Abdullah_M</dc:creator><description>&lt;p&gt;Hi Hieu,&lt;/p&gt;
&lt;p&gt;Ok I understand, let&amp;#39;s do it like this then, Yes please I want to know how to switch between eddystone&amp;nbsp;advertisement and ibeacon advertisement.&lt;/p&gt;
&lt;p&gt;Again, thank you very much,&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Abdullah&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Ble eddystone and ibeacon simultaneously nrf52832</title><link>https://devzone.nordicsemi.com/thread/395722?ContentTypeID=1</link><pubDate>Tue, 15 Nov 2022 09:09:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c9aa992f-5a6c-494a-8754-d8fa78eaa656</guid><dc:creator>Hieu</dc:creator><description>&lt;p&gt;Hi Abdullah,&lt;/p&gt;
&lt;p&gt;The Eddystone Library is pretty complicated. The complication is mostly for supporting the&amp;nbsp;&lt;a href="https://github.com/google/eddystone/tree/master/eddystone-eid"&gt;Eddystone-EID&lt;/a&gt;&amp;nbsp;and &lt;a href="https://github.com/google/eddystone/blob/master/eddystone-tlm/tlm-encrypted.md"&gt;Encrypted Eddystone-TLM&lt;/a&gt; features.&lt;/p&gt;
&lt;p&gt;Meanwhile, the Eddystone protocol is completely deprecated. The nRF5 SDK, along with the Eddystone library, is no longer recommended for new projects.&lt;/p&gt;
&lt;p&gt;Therefore, the cost of learning it is pretty high, while the benefit is pretty low.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;On the other hand, I can quickly use other basic advertising data to create&amp;nbsp;an &lt;a href="https://github.com/google/eddystone/tree/master/eddystone-uid"&gt;Eddystone-UID&lt;/a&gt; or &lt;a href="https://github.com/google/eddystone/tree/master/eddystone-url"&gt;Eddystone-URL&lt;/a&gt; beacon, because their specs are pretty simple.&lt;br /&gt;As you are already creating your own iBeacon data, I believe you are also more than capable of creating your Eddystone-UID or Eddystone-URL beacons. What I do is going to just be showing you how to toggle between different advertising data.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Hieu&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Ble eddystone and ibeacon simultaneously nrf52832</title><link>https://devzone.nordicsemi.com/thread/395703?ContentTypeID=1</link><pubDate>Tue, 15 Nov 2022 08:33:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4e76a312-bbf7-4b24-854b-30b283f4f6c4</guid><dc:creator>Abdullah_M</dc:creator><description>&lt;p&gt;Hi Hieu,&lt;/p&gt;
&lt;p&gt;No problem with the wait, thank you very much.&lt;/p&gt;
&lt;p&gt;I was wondering why you are not using the Eddystone library from the nRF5 SDK. Is it because nrf52832 is compatible or not with something?&lt;/p&gt;
&lt;p&gt;Or because you don&amp;#39;t have the Eddystone library of the nRF5 SDK?&lt;/p&gt;
&lt;p&gt;And the other question is, why use&amp;nbsp;&lt;span&gt;raw advertising&amp;nbsp;or the&amp;nbsp;&lt;/span&gt;&lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.1.0/group__ble__advertising.html"&gt;Advertisement Module&lt;/a&gt;&lt;span&gt;&amp;nbsp;to&amp;nbsp;recreate an Eddystone-UID or Eddystone-URL packet.?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Best regards.&lt;/p&gt;
&lt;p&gt;Abdullah&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Ble eddystone and ibeacon simultaneously nrf52832</title><link>https://devzone.nordicsemi.com/thread/395649?ContentTypeID=1</link><pubDate>Mon, 14 Nov 2022 21:09:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6ac7781b-6189-43b6-8d02-e1d176631aa2</guid><dc:creator>Hieu</dc:creator><description>&lt;p&gt;Hi Abdullah,&lt;/p&gt;
&lt;p&gt;Just want to let you know that I still have your case on my book, just trying to&amp;nbsp;get through my backlog to it, since I want to make sure what I give you work.&lt;/p&gt;
&lt;p&gt;And just to set expectation straight. I will&amp;nbsp;&lt;em&gt;&lt;strong&gt;not&lt;/strong&gt;&lt;/em&gt; be using the nRF5 SDK &lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.1.0/group__eddystone.html"&gt;Eddystone Library&lt;/a&gt;. Instead, I will just use raw advertising&amp;nbsp;or the &lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.1.0/group__ble__advertising.html"&gt;Advertisement Module&lt;/a&gt; to&amp;nbsp;recreate an Eddystone-UID or Eddystone-URL packet.&lt;/p&gt;
&lt;p&gt;Sorry again for the very long wait.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Hieu&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Ble eddystone and ibeacon simultaneously nrf52832</title><link>https://devzone.nordicsemi.com/thread/394862?ContentTypeID=1</link><pubDate>Wed, 09 Nov 2022 09:49:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c23c8327-8fd6-4f8f-81a7-c10f3607ca15</guid><dc:creator>Abdullah_M</dc:creator><description>&lt;p&gt;Hi Hieu,&lt;/p&gt;
&lt;p&gt;I hope you are well, thank you for the compliment even if I think my English is not very good,&lt;br /&gt;No problem to wait, I rather thank you for dedicating your time on me.&lt;/p&gt;
&lt;p&gt;Yes, I will be very grateful if you show me how to switch between Eddystone and ibeacon because that is where I am stuck.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;In fact, when I send the Eddystone packets, the packets contain the values of the rangefinder(telemeter) that is displayed on the app (Kbeacon or nrf connect with bluetooth enabled). So when I send the packet I can see Eddystone URL on the app (you have to wait maybe a few minutes to see them), but the problem is this:&lt;/p&gt;
&lt;p&gt;imagine that if I send ibeacon packets first, ibeacon will work, then if I send eddystone packets, the code indicates that they were sent but on the application there is nothing that&amp;#39;s means eddystone did not work.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;on the other hand imagine now that if I send eddystone packets first, eddystone will work, then if I send ibeacon packets the code shows that it was sent but on the application there is nothing that means ibeacon didn&amp;#39;t work.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;by the way, I change the mode by pressing button 1 to stop sending the first packets and button 3 to start sending the second packets.&lt;/p&gt;
&lt;p&gt;I use nrf52832 and PCA10040, is it ok or do I have to change the card?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Best Regards.&lt;/p&gt;
&lt;p&gt;Abdullah&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Ble eddystone and ibeacon simultaneously nrf52832</title><link>https://devzone.nordicsemi.com/thread/394849?ContentTypeID=1</link><pubDate>Wed, 09 Nov 2022 09:08:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a224db00-140c-42f1-84b3-57a4fe5f00c6</guid><dc:creator>Hieu</dc:creator><description>&lt;p&gt;Hi Abdullah,&lt;/p&gt;
&lt;p&gt;Your English is just fine, please don&amp;#39;t worry.&lt;/p&gt;
&lt;p&gt;Sorry for the long wait. The past couple of days I have spent a bit of time to look into the Eddystone specs and our Eddystone library. I found that it is not trivial&amp;nbsp;to fully understand the library at all, mainly due to the security features associated with &lt;a href="https://github.com/google/eddystone/tree/master/eddystone-eid"&gt;Eddystone-EID&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/nordic/nordic-blog/b/blog/posts/nrf-connect-sdk-and-nrf5-sdk-statement"&gt;On the other hand, the nRF5 SDK is in maintenance mode (no update, bug fix) since Aug 2021, and&amp;nbsp;all platforms related to Eddystone is completely shut down&lt;/a&gt;. That means that further investigation on this is not very beneficial for either of us; and I cannot afford more time than I have.&lt;/p&gt;
&lt;p&gt;So instead of showing you how toggling to an Eddystone advertising packet&amp;nbsp;&lt;em&gt;using the SDK&amp;#39;s&amp;nbsp;library&lt;/em&gt; can be done, I can show you how to build an Eddystone-UID and/or an Eddystone-URL packet from the ground up;&amp;nbsp;&lt;em&gt;&lt;strong&gt;and&lt;/strong&gt;&lt;/em&gt;&amp;nbsp;I can show you how to toggle between them and an iBeacon.&lt;/p&gt;
&lt;p&gt;I&amp;#39;m sorry for the long wait and disappointment, but how does this sound to you?&lt;/p&gt;
&lt;p&gt;By the way, as you are new to the technology and are probably not bound to any specific SDK, what do you think about getting started on the nRF Connect SDK&amp;nbsp; (NCS) instead? That is our new SDK that is being actively working on. Newer generation chips from Nordic will also be supported on NCS, like the nRF53 that&amp;nbsp;is otherwise not supported in the nRF5 SDK.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Hieu&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Ble eddystone and ibeacon simultaneously nrf52832</title><link>https://devzone.nordicsemi.com/thread/394194?ContentTypeID=1</link><pubDate>Fri, 04 Nov 2022 14:20:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bdd9b72d-234c-46fe-b1a7-4b549ac2a161</guid><dc:creator>Abdullah_M</dc:creator><description>&lt;p&gt;Hi Hieu,&lt;/p&gt;
&lt;p&gt;Yes, I want to keep exploring this, I&amp;#39;m a beginners in BLE, by the way Could you help me find which API hasn&amp;#39;t been called yet and/or hasn&amp;#39;t been called in the right order please?&lt;/p&gt;
&lt;p&gt;I read the first article in the first link, i understood that even if i my code is correct, my devices may not receive the packages from Eddystone because Google ended their beacon service? is that right?&lt;/p&gt;
&lt;p&gt;sorry for my english because im not very good.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Regards.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Abdullah&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Ble eddystone and ibeacon simultaneously nrf52832</title><link>https://devzone.nordicsemi.com/thread/394168?ContentTypeID=1</link><pubDate>Fri, 04 Nov 2022 13:37:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9db1c1a5-7d51-43cc-a488-b2c3b7492828</guid><dc:creator>Hieu</dc:creator><description>&lt;p&gt;Hi Abdullah_M,&lt;/p&gt;
&lt;p&gt;I am fairly sure that there are just some APIs not being called yet and/or not being called in the correct order.&lt;/p&gt;
&lt;p&gt;However, before we proceed further, do you know that Eddystone is no longer supported by Android?&lt;/p&gt;
&lt;p&gt;Knowing that, do you still wish to explore what is wrong here?&lt;/p&gt;
&lt;p&gt;See:&lt;br /&gt;&lt;a href="https://stackoverflow.com/questions/58482475/is-google-deprecating-beacon-service-their-announcement-is-ambiguous"&gt;android - Is Google deprecating beacon service? Their announcement is ambiguous - Stack Overflow&lt;br /&gt;&lt;/a&gt;&lt;em&gt;&lt;strong&gt;and&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;a href="https://developers.google.com/nearby/messages/android/get-beacon-messages"&gt;Get Beacon Messages &amp;nbsp;|&amp;nbsp; Nearby Messages API for Android &amp;nbsp;|&amp;nbsp; Google Developers&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Hieu&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Ble eddystone and ibeacon simultaneously nrf52832</title><link>https://devzone.nordicsemi.com/thread/394098?ContentTypeID=1</link><pubDate>Fri, 04 Nov 2022 09:45:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:22f6c79a-f308-43ec-bdf5-708ad73858ff</guid><dc:creator>Abdullah_M</dc:creator><description>&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;/**
                                                  main.c
                                           here i mixed the ibeacon and Eddystone code
APP     : Eddystone
Version : 1

**/

#include &amp;lt;stdbool.h&amp;gt;
#include &amp;lt;stdint.h&amp;gt;
#include &amp;lt;string.h&amp;gt;
#include &amp;quot;bsp.h&amp;quot;
#include &amp;quot;ble_conn_params.h&amp;quot;
#include &amp;quot;ble_advertising.h&amp;quot;
#include &amp;quot;nrf_sdh.h&amp;quot;
#include &amp;quot;nrf_sdh_ble.h&amp;quot;
#include &amp;quot;app_timer.h&amp;quot;
#include &amp;quot;es_app_config.h&amp;quot;
#include &amp;quot;app_scheduler.h&amp;quot;
#include &amp;quot;nrf_ble_es.h&amp;quot;
#include &amp;quot;nrf_ble_gatt.h&amp;quot;
#include &amp;quot;nrf_pwr_mgmt.h&amp;quot;

//LOG
#include &amp;quot;nrf_log.h&amp;quot;
#include &amp;quot;nrf_log_ctrl.h&amp;quot;
#include &amp;quot;nrf_log_default_backends.h&amp;quot;
//Bottonless DFU sans BUTTON
#include &amp;quot;ble_dfu.h&amp;quot;
#include &amp;quot;nrf_bootloader_info.h&amp;quot;
#include &amp;quot;nrf_dfu_ble_svci_bond_sharing.h&amp;quot;
#include &amp;quot;nrf_power.h&amp;quot;
#include &amp;quot;nrf_svci_async_function.h&amp;quot;
#include &amp;quot;nrf_svci_async_handler.h&amp;quot;

//Power management wants to reset to DFU mode
#define m_ready_for_reset 1

//
#include &amp;quot;nrf_ble_gatt.h&amp;quot;
#include &amp;quot;nrf_ble_qwr.h&amp;quot;

#define DEAD_BEEF                       0xDEADBEEF          //!&amp;lt; Value used as error code on stack dump, can be used to identify stack location on stack unwind.
#define NON_CONNECTABLE_ADV_LED_PIN     BSP_BOARD_LED_0     //!&amp;lt; Toggles when non-connectable advertisement is sent.
#define CONNECTED_LED_PIN               BSP_BOARD_LED_1     //!&amp;lt; Is on when device has connected.
#define CONNECTABLE_ADV_LED_PIN         BSP_BOARD_LED_2     //!&amp;lt; Is on when device is advertising connectable advertisements.

#define CONNECTABLE_ADV_LED_PIN_3       BSP_BOARD_LED_3     //!&amp;lt; Is on when button 4 is pressed.        --MOI--

/**@brief   Priority of the application BLE event handler.
 * @note    You shouldn&amp;#39;t need to modify this value.
 */
#define APP_BLE_OBSERVER_PRIO 3


NRF_BLE_GATT_DEF(m_gatt); //!&amp;lt; GATT module instance.
NRF_BLE_QWR_DEF(m_qwr);             /**&amp;lt; Context for the Queued Write module.*/

//add dfu buttonless
static void ble_dfu_buttonless_evt_handler(ble_dfu_buttonless_evt_type_t event) {

  switch (event) {
  case BLE_DFU_EVT_BOOTLOADER_ENTER_PREPARE:
    NRF_LOG_INFO(&amp;quot;Device is preparing to enter bootloader mode\r\n&amp;quot;);
    break;

  case BLE_DFU_EVT_BOOTLOADER_ENTER:
    NRF_LOG_INFO(&amp;quot;Device will enter bootloader mode\r\n&amp;quot;);
    break;

  case BLE_DFU_EVT_BOOTLOADER_ENTER_FAILED:
    NRF_LOG_ERROR(&amp;quot;Device will enter bootloader mode\r\n&amp;quot;);
    break;
  default:
    NRF_LOG_INFO(&amp;quot;Unknown event from ble_dfu.\r\n&amp;quot;);
    break;
  }
}

/**@brief Function for handling Queued Write Module errors.
 *
 * @details A pointer to this function will be passed to each service which may need to inform the
 *          application about an error.
 *
 * @param[in]   nrf_error   Error code containing information about what went wrong.
 */
static void nrf_qwr_error_handler(uint32_t nrf_error) {
  APP_ERROR_HANDLER(nrf_error);
}
/**@brief Function for initializing services that will be used by the application.
 */
static void services_init(void) {
  ret_code_t err_code;
  nrf_ble_qwr_init_t qwr_init = {0};

  // Initialize Queued Write Module.
  qwr_init.error_handler = nrf_qwr_error_handler;

  err_code = nrf_ble_qwr_init(&amp;amp;m_qwr, &amp;amp;qwr_init);
  APP_ERROR_CHECK(err_code);

  // Initialize DFU Service.
  ble_dfu_buttonless_init_t dfus_init =
      {
          .evt_handler = ble_dfu_buttonless_evt_handler};

  err_code = ble_dfu_buttonless_init(&amp;amp;dfus_init);
  APP_ERROR_CHECK(err_code);

}

static void ble_evt_handler(ble_evt_t const * p_ble_evt, void * p_context)
{
    ret_code_t err_code;

    switch (p_ble_evt-&amp;gt;header.evt_id)
    {
        case BLE_GAP_EVT_SEC_PARAMS_REQUEST:
            // Pairing not supported
            err_code = sd_ble_gap_sec_params_reply(p_ble_evt-&amp;gt;evt.common_evt.conn_handle,
                                                   BLE_GAP_SEC_STATUS_PAIRING_NOT_SUPP,
                                                   NULL,
                                                   NULL);
            APP_ERROR_CHECK(err_code);
            break;

        case BLE_GATTS_EVT_SYS_ATTR_MISSING:
            // No system attributes have been stored.
            err_code = sd_ble_gatts_sys_attr_set(p_ble_evt-&amp;gt;evt.common_evt.conn_handle, NULL, 0, 0);
            APP_ERROR_CHECK(err_code);
            break;

        case BLE_GAP_EVT_CONNECTED:
            bsp_board_led_on(CONNECTED_LED_PIN);
            bsp_board_led_off(CONNECTABLE_ADV_LED_PIN);
            break;

        case BLE_GAP_EVT_DISCONNECTED:
            // LED indication will be changed when advertising starts.
            break;

        case BLE_GAP_EVT_PHY_UPDATE_REQUEST:
        {
            ble_gap_phys_t const phys =
            {
                .rx_phys = BLE_GAP_PHY_AUTO,
                .tx_phys = BLE_GAP_PHY_AUTO,
            };
            err_code = sd_ble_gap_phy_update(p_ble_evt-&amp;gt;evt.gap_evt.conn_handle, &amp;amp;phys);
            APP_ERROR_CHECK(err_code);
        } break;

        default:
            // No implementation needed.
            break;
    }
}


/**@brief Function for the GAP initialization.
*
* @details This function will set up all the necessary GAP (Generic Access Profile) parameters of
*          the device. It also sets the permissions and appearance.
*/
static void gap_params_init(void)
{
   ret_code_t              err_code;
   ble_gap_conn_params_t   gap_conn_params;
   ble_gap_conn_sec_mode_t sec_mode;
   uint8_t                 device_name[] = APP_DEVICE_NAME;

   BLE_GAP_CONN_SEC_MODE_SET_OPEN(&amp;amp;sec_mode);

   err_code = sd_ble_gap_device_name_set(&amp;amp;sec_mode,
                                         device_name,
                                         strlen((const char *)device_name));
   APP_ERROR_CHECK(err_code);

   memset(&amp;amp;gap_conn_params, 0, sizeof(gap_conn_params));

   gap_conn_params.min_conn_interval = MIN_CONN_INTERVAL;
   gap_conn_params.max_conn_interval = MAX_CONN_INTERVAL;
   gap_conn_params.slave_latency     = SLAVE_LATENCY;
   gap_conn_params.conn_sup_timeout  = CONN_SUP_TIMEOUT;

   err_code = sd_ble_gap_ppcp_set(&amp;amp;gap_conn_params);

   APP_ERROR_CHECK(err_code);
}


/**@brief Function for initializing the GATT module.
 */
static void gatt_init(void)
{
    ret_code_t err_code = nrf_ble_gatt_init(&amp;amp;m_gatt, NULL);
    APP_ERROR_CHECK(err_code);
}

#define APP_BLE_CONN_CFG_TAG            0
/**@brief Function for initializing the BLE stack.
 *
 * @details Initializes the SoftDevice and the BLE event interrupt.
 */
static void ble_stack_init(void)
{
    ret_code_t err_code;

    err_code = nrf_sdh_enable_request();
    APP_ERROR_CHECK(err_code);

    uint32_t ram_start = 0;
    err_code = nrf_sdh_ble_app_ram_start_get(&amp;amp;ram_start);
    APP_ERROR_CHECK(err_code);

    // Overwrite some of the default configurations for the BLE stack.
    ble_cfg_t ble_cfg;

    // Configure the maximum number of connections.
    memset(&amp;amp;ble_cfg, 0, sizeof(ble_cfg));
    ble_cfg.gap_cfg.role_count_cfg.periph_role_count  = 1;
#if !defined (S112)
    ble_cfg.gap_cfg.role_count_cfg.central_role_count = 0;
    ble_cfg.gap_cfg.role_count_cfg.central_sec_count  = 0;
#endif // !defined (S112)
    err_code = sd_ble_cfg_set(BLE_GAP_CFG_ROLE_COUNT, &amp;amp;ble_cfg, ram_start);
    APP_ERROR_CHECK(err_code);

    // Enable BLE stack.
    err_code = nrf_sdh_ble_enable(&amp;amp;ram_start);
    APP_ERROR_CHECK(err_code);

    // Register a handler for BLE events.
    NRF_SDH_BLE_OBSERVER(m_ble_observer, APP_BLE_OBSERVER_PRIO, ble_evt_handler, NULL);
}


/**@brief Function for initializing the Connection Parameters module.
 */
static void conn_params_init(void)
{
    ret_code_t             err_code;
    ble_conn_params_init_t cp_init;

    memset(&amp;amp;cp_init, 0, sizeof(cp_init));

    cp_init.p_conn_params                  = NULL;
    cp_init.first_conn_params_update_delay = FIRST_CONN_PARAMS_UPDATE_DELAY;
    cp_init.next_conn_params_update_delay  = NEXT_CONN_PARAMS_UPDATE_DELAY;
    cp_init.max_conn_params_update_count   = MAX_CONN_PARAMS_UPDATE_COUNT;
    cp_init.start_on_notify_cccd_handle    = BLE_GATT_HANDLE_INVALID;
    cp_init.disconnect_on_fail             = false;

    err_code = ble_conn_params_init(&amp;amp;cp_init);
    APP_ERROR_CHECK(err_code);
}

/**@brief Function for initializing power management.
 */
static void power_management_init(void) {
  nrf_pwr_mgmt_init();
}

/**@brief Function for handling the idle state (main loop).
 *
 * @details If there is no pending log operation, then sleep until next the next event occurs.
 */
static void idle_state_handle(void) {
  app_sched_execute();
  nrf_pwr_mgmt_run();
}

/**@brief Function for handling Eddystone events.
 *
 * @param[in] evt Eddystone event to handle.
 */
static void on_es_evt(nrf_ble_es_evt_t evt)
{
    switch (evt)
    {
        case NRF_BLE_ES_EVT_ADVERTISEMENT_SENT:
            bsp_board_led_invert(NON_CONNECTABLE_ADV_LED_PIN);
            printf(&amp;quot;je suis dans le 1er cas \n&amp;quot;);
            break;

        case NRF_BLE_ES_EVT_CONNECTABLE_ADV_STARTED:
            bsp_board_led_on(CONNECTABLE_ADV_LED_PIN);
            printf(&amp;quot;je suis dans le 2em cas \n&amp;quot;);
            break;

        case NRF_BLE_ES_EVT_CONNECTABLE_ADV_STOPPED:
            bsp_board_led_off(CONNECTABLE_ADV_LED_PIN);
            printf(&amp;quot;je suis dans le 3em cas \n&amp;quot;);
            break;

        default:
            break;  //au debut c&amp;#39;etait break;
    }
}

#define APP_BLE_CONN_CFG_TAG            0 // au debut ct a 1                                 

#define NON_CONNECTABLE_ADV_INTERVAL    MSEC_TO_UNITS(100, UNIT_0_625_MS)  

#define APP_BEACON_INFO_LENGTH          0x17                            
#define APP_ADV_DATA_LENGTH             0x15                              
#define APP_DEVICE_TYPE                 0x02                               
#define APP_MEASURED_RSSI               0xC3                               
#define APP_COMPANY_IDENTIFIER          0x004C                             
#define APP_MAJOR_VALUE                 0x01, 0x02                         
#define APP_MINOR_VALUE                 0x03, 0x04                        
#define APP_BEACON_UUID                 0x01, 0x12, 0x23, 0x34, \
                                        0x45, 0x56, 0x67, 0x78, \
                                        0x89, 0x9a, 0xab, 0xbc, \
                                        0xcd, 0xde, 0xef, 0xf0            

#define DEAD_BEEF                       0xDEADBEEF                         

#if defined(USE_UICR_FOR_MAJ_MIN_VALUES)
#define MAJ_VAL_OFFSET_IN_BEACON_INFO   18                                 /**&amp;lt; Position of the MSB of the Major Value in m_beacon_info array. */
#define UICR_ADDRESS                    0x10001080                         /**&amp;lt; Address of the UICR register used by this example. The major and minor versions to be encoded into the advertising data will be picked up from this location. */
#endif

static ble_gap_adv_params_t m_adv_params;                                  /**&amp;lt; Parameters to be passed to the stack when starting advertising. */
static uint8_t              m_adv_handle = BLE_GAP_ADV_SET_HANDLE_NOT_SET; /**&amp;lt; Advertising handle used to identify an advertising set. */
static uint8_t              m_enc_advdata[BLE_GAP_ADV_SET_DATA_SIZE_MAX];  /**&amp;lt; Buffer for storing an encoded advertising set. */

/**@brief Struct that contains pointers to the encoded advertising data. */
static ble_gap_adv_data_t m_adv_data =
{
    .adv_data =
    {
        .p_data = m_enc_advdata,
        .len    = BLE_GAP_ADV_SET_DATA_SIZE_MAX
    },
    .scan_rsp_data =
    {
        .p_data = NULL,
        .len    = 0

    }
};


static uint8_t m_beacon_info[APP_BEACON_INFO_LENGTH] =                    /**&amp;lt; Information advertised by the Beacon. */
{
    APP_DEVICE_TYPE,     // Manufacturer specific information. Specifies the device type in this
                         // implementation.
    APP_ADV_DATA_LENGTH, // Manufacturer specific information. Specifies the length of the
                         // manufacturer specific data in this implementation.
    APP_BEACON_UUID,     // 128 bit UUID value.
    APP_MAJOR_VALUE,     // Major arbitrary value that can be used to distinguish between Beacons.
    APP_MINOR_VALUE,     // Minor arbitrary value that can be used to distinguish between Beacons.
    APP_MEASURED_RSSI    // Manufacturer specific information. The Beacon&amp;#39;s measured TX power in
                         // this implementation.
};

void assert_nrf_callback(uint16_t line_num, const uint8_t * p_file_name)
{
    app_error_handler(DEAD_BEEF, line_num, p_file_name);
}

static void advertising_init(void)
{
    uint32_t      err_code;
    ble_advdata_t advdata;
    uint8_t       flags = BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED;

    ble_advdata_manuf_data_t manuf_specific_data;

    manuf_specific_data.company_identifier = APP_COMPANY_IDENTIFIER;

    manuf_specific_data.data.p_data = (uint8_t *) m_beacon_info;
    manuf_specific_data.data.size   = APP_BEACON_INFO_LENGTH;

    // Build and set advertising data.
    memset(&amp;amp;advdata, 0, sizeof(advdata));

    advdata.name_type             = BLE_ADVDATA_NO_NAME;
    advdata.flags                 = flags;
    advdata.p_manuf_specific_data = &amp;amp;manuf_specific_data;

    // Initialize advertising parameters (used when starting advertising).
    memset(&amp;amp;m_adv_params, 0, sizeof(m_adv_params));

    m_adv_params.properties.type = BLE_GAP_ADV_TYPE_NONCONNECTABLE_NONSCANNABLE_UNDIRECTED;
    m_adv_params.p_peer_addr     = NULL;    // Undirected advertisement.
    m_adv_params.filter_policy   = BLE_GAP_ADV_FP_ANY;
    m_adv_params.interval        = NON_CONNECTABLE_ADV_INTERVAL;
    m_adv_params.duration        = 0;       // Never time out.

    err_code = ble_advdata_encode(&amp;amp;advdata, m_adv_data.adv_data.p_data, &amp;amp;m_adv_data.adv_data.len);
    APP_ERROR_CHECK(err_code);

    err_code = sd_ble_gap_adv_set_configure(&amp;amp;m_adv_handle, &amp;amp;m_adv_data, &amp;amp;m_adv_params);
    APP_ERROR_CHECK(err_code);
}


/**@brief Function for starting advertising.
 */
static void advertising_start(void)
{
    ret_code_t err_code;

    err_code = sd_ble_gap_adv_start(m_adv_handle, APP_BLE_CONN_CFG_TAG);
    APP_ERROR_CHECK(err_code);


}

/**@brief Function for stoping advertising.
 */
static void advertising_stop(void)
{
    ret_code_t err_code;

    err_code = sd_ble_gap_adv_stop(m_adv_handle);
    APP_ERROR_CHECK(err_code);

}

/**@brief Function for handling button events from app_button IRQ
 *
 * @param[in] pin_no        Pin of the button for which an event has occured
 * @param[in] button_action Press or Release
 */
static void button_evt_handler(uint8_t pin_no, uint8_t button_action) {

  if (button_action == APP_BUTTON_PUSH &amp;amp;&amp;amp; pin_no == BUTTON_1) {  
    //nrf_ble_es_on_start_connectable_advertising();
    //adv_stop();
    advertising_stop();
    printf(&amp;quot;Stop Ibeacon \n&amp;quot;);
  
  }
  if (button_action == APP_BUTTON_PUSH &amp;amp;&amp;amp; pin_no == BUTTON_3) {
    printf(&amp;quot;Start Eddystone\n&amp;quot;);
    nrf_ble_es_init(on_es_evt);
   // es_adv_start_connectable_adv();                                                // le start 
  }
  
  
}

/**
 * @brief Function for initializing the registation button
 *
 * @retval Values returned by @ref app_button_init
 * @retval Values returned by @ref app_button_enable
 */
static void button_init(void)
{
    ret_code_t err_code;

    //The array must be static because a pointer to it will be saved in the button handler module.
    static app_button_cfg_t buttons[] =
    {
        {BUTTON_1, false, BUTTON_PULL,  button_evt_handler},
        {BUTTON_3, false, BUTTON_PULL, button_evt_handler},
        {BUTTON_4, false, BUTTON_PULL, button_evt_handler}  //declaration button_4 --MOI--

    };

    err_code = app_button_init(buttons, ARRAY_SIZE(buttons),
                              APP_TIMER_TICKS(100));
    APP_ERROR_CHECK(err_code);

    err_code = app_button_enable();
    APP_ERROR_CHECK(err_code);
}


static void timers_init(void)
{
    ret_code_t err_code = app_timer_init();
    APP_ERROR_CHECK(err_code);
}


static void leds_init(void)
{
    ret_code_t err_code = bsp_init(BSP_INIT_LEDS, NULL);
    APP_ERROR_CHECK(err_code);
}


static void scheduler_init(void)
{
    APP_SCHED_INIT(SCHED_MAX_EVENT_DATA_SIZE, SCHED_QUEUE_SIZE);
}

/**@brief Function for initializing the nrf log module.
 */
static void log_init(void) {
  ret_code_t err_code = NRF_LOG_INIT(NULL);
  APP_ERROR_CHECK(err_code);

  NRF_LOG_DEFAULT_BACKENDS_INIT();
}


/**
 * @brief Function for application main entry.
 */
int main(void)
{
    // Initialize.
    //log_init();
    timers_init();
    leds_init();
    button_init();
    scheduler_init();
    power_management_init();
    ble_stack_init();
    gap_params_init();
    gatt_init();
    services_init();
    conn_params_init();
    advertising_init();
    advertising_start();
    printf(&amp;quot;Eddystone App Started\n&amp;quot;);
    // Enter main loop.
    for (;;)
    {
        idle_state_handle();
    }
}


/**
 * @}
 */&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Ble eddystone and ibeacon simultaneously nrf52832</title><link>https://devzone.nordicsemi.com/thread/394092?ContentTypeID=1</link><pubDate>Fri, 04 Nov 2022 09:37:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:558a53bb-908b-40fd-8f1e-e7b0baa05ef5</guid><dc:creator>Abdullah_M</dc:creator><description>&lt;p&gt;I send them simultaneously because I wanted to send a message, let&amp;#39;s say advertising, to both android and apple users. If I send only Eddystone for example, I will only reach android users, likewise for ibeacon, I will only reach apple users. Whereas if I send both, I could reach both. Here is the code if you want to see how it looks like.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Ble eddystone and ibeacon simultaneously nrf52832</title><link>https://devzone.nordicsemi.com/thread/394005?ContentTypeID=1</link><pubDate>Thu, 03 Nov 2022 17:20:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7ff0076d-0649-42a8-8de4-4c695199665a</guid><dc:creator>Hieu</dc:creator><description>&lt;p&gt;Hi Abdullah_M,&lt;/p&gt;
&lt;p&gt;Could you elaborate on what your implementation to send both packets simultaneously is?&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;hieu&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>