Open GoogleCodeExporter opened 9 years ago
The wireshark trace shows the disconnect happens 18 seconds after the last
activity.
Original comment by the.baum...@gmail.com
on 5 Sep 2012 at 2:43
I see... do you mean that can this be considered a normal behavior?
Original comment by marco.li...@liarco.net
on 5 Sep 2012 at 3:15
No. I agree with you that this is a bug. I see the same exact behavior with the
Arduino WiFi shield in my testing. My tests with other devices like the Arduino
Ethernet shield and Sparkfun WiFly shield do not exhibit this behavior. They
will remain connected. I was basically doing a +1 (a me too) but with
information that is present in your capture and my capture. I figured it may
be useful to point out in text of this issue that this timer (wherever it is)
appears to be 18 seconds.
Original comment by the.baum...@gmail.com
on 5 Sep 2012 at 3:30
I'm sorry, I misunderstood your message!
Thanks for your reply, I hope this bug will be fixed soon because it's really
annoying! :(
Suggestion: now I made my Arduino sending an "heartbeat" packet every
"FIXED_TIME" in order to avoid the disconnection... I hope that this can help
other beginners out there while we wait for a real fix!
Original comment by marco.li...@liarco.net
on 5 Sep 2012 at 4:07
I also have the same problem and had to implement the same heart beat solution
as a work around. The Arduino WiFi is an expensive shield and this kind of
major bug is inacceptable in my opinion. Hopefully a fix is coming soon.
Original comment by thebluel...@gmail.com
on 6 Sep 2012 at 6:16
Hello everyone, i want report that i have the same problem with WiFi Shield R3
connected to the Arduino Uno R3 like Server using WiFi libraries (arduino.cc).
Connection die after few seconds and it not occurs with Ethernet Shield
(Arduino) and WiFly Shield (Sparkfun) i tested with library example code.
I hope that this bug will be soon fixed.
Thanks a lot.
Original comment by dariovit...@gmail.com
on 3 Oct 2012 at 1:59
[deleted comment]
Hi,
I am using WiFi Shield R3 connected to the Arduino Uno R3 like Server using
WiFi libraries (arduino.cc). Connection dies after a few seconds.
Original comment by marka65...@googlemail.com
on 20 Oct 2012 at 8:50
[deleted comment]
I'm experiencing the same issue. This is most definitely a bug, otherwise it
would be a *configurable* feature. I stumbled upon the same keepalive solution
others did on my own, however, I'd like to get a proper fix.
Original comment by k...@vmfarms.com
on 21 Oct 2012 at 1:45
Furthermore, it seems like when the server initiates the disconnect due to
timeout (without keepalive), I am no longer able to reconnect with the client.
The port is open, but the client can never be served.
If the client initiates the disconnect (EOF), you can reconnect without issue.
Original comment by k...@vmfarms.com
on 21 Oct 2012 at 4:21
It seems as though if you call a server.status() after you've been
disconnected, a 0 is returned, whereas 1 indicates it is healthy. There is no
functionality to tear down a server and restart it from what I can tell from
the firmware and libraries.
Original comment by k...@vmfarms.com
on 21 Oct 2012 at 5:51
The lwip (Light Weight IP) tcp_poll function is being used by the firmware to
define callback functions atcp_poll and atcp_poll_conn.
These are both checked roughly once every two seconds.
There is a value called tcp_poll_retries that is checked in these functions.
The TCP connection is aborted when tcp_poll_retries is > 4 (so 5) in atcp_poll
or when tcp_poll_retries is > 8 (so 9) in atcp_poll_conn.
The tcp_poll_retries value is incremented by 1 every two seconds no data is
sent.
The tcp_poll_retries value only appears to get reset to 0 when data is
successfully sent [tcp_data_sent].
So, this appears to be an intentional mechanism used to kill the TCP connection
when no data has been sent for 10 seconds or 18 seconds respectively.
The firmware and WiFi shield library should be modified to allow the user to
configure or disable this timer.
I have tried to import the wifiHD project into Eclipse so I could look at
making the change on the firmware side.
I have the AVR-Eclipse plugin installed.
However, like others have mentioned I am not able to successfully import this
project into Eclipse.
Arduino Developers please update the github files (or provide additional
instructions) so that the user base can start to make changes.
Original comment by the.baum...@gmail.com
on 23 Oct 2012 at 8:16
Yes please. You can refer to
http://arduino.cc/forum/index.php/topic,128424.0.html for a discussion on this
issue and others with the wifi shield. Your comments would be appreciated there.
Original comment by k...@vmfarms.com
on 23 Oct 2012 at 8:24
The developers released a patched firmware to github this morning. I've flashed
my board and it has taken care of my issues. I've posted an update in the
arduino.cc forum topic above. Give it a shot.
Original comment by k...@vmfarms.com
on 25 Oct 2012 at 3:34
This issue has only been fixed for TCP servers. The problem still occurs when
you create a TCP client, connect to any server, and leave it idle for a few
seconds. The TCP client will disconnect.
You can (and as a stopgap I am ) send heartbeat packets to keep it alive, but
I'd prefer not to because I'm concerned about squeezing every drop of battery
life out of this thing!
Original comment by Clck...@gmail.com
on 15 Dec 2012 at 8:50
Original issue reported on code.google.com by
marco.li...@liarco.net
on 31 Aug 2012 at 10:45Attachments: