Bluetooth ACL Problems

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View
I have been having some problems sending and receiving HCI ACL
packets. For some reason I have to wait about 20ms between sending
packets when sending from master to slave, otherwise the module will
crash. Sending ACL packets from slave to master does not work at all.
Therefore, I have two questions:

1. When do you know if it is safe to send another ACL packet?
2. Why is my communication only 1 way?

The master bluetooth module is connected to a Rabbit 3000
Microprocessor, and the slave is attached to a PC, both over
rs232/UART @ 57.6kbps. Both Bluetooth modules are Ericsson ROK 101 008
modules. I should note that I have no problem sending HCI commands and
receiving HCI events. The problem is only with HCI ACL Data packets.


Re: Bluetooth ACL Problems
I forgot to note that all HCI ACL packets payloads are in L2CAP
format, as I know they must be for the ROK's


Re: Bluetooth ACL Problems
Hi there,

It is already a long time since I worked on bluetooth so if my memory
serves correctly.

To work from HCI level:

First, you have to send HCI_Connect() with BD_ADDR get from
HCI_Inquiry() command. Verify the link is setup. The HCI_Connect()
will return a Connection ID, and it will be used to send L2CAP data
packet. Regarding L2CAP, you also have to setup the L2CAP connection
ID as well.

To know when you can send an ACL data packet, There is a HCI event to
tell how many ACL buffers and SCO buffer available for the host to
send out, as long those numbers is not zero, you can send ACL data

There is no limitation on interval time between ACL packet. I guess
the reason is that the connection is not setup properly so the
internal buffer on the chip filled up but you keep sending packet in
to overflow the device. The fact the packet can't be sent from slave
could verify my assumption. Please verify the result of HCI_Connect()
and verify how you setup the slave. Did it send a HCI_Accept() command
following a HCI_Connection_request() event?

Just some pointers there, you could read the bluetooth specification
for reference.


Duy Do (mike lyons) wrote in message
Quoted text here. Click to load it

Site Timeline