<?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>How to achieve peer and bond between a specific keyboard and a dongle in ncs desktop?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/119894/how-to-achieve-peer-and-bond-between-a-specific-keyboard-and-a-dongle-in-ncs-desktop</link><description>Hi,nordic team， 
 I&amp;#39;m developing a keyboard with the nRF52840 and NCS desktop, and it has a dongle. I hope Nordic&amp;#39;s LLPM can reduce latency. But I can&amp;#39;t find in the docs how the dongle and keyboard peer and bond; there&amp;#39;s only info on button - based peer</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 18 Mar 2025 11:29:58 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/119894/how-to-achieve-peer-and-bond-between-a-specific-keyboard-and-a-dongle-in-ncs-desktop" /><item><title>RE: How to achieve peer and bond between a specific keyboard and a dongle in ncs desktop?</title><link>https://devzone.nordicsemi.com/thread/527817?ContentTypeID=1</link><pubDate>Tue, 18 Mar 2025 11:29:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bf9420cf-0914-4b2a-b2ab-68cf96426b2f</guid><dc:creator>Lorenzo Amicucci</dc:creator><description>&lt;p&gt;Indeed, this is something that needs to be implemented&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to achieve peer and bond between a specific keyboard and a dongle in ncs desktop?</title><link>https://devzone.nordicsemi.com/thread/527797?ContentTypeID=1</link><pubDate>Tue, 18 Mar 2025 09:42:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:da76d61d-5ffa-4045-850c-9c9e54631c08</guid><dc:creator>pipixia_1_1</dc:creator><description>&lt;p&gt;thanks for your reply,as your suggest,the mac is a good&amp;nbsp;&lt;span&gt;identifier.but i dont know if the ncs desktop adv has mac ad type.and the dongle scan module can filter the mac .&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to achieve peer and bond between a specific keyboard and a dongle in ncs desktop?</title><link>https://devzone.nordicsemi.com/thread/527762?ContentTypeID=1</link><pubDate>Tue, 18 Mar 2025 08:05:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f18ea3ab-f3ef-4183-b22e-956b308bb397</guid><dc:creator>Lorenzo Amicucci</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;I add here some links:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;full documentation of the application is here:&lt;br /&gt;&lt;a id="" href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/applications/nrf_desktop/README.html"&gt;https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/applications/nrf_desktop/README.html&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;for scanning, more specifically, there is this module:&lt;br /&gt;&lt;a id="" href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/applications/nrf_desktop/doc/ble_scan.html"&gt;https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/applications/nrf_desktop/doc/ble_scan.html&lt;/a&gt;&amp;nbsp;&lt;br /&gt;--&amp;gt; here you can see that now the scanning is based on names in our example&lt;br /&gt;&lt;br /&gt;for ble bonds, there is this module:&lt;br /&gt;&lt;a id="" href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/applications/nrf_desktop/doc/ble_bond.html"&gt;https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/applications/nrf_desktop/doc/ble_bond.html&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Here there are some config:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a id="" href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/applications/nrf_desktop/configuration_options.html"&gt;https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/applications/nrf_desktop/configuration_options.html&lt;/a&gt;&amp;nbsp;&lt;br /&gt;for example, you can see:&lt;br /&gt;CONFIG_DESKTOP_BLE_NEW_PEER_SCAN_ON_BOOT&amp;nbsp;&lt;br /&gt;Basically, depending on configurations, you don&amp;#39;t need the button to trigger the first pairing.&amp;nbsp;&lt;br /&gt;(if no button, it is possible to trigger pairing via Config Channel as well&amp;nbsp;&lt;a id="" href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/applications/nrf_desktop/doc/config_channel.html"&gt;https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/applications/nrf_desktop/doc/config_channel.html&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;LLPM is just a config, very easy to enable it at build time (it needs to be available on both keyboard and dongle, and both device will go to LLPM after the BLE pairing)&lt;br /&gt;&lt;a id="" href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/applications/nrf_desktop/bluetooth.html"&gt;https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/applications/nrf_desktop/bluetooth.html&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Dongle:&amp;nbsp;&lt;a id="" href="https://github.com/nrfconnect/sdk-nrf/blob/main/applications/nrf_desktop/configuration/nrf52840dk_nrf52840/prj_dongle.conf"&gt;https://github.com/nrfconnect/sdk-nrf/blob/main/applications/nrf_desktop/configuration/nrf52840dk_nrf52840/prj_dongle.conf&lt;/a&gt;&amp;nbsp;&lt;br /&gt;keyboard: &lt;a id="" href="https://github.com/nrfconnect/sdk-nrf/blob/main/applications/nrf_desktop/configuration/nrf52840dk_nrf52840/prj_keyboard.conf"&gt;https://github.com/nrfconnect/sdk-nrf/blob/main/applications/nrf_desktop/configuration/nrf52840dk_nrf52840/prj_keyboard.conf&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;About production, each customer has different needs (because they have different production flows).&amp;nbsp;&lt;br /&gt;So, depending on your needs, you may need to change some modules.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;One very simple way to solve your problem is to&amp;nbsp;have each keyboard with a different name or other identifier (e.g. MAC) (note: after connection and before pairing, the dongle can read some characteristics of the keyboard, so reading such identifier). Then, when your dongle is combined with the keyboard, this identifier can be injected into the dongle (either during flashing or using configuration channel). When your customer opens the box for the first time and power on the devices, the dongle will filter, scan and connect only to the right keyboard. Then the pairing procedure is initialized with the right device. Such functionality is not currently implemented in nRF Desktop, but it can be modified by the customers on the source code. However, please note that in this case the pairing happens at the customer side and it is Just Works.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Another option, more secure, is doing something like FastPair (&lt;a id="" href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/applications/nrf_desktop/doc/fast_pair_app.html"&gt;https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/applications/nrf_desktop/doc/fast_pair_app.html&lt;/a&gt;&amp;nbsp;). However, this implementation on nrf desktop is available only on the peripheral side (because it is supposed to have a Chromebook as host PC)&lt;br /&gt;&lt;br /&gt;One additional note: if you don&amp;#39;t want the customers to re-pair the keyboard or dongle during the lifetime of the product, e.g.&amp;nbsp; in case of a failure, please consider removing Fail Safe modules (&lt;a id="" href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/applications/nrf_desktop/doc/failsafe.html"&gt;https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/applications/nrf_desktop/doc/failsafe.html&lt;/a&gt;), because this module will erase the bonds in case of a failure.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Please review this documentation and, if questions, come back to us.&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>