1 1
tkaiser

research Wi-Fi performance and known issues on SBC

Recommended Posts

I just came around with some theoretical wireless speeds (source: https://www.speedguide.net)

802.11b - 11 Mbps (2.4GHz)
802.11a - 54 Mbps (5 GHz)
802.11g - 54 Mbps (2.4GHz)
802.11n - 600 Mbps (2.4GHz and 5 GHz) - 150Mbps typical for network adapters, 300Mbps, 450Mbps, and 600Mbps speeds when bonding channels with some routers
802.11ac - 1300+Mbps (5 GHz) - newer standard that uses wider channels, QAM and spatial streams for higher throughput

 

Share this post


Link to post
Share on other sites
1 hour ago, @lex said:

iwconfig

 

Strange, no output?

 

I just came around with some theoretical wireless speeds

 

Hmm... these numbers are mostly marketing stuff since for whatever reasons some of those modes are just added theoretical numbers (e.g. the 600 Mbps of 802.11n which are just the addition of the 2 numbers 150 and 450 which only would make some sense if the adapter is capable of Real Simultaneous Dual Band (RSDB)... and most of them aren't but still are advertised as '600 Mbps')

 

Also throughput at the network layer is always way lower (I found once a great explanation online but no luck yet).

 

Anyway: your numbers suggest you're using HT40 with the RTL8723BS now (ultra wide channels which are of almost no pratical use in urban areas) so unless the NanoPi and your router aren't the only ones around througput should drop drastically.

 

In my opinion 2x2 MIMO and/or switching to 5 GHz is still necessary to get any decent wireless performance. So I would prefer any RTL8192CU USB dongle featuring 2 antennas or those SDIO attached MIMO capable wireless chips that appear slowly (like AP6356S on NanoPC T4 or AP6359SA to be combined with RockPro64 -- this one is even RSDB capable which provides more bandwidth but especially lower latency)

 

 

Share this post


Link to post
Share on other sites
(edited)
1 hour ago, tkaiser said:

Strange, no output?

Yes, no output.

 

Some info about the driver:

[    5.022350] sunxi-wlan wlan: request pincrtl handle for device [wlan] failed
[   11.183079] RTL871X: module init start
[   11.193853] RTL871X: rtl8189es v4.3.18.2_17395.20160422
[   11.233801] RTL871X: rtw_ndev_init(wlan0) if1 mac_addr=34:c3:d2:13:f1:f0
[   11.261003] RTL871X: rtw_ndev_init(wlan1) if2 mac_addr=36:c3:d2:13:f1:f0
[   11.281960] RTL871X: module init ret=0
[   17.910300] ==> rtl8188e_iol_efuse_patch 
[   42.961808] RTL871X: rtw_set_802_11_connect(wlan0)  fw_state=0x00000008
[   42.982709] RTL871X: start auth
[   42.984750] RTL871X: auth success, start assoc
[   42.990625] RTL871X: rtw_cfg80211_indicate_connect(wlan0) BSS not found !!
[   42.990665] RTL871X: assoc success
[   43.088327] RTL871X: recv eapol packet
[   43.091242] RTL871X: send eapol packet
[   43.096784] RTL871X: recv eapol packet
[   43.097412] RTL871X: send eapol packet
[   43.098075] RTL871X: set pairwise key camid:4, addr:18:d6:c7:35:eb:8f, kid:0, type:AES
[   43.099175] RTL871X: set group key camid:5, addr:18:d6:c7:35:eb:8f, kid:2, type:TKIP

using kernel.org iw commands:

Connected to 18:d6:c7:35:eb:8f (on wlan0)
    SSID: foxy
    freq: 2462
    signal: -53 dBm
    tx bitrate: 150.0 MBit/s

 

Wiphy phy1
    max # scan SSIDs: 9
    max scan IEs length: 2304 bytes
    Retry short limit: 7
    Retry long limit: 4
    Coverage class: 0 (up to 0m)
    Supported Ciphers:
        * WEP40 (00-0f-ac:1)
        * WEP104 (00-0f-ac:5)
        * TKIP (00-0f-ac:2)
        * CCMP (00-0f-ac:4)
    Available Antennas: TX 0 RX 0
    Supported interface modes:
         * IBSS
         * managed
         * AP
         * P2P-client
         * P2P-GO
    Band 1:
        Capabilities: 0x1962
            HT20/HT40
            Static SM Power Save
            RX HT20 SGI
            RX HT40 SGI
            RX STBC 1-stream
            Max AMSDU length: 7935 bytes
            DSSS/CCK HT40
        Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
        Minimum RX AMPDU time spacing: 16 usec (0x07)
        HT TX/RX MCS rate indexes supported: 0-7
        Bitrates (non-HT):
            * 1.0 Mbps
            * 2.0 Mbps
            * 5.5 Mbps
            * 11.0 Mbps
            * 6.0 Mbps
            * 9.0 Mbps
            * 12.0 Mbps
            * 18.0 Mbps
            * 24.0 Mbps
            * 36.0 Mbps
            * 48.0 Mbps
            * 54.0 Mbps
        Frequencies:
            * 2412 MHz [1] (20.0 dBm)
            * 2417 MHz [2] (20.0 dBm)
            * 2422 MHz [3] (20.0 dBm)
            * 2427 MHz [4] (20.0 dBm)
            * 2432 MHz [5] (20.0 dBm)
            * 2437 MHz [6] (20.0 dBm)
            * 2442 MHz [7] (20.0 dBm)
            * 2447 MHz [8] (20.0 dBm)
            * 2452 MHz [9] (20.0 dBm)
            * 2457 MHz [10] (20.0 dBm)
            * 2462 MHz [11] (20.0 dBm)
            * 2467 MHz [12] (20.0 dBm) (no IR)
            * 2472 MHz [13] (20.0 dBm) (no IR)
            * 2484 MHz [14] (disabled)
    Supported commands:
         * new_interface
         * set_interface
         * new_key
         * start_ap
         * new_station
         * set_bss
         * join_ibss
         * set_pmksa
         * del_pmksa
         * flush_pmksa
         * remain_on_channel
         * frame
         * set_channel
         * connect
         * disconnect
    Supported TX frame types:
         * IBSS: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
         * managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
         * AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
         * AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
         * P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
         * P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
    Supported RX frame types:
         * IBSS: 0xd0
         * managed: 0x40 0xd0
         * AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
         * AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
         * P2P-client: 0x40 0xd0
         * P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
    WoWLAN support:
         * wake up on anything (device continues operating normally)
    software interface modes (can always be added):
    interface combinations are not supported
    Device supports scan flush.
Wiphy phy0
    max # scan SSIDs: 9
    max scan IEs length: 2304 bytes
    Retry short limit: 7
    Retry long limit: 4
    Coverage class: 0 (up to 0m)
    Supported Ciphers:
        * WEP40 (00-0f-ac:1)
        * WEP104 (00-0f-ac:5)
        * TKIP (00-0f-ac:2)
        * CCMP (00-0f-ac:4)
    Available Antennas: TX 0 RX 0
    Supported interface modes:
         * IBSS
         * managed
         * AP
         * P2P-client
         * P2P-GO
    Band 1:
        Capabilities: 0x1962
            HT20/HT40
            Static SM Power Save
            RX HT20 SGI
            RX HT40 SGI
            RX STBC 1-stream
            Max AMSDU length: 7935 bytes
            DSSS/CCK HT40
        Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
        Minimum RX AMPDU time spacing: 16 usec (0x07)
        HT TX/RX MCS rate indexes supported: 0-7
        Bitrates (non-HT):
            * 1.0 Mbps
            * 2.0 Mbps
            * 5.5 Mbps
            * 11.0 Mbps
            * 6.0 Mbps
            * 9.0 Mbps
            * 12.0 Mbps
            * 18.0 Mbps
            * 24.0 Mbps
            * 36.0 Mbps
            * 48.0 Mbps
            * 54.0 Mbps
        Frequencies:
            * 2412 MHz [1] (20.0 dBm)
            * 2417 MHz [2] (20.0 dBm)
            * 2422 MHz [3] (20.0 dBm)
            * 2427 MHz [4] (20.0 dBm)
            * 2432 MHz [5] (20.0 dBm)
            * 2437 MHz [6] (20.0 dBm)
            * 2442 MHz [7] (20.0 dBm)
            * 2447 MHz [8] (20.0 dBm)
            * 2452 MHz [9] (20.0 dBm)
            * 2457 MHz [10] (20.0 dBm)
            * 2462 MHz [11] (20.0 dBm)
            * 2467 MHz [12] (20.0 dBm) (no IR)
            * 2472 MHz [13] (20.0 dBm) (no IR)
            * 2484 MHz [14] (disabled)
    Supported commands:
         * new_interface
         * set_interface
         * new_key
         * start_ap
         * new_station
         * set_bss
         * join_ibss
         * set_pmksa
         * del_pmksa
         * flush_pmksa
         * remain_on_channel
         * frame
         * set_channel
         * connect
         * disconnect
    Supported TX frame types:
         * IBSS: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
         * managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
         * AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
         * AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
         * P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
         * P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
    Supported RX frame types:
         * IBSS: 0xd0
         * managed: 0x40 0xd0
         * AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
         * AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
         * P2P-client: 0x40 0xd0
         * P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
    WoWLAN support:
         * wake up on anything (device continues operating normally)
    software interface modes (can always be added):
    interface combinations are not supported
    Device supports scan flush.

 

 

1 hour ago, tkaiser said:

aren't the only ones around througput should

Yes, noticed already, dropped ~20%

Edited by @lex
additional info

Share this post


Link to post
Share on other sites

Realtek specification:

* 150Mbps receive PHY rate and 150Mbps transmit PHY rate using 40MHz bandwidth

 

That's what you mean by HT40 then.

The latency is very low, i feel like i am using FastEthernet. :lol:

Share this post


Link to post
Share on other sites
On 3/7/2017 at 9:23 AM, tkaiser said:

As a start some quick Wi-Fi tests with a random 'quality' USB Wi-Fi dongle and 3 different Wi-Fi chipsets that can be found an a few boards Armbian supports:

 

  • RTL8192CU (used on a lot of cheap USB dongles and even on Lamobo R1)
  • Ampak AP6212 (based on Broadcom's BCM43438 module also used on RPi 3 and Zero W, nearly all Wi-Fi equipped NanoPi and Banana Pi)
  • RealTek RTL8723BS (used on Pine64+ and on CHIP for example)
  • RealTek 8189FTV (used on the more recent Wi-Fi equipped Orange Pi)

 

Tossing this over the fence...

 

Really need to get some 5GHz action going - the Cypress (ex-Broadcom) devices do well here...

 

Rpi3B Plus...  some concern about the retr on the one side - it's likely that the 802.11ac link is faster than the SDIO link on the Pi, so there's an issue there with flow control perhaps - not much different that the Pi3BPlus on ethernet, which is a similar issue with GBe on the PHY there...

iperf3 -c 192.168.1.20 -t 120 && iperf3 -R -c 192.168.1.20 -t 120

Source to sink...
[  4]   0.00-120.00 sec  1.58 GBytes   113 Mbits/sec    0             sender
[  4]   0.00-120.00 sec  1.58 GBytes   113 Mbits/sec                  receiver

sink to source...
[  4]   0.00-120.00 sec  1.50 GBytes   108 Mbits/sec  3558             sender
[  4]   0.00-120.00 sec  1.50 GBytes   107 Mbits/sec                  receiver

sudo iwconfig wlan0
wlan0     IEEE 802.11  ESSID:"homeernet"  
          Mode:Managed  Frequency:5.18 GHz  Access Point: 90:72:40:AA:BB:CC   
          Bit Rate=433.3 Mb/s   Tx-Power=31 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on
          Link Quality=70/70  Signal level=-38 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

 

Share this post


Link to post
Share on other sites
On 7/10/2018 at 9:11 AM, tkaiser said:

In my opinion 2x2 MIMO and/or switching to 5 GHz is still necessary to get any decent wireless performance. So I would prefer any RTL8192CU USB dongle featuring 2 antennas or those SDIO attached MIMO capable wireless chips that appear slowly (like AP6356S on NanoPC T4 or AP6359SA to be combined with RockPro64 -- this one is even RSDB capable which provides more bandwidth but especially lower latency)

 

It would be awesome to have a decent NIC onboard, 2*2 MIMO and/or 5GHz...

 

I think part of the challenge here is that the sub-$50 SBC boards are largely driven by cost considerations, so the on-board wireless NIC's are obviously either the lowest cost available, including regulatory testing, which drives the System in Package* like the Ampak's etc, or heavily subsidized, e.g. the Broadcom NIC's soldered directly on the Pi boards - fair to say that Broadcom has a major interest in the Pi boards...

 

* SIP's have an advantage, as the SIP vendor does the heavy wireless testing/certification, so when integrated onto a board, it's less work for the OEM/ODM there, and work == non recurring expense costs

 

That and available interfaces on the SoC itself, which most vendors go to SDIO because it's generally there, and it's easy enough for a combo part that has BT to run both interfaces, WiFi on SPI and BT on UART. That's why when one looks at the BW on the Pi3B+ in 5GHz, even though it's a single stream 11ac connection, the constraint is not on the OTA, but the bus that supports the NIC in the first place - SPI/SDIO can only go so fast, even on a dedicated bus that is not shared with SDCard or eMMC.

 

The external NIC support, esp with USB wifi, on Armbian is outstanding something to be appreciated...

Share this post


Link to post
Share on other sites
1 1