ACL Buffer Full

130 views
Skip to first unread message

Isa

unread,
Feb 18, 2013, 9:33:37 PM2/18/13
to btsta...@googlegroups.com
Hi,

I am implementing bluetooth communication protocol that needs to send data twice in sequence.
And like I know from another thread, btstack has only one ACL buffer. When this buffer is in use,
we cannot use it to send another packet, which result in error 87 (ACL_BUFFER_FULL). Once we
get this error, we should retry sending it again until the buffer is available. 
This behavior has impacted the speed of transfer greatly. I always assume that btstack behaves 
like this and this cannot be changed (or needs big changes in btstack code to tackle this problem).

My question is, is my assumption correct? or is there a way to tackle the problem without changing
much of the code (or the architecture itself)? 

Thanks in advance.
Isa 

Matthias Ringwald

unread,
Feb 21, 2013, 1:03:05 PM2/21/13
to btsta...@googlegroups.com
Hello Isa

BTstack has a single output buffer, which is used for HCI Commands and ACL Packets. That's correct.

However, this doesn't impact your Bluetooth bandwidth. When data is in the outgoing buffer, it's send to the Bluetooth module via the UART. Once that's done, you get a DAEMON_PACKET_HCI_SENT (or something like that, see "manual"), and you can send the next packet. In the Bluetooth module, there are multiple ACL buffers, and if your UART is faster than the data can be sent over the air, these ACL buffers fill up, but the Bluetooth module is sending as fast as possible.

So, you should check what happens after the packet is sent to the Bluetooth module and the time you send your next one.

Best
Matthias
> --
> You received this message because you are subscribed to the Google Groups "btstack-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to btstack-dev...@googlegroups.com.
> To post to this group, send email to btsta...@googlegroups.com.
> Visit this group at http://groups.google.com/group/btstack-dev?hl=en.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>

Reply all
Reply to author
Forward
0 new messages