Contribute
Register

Slow/Dropped Wifi after Sleep with BCM943602BAED (DW1830)

Status
Not open for further replies.

jaymonkey

Moderator
Joined
Aug 27, 2011
Messages
4,075
Motherboard
GB Z490 Vision D
CPU
i9-10850K OC @ 5.2 GHz
Graphics
RX6800-XT+UHD630
Mac
  1. MacBook Air
  2. MacBook Pro
  3. Mac Pro
Mobile Phone
  1. iOS
Hi all,

This is not a request for help as such, more an investigation and my current work-around to the issue in the title. This post is predomaaintly aimed at BCM943602BAED/DW1830 users, if you have a different WiFI/BT combo card then some of the general info and fixes might help you but the root issue discussed in this post is I believe specific to the BCM943602BAED.

Background

As i posted here, to resolve on going (and unsolvable) issues with Windows 10 lockups and Bluetooth, i recently swapped out my BCM94352Z WiFi/BT card for a DW1830.

Whilst swapping the card for a DW1830 has resolved the Windows 10 Wifi and general Bluetooth issues, it has introduced a new issue with OSX (i'm running 10.12.6). Upon OSX startup (boot) the card works perfect with fast and stable WiFi and Bluetooth, however once OSX has been through at least one Sleep/Wake cycle the WiFi performance becomes very sporadic. It still remains connected to my WiFi but seems to drop packets then works for a bit then starts dropping packets again.

Once the card is in this state the only way to restore full WiFi performance is to reboot the laptop, i've been investigating the issue for a few weeks now trying to resolve it .... I believe the issue is caused by OSX not correctly returning the card into its normal full power on state after sleep, possibly down to hardware or firmware incompatibilities with OSX putting the WiFI into a low power state.

Symptom

Although the symptom is similar to issues reported with slow WiFi after sleep by other users on this site, the simple fix of un-checking the 'Wake for Wi-Fi Network Access' in System Preferences -> Energy Saver does not resolve this particular issue with the BCM943602BAED.
Screen Shot 2017-10-31 at 14.43.09.png
Additionally the many fixes for Slow WiFi after sleep reported by genuine MBP owners also do not work, believe me I've tried everything several times including a full reinstall of OSX two or three times.

If you have slow WiFi after sleep and have not already tried the known fixes above then i strongly suggest you try those first before going any further with whats discussed in this post.

In the case the BCM943602BAED on my HP Spectre X360, after sleep the low level 802.11 link and security layers are still active and remain connected to my WiFi router (either 5Ghz or 2.4Ghz) however the network protocol layers (TCPIP/UDP/SMB/AFP..etc) seem to have real problems.

Its very easy to test for this by opening a terminal window and pinging the IP address of the WiFi router, when its working and everything is ok the ping time should always be less than 10ms ... on average a ping time of between 1.5ms - 5ms would be considered normal. However once the laptop has been through a sleep/wake cycle the ping times to the router can be anything between 100ms to 1000ms and sometimes the pings will completely fail, but given time they will restart with high ping times (see post #3 for detailed testing method)

Its not just pings which use UDP that are effected but all network protocols TCP/IP, Smaba, SMB, AFP .. etc show signs of extensive sporadic packet loss and truncated packets.

Cause

At this time I don't know if this issue is related to the DW1830 card version I bought on eBay (via China supplier) or my system (1017 15" HP Spectre X360), I don't know if all hacks with BCM943602BAED are effected .. i suspect not, maybe genuine Dell 1830 cards are slightly different and are not effected ?.

One possible cause could be that i had to tape the wifi and bluetooth disable pins on the card in order for it to be detected in my laptop .. its possible that OSX relies on this hardware feature with the BCM94360XX chipset rather than pure software control, i discussed the reason why some users have to tape the disable pins in this post. Since i don't have any issues with the card under Windows 10 or Linux i suspect that this may not be the case but i cant be 100% sure.

I have seen quite a few posts on this site from users who have installed a BCM943602BAED/DW1830 WiFi/BT card in their hack and reported slow WiFi after sleep, for some un-checking the 'Wake for Wi-Fi Network Access' in Energy Saver seems to work but not for others (myself included).

Manual Workaround

Having tried all (and i really do mean all) suggested fixes on this and other sites the only thing that worked for me is to power down the WiFi before entering a sleep cycle, and then tuning the WiFi back on after a wake. I tested this for a few days and it works every time, I believe that there are a few other BCM943602BAED users that have also found this to be the case.

Although this works its a highly inconvenient workaround, if you forget to switch the WiFi off before closing the lid, the issue will return and only a reboot will restore normal WiFi performance.

I suspect that it maybe possible to 'fix' the issue with some custom ACPI code such as a _WAK method for the BCM943602BAED or even patch OSX to handle the card correctly but until i can nail down exactly whats wrong and what needs to be done thats not possible right now.

So for now i've taken the approach of trying to automate the powering off and on of the WiFi during sleep and wake events.

Automated Workaround

Its relatively easy to write an Apple Script to control the power status of the WiFi but unfortunately there is no way to detect sleep/wake events using Apple Script. However there a few 3rd party event managers available that do detect the sleep/wake events and can trigger user defined actions.

I tried all of the following Mac/OSX event managers :-
Whilst all of the above event managers were able to detect OSX sleep/wake events and trigger actions, none of them were able to detect the sleep event early enough to power down the WiFi before OSX does what ever it does to put the WiFi into a low power state and so did not help in resolving the issue.

This approach is made more difficult as Apple states that all OSX applications/processes are meant to acknowledge a request for sleep and either enter a idle state or inform OSX not to sleep.

After (a lot) more searching i came across an event manager called Scenario, this event manager is able to detect the sleep event at a very early stage but more importantly it has a inbuilt mechanism to stop OSX processing the sleep event until it's finished processing the user defined actions or at least delay it until OSX over rides the app and continues with sleeping regardless (approx 15 seconds).

Scenario is a cheep ($5) paid app available form the App store, having exhausted all other avenues and buoyed by the fact that the devs have tried to work around the OSX app sleep idle request i decided to give it a punt and i'm happy to report that it is able to do exactly what is needed to automate the powering off/on of the WiFi for sleep and wake events.

I've been running it now for a few days and so far my WiFi performance has been rock steady after many sleep/wake cycles without needing any reboots so i now believe its a viable work around for BCM943602BAED/DW1830 users that are seeing the same issue.

Edit 03/07/2018: See Update dated 03/07/2018 at bottom of this post for a possible better solution.

Method

Before continuing i suggest that you confirm that this workaround is going to work by using the testing method outlined in post #3, no point purchasing an app thats not going to work for you.

1. Purchase and install Scenario from the App Store.
2. Download the attached zip file WiFi Control Scripts.zip and unzip to a temporary folder.
3. Run Scenario, click on the menu icon and select Settings
4. Configure Scenario to auto start and monitor for sleep/wake events :-
Screen Shot 2017-10-30 at 20.13.09.png
5. Click on the 'Open Script Folder' button.
Screen Shot 2017-10-30 at 15.54.27.png
6. Copy 'wifioff.scpt' from the extracted zip file to the 'Sleep Scripts folder'.
7. Copy 'wifion.scpt' from the extracted zip file to the 'Wake Scripts folder'.

That should do it, reboot the laptop/computer and make sure Scenario has started, you should see a red icon in the menu bar.

Now when you trigger a sleep event Scenario should power down the WiFi before OSX gets too deep into its sleep event and when you wake the system Scenario will turn on the WiFi automatically, in my testing so far it appears to work with any standard sleep trigger event such as lid close, timed sleep or manually selecting sleep from the Apple menu.

I've programmed my script to trigger a notification and a confirmation sound that WiFi power has been restored but if you don't like this you can modify the script to suit your personal preference, i tired to implement an audio confirmation of WiFi power off but my laptop automatically mutes the speakers on a lid close which i suspect many others also do.

Note: If your WiFi adapter has a BSD ID other than 'en0' then you will need to modify all occurrences of 'en0' to your systems WiFi BSD ID in both the script files using the OSX script editor, you can use DPCIManager or System Information to find out your WiFi adapters BSD ID:-
Screen Shot 2017-10-30 at 20.19.39.png
Screen Shot 2017-10-30 at 20.24.47.png

Additionally if you find that that WiFi does not power back after a wake event but you see/hear the notification from my script then try increasing the delay directly after the 'if' statement in wifion.script :-
Screen Shot 2017-10-30 at 17.07.00.png


Summary

Now i'm not saying that this is a perfect solution, its not ... it should be considered a temporary solution until a better one can be found but its a good start and so far its worked well for me.

Ideally we need to understand exactly whats going on with the BCM943602BAED and either patch OSX or create custom ACPI code to fix the issue or if thats not possible anther approach would be to write a custom kext or app that does what this method does but without the reliance of 3rd party paid software.

lets use this thread to explore this strange issue with the BCM943602BAED, please don't repost fixes like the Wake for WiFI Network Access fix or others like those i linked at the start of this thread .. if you found that one of those solutions worked for you then great ... but if none of those solutions resolved your issue feel free to discuss this or any other methods or investigations.

Cheers
Jay


Update 25-02-2018: One thing i've noticed since writing this guide is that sometimes (maybe 1 in 12 wakes) Scenario does not always detect system wake on my HP X360 ...

However i have had better touch tool installed for years (really great app BTW) which also supports running scripts on wake so i switched to using that for triggering the wake script and kept Scenario for the sleep detection as its the only app that seems to catch and pause the sleep function early enough to power down the card reliably. Since switching to BTT for the sleep event i have had no issues with slow WiFi after sleep.


Update 03-07-2018: I've been holding off upgrading to High Sierra since its release largely due to the fact that it offers no new features over Sierra that i need and also because early releases seemed to contain bugs and security issues. However it seems Apple has addressed the bugs and with Mojave being released in the near future I decided the time to upgrade to MacOS High Sierra 10.13.5 had come.

During the upgrade i read Tolida's updated Broadcom WiFi/Bluetooth guide and noted in section II (Additional Capabilities) that the Clover patch to enable Handoff no longer works with 10.13.X and that one of the solutions was to use the LiLu plugin AirportBrcmFixup. Reading further it becomes apparent that AirportBrcmFixup contains all binary patches that up until now i have patched using Clover. Since I was already using Lilu and a number of other Lilu plugins I decided i'd take a look at AirportBrcmFixup.

After the upgrade I'm happy to report that the issue of low packet bit rates after wake from sleep appears to have gone and it is no longer necessary for me to power down the wifi before sleep. I don't know if this is because of MacOS 10.13.X or AirportBrcmFixup or a combination of the two. From the research i've done it seems that AirportBrcmFixup is able to do a better job of patching Apples Kext's than clover in some cases so that may have something to do with it.

If your experiencing the issue detailed in this post then you may want to give AirportBrcmFixup a go and see if it helps, don't forget to disable or remove all Clover patches related to WiFi and BT.

For more information on Lilu and AirportBrcmFixup see my new guide :-

https://www.tonymacx86.com/threads/an-idiots-guide-to-lilu-and-its-plug-ins.260063/

Cheers
Jay
 

Attachments

  • WiFi Control Scripts.zip
    4.6 KB · Views: 462
Last edited:
Same sleep issue here with the DW1830. I'm running 10.13 and when the system awakes from sleep it has a number of network issues such as ping timeouts and connecting to web sites etc. It also never negotiate at 5Gz, or 802.11ac or speeds above 300M. Even @ 100M speed navigation is extremely slow

I also lost bluetooth and rebooting the PC is the only way to restore bluetooth. I just bought this card which came highly recommended now i'm wondering why seeing the plethora of issues

BTW I bought Scenario app but it didn't fix the issue restoring bluetooth after wake and made WIFI performance even worse for me. So instead I read where all you have to do is disable "wake for network access" under energy saver and that seem to work, however Bluetooth still a problem. I see the bluetooth interface as en1 and the option to turn it on but I'm unable to.

Any suggestions?
 
Last edited:
@hamoja,

Scenario can not make the WiFi performance worse .. all its doing is automating switching the wifi on and off.
First check that you actually have the same issue i detailed in my post.

Before testing disable Scenario (or any other event managers) if you have one installed.

Perform clean reboot and check wifi is working.
Open Terminal and start pinging your router :-

ping 192.168.XXX.XXX . <-- change to the IP to that of your router.

Keep this terminal window running ping for the entire test, do not quit ping just let it run for a few mins ... ping times should on average be just a few ms (1-5ms). We are using ping as it is a low level protocol with much smaller packet sizes to TCP/IP and by pinging the router directly we are negating any need for DNS which can cause similar wifi issues with some macs and can be resolved by using specified DNS servers as outlined in many of the other online guides.

without closing the terminal trigger a sleep event and wait until computer enters sleep mode

Wake computer and wait for ping to reconnect to router .... keep an eye on the ping times if they become sporadic and you get high ping times then its most likely the same issue i have with DW1830, if ping's are ok after test then repeat sleep/wake a few more times allowing longer sleep times between events.

If ping times are unaffected then your not suffering the issue i wrote about ...
If ping times become sporadic then try the following ...

Reboot the computer and restart pinging your router via terminal ... ensure ping times are good ...
Now click on the wifi icon in the menu and switch off wifi wait a few seconds then trigger sleep event
wait a few mins then wake computer, and then switch wifi back on ... wait for ping to re establish connection to router
check ping times ... if good the keep testing a few more times, ensuring you turn off wifi before sleep

if ping times continue to be ok then the method i detailed in my first post should work for you
however you may need to change the wifi bsd id in the scripts if its not en0.

The #a country code should resolve 5Ghz issues see my DW1830 post here :-

https://www.tonymacx86.com/threads/...7-7500u-kaby-lake.213327/page-17#post-1609866

I have not seen any Bluetooth issues with DW1830, if your system can not see the bluetooth then it my be a logic problem with the cards disable lines (see this post for info on this) if so you can try taping the bluetooth pin as discussed in the above linked post.

From reading your post i think you don't understand that WiFi/BT combo cards have two separate chipsets, the Wifi is a PCI device and communicates directly with teh CPU via the PCI bus, the bluetooth is a usb device which sits on the USB stack and communicates through the OS via the USB drivers and will not have a BSD name as you stated in you post.. although both devices are on the same card they are totally independent of each other form an operating system perspective .. each device requires its own drivers and fixes.

i suspect that en1 is your wifi adapters bsd in which case you need to change the bsd id in both scripts as detailed in my first post ... this could be why Scenario it didn't work for you ?

If bluetooth device is not showing up on your USB bus in sys info then try taping the disable line as i already suggested, also ensure that Built-In is set to yes .. also check in io reg that the usb port the bluetooth device is on has a connection type of FF. if its not you can use Rehabmans USB Inject All method with a custom SSDT to fix this.
Screen Shot 2017-10-31 at 12.55.04.png

Read all guides carefully so that you understand correctly ..

Cheers
Jay
 
Last edited:
My baseline is as such, clean reboot with WLAN adapter latency I found round trip is less than 44MS to google DNS.

After deep sleep using the tool suggested to reset card round trip is between 1300 - 2000MS with a number of ping loss in between which explains slowness as TCP stack is reset and causes a number of transmissions

On the other hand disabling the option "wake for network access" in energy saver (not using Scenario tool) round trip is the same when the computer boots up no degraded performance observed.

WIFI is eth0 and BT eth1. BT works at boot up but after waking from sleep shows unavailable not disabled. I didn't know BT portion sits on the USB stack, its a combo card with both BT and WIFI taking to HCL via a PCI interface, so one would assume PCI stack for both.

if you are suggesting BT for DW1830 should be listed as a device on USB 3.0 branch then I'll double check if it exists.

BTW, my DW1830 card type shows "third party" while yours "Airport Extreme ....". I used Rehabman patches BrcmFirmwareRepo.kext and BrcmPatchRAM2.kext. Is there a special patch you used or a different step you followed to display the proper card type?
 
My baseline is as such, clean reboot with WLAN adapter latency I found round trip is less than 44MS to google DNS.

To debug this issue you should ping your local wifi router, you have no control over network traffic once it leaves your local net work. Please re read the second long paragraph in my above reply to understand why.

WIFI is eth0 and BT eth1. BT works at boot up but after waking from sleep shows unavailable not disabled. I didn't know BT portion sits on the USB stack, its a combo card with both BT and WIFI taking to HCL via a PCI interface, so one would assume PCI stack for both.

if you are suggesting BT for DW1830 should be listed as a device on USB 3.0 branch then I'll double check if it exists.

BTW, my DW1830 card type shows "third party" while yours "Airport Extreme ....". I used Rehabman patches BrcmFirmwareRepo.kext and BrcmPatchRAM2.kext. Is there a special patch you used or a different step you followed to display the proper card type?

BT as eth1 makes no sense at all, and your assumption that both BT and WiFi are on PCI bus is incorrect, BT will always be on USB bus .. there are no PCI BT devices in existence that work with OSX, since it is a relatively slow protocol there is no need for it to hog a high speed pci lane, USB has more than enough bandwidth to deal with it.

Suggest you use rehabmans USB Inject all and IO Reg Explorer to debug your usb stack.

Airport Extreme is the WiFi adapters name not BT, the re-branding is achieved with rehabmans FakePCI suite which you should be using for the Wifi portion of the card, the BRCMrampatch kexts are to load the BT firmware, they have nothing to with WiF ... read my other post on Installation of DW1830 linked at the start of my first post as already suggested in my last reply.

Jay
 
Last edited:
@jaymonkey thank you for posting up all your findings regarding the
@hamoja,

Scenario can not make the WiFi performance worse .. all its doing is automating switching the wifi on and off.
First check that you actually have the same issue i detailed in my post.

Before testing disable Scenario (or any other event managers) if you have one installed.

Perform clean reboot and check wifi is working.
Open Terminal and start pinging your router :-

ping 192.168.XXX.XXX . <-- change to the IP to that of your router.

Keep this terminal window running ping for the entire test, do not quit ping just let it run for a few mins ... ping times should on average be just a few ms (1-5ms). We are using ping as it is a low level protocol with much smaller packet sizes to TCP/IP and by pinging the router directly we are negating any need for DNS which can cause similar wifi issues with some macs and can be resolved by using specified DNS servers as outlined in many of the other online guides.

without closing the terminal trigger a sleep event and wait until computer enters sleep mode

Wake computer and wait for ping to reconnect to router .... keep an eye on the ping times if they become sporadic and you get high ping times then its most likely the same issue i have with DW1830, if ping's are ok after test then repeat sleep/wake a few more times allowing longer sleep times between events.

If ping times are unaffected then your not suffering the issue i wrote about ...
If ping times become sporadic then try the following ...

Reboot the computer and restart pinging your router via terminal ... ensure ping times are good ...
Now click on the wifi icon in the menu and switch off wifi wait a few seconds then trigger sleep event
wait a few mins then wake computer, and then switch wifi back on ... wait for ping to re establish connection to router
check ping times ... if good the keep testing a few more times, ensuring you turn off wifi before sleep

if ping times continue to be ok then the method i detailed in my first post should work for you
however you may need to change the wifi bsd id in the scripts if its not en0.

The #a country code should resolve 5Ghz issues see my DW1830 post here :-

https://www.tonymacx86.com/threads/...7-7500u-kaby-lake.213327/page-17#post-1609866

I have not seen any Bluetooth issues with DW1830, if your system can not see the bluetooth then it my be a logic problem with the cards disable lines (see this post for info on this) if so you can try taping the bluetooth pin as discussed in the above linked post.

From reading your post i think you don't understand that WiFi/BT combo cards have two separate chipsets, the Wifi is a PCI device and communicates directly with teh CPU via the PCI bus, the bluetooth is a usb device which sits on the USB stack and communicates through the OS via the USB drivers and will not have a BSD name as you stated in you post.. although both devices are on the same card they are totally independent of each other form an operating system perspective .. each device requires its own drivers and fixes.

i suspect that en1 is your wifi adapters bsd in which case you need to change the bsd id in both scripts as detailed in my first post ... this could be why Scenario it didn't work for you ?

If bluetooth device is not showing up on your USB bus in sys info then try taping the disable line as i already suggested, also ensure that Built-In is set to yes .. also check in io reg that the usb port the bluetooth device is on has a connection type of FF. if its not you can use Rehabmans USB Inject All method with a custom SSDT to fix this.
View attachment 289147
Read all guides carefully so that you understand correctly ..

Cheers
Jay
@jaymonkey Thank you for posting all your findings w the Wifi Issues w the DW1830 card.

I too experienced significant slowdowns after waking the XPS 9560 from sleep and followed the following of your recommendations:
1) Followed the generic MacBook Pro tip of changing the MTU to 1435 (Still Experienced Slowdowns)
2) Turned off all options in Energy Saver in the "Battery Power" Scenario (Did Not Test and Went To Step 3)
3) Turned off all options in Energy Saver in the "Power Adapter" Scenario (Did Not Test and Went To Step 4)
4) Cleared Kext Cache (Did Not Test and Went To Step 5)
5) Reboot
After doing the above steps, I have not experienced a slowdown from the DW1830 card for the past 7 days. It might take 15 secs or so for the card to get up to max speed on tests. But it has gotten there on a consistent basis for me.
 

