Hi everyone,
I’m trying to build a custom OpenWrt image for Raspberry Pi Zero W to be used in a medical alert / nurse-call–style system.
Use Case / System Flow
The intended flow is:
Bluetooth button → nearest Raspberry Pi → webhook → website API
-
A patient presses a Bluetooth button (BLE or classic)
-
The nearest Raspberry Pi Zero W receives the button event
-
The Pi is connected via Ethernet
-
The Pi sends a webhook with the event + location data to a website API
-
The backend dispatches a doctor or nurse to the patient
This device is headless, and Bluetooth reliability is critical for the system to function correctly.
The Problem
Bluetooth does not initialize on OpenWrt:
-
hciconfigreturns nothing -
No
hci0device appears -
No Bluetooth interface visible
-
Wi-Fi and USB-Ethernet work perfectly
-
No obvious Bluetooth errors in
dmesg
Build Details
-
Build method: OpenWrt Image Builder
-
Versions tested: 19.07, 21.x, 22.x, 23.05
-
Target:
bcm27xx/bcm2708(Raspberry Pi Zero W)
What I Have Tried
Firmware
I know the Pi Zero W requires Broadcom proprietary firmware.
-
Added:
BCM43430A1.hcd -
Placed at:
/lib/firmware/brcm/BCM43430A1.hcd
Packages
Included explicitly in the image:
-
kmod-bluetooth -
kmod-hci-uart -
bluez-daemon -
bluez-utils
Manual Attach Attempt
I added an init script to force Bluetooth attachment:
hciattach /dev/ttyAMA0 bcm43xx 921600 noflow
This still does not create hci0.
Image Builder / mkconfig
When using mkconfig, I included the same configuration files I normally use.
I’ve uploaded the Image Builder configs and generated images here:
If anyone is willing to review what’s working vs not working, I’d really appreciate it.
Suspicions / Questions
-
UART Conflict
-
Is
/dev/ttyAMA0being used by the serial console instead of Bluetooth? -
On Raspberry Pi OS, Bluetooth usually requires:
enable_uart=1 dtoverlay=miniuart-bt -
Is this also required on OpenWrt for the Pi Zero W?
-
-
config.txt & Image Builder
-
Is there a supported way to bake
config.txtchanges (UART + overlays) into the Image Builder output? -
Or must these be manually edited on the SD card boot partition after flashing?
-
-
Kernel Drivers
-
Is
kmod-hci-uartalone sufficient? -
Do I also need a specific BCM2835 / serial UART kernel module for the Pi Zero W?
-
-
Known-Working Setup
-
Does anyone have a known-working Bluetooth configuration for Raspberry Pi Zero W on OpenWrt?
-
Correct UART device, overlay, kernel modules, or firmware placement?
-
Any guidance, documentation, or example configs would be extremely helpful.
Bluetooth is the last blocking issue before this system can be fully tested.
Thanks in advance ![]()