I think I may have finally gotten to the bottom of my Raspberry Pi 4 WiFi problems. I installed Ubuntu 18 and the WiFi networking never worked properly. It would work sometimes, then drop off randomly. I thought it might be a hardware problem and returned the unit for a new one. Still the same. Thought it could be a power supply issue, so I offloaded everything on the USB to a powered USB hub. It ran a bit cooler but that wasn’t it either. There were lots of reports of signal issues when using certain hi-def HDMI modes on the monitor. Nope that wasn’t it either. I had a fancy metal heatsink case which was rumored to cause WiFi problems. Nope.
Gave up an bought a USB dongle which appeared to work at first, then it didn’t. Later I put the WiFi dongle on the end of a short USB cable, thinking that moving the WiFi away from the actual Raspberry Pi 4 unit might do something, It seemed to work for a while. Then I upgraded to Ubuntu 20 (because I accidentally trashed my SD card). Well, it was time to upgrade anyway.
After the upgrade there was no WiFi at all. Found out that it had to be enabled in /etc/network-config. Things were looking up. Now I could boot up and see a reasonable WiFi. But soon it deteriorated again. More googling lead to all sorts of people with similar problems, including people using different versions of the Cypress firmware. I didn’t want to go there. I would use a wired ethernet and wait for a fix if I had to.
Yesterday I read something that sounded worth pursuing. Some people had WiFi set to the wrong country (UK for instance). That would be a problem. I also noticed my 5 GHz WiFi wasn’t showing up. Probably a warning sign I had ignored too long.
I’m not a networking or WiFi guy (and I don’t really want to be one) but a quick look turned up my WiFi country set to “country 00: DFS-UNSET“. Probably not what I want. Manually set it with “sudo iw reg set US” and immediately I saw my 5 GHz WiFi! Seems more stable, and it should be. Now I just have to figure out where to set this in the file system so I don’t have to remember to type this command after every reboot.