<?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>Radiopaket transmission with response</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/109963/radiopaket-transmission-with-response</link><description>Hello, 
 we have a multipoint application 1 central and 7 peripherals with MTU Size 244 Byte and 7.5ms Connectioninterval. 
 The application sends cyclic data from central to peripheral and vice versa. Works perfect so far. In case if radio distubtion</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 11 Apr 2024 07:59:30 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/109963/radiopaket-transmission-with-response" /><item><title>RE: Radiopaket transmission with response</title><link>https://devzone.nordicsemi.com/thread/478211?ContentTypeID=1</link><pubDate>Thu, 11 Apr 2024 07:59:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1b1aff4c-6366-4d2d-aebb-80612b675b99</guid><dc:creator>aro44444444</dc:creator><description>&lt;p&gt;Hello Edvin,&lt;br /&gt;&lt;br /&gt;ok I understand.&lt;br /&gt;We send 100 Byte from A to B and normally the resonse from B to A comes in the following&lt;br /&gt;Connection Interval&lt;/p&gt;
&lt;p&gt;Best regards&lt;/p&gt;
&lt;p&gt;Andre&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Radiopaket transmission with response</title><link>https://devzone.nordicsemi.com/thread/478148?ContentTypeID=1</link><pubDate>Wed, 10 Apr 2024 21:58:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:494bfc33-e5ef-465c-a8b8-c678ce76b903</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello Andre,&lt;/p&gt;
&lt;p&gt;No, increasing the connection interval will not give you less timing variation, because if a packet fails (CRC error -&amp;gt; Not ACKed), then it will wait until the next connection interval before a retransmit. But how often are you sending 100 bytes? Every connection interval? Several times per connection interval? Or less frequently?&lt;/p&gt;
&lt;p&gt;If range becomes an issue, you could try to make sure that you don&amp;#39;t use 2MBPS. While it gives higher throughput, it is also prone to more packet loss as the distance increases.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;BR,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Radiopaket transmission with response</title><link>https://devzone.nordicsemi.com/thread/478105?ContentTypeID=1</link><pubDate>Wed, 10 Apr 2024 14:26:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c00021cd-3d68-4c30-abb5-52ec645188dc</guid><dc:creator>aro44444444</dc:creator><description>&lt;p&gt;Hello Edvin,&lt;br /&gt;&lt;br /&gt;ok, to be honest, we have mostly about 100 Byte average from A to B and B to A.&lt;br /&gt;It is like MODBUS RTU cyclic communication.&lt;br /&gt;But of course, if we need one more connection interval, the slave will respond later.&lt;br /&gt;&lt;br /&gt;So I guess, to increase the connection intervall, let&amp;#39;s say 10ms will stabilze and causes&lt;br /&gt;less timing variation?&lt;/p&gt;
&lt;p&gt;Best reagrds&lt;br /&gt;Andre&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Radiopaket transmission with response</title><link>https://devzone.nordicsemi.com/thread/478099?ContentTypeID=1</link><pubDate>Wed, 10 Apr 2024 14:11:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:276ba04b-9783-4ac2-a005-cf3f6bd01627</guid><dc:creator>Edvin</dc:creator><description>[quote user="aro44444444"]&lt;p&gt;Do I understand you right, that a missing ack will lead to a retransmission in the next slot?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;[/quote]
&lt;p&gt;Yes. And this may be interpreted as &amp;quot;slower communication&amp;quot;, because you can only send a limited amount of bytes every connection interval. When a packet is lost, it will be rescheduled for the next connection event (the event that occurs every connection interval). Depending on your setup, you may, or may not have room for the old packet in addition to a new one.&lt;/p&gt;
&lt;p&gt;Let us say that you can fit 3 packets into your connection interval. (determined by buffer size (memory) and connection interval (timing). If one packet is not acked, it will be retransmitted. Then you will have the old packet, and perhaps a new one as well for the next connection interval. All fine. But if these are not acked in the next connection event either, then you may end up with 3, and eventually it will try to queue the 4th, which it will not be able to do, and it will have to wait until at least one packet is ACKed before it can queue the next.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;This is a huge simplification. The buffer doesn&amp;#39;t hold &amp;quot;maximum n packets&amp;quot;. This is decided by the MTU that you are using, so it can hold N amount of bytes. If you send long packets, it will fill up more of the buffer. Shorter packets will naturally fill up less of the buffer.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In addition, longer packets have a higher risk of having a CRC error when received, so if your connection is bad, it may help to split the packets into smaller chunks. This does, however lead to more overhead vs payload, so it will &amp;quot;slow down the communication&amp;quot;, but it will be more stable.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Radiopaket transmission with response</title><link>https://devzone.nordicsemi.com/thread/478004?ContentTypeID=1</link><pubDate>Wed, 10 Apr 2024 10:00:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:54a71496-9675-465e-a834-a25fba98297d</guid><dc:creator>aro44444444</dc:creator><description>&lt;p&gt;Hello Edvin;&lt;/p&gt;
&lt;p&gt;thankyou for your response.&lt;br /&gt;Indeed we are using the uBlox NINA B311 (nRF52840) with uconnect express firmware.&lt;br /&gt;But anyway, I guess they use GATT Write with Response.&lt;br /&gt;Multipoint 1-7 works very fine.&lt;br /&gt;But some customers report that if they have more disturbion (long distance) the communciation slows down.&lt;br /&gt;this also happens if we have point to point communication.&lt;/p&gt;
&lt;p&gt;Do I understand you right, that a missing ack will lead to a retransmission in the next slot?&lt;/p&gt;
&lt;p&gt;Andre&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Radiopaket transmission with response</title><link>https://devzone.nordicsemi.com/thread/477679?ContentTypeID=1</link><pubDate>Mon, 08 Apr 2024 23:01:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2ef5859b-bf37-43dc-8a8d-bc9f8102216b</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello Andre,&lt;/p&gt;
&lt;p&gt;Sorry for the late reply. I have had a bit of backlog since the Easter holidays here in Norway.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;So you are trying to run one central with 7 connections to peripherals, each with a 7.5ms and an MTU of 244, if I understand correctly.&lt;/p&gt;
&lt;p&gt;Having an MTU of 244 doesn&amp;#39;t need that all packets needs to be 244 bytes long, but I suggest that you take a look at the &lt;a href="https://devzone.nordicsemi.com/power/w/opp/2/online-power-profiler-for-bluetooth-le"&gt;Online Power Profiler tool&lt;/a&gt;. While this is mostly for checking the expected current consumption, you can enter your connection parameters, and it gives really nice graphs showing you what&amp;#39;s going on on the air.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;What you may notice is that maintaining one connection with MTU 244 (and actually sending 244 bytes) takes a while. In fact, it takes about 4ms. This means that squeezing in even two connections with 244 bytes every connection interval and 7.5ms connection interval means that you will not be able to keep up. But the SoftDevice (Bluetooth LE stack) will handle this as gracefully as it can, to try to serve all connections so that all connections are kept alive. But you will see a lot of packet loss.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Increasing the connection interval on your connections can make things more stable (but you will also have a larger latency). It will however be more predictable.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;To your questions:&lt;/p&gt;
[quote user=""]&lt;p&gt;What happens if a gatt write does not get a response?&lt;/p&gt;
&lt;p&gt;Is there an paket retransmission?&lt;br /&gt;&lt;br /&gt;If so, how often is the retransmission started adn how long?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;[/quote]
&lt;p&gt;Basically the answer is yes. In Bluetooth Low Energy, all packets (with payload) are &amp;quot;will be sent, or die trying&amp;quot;. This means that they will be retransmitted until one of two things happens:&lt;/p&gt;
&lt;p&gt;1: The packet is acknowledged.&lt;/p&gt;
&lt;p&gt;2: No packets have been acknowledged (incorrect CRC, or completely missed packet) for &amp;quot;Supervision Timeout&amp;quot; amount of time, meaning that the link will disconnect.&lt;/p&gt;
&lt;p&gt;So if your link is lost (disconnected), all packets that are not ACKed are lost. It is however possible to keep track of the packets, and whether they are acknowledged or not, so if you have important information you can know whether it was Acked or not. (for details, please let me know what SDK version you are using).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>