9 Replies Latest reply on Apr 13, 2015 6:16 AM by LeonY

    Galileo Rev1 - Wifi Data speeds

    LeonY

      I have been working on a web/app driven device for a while not and have hit a brick wall...

      I have:

      • An android Phone or Tablet with a simple App I wrote that initiates a RAW TCP connection to the Galileo via its WIFI link. When i connect this app to a test NodeJS server on my PC, i get super fast transmission speeds over the same wifi network.
      • The Galileo accepts the connection and keeps it open. I wrote a very simple server using EthernetServer. It accepts at port 80 and reads data until a special char is sent to disconnect
      • I can send data too and from no problem But the SPEED of transmission is so slow!
      • My final system should be able to accept 1k data packets, i need about 10 per second, and send them to the Galileo Serial port(its then sent to another device, but that's not important here)

      I'm wondering if this is the fault of the Board or the fact that it Virtualizes the Entire Arduino system.

      Things i have tried to test for troubleshooting:

      • I have tried 2 different WIFI modules on my galileo, both show the same speed
      • I have tried 2 different WIFI routers, with different security settings. Both encrypted and un-encrypted networks all work the safe way. no speed difference at all
      • Network connectivity from the galileo to the router is perfect, long ping tests show 2ms response rates with no packet loss

      I had previously set up the Galileo as a simple web server where i would POLL a GET request TO it from the Phone/Tablet with the big data packet. I got even worse speeds. This is why i decided to go down the route of a dedicated app to directly connect to a TCP socket.

       

      Has anyone experienced similar issues? I'm wondering if the Rev2 board has better speeds?

        • 1. Re: Galileo Rev1 - Wifi Data speeds
          Intel_Alvarado

          Hi LeonY,

           

          What is the max transfer rate you are getting? Are you using a shield or the mini PCIe card? If you are using a wireless adapter with mini PCIe take a look at WiFi access on Intel® Galileo with Yocto* Linux . There you’ll find the commands to see some of the settings of your wifi connection. You can try changing the bit rate to a higher value using iwconfig. If you are using a shield you can see more information in the shield test report Desktop Boards — Shield Testing Report for Intel® Galileo Board and Intel® Edison Board . In section 19 you’ll find the wifi shield.

           

          Sergio

          • 2. Re: Galileo Rev1 - Wifi Data speeds
            LeonY

            Thanks for your advise Sergio.

            I am using a mPCIE Intel Wifi Module. Ill check its connection speeds today

            • 3. Re: Galileo Rev1 - Wifi Data speeds
              LeonY

              Hey mate.

              After some more testing i have worked out im running at 1mb! Which is probably the reason my data rates are so slow..

              Some background.

              • I have 1 ABG Wifi Access point sitting next to me IP 192.168.43.1
              • My laptop is connected via wifi

              laptopwifi.jpg

              • The Galileo is connected via wifi
              • When i ping the wifi ap from the latop i get great rates

              pctorouter.jpg

              • When i ping the Galileo from the laptop via the AP i get the same great response times as above

               

              I ran a "iwconfig wlan0" on the Galileo and got:

               

              root@clanton:~# iwconfig wlan0

              wlan0    IEEE 802.11abgn  ESSID:"MYNETWORKNAME"

                        Mode:Managed  Frequency:2.437 GHz  Access Point: MYAPSMACADDRESS

                       Bit Rate=1 Mb/s Tx-Power=15 dBm

                        Retry  long limit:7  RTS thr:off  Fragment thr:off

                        Encryption key:off

                        Power Management:off

                        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:5  Missed beacon:0


              I rebooted the board and ran the command again and got:

               

              root@clanton:~# iwconfig wlan0

              wlan0    IEEE 802.11abgn  ESSID:"MYNETWORKNAME"

                        Mode:Managed  Frequency:2.437 GHz  Access Point: MYAPSMACADDRESS

                        Bit Rate=48 Mb/s  Tx-Power=15 dBm

                        Retry  long limit:7  RTS thr:off  Fragment thr:off

                        Encryption key:off

                        Power Management:off

                        Link Quality=70/70  Signal level=-40 dBm

                        Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0

                        Tx excessive retries:0  Invalid misc:5  Missed beacon:0


              But then the speed went down to 1Mb/s again in a few moments. I tried a different Access Point and got the same results.

              Any suggestions?

              • 4. Re: Galileo Rev1 - Wifi Data speeds
                Intel_Alvarado

                Hi

                 

                So, the speed just went down after leaving it connected for a while or was it after rebooting? You can try writing a sketch that sets the bit rate to 48 Mb/s and store it in the SD card, so that every time it boots you get 48 Mb/s instead of 1 Mb/s.

                 

                Sergio

                • 5. Re: Galileo Rev1 - Wifi Data speeds
                  LeonY

                  >>So, the speed just went down after leaving it connected for a while or was it after rebooting?

                  The speed goes down to 1Mb after about 30 seconds

                  >> You can try writing a sketch that sets the bit rate to 48 Mb/s

                  Any chance you could point me in the right direction? Is there a way to do this within the Linux side or Arduino side?

                  • 6. Re: Galileo Rev1 - Wifi Data speeds
                    Intel_Alvarado

                    Hi

                     

                    I haven’t tried this so I’m not sure if it will work but you can write an Arduino sketch in the IDE. In the sketch you can do a system call that uses the iwconfig command to change the bit rate. It would be something similar to:

                     

                    void loop () {
                    system (“iwconfig wlan0 rate 48M”);
                    delay (1000)
                    }
                    

                     

                    This will set the rate to 48M every time the loop is repeated. Some info on iwconfig: http://linuxcommand.org/man_pages/iwconfig8.html . Try this and let me know your results.

                     

                    Sergio

                    1 of 1 people found this helpful
                    • 7. Re: Galileo Rev1 - Wifi Data speeds
                      LeonY

                      Thanks Sergio, i will try this tonight. Is there a way to scrpit this into the linux side of the system so that each time it boots the board this option is triggered?

                      Leon

                      • 8. Re: Galileo Rev1 - Wifi Data speeds
                        Intel_Alvarado

                        Hi,

                         

                        From the Arduino side you can store the sketch in your SD card. If you boot while using the complete Yocto image you will boot from your SD card.

                        If you upload an Arduino sketch and save it on your SD Card, the next time you power your board  it will automatically start the sketch.

                         

                        Sergio

                        • 9. Re: Galileo Rev1 - Wifi Data speeds
                          LeonY

                          I can confirm this works as intended.

                          I have tested this on a Gen1 board and im now getting 48M

                          The Ethernet server is SUPER responsive now as well

                          I have tested this on a GEN2 board as well and got he same good results