1 Reply Latest reply on Mar 30, 2017 1:41 AM by axel.lin_1746341

    BCM43438: Bad wifi throughput

    axel.lin_1746341

      Hi,

      I'm testing BCM43438 wifi throughput using a modified version of snip.https_client.

      I modify the code to use http instead https.

       

      int test_count = 10;

      while (test_count--) {

          wiced_time_get_time(&t1);

          result = wiced_http_get( &ip_address, SIMPLE_GET_REQUEST, buffer, BUFFER_LENGTH);

          wiced_time_get_time(&t2);

          printf("http_get time=%d\n", t2 - t1);

      }

       

      I got below result while running on BCM43438 with NetX build:

      [17:35:06:997] http_get time=901␍␊

      [17:35:07:721] http_get time=710␍␊

      [17:35:08:665] http_get time=893␍␊

      [17:35:09:414] http_get time=726␍␊

      [17:35:10:401] http_get time=947␍␊

      [17:35:11:437] http_get time=988␍␊

      [17:35:12:457] http_get time=954␍␊

      [17:35:13:156] http_get time=679␍␊

      [17:35:14:141] http_get time=942␍␊

      [17:35:15:127] http_get time=944

      Average: 868.4

       

      Compare to my another BCM4390 device with NetX build:

      [17:48:46:360] http_get time=653␍␊

      [17:48:47:079] http_get time=694␍␊

      [17:48:47:769] http_get time=652␍␊

      [17:48:48:485] http_get time=672␍␊

      [17:48:49:197] http_get time=656␍␊

      [17:48:49:915] http_get time=697␍␊

      [17:48:50:637] http_get time=655␍␊

      [17:48:51:645] http_get time=962␍␊

      [17:48:52:379] http_get time=698␍␊

      [17:48:53:071] http_get time=664

      Average: 700.3

       

      Similar result with LwIP build.

      I also tried testing other http server and got similar result.

      Obviously, the BCM43438 has bad throughput.

      My observation shows BCM43438 takes longer time to receive the response from server.

       

      I'm not sure if it's BCM43438 hardware limitation or a problem in the wlan firmware.

      Can this get improve?

      Can someone help?

        • 1. Re: BCM43438: Bad wifi throughput
          axel.lin_1746341

          I did iperf test:

           

          BCM43438:

          [14:56:32:660] > iperf -c 192.168.0.103 -i 1 -t 10␍␊

          [14:56:36:342] ------------------------------------------------------------␍␊

          [14:56:36:351] Client connecting to 192.168.0.103, TCP port 5001␍␊

          [14:56:36:363] TCP window size: 10.1 KByte (default)␍␊

          [14:56:36:363] ------------------------------------------------------------␍␊

          [14:56:37:364] [ ID] Interval       Transfer     Bandwidth␍␊

          [14:56:37:371] [  0]  0.0- 1.0 sec   320 KBytes  2.62 Mbits/sec␍␊

          [14:56:38:363] [  0]  1.0- 2.0 sec   688 KBytes  5.64 Mbits/sec␍␊

          [14:56:39:365] [  0]  2.0- 3.0 sec   564 KBytes  4.62 Mbits/sec␍␊

          [14:56:40:367] [  0]  3.0- 4.0 sec   694 KBytes  5.69 Mbits/sec␍␊

          [14:56:41:363] [  0]  4.0- 5.0 sec   700 KBytes  5.73 Mbits/sec␍␊

          [14:56:42:369] [  0]  5.0- 6.0 sec   712 KBytes  5.83 Mbits/sec␍␊

          [14:56:43:372] [  0]  6.0- 7.0 sec   640 KBytes  5.24 Mbits/sec␍␊

          [14:56:44:375] [  0]  7.0- 8.0 sec   658 KBytes  5.39 Mbits/sec␍␊

          [14:56:45:363] [  0]  8.0- 9.0 sec   688 KBytes  5.64 Mbits/sec␍␊

          [14:56:46:373] [  0]  9.0-10.0 sec   712 KBytes  5.83 Mbits/sec␍␊

          [14:56:46:380] [  0]  0.0-10.0 sec  6.23 MBytes  5.22 Mbits/sec␍

           

          BCM4390:

          [15:04:30:100] > iperf -c 192.168.0.103 -i 1␍␊

          [15:04:31:237] ------------------------------------------------------------␍␊

          [15:04:31:243] Client connecting to 192.168.0.103, TCP port 5001␍␊

          [15:04:31:265] TCP window size: 10.1 KByte (default)␍␊

          [15:04:31:265] ------------------------------------------------------------␍␊

          [15:04:32:267] [ ID] Interval       Transfer     Bandwidth␍␊

          [15:04:32:272] [  0]  0.0- 1.0 sec   964 KBytes  7.90 Mbits/sec␍␊

          [15:04:33:274] [  0]  1.0- 2.0 sec  1.07 MBytes  8.99 Mbits/sec␍␊

          [15:04:34:283] [  0]  2.0- 3.0 sec  1.06 MBytes  8.88 Mbits/sec␍␊

          [15:04:35:287] [  0]  3.0- 4.0 sec   870 KBytes  7.13 Mbits/sec␍␊

          [15:04:36:293] [  0]  4.0- 5.0 sec   648 KBytes  5.31 Mbits/sec␍␊

          [15:04:37:296] [  0]  5.0- 6.0 sec   664 KBytes  5.44 Mbits/sec␍␊

          [15:04:38:305] [  0]  6.0- 7.0 sec  1.04 MBytes  8.77 Mbits/sec␍␊

          [15:04:39:310] [  0]  7.0- 8.0 sec   672 KBytes  5.51 Mbits/sec␍␊

          [15:04:40:312] [  0]  8.0- 9.0 sec   990 KBytes  8.11 Mbits/sec␍␊

          [15:04:41:323] [  0]  9.0-10.0 sec  1.06 MBytes  8.90 Mbits/sec␍␊

          [15:04:41:328] [  0]  0.0-10.0 sec  8.93 MBytes  7.49 Mbits/sec␍␊

           

           

          BCM43438 v.s. BCM4390: 5.22 Mbits/sec v.s. 7.49 Mbits/sec

          The difference is  about 30%.

          Comments?