-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bluetooth support (feature request, not an issue) #1
Comments
Yes, that'd be a useful addition to my code, though I'm not encouraged
by the comment in the SDK code that says "Bluetooth register corruption
occurs if both wifi and bluetooth are fully utilised", so clearly there
are some problems with the way the data streams are being multiplexed.
I'm currently implementing TCP, then I need to speed up the SPI
interface by adding DMA; while doing that, I'll take a look at HCI
transport.
…On 16/02/23 11:04, boggyb wrote:
Hi, thanks for writing this elegant and minimal wifi driver in the
first place.
Recently, bluetooth support was added in pico-sdk
<https://github.com/raspberrypi/pico-sdk/releases/tag/1.5.0> with
relevant firmwares
<https://github.com/georgerobotics/cyw43-driver/tree/main/firmware>.
I tried the new wifi firmware with your driver, and it worked without
any hassle. There's a patchram
<https://github.com/georgerobotics/cyw43-driver/blob/main/firmware/cyw43_btfw_43439.h>
code that needs to be applied that enables an HCI transport layer over
the same physical spi transport in a shared
<https://github.com/raspberrypi/pico-sdk/tree/1.5.0/src/rp2_common/pico_cyw43_driver/cybt_shared_bus>
manner.
As I am very new to brcm/cyw devices, can you help implement a minimal
HCI layer similar to the existing SDPCM layer?
—
Reply to this email directly, view it on GitHub
<#1>, or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACNUSET4PZCRT5H2FOHYD5TWXYCTJANCNFSM6AAAAAAU6A2A2A>.
You are receiving this because you are subscribed to this
thread.Message ID: ***@***.***>
|
Hi @jbentham this is a very interesting project and your webpage on it is amazing! I have read it over and over to get an understanding of the SPI interface. I am trying to write a basic bluetooth stack in Micropython for the Pico Pi W - just for my own interest. I can use the HCI layer provided by the Pico drivers, but also wanted to understand how this chip works - or at least how the Pico W talks to it. So, now I'm writing a SPI bit-banging interface in Micropython, at the moment just to try and read the FEEDBEAD response - and it 'nearly' works but seems to by 4 bits out and I have no idea on mapping the command with the little-endian big-endian swapping. I'm wondering if you could point me in the right direction for where I might be going wrong. Even copies of your own bit-banging code would help - there are some bits not in your webpage or on here, I think.
|
I discovered what was happening - this is why most code tries to read FEEDBEAD more than once - it seems the first write to the chip wants 4 extra bits at the start, which made my reads 4 bits shifted. If you make the first write 32+4 bits long, with the first 4 bits beings 0s, then it works fine - and subsequent write/reads are fine as well. |
Hi, thanks for writing this elegant and minimal wifi driver in the first place.
Recently, bluetooth support was added in pico-sdk with relevant firmwares.
I tried the new wifi firmware with your driver, and it worked without any hassle. There's a patchram code that needs to be applied that enables an HCI transport layer over the same physical spi transport in a shared manner.
As I am very new to brcm/cyw devices, can you help implement a minimal HCI layer similar to the existing SDPCM layer?
The text was updated successfully, but these errors were encountered: