<?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>Hints on implementing iOS-compatible L2CAP peripheral</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/92444/hints-on-implementing-ios-compatible-l2cap-peripheral</link><description>Hi all, 
 We&amp;#39;ve developed BLE controllers for our new smartphone-based VR product. nRF52810 with S113 softdevice. 
 Right now the data (inputs + multiple IMU data samples) are sent via GATT characteristic updates, and on iOS we negotiate down to a 15ms</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 30 Sep 2022 14:53:58 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/92444/hints-on-implementing-ios-compatible-l2cap-peripheral" /><item><title>RE: Hints on implementing iOS-compatible L2CAP peripheral</title><link>https://devzone.nordicsemi.com/thread/388821?ContentTypeID=1</link><pubDate>Fri, 30 Sep 2022 14:53:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:abec4c35-6308-48ec-b62d-ca7ee5fdfa94</guid><dc:creator>tangobravo</dc:creator><description>&lt;p&gt;Hi Simon,&lt;/p&gt;
&lt;p&gt;Thanks for the reply.&lt;/p&gt;
[quote userid="75734" url="~/f/nordic-q-a/92444/hints-on-implementing-ios-compatible-l2cap-peripheral/388741"]This sounds interesting indeed, although as this sounds like it would be a stack of its own, and I think there will also be a lot of work required to get it certified in the end.[/quote]
&lt;p&gt;I don&amp;#39;t quite follow here - I thought L2CAP was just the link layer of BLE, so still the same BLE stack and it should be able to operate at the same time as the higher-level GATT stuff? We&amp;#39;re using a Raytac module rather than the nRF&amp;nbsp;directly.&lt;/p&gt;
&lt;p&gt;I did try to capture a trace of the iPod to iPhone implementation, but it seems even though I didn&amp;#39;t explicitly pair them they still seem to have some shared key somehow (perhaps via iCloud or something). Attached it anyway FWIW.&lt;/p&gt;
&lt;p&gt;The code for both of the iOS apps&amp;nbsp;is on GitHub:&lt;/p&gt;
&lt;p&gt;&lt;a id="" href="https://github.com/tangobravo/ios-bluetooth-peripheral"&gt;https://github.com/tangobravo/ios-bluetooth-peripheral&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a id="" href="https://github.com/tangobravo/ios-bluetooth-central"&gt;https://github.com/tangobravo/ios-bluetooth-central&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Thanks for the other advice, I&amp;#39;ll have a deeper look into those docs and see if I can get anything running.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/iPod_2D00_to_2D00_iPhone12.pcapng"&gt;devzone.nordicsemi.com/.../iPod_2D00_to_2D00_iPhone12.pcapng&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Hints on implementing iOS-compatible L2CAP peripheral</title><link>https://devzone.nordicsemi.com/thread/388741?ContentTypeID=1</link><pubDate>Fri, 30 Sep 2022 10:58:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a2ef5097-cb82-457b-9361-1316bf48d0b2</guid><dc:creator>Simonr</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;This sounds interesting indeed, although as this sounds like it would be a stack of its own, and I think there will also be a lot of work required to get it certified in the end.&lt;/p&gt;
&lt;p&gt;In variant 4, the &lt;strong&gt;le_psm&amp;nbsp;&lt;/strong&gt;parameter is actually ignored in the variant 4, as it&amp;#39;s only used when requesting the setup of an L2CAP channel, and ignored otherwise. When that&amp;#39;s said, the SoftDevice won&amp;#39;t check the le_psm, and it&amp;#39;s up to the peer to accept it, which means you&amp;#39;re free to hardcode this parameter from the nRF point of view.&lt;/p&gt;
&lt;p&gt;As far as what documentation to look at, I think you&amp;#39;re on the right track with the &lt;a href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s113.api.v7.3.0/group___b_l_e___l2_c_a_p.html"&gt;L2CAP API reference&lt;/a&gt; available on the Infocenter.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Simon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Hints on implementing iOS-compatible L2CAP peripheral</title><link>https://devzone.nordicsemi.com/thread/388601?ContentTypeID=1</link><pubDate>Thu, 29 Sep 2022 14:05:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cb7e76dd-8ac3-4446-8dd4-e6bae6ad6c4e</guid><dc:creator>tangobravo</dc:creator><description>&lt;p&gt;To get a bit more specific, I&amp;#39;ve been looking at the message charts here:&lt;/p&gt;
&lt;p&gt;&lt;a id="" href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s113.api.v7.3.0/group___b_l_e___l2_c_a_p___c_h___s_e_t_u_p___m_s_c.html"&gt;https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s113.api.v7.3.0/group___b_l_e___l2_c_a_p___c_h___s_e_t_u_p___m_s_c.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I assume to recreate the iOS flow (where the central initiates the connection) we&amp;#39;d be looking at variant 4.&lt;/p&gt;
&lt;p&gt;It looks like in that case the central specifies the PSM to connect to. Can this PSM be hardcoded (and if so, what are the valid values). If it&amp;#39;s dynamic (like in the iOS peripheral API) then how do I allocate and query the PSM for a channel?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>