Attachments

  • Screen Shot 2017-12-08 at 12.48.26 PM.png
    Screen Shot 2017-12-08 at 12.48.26 PM.png
    158.4 KB · Views: 586
  • Screen Shot 2017-12-08 at 12.48.40 PM.png
    Screen Shot 2017-12-08 at 12.48.40 PM.png
    146.2 KB · Views: 645
I have this same problem using BCM943602baed on Dell 5557. I found a "solution" to fix this problem after wake.
For me, when a click on option + wifi icon + Enable Wi-Fi Logging. And again option + wifi icon + Disable Wi-Fi Loging, my wifi card behaviour return to normal state.
 
Thank you for posting all your findings w the Wifi Issues w the DW1830 card.

I too experienced significant slowdowns after waking the XPS 9560 from sleep and followed the following of your recommendations........

I have this same problem using BCM943602baed on Dell 5557. I found a "solution" to fix this problem after wake. For me, when a click on option + wifi icon + Enable Wi-Fi Logging. And again option + wifi icon + Disable Wi-Fi Loging, my wifi card behaviour return to normal state.

Hi @ferchizzle and @Drfrag,

I believe that Genuine DELL BCM943602 based cards have different firmware to the generic ones available on ebay as such they do seem to be a more reliable after sleep/wake ....

