Need Help: Pi Zero W Bluetooth Not Working (Missing rpi-bt Drivers/Firmware?) – Advice Needed for Custom Build

Hi everyone,

I’m using OpenWrt on a Raspberry Pi Zero W (v1.1) and I have Wi-Fi and USB-Ethernet gadget mode working perfectly. However, Bluetooth is still not working, and I’m trying to figure out which packages or firmware I need to include in my custom image.

What I already checked:

Running:

dmesg | grep -i bluetooth

shows that the Bluetooth stack, HCI UART driver, and BlueZ services are all loaded:

  • Bluetooth core, L2CAP, SCO, RFCOMM

  • HCI UART driver (H4, BCSP, ATH3K)

  • BlueZ utils and daemon

  • DBus is running

BUT:

There is no line in dmesg showing the Raspberry Pi Bluetooth chip being initialized.
No messages like:

Bluetooth: hci0: BCM: chip id...
Bluetooth: hci0: BCM: downloading firmware...

And hciconfig shows no hci0 at all.

What seems to be missing:

From what I can tell, my image is missing the Pi Zero W–specific Bluetooth kernel modules and firmware, such as:

kmod-bluetooth-bcm
kmod-hci-uart
kmod-rpi-bt
bcm43430a1-firmware (or rpi-bt-firmware)

I don’t see any of the required HCD firmware files in /lib/firmware/brcm, and I suspect the rpi-bt init scripts and device tree overlays are missing as well.

My Question:

Which exact packages do I need to install or include in the OpenWrt Image Builder to get Raspberry Pi Zero W Bluetooth working?

If anyone has:

  • A working package list

  • A known-good Pi Zero W Bluetooth config

  • A custom .config or image builder package string

  • Or any guidance on the correct firmware/DT overlays for this model…

…I would really appreciate your help!

Thanks in advance to anyone familiar with the Pi Zero W Bluetooth setup under OpenWrt.

Can you post full dmesg?

root@OpenWrt:~# dmesg | grep -i bluetooth
[ 8.863971] Bluetooth: Core ver 2.22
[ 8.872411] Bluetooth: HCI device and connection manager initialized
[ 8.876572] Bluetooth: HCI socket layer initialized
[ 8.880731] Bluetooth: L2CAP socket layer initialized
[ 8.884874] Bluetooth: SCO socket layer initialized
[ 8.894560] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 8.898780] Bluetooth: BNEP filters: protocol multicast
[ 8.902853] Bluetooth: BNEP socket layer initialized
[ 9.001366] Bluetooth: HCI UART driver ver 2.3
[ 9.005621] Bluetooth: HCI UART protocol H4 registered
[ 9.009749] Bluetooth: HCI UART protocol BCSP registered
[ 9.013726] Bluetooth: HCI UART protocol ATH3K registered
[ 9.043207] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[ 9.047310] Bluetooth: HIDP socket layer initialized
[ 9.149263] Bluetooth: RFCOMM TTY layer initialized
[ 9.153338] Bluetooth: RFCOMM socket layer initialized
[ 9.157242] Bluetooth: RFCOMM ver 1.11
root@OpenWrt:~# dmesg | grep -i hci
[ 1.440947] sdhci: Secure Digital Host Controller Interface driver
[ 1.446351] sdhci: Copyright(c) Pierre Ossman
[ 1.465583] sdhci-pltfm: SDHCI platform and OF driver helper
[ 2.830683] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 2.839679] fsl-ehci: Freescale EHCI Host controller driver
[ 2.848295] ehci-platform: EHCI generic platform driver
[ 8.872411] Bluetooth: HCI device and connection manager initialized
[ 8.876572] Bluetooth: HCI socket layer initialized
[ 9.001366] Bluetooth: HCI UART driver ver 2.3
[ 9.005621] Bluetooth: HCI UART protocol H4 registered
[ 9.009749] Bluetooth: HCI UART protocol BCSP registered
[ 9.013726] Bluetooth: HCI UART protocol ATH3K registered
root@OpenWrt:~#

