Q: Is it recommended to disable the built-in Wi-Fi and Bluetooth from the Raspberry Pi CM4 on Home Assistant Yellow?
All I could buy was a CM4104032, and some people seem to have issues between the built-in Wifi / Bluetooth and the Zigbee / Thread module on the Yellow.
Q: How would you do it?
I’ve enabled SSH access to the host on port 22222 and tried adding dtoverlay=disable-bt and dtoverlay=disable-wifi to /mnt/boot/config.txt, but it doesn’t seem to have any effect.
I need to investigate but I have the feeling that Device Tree Overlays do not work on that Linux build…
Although I am able to overclock the CM4 by adding the following 2 lines to /mnt/boot/config.txt:
over_voltage=6
arm_freq=2000
Thanks to whoever can share their educated opinion, and help regarding the dtoverlay!
I’m curious to know this as well. I have an external USB Bluetooth adapter I used on my HA Blue and was wondering if disabling BT on my Yellow and using the Bluetooth adapter to put some (6ft) distance between the other radios in the Yellow and the BT module would be beneficial?
You might know this, but for other readers: Zigbee, Thread, “IoT” Wi-Fi and Bluetooth all operate at 2.4GHz. I’ve seen comments from Yellow owners having issues with Zigbee when they have built-in wifi/BT on their CM4. I’ve had myself issues with a Pi 4 and Zigbee. Also the “turnkey” Yellow doesn’t have the radio module and I wonder if it is partly to avoid interferences.
In addition, now that I’ve spent a bit of time playing with the dtoverlays without success, I’d like to know why it doesn’t seem to disable the devices. I want to understand what I’m missing, even if it’s deemed unnecessary to disable the radio module.
I added the dtoverlay=disable-bt and dtoverlay=disable-wifi commands in the config.txt file, but it doesn’t work. The wifi and the bluetooth is still active.
How can I disable wifi and bluetooth in home assistant yellow ?
It is surprising that you cannot do this from the home assistant interface.
Same here… the BT module is throwing all sorts of bizarre errors on my Yellow via the console (UART with PuTTY) and I just want to disable it for the time being and I can’t figure out how.
Apologies as I figured this out over 2 weeks ago but didn’t have the time to write it down since. Your replies to the thread reminded me to come share my findings.
Note: I did an update of Home Assistant Operating System while typing this stuff down, and I think it deleted the DT Blobs I mention below in step 4. I’ll keep an eye out during the next HassOS update and report back here…
So, I did go and read up a little more on the concept of Device Tree Overlays.
For now, this is how I managed to disable Bluetooth and Wi-Fi:
Disabling built-in Wi-Fi / Bluetooth from Raspberry Pi 4 / CM4 running HassOS
# ip a show wlan0
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether d8:3a:dd:78:5x:xx brd ff:ff:ff:ff:ff:ff
# hcitool dev
Devices:
hci0 D8:3A:DD:78:5X:XX
Add the following 2 lines under the [all] section in the file /mnt/boot/config.txt.
I personally do it with vi /mnt/boot/config.txt
dtoverlay=disable-wifi
dtoverlay=disable-bt
Note: at the time of writing, there’s already this line in there:
device_tree=bcm2711-rpi-cm4-ha-yellow.dtb
And I’ve also added these 2 lines because I like my Pi 4s to be faster:
over_voltage=6
arm_freq=2000
Here’s the trick: currently HassOS doesn’t have the Device Tree Overlay Blobs necessary to disable these 2 devices. Add them manually with these commands:
cd /mnt/boot/overlays/
curl -L -O https://github.com/raspberrypi/firmware/raw/master/boot/overlays/disable-wifi.dtbo
curl -L -O https://github.com/raspberrypi/firmware/raw/master/boot/overlays/disable-bt.dtbo
Reboot and run the commands from step 2) again:
# ip a show wlan0
Device “wlan0” does not exist.
# hcitool dev
Devices:
Thank you very much for this @oxyd , I was going nuts since I could not disable bluetooth nor wifi on my new and shiny Pi 5. However, for all that are following your superb steps to disable devices on a Raspberry Pi 5 here’s the thing. They use other Device Tree Overlay Blobs for the Pi 5: https://github.com/raspberrypi/firmware/tree/master/boot/overlays
To disable bluetooth and / or wifi on a Raspberry Pi 5 you’d need to do adjust @oxyd original steps:
Add the following 2 lines under the [all] section in the file /mnt/boot/config.txt.
I personally do it with vi /mnt/boot/config.txt
Here’s the trick: currently HassOS doesn’t have the Device Tree Overlay Blobs necessary to disable these 2 devices. Add them manually with these commands:
cd /mnt/boot/overlays/
curl -L -O https://github.com/raspberrypi/firmware/raw/master/boot/overlays/disable-wifi-pi5.dtbo
curl -L -O https://github.com/raspberrypi/firmware/raw/master/boot/overlays/disable-bt-pi5.dtbo
Alternatively:
Use the “generic” dtoverlay names and rename the blobs
doesn’t exist. Am I creating that folder? Also I have to enable UART, is there an additional step for that? I’m trying to get my Raz 7 Pro working, and so far this thread has gotten me further than anything else I have researched
Just to make sure, since this topic actually is about Pi CM4 on HA Yellow not Pi5, the following did work for me on a Raspberry Pi 5 with Home Assistant OS.
If you want to get the overlay files from github (or elsewhere), then yes you have to create that directory yourself and put the files in there. This is the default lookup location for overlay files.
However, I noticed later that the overlay files in my case have been in
/mnt/boot/slot-A/overlays
but that location is not used nor looked up.
To make use of it, I had to put the following into /mnt/boot/config.txt
...
# Use OS prefix for A/B slot (RAUC)
os_prefix=slot-A/
cmdline=/cmdline.txt
...
I did manage to get my Razberry 7 Pro running on a Pi5 with the following configuration regarding UART in /mnt/boot/config.txt:
...
[all]
dtoverlay=disable-bt-pi5
dtoverlay=disable-wifi-pi5
dtparam=uart0=on
dtparam=uart0 # Enable UART0/ttyAMA0 on GPIO 14 & 15
dtparam=uart0_console # Enable UART0/ttyAMA0 on GPIO 14 & 15 and make it the console UART
enable_uart=1 is not going to work anymore on a Pi5.
After rebooting you should have
/dev/ttyAMA0
/dev/ttyAMA10
and use ttyAMA0 in your further Z-Wave JS (UI) configuration.
As a side note, theoretically one should be able to use the non-specific version like dtoverlay=disable-bt and the system would tie the relevant flavor if needed. But this did for some reason or an other not work for me. However this would be the official way.
I personally have 2 active 2.4 GHz Wifi networks, a Zigbee network and a Thread network parallel.
All 4 networks are working properly.
Maybe your channels are too close to each other.
There are a lot of frequency charts out there for the different 2.4 GHz channels for Wifi, Zigbee and Thread.
I wouldnt say this has to do with the computing hardware.
I ask because after a reboot I see bluetooth still working in HAOS
Actually after looking further
This was already in my config.txt so I just went ahead and downloaded the required files. Bluetooth is still enabled though according to Home Assistant
UPDATE: It works, bluetooth shows enabled, but the raz 7 pro works
This might seem like a dumb question but I know the Yellow has the built-in Bluetooth of the Pi, but on the Yellow documentation it also says it comes with Silicon Labs MGM210P Mighty Gecko Module (which according to its own page supports Bluetooth as well). So I’m confused. Does this mean you can use either Bluetooth adapter for the Yellow or only the built-in Pi one?
el_migu_el
Could you write in more detail how you did this?.
I created a mnt directory, a boot directory and an overlays directory.
I then created a config.txt file and put the information in it.
[all]
dtoverlay=disable-bt-pi5
dtoverlay=disable-wifi-pi5
dtparam=uart0=on
dtparam=uart0 # Enable UART0/ttyAMA0 on GPIO 14 & 15
dtparam=uart0_console # Enable UART0/ttyAMA0 on GPIO 14 & 15 and make it the console UART
Uploaded overlay files to directory overlays .
cd /mnt/boot/overlays/
curl -L -O https://github.com/raspberrypi/firmware/raw/master/boot/overlays/disable-wifi-pi5.dtbo
curl -L -O https://github.com/raspberrypi/firmware/raw/master/boot/overlays/disable-bt-pi5.dtbo
But after a reboot, HAOS simply deletes the boot, overlays directory and the config.txt file.
The directory mnt is empty .