I've connected a BCM434381A1 (an RedBear IoT pHAT with an Ampak AP6212A module) to my Mac over an USB-UART adapter at 921600 where I run our BTstack (http://btstack.org). I'm using the initram patch from here: https://github.com/OpenELEC/misc-firmware/raw/master/firmware/brcm/BCM43430A1.hcd
When doing a performance test between the BCM and another USB Bluetooth dongle, I only receive a single packet per connection interval when the BCM is in Central Role, resulting in a mere 0.8 kB/s (200 byte ACL packets, 30 ms connection interval).
If I switch roles, BCM as Peripheral and USB Bluetooth as Central, everything works fine and I'll get more than 14 kB/s (fancy!).
Similar, with an TICC2564B instead of the BCM in the Central role, I'll also get 8.5 kB/s.
I've attached logs for WireShark/Apple's PacketLogger for the both BCM tests.
Did you see this before?
Are there vendor specific events that allow to somehow reserve more buffers to allow multiple packets per connection interval?
Should I use a different initram patch?
Matthias from BlueKitchen.
The number of packets sent in a connection event can depend on the CE length. When you are using CYW43438 as the central, check the CE length parameter from the host during HCI_LE_Create_connection. This might be restricting the number of packets being sent per connection interval.