RPi3 150Mbps built-in WiFi speed, how?

Hi,
I’m using RPi3 built-in WiFi card to connect to WNDR-3700 access point. Unfortunately, maximum WiFi speed is 65MBps. After some investigation, I see that RPi3 was connecting in HT20 mode (20MHz channel bandwidth).
It’s possible to switch RPi3 WiFi to HT40 mode (and enable 150Mbps connection speed)?

Some data:
4.4.8-3-osmc #1 SMP PREEMPT Sun May 1 18:57:43 UTC 2016 armv7l GNU/Linux

iw list
Capabilities: 0x1020
_ HT20_
_ Static SM Power Save_
_ RX HT20 SGI_
_ No RX STBC_
_ Max AMSDU length: 3839 bytes_
_ DSSS/CCK HT40_

iw reg get
country PL: DFS-ETSI
_ (2402 - 2482 @ 40), (N/A, 20), (N/A)_
_ (5170 - 5250 @ 80), (N/A, 20), (N/A)_
_ (5250 - 5330 @ 80), (N/A, 20), (0 ms), DFS_
_ (5490 - 5710 @ 160), (N/A, 27), (0 ms), DFS_
_ (57000 - 66000 @ 2160), (N/A, 40), (N/A)_

Best regards,

Are you sure your router is configured to use 40Mhz channels on 2.4Ghz ? The default on most routers is to use 20Mhz channels on 2.4Ghz due to interference reasons - unless you have almost no other nearby 2.4Ghz routers 40Mhz mode will generally perform slower (sometimes much slower) than 20Mhz because it uses nearly all available channels in 2.4Ghz and is therefore a large interference target.

Practically speaking if you want a wireless rate greater than 65Mbps that generally means either using 5Ghz with 40Mhz channels enabled (which is much more reliable on 5Ghz) or use an adaptor that supports 2 (or more) spacial streams on 2.4Ghz with 20Mhz channels. The built in Pi 3 adaptor does neither of these.

I believe the on-board Pi3 wifi hardware does support 40MHz channels.
There are instructions for setting Pi3 up as an AP with HT40 (40MHz channels) here:
https://frillip.com/using-your-raspberry-pi-3-as-a-wifi-access-point-with-hostapd/

Actually making use of a 40MHz channel may be tricky in practice, as it has to be enabled on the AP (which is supposed to disable it if it sees competing traffic):

Yes, my point is actually making use of a 40Mhz channel on 2.4Ghz is very difficult in practice.

If you live in an apartment building or a row of terraced houses, forget it as there will be too many neighbouring AP’s. Even if your AP doesn’t automatically drop back to 20Mhz due to detection of other AP’s performance can suffer so you end up with worse real world performance than using 20Mhz channels.

I’m in a fully detached house on a corner and don’t pick up any neighbours AP’s and I can use 40Mhz on 2.4Ghz (on other devices - I don’t have a Pi 3) and whilst it is faster in the same room range is significantly reduced in the house.

Thanks for your answers.
My router is configured to use 40MHz mode (DDWRT->Wireless->Channel width->Wide HT40 (40MHz) on 2.4GHz band.
I checked these settings by laptop - router has switched to HT40 mode. I have not tested this laptop configuration too long, because I’m usually using 5GHz mode - it may be slower than HT20 :slight_smile:
I was hoping that after switching Pi3 to HT40 I obtain 30-40MBps REAL wifi speed, because in 65Mbps connection speed iperf shows only 20-25Mbps.
Thanks again for your help.

I tried for days to try to get 40mhz working on my rpi3, with no luck. I believe the firmware doesn’t support it yet assuming the hardware truly supports it. I know my router is working in 40mhz just fine as I have a rpi2 with a USB dongle that is working flawlessly at 150mbit(get almost 80mbit real world speeds). I can’t stand 72mbit (real world ~32-38mbit) its far to slow, for the moment I can hard wire it, so I will stay on that until they fix the firmware.

by jdb » Mon Feb 29, 2016 7:36 pm
gregeric wrote:SDIO for WiFi I assume, GPIO’s 34-39 alt3? Is it a 150Mbps part? iperf results?
Correct, bcm43438 is connected by SDIO for WiFi and UART for bluetooth. We don’t do fat channels - 20MHz = 72mbit/s.

Pi Forums - link

While I know other AP’s can make 40mhz really hard, but I think its tends to get exaggerated. I share a wall with another house, and I have 4 other very close neighbors. In total I can see 10-12 other AP’s other than my own. When im in same room as the AP, I get 8.3-8.7mb/sec(~70mbit) and at the far end of the house I get 6.0-7.5mb/sec(~60mbit). If I drop down to 20mhz channels I get 4-4.5mb/sec(~35mbit) and 3.2-3.9mb/sec(~31mbit). These are real world speeds(not accounting for wifi overhead, which is massive compared to wired) Basicly I live in a pretty crowded 2.4ghz area, yet Im still getting really close to double the bandwidth using 40mhz channels, and pings are virtually identical. I don’t have a huge house but my AP is all the way at one end of the house and I still get around double the bandwidth on 40mhz vs 20mhz channels.