<?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 without codec</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/121416/ble-without-codec</link><description>Hi,I am using NRF54L15 DK in which I need to transmit audio data over BLE where that data will be used for only plotting in application,I am using sampling rate of 16000 and 2 channels each of 16 bit i.e at 64 KBps .I am able to send data over BLE but</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 15 May 2025 12:35:45 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/121416/ble-without-codec" /><item><title>RE: BLE without codec</title><link>https://devzone.nordicsemi.com/thread/535581?ContentTypeID=1</link><pubDate>Thu, 15 May 2025 12:35:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8459f1b1-1d58-4c45-a165-682fa95eb638</guid><dc:creator>Kashyap23</dc:creator><description>&lt;p&gt;Will the retransmissions happen automatically using&amp;nbsp;bt_gatt_notify() function or do we need to do it .can you suggest any example?In my case I am using DMA in I2S peripheral for reading data and I am updating data in BLE using memcpy but thing is I am not getting any error code every time I got 0 implies success but data is missing .Will DMA for mic effects with the BLE thread in BLE?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE without codec</title><link>https://devzone.nordicsemi.com/thread/535454?ContentTypeID=1</link><pubDate>Thu, 15 May 2025 07:02:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:80f203ed-818e-49e8-b1ba-354c19d9cfa7</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;In BLE I would claim packets can&amp;#39;t be lost, however they may be delayed due to retransmissions. As you increase distance the signal get weaker, while noise and interference is the same level, so the risk of packets needs to be retransmitted increase. In any case a nRF sniffer for BLE would show the problem in detail.&lt;/p&gt;
&lt;p&gt;Kenneth&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE without codec</title><link>https://devzone.nordicsemi.com/thread/535404?ContentTypeID=1</link><pubDate>Wed, 14 May 2025 17:47:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:269c1a52-768a-452d-b7f2-bd6f81eb9070</guid><dc:creator>Kashyap23</dc:creator><description>&lt;p&gt;I will check it .But my doubt is when devices are near there is no loss when I increase the distance I can see loss.How can I conclude this?What can be operating range or distance of BLE at higher data rates?Will throughput effects without using codecs?Or using&amp;nbsp; codec will solve the issue&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE without codec</title><link>https://devzone.nordicsemi.com/thread/535322?ContentTypeID=1</link><pubDate>Wed, 14 May 2025 12:26:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bc99db02-7ac9-4058-a30d-cbc8fac3556c</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;If you are using normal BLE connection, then all packets should be reliably sent yes, in the order they are written, I don&amp;#39;t see any reason that should fail here. You can connect a &lt;a href="https://www.nordicsemi.com/Products/Development-tools/nRF-Sniffer-for-Bluetooth-LE"&gt;nRF sniffer for BLE&lt;/a&gt; and check if that can give some clue as to what is happening.&lt;/p&gt;
&lt;p&gt;Kenneth&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE without codec</title><link>https://devzone.nordicsemi.com/thread/535282?ContentTypeID=1</link><pubDate>Wed, 14 May 2025 08:59:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d74861a7-335b-4fe1-9d94-0b360b3b4c35</guid><dc:creator>Kashyap23</dc:creator><description>&lt;p&gt;I couldn&amp;#39;t able to get that .I am using i2s protocol for reading data from mics using 2 channel at 16k sampling rate ,I want to transmit that data over BLE ,If I am increasing devices distance I can see loss of packets but I am not getting any error codes everying it&amp;#39;s getting only 0 if i check &amp;quot;bt_gatt_notify&amp;quot; ret code, so it seems like data is not updating into that ble unction proprly.I am using work queue to update data in ble for every 8 ms thread will execute&amp;nbsp; and I will get 250 samples into buffer of mic ,it will be filled in 7.8 ms as per calculation(125x(1/16000)) as per 2 channel for frame i will gt 2 samples so it wll be 125 frames to get 250 samples.And i kept sequence number in first 2 bytes ,i am getting loss of some sequence numbers but I am not getting any error codes.will i2s_buff_read will work differently?&lt;pre class="ui-code" data-mode="text"&gt;#define SAMPLES_PER_BLOCK   250
int32_t Pcm_In[SAMPLES_PER_BLOCK];
int16_t Pcm_Out[SAMPLES_PER_BLOCK];

    ret = i2s_buf_read(i2s_dev_rx, &amp;amp;Pcm_In, &amp;amp;block_size);
	if (ret &amp;lt; 0) {
		printk(&amp;quot;Failed to read data: %d\n&amp;quot;, ret);
		break;
	}
	copyBuffer(Pcm_In,Pcm_Out,SAMPLES_PER_BLOCK);
	ret = i2s_buf_write(i2s_dev_tx, Pcm_Out, block_size);
	if (ret &amp;lt; 0) {
		printk(&amp;quot;Failed to write data: %d\n&amp;quot;, ret);
		break;
	}


static void copyBuffer(int32_t *Buff_In,int16_t *Buff_Out,uint16_t number_of_samples)
{

	Buff_Out[0] = (int16_t)(data_counter &amp;amp; 0xFFFF);
    Buff_Out[1] = (int16_t)((data_counter &amp;gt;&amp;gt; 16) &amp;amp; 0xFFFF);
	for(int i = 2; i &amp;lt; number_of_samples; i++) 
	{

		Buff_Out[i]=(Buff_In[i]&amp;gt;&amp;gt;16 );
		
	}
	data_counter++;

}	
	&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;static void send_data_work_handler(struct k_work *work)
{
    if (!current_conn || !atomic_get(&amp;amp;is_notification_enabled)) {
        goto reschedule;
    }
	

    memcpy(data, &amp;amp;Pcm_Out, sizeof(Pcm_Out));

    int err = bt_gatt_notify(current_conn, &amp;amp;custom_service.attrs[1],
                            data, sizeof(data));
    if (err!=0) {
        printk(&amp;quot;Failed to send notification (err %d)\n&amp;quot;, err);
    }

reschedule:
    k_work_schedule_for_queue(&amp;amp;app_work_q, &amp;amp;data_send_work, K_MSEC(8));
}&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE without codec</title><link>https://devzone.nordicsemi.com/thread/535161?ContentTypeID=1</link><pubDate>Tue, 13 May 2025 14:11:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9fa75b95-cf71-47fe-be6c-9e528edfa2ab</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I assume you are using&amp;nbsp;isochronous channels?&lt;/p&gt;
&lt;p&gt;If you are using&amp;nbsp;isochronous channels you can add some forward error correction in each packet that for instance can allow the receiver to recover any potential lost packets, or you can choose to send the same packet more than once (adding redundancy in case packets are lost).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Kenneth&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>