-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
[Raspberry Pi 3+] Disabling WiFi breaks Bluetooth in some cases #1611
Comments
After some discussion in the office the view is that it is possible that the version number wasn't bumped for the 3B+ change, which is a shame. The rev 1.3 3B+ schematic I have still shows the enable signals as two distinct traces, while the 3A+ clearly shows that WL_ON is also wired to the BT_ON of the modem for layout reasons. Without a revision change it's going to be difficult to distinguish them. Apart from giving the user a way to override the default for the 1.3 3B+ based on experience, the best bet would probably be to probe for the BT modem with the usual BT_ON (GPIO 0 on the expander) low. You can use a test script something like this:
This test would be run during installation or before Bluetooth starts up, but for testing purposes disable the HCI startup script (on RPiOS, With the BT_ON line to the modem enabled, the script will provoke it to return a short sequence (usually 7 bytes). When disabled, there is no response and the read returns a length of 0. A manual test might look something like this:
On a 3B+ with BT_ON slaved to WL_ON both btprobes would succeed. For a production script you would probably replace the printf with a return code indicating whether or not the modem responded. |
Many thanks for your detailed answer. Good to know that it is a known behaviour on 3A+. If I understand it right, this means that Related to the above, does it play a role whether WiFi/BT is enabled or disabled via device tree overlay for doing the probe, or is the state basically overridden by the GPIO state? |
The
If all you are wanting to do is disable WiFi then you shouldn't have to deal with this corner case - the firmware should leave WL_ON alone. Given that the big power savings are to be had with both disabled, I think it's reasonable in this case to disable the WL_ON lowering unless the BT is also disabled. This logic is probably going to have to apply to all 1.3 3B+s. |
Okay, thanks for clarification. So It is practically not that trivial to apply for a config script, as, if The alternative is indeed to simply remove Many thanks for taking the time to dig into this and I think we have collected all information required to deal with it properly. Not a big issue after all, when known. Is it worth a note in the README? |
Sorry, my final paragraph probably wasn't clear enough - I'm fixing it in the firmware. |
Ah, got it, that is great 👍. |
There's a trial firmware (just start.elf and fixup.dat) that should fix this issue: https://drive.google.com/file/d/10gBNYX6UcFFwjZircjbfgOd7uKzBSnzA/view?usp=sharing |
Fix should be in latest rpi-update firmware. |
Many thanks, I'm still waiting for reply/test of our user. For completeness, here two forum threads where users faced the issue, which might be happy to know that a fix is coming: |
I've posted to those threads (directing here) in case any users are following. |
Describe the bug
On some Raspberry Pi 3+ devices, when onboard WiFi is disabled via
dtoverlay=disable-wifi
, Bluetooth also stops working. According to some forum threads this seems to be the case when WiFi and Bluetooth share the same reset line:However, there are Raspberry Pi 3+ devices without this issue: MichaIng/DietPi#4512 (comment)
This is unexpected since there is only a single revision
a020d3
. This makes it difficult to know for installers/scripts whether the WiFi disable overlay needs to be removed as well to enable Bluetooth or not.To reproduce
Expected behaviour
Disabling WiFi does not disable Bluetooth as well.
Actual behaviour
Disabling WiFi disables Bluetooth as well.
System
Copy and paste the results of the raspinfo command in to this section. Alternatively, copy and paste a pastebin link, or add answers to the following questions:
Pi3B+
cat /etc/rpi-issue
)?Raspberrry Pi OS Buster
vcgencmd version
)?#1421
uname -a
)?5.10.17-v7+ #1421 SMP Thu May 27 13:59:01 BST 2021 armv7l
Logs
Additional context
It this is a hardware-wise limitation, not sure if there is a way to have
dtoverlay=disable-wifi
ignored automatically, as long as Bluetooth is not disabled as well on affected devices? On the other hand I'm not sure whether it's more important to have Bluetooth enabled, when it's expected to be, or to have WiFi disabled, when it's set explicitly via overlay. But probably more important for scripting is whether there is a way to find out in the first place, if the RPi model/system is affected by the issue or not, as the revision code is not sufficient.The text was updated successfully, but these errors were encountered: