Computer is connected directly to modem via ethernet. Upon boot, an online speed test is consistently 10 Mb/s. This is significantly less than my service is supposed to be (50+). As soon as I disable and enable the ethernet adapter I can run another speed test at 60+ Mb/s. The connection appears to be stable at this point.
Additional information: Ethernet adapter is Realtek PCIe GBE Family Controller. Drivers are up to date. Tried rolling back drivers. Tried an old modems. Tried flushing DNS, resetting winsock, resetting IP. Tried changing the adapters speed from auto negotiation to 100 full.
I've got nothing. For the time being I've just got a batch file (using devmanview.exe) that resets the adapter on delay after boot but I'd like a more elegant solution. I've had hilarious conversations with my ISP support where I realize this is no longer on their script so they're no help.
Thanks for any help.
I stumbled upon a fix. Turns out the power output to wifi in my router settings was set to 100%. On a whim, I turned this down to 75%. This didn't seem to effect the wifi performance elsewhere in the house but it made my ethernet adapter resolve the connection speed correctly and perform more reliably.
The router is a Motorola Surfboard modem/router combo.
Related
My work involves interacting with legacy hardware that uses serial ports. I often have to monitor more than one serial line, and for the purpose I have a couple of the common USB serial adaptors. When I connect both of them to the same (Windows 10) machine, irregularities show up. Both ports show up in device manager, but only the first one that I plug in to the USB connector works. The other one indicates port not open when I try to send data via RealTerm.
I have also seen the situation where when I plug the second adaptor in, its port comes up, but the one for the other adaptor disappears. Does anyone know a way that two devices can happily coexist on the one machine? Thanks in advance.
Just ion case this helps anyone in the future......
The problem seems to be caused by the fact that one of the adaptors was coming in via a (powered) USB hub. When I liberated another native port on the machine so I could host both serial adaptors directly, everything worked fine.
Not worth hunting the cause down, a solution is at hand.
Update:
I know, the WIFI AP is still on & active in this case and the chip should not know about the change, but the question is still open. How should I check the connectivity?
In my project, the internet connection is really important.
After some testing, I have experienced that if I plug out the ethernet cable from my router the ESP32 still thinks, that it is still connected to WIFI, even the
WiFi.status() == WL_CONNECTED
is always true in this case.
So, I have tried out pinging google.com to examine the connection. This works but takes ages to get back the result.
How should I check the connectivity with the lowest resource cost and time?
Even WiFi.status() is unreliable due to the not documented details by Espressif. The API is error prone as the issues on github show.So actually the question is . what do you really want to check? - in my definition internet connection means my line (or aerial) connectionto my ISP is unbroken. This includes
my AP
my router
the ISPs fiber converter in my basement,
the line itself and the
ISPs gateway
This is what I use to determine wether a connection is open. I ping the IP address of the ISP gateway server. So you save time (no DNS resolution, no hops over nodes on the internet. If you mean wether a certain service on a defined server is available, thats slow but then you are 100% sure.
Just a clarification: "ESP32 still thinks, that it is still connected to WIFI" - YES that has to be true because according to the API this ensures client to AP connection and not AP connection to some where else. Normally a good configured router informs its clients about connection loss (in this case the connected AP(s)) and these notify (depending on their config) their clients (or sometimes not or very late)
Technically that result is correct because you are still connected to wifi!
Just because you unplug the ethernet cable doesn't mean your wifi stops. All it means is that your wifi can't get to the internet.
You can try pinging your isp's dns server. It's a lot closer to you than Google is.
Just the ramblings of an old man...
I am using an ESP8266 for a project which requires the ESP to establish a connection to the Access Point , with as less delay as possible, but as of now it takes a minimum of 4-5 mins for establishing the connection which is too much delay. I have tried to set a static ip, gateway, subnet and DNS by passing them as parameter to WiFi.config() function, still no success. Would someone help me regarding this issue ?
I have seen lengthy delays on ESP8266 WiFi connection if the WiFi is persisting its configuration to the flash memory. Anywhere from a few seconds to a minute or so.
Try to call WiFi.persistent( false ) before you call WiFi.mode() and WiFi.begin().
At the very least, that will help you narrow down the cause of the problem.
Ensure access point frequency is 2.4Ghz (not 5Ghz). This will cause prolonged connection time (never connecting).
"The ESP8266 is not designed for 5 GHz." Source
NodeMCU V1.0 (as pictured) uses an ESP8266's (ESP-12E) chip, Antenna is configured for 2.4 Ghz only.
I think the library <ESP8266WiFi.h> you are using have problems, you can use older versions of it.
I have an RN-171 wifly module connected with a micro-controller.
I am using the UDP-protocol to communicate with the module. Also, I am using the firmware's UDP auto-pair feature to set the host ip. As soon as the module receives a UDP packet, it sets the host IP address to the ip from where it received the data. Now, this host ip cannot be changed without entering into the command mode.
I want the module to behave in the following way:
Every time it receives a UDP packet, it updates the host ip to the ip address from where that signal came from.
Also, I can use the TCP protocol but it only allows a single connection at a time. One more problem that I faced using the TCP protocol was that if I try to initiate a second TCP connection with the module, it not only refuses the second connection but also hangs the first stable connection. Even if the second connection initiation does not hang the module and it just gets refused, I will be ready to work with TCP.
I have been researching a lot on the web regarding this problem but since these modules are not widely used, they have a very limited support.
I've used RN-171 extensively and have many resolved tickets in their support system.
According to the WiFly Command Reference, Advanced Features and Applications User’s Guide, you cannot open more than one TCP port with the module. (the default number being 2000)
Unfortunately, regarding the UDP functionality, there's not much you can do. If you have a new host wishing to communicate over UDP, connect to the module over TCP, go into command mode and set the address using "$$$", "set ip host 0.0.0.0", "save", "exit" commands. Alternatively, instead of 0.0.0.0, you can enter the new host's own ip address: "$$$", "set ip host ###.###.###.###", "exit". Replace "###.###.###.###" with the ip address of the device.
This way, you won't get wrong host ip in case more than one device communicates over UDP at the same time. Also, by not using "save", the auto-pairing will still be saved to EEPROM memory. Also, you can send "ip flags 0x##" before "exit", this way you can also set bit[6] to 0 (UDP auto pairing disabled) temporarily by using the hex value that has this bit set to zero.
One of my problems that Microchip technical support tested around the summer of 2013 is that you cannot use RN-171 as an access point for other RN-171s since they have a firmware error preventing one from doing that and, as of firmware v4.41, released in January of 2014, there is no fix yet nor planned.
I myself do not recommend the latest firmware version v4.41, since it does not appear to work with most routers; however Soft AP mode on this works fine. On the other hand, v4.00.1 is much more compatible, however you should take care when cutting off the power since it has a potentially disastrous bricking problem if you cut the power when flash writing is in progress - the module may lock its memory forever.
I recommend registering and opening a Microchip ticket which usually will be answered within two business days and they're quite supportive. Their firmware update cycle is however quite long, and it usually takes a year or so for a new update.
I build Asterisk system, and running Linphone app on iOS and Android system.
I find some issue on my solution. Only used voice service.
Running WiFi environment voice no any delay, When I accept ringing then immediately hear voice.
But running 3G environment voice had 3~5 seconds delay, and fix Jitter buffer configure on Asterisk, enable it, still not solve this issue.
At same device and environment, used Line and Wechat app, when press answer call still have voice delay. but more fast than my system.
Codec used min data packet GSM. Enable QoS.
I know maybe the biggest issue is client 3G network quality. and I still find flexible configure, can fix this.
I want running 3G environment on asterisk system, get best no delay experience.
How can I do fix this issue?
3G network have internal delay.
You can do nothing here.
But usualy it 0.5-1.
Your 3sec delay can be caused by bad 3g connection or overload on 3G or issues with your provider(or you just use 3G connection twice- in and out)