The firmware on my card is Version: Broadcom BCM43xx 1.0 (7.21.171.131.1a1) as reported in System Information:

So far (for me) the only reliable solution is powering down the card before sleep and powering it back on after wake either manually or using the automated method I described in my 1st post ..

I've tried searching for new firmware for the wifi side of the BCM943602 but so far have been have not not found anything ...

Card works fine in both Windows 10 and Linux ...

Cheers
Jay
 
Hi Jay,

I'm using Dell Latitude 7480@DW1830 , but I had the same problem with e7470 and e7450. On Windows 10 I experience a BlueScreen error from time to time, especially if I wake PC from sleep.

For WiFi I use Broadcom driver version: 7.35.317.3 date 02.02.2016
For Bluetooth version: 12.0.1.944 date 08.03.2016

I wonder if this is a problem with my BCM943602BAED card, or Dell Latitude series has the issue with it?
On Mac usually no problems.
 
@seekerpl,

Do the e7470 & e7450 laptops have BCM943602 or BCM94352(Z) WiFi chipset ? ...

I'm guessing that they use the BCM94352 chipset .. if so then the issue with Windows 10 is well documented .. the crashing is down to an old framework that the driver relies on which does not play well with Windows 10.

This was the reason i switched to BCM943602 ... and while it worked fine with Wind 10 it came with it own new set of issues under OSX as outlined in my OP.

Cheers
Jay
 
Status
Not open for further replies.
Back
Top