and pakages list :
base-files

  • bcm27xx-gpu-fw

  • bluez-daemon

  • bluez-libs

  • bluez-utils

  • bluez-utils-extra

  • brcmfmac-firmware-43430-sdio-rpi-zero-w

  • brcmfmac-firmware-usb

  • busybox

  • ca-bundle

  • cgi-io

  • cypress-firmware-43430-sdio

  • dbus

  • dnsmasq

  • dropbear

  • e2fsprogs

  • firewall4

  • fstools

  • fwtool

  • getrandom

  • glib2

  • hostapd-common

  • iw

  • iwinfo

  • jansson4

  • jshn

  • jsonfilter

  • kernel

  • kmod-bluetooth

  • kmod-brcmfmac

  • kmod-brcmutil

  • kmod-cfg80211

  • kmod-crypto-aead

  • kmod-crypto-cmac

  • kmod-crypto-crc32c

  • kmod-crypto-ecb

  • kmod-crypto-ecdh

  • kmod-crypto-hash

  • kmod-crypto-kpp

  • kmod-crypto-manager

  • kmod-crypto-null

  • kmod-crypto-sha256

  • kmod-fs-vfat

  • kmod-hid

  • kmod-hid-generic

  • kmod-input-core

  • kmod-input-evdev

  • kmod-lib-crc16

  • kmod-lib-crc32c

  • kmod-mii

  • kmod-mmc

  • kmod-nf-conntrack

  • kmod-nf-conntrack6

  • kmod-nf-flow

  • kmod-nf-log

  • kmod-nf-log6

  • kmod-nf-nat

  • kmod-nf-reject

  • kmod-nf-reject6

  • kmod-nfnetlink

  • kmod-nft-core

  • kmod-nft-fib

  • kmod-nft-nat

  • kmod-nft-offload

  • kmod-nls-base

  • kmod-nls-cp437

  • kmod-nls-iso8859-1

  • kmod-nls-utf8

  • kmod-regmap-core

  • kmod-usb-core

  • kmod-usb-ehci

  • kmod-usb-hid

  • kmod-usb-net

  • kmod-usb-net-cdc-ether

  • kmod-usb-net-cdc-ncm

  • kmod-usb-net-rtl8152

  • kmod-usb2

  • libattr

  • libblkid1

  • libblobmsg-json20220515

  • libc

  • libcomerr0

  • libdbus

  • libexpat

  • libext2fs2

  • libffi

  • libgcc1

  • libical

  • libiwinfo-data

  • libiwinfo-lua

  • libiwinfo20210430

  • libjson-c5

  • libjson-script20220515

  • liblua5.1.5

  • liblucihttp-lua

  • liblucihttp0

  • libmnl0

  • libncurses6

  • libnftnl11

  • libnl-tiny1

  • libpcre2

  • libpthread

  • libreadline8

  • librt

  • libsmartcols1

  • libss2

  • libubox20220515

  • libubus-lua

  • libubus20220601

  • libuci20130104

  • libuclient20201210

  • libucode20220812

  • libustream-wolfssl20201210

  • libuuid1

  • libwolfssl5.7.2.ee39414e

  • logd

  • lua

  • luci

  • luci-app-firewall

  • luci-app-opkg

  • luci-base

  • luci-lib-base

  • luci-lib-ip

  • luci-lib-jsonc

  • luci-lib-nixio

  • luci-mod-admin-full

  • luci-mod-network

  • luci-mod-status

  • luci-mod-system

  • luci-proto-ipv6

  • luci-proto-ppp

  • luci-theme-bootstrap

  • mtd

  • netifd

  • nftables-json

  • odhcp6c

  • odhcpd-ipv6only

  • openwrt-keyring

  • opkg

  • partx-utils

  • procd

  • procd-seccomp

  • procd-ujail

  • r8152-firmware

  • rpcd

  • rpcd-mod-file

  • rpcd-mod-iwinfo

  • rpcd-mod-luci

  • rpcd-mod-rrdns

  • terminfo

  • ubox

  • ubus

  • ubusd

  • uci

  • uclient-fetch

  • ucode

  • ucode-mod-fs

  • ucode-mod-ubus

  • ucode-mod-uci

  • uhttpd

  • uhttpd-mod-ubus

  • urandom-seed

  • usign

  • wireless-regdb

  • wpad-basic-wolfssl

  • zlib