Pages: [1] 2 3 ... 8   Go Down
Author Topic: Ethernet Shield mi blocca tutto !  (Read 7348 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Sr. Member
****
Karma: 0
Posts: 361
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho un Arduino UNO R3 + EthernetShield originale (wiznet5100)

Ho messo lo sketch di esempio della IDE 0023: Ethernet > Webserver. Funziona.

Ho mappato la porta 80 del router verso l' Arduino, in questo modo da qualsiasi parte del mondo posso vedere la paginetta web di esempio.
Posso ... finche non si blocca !
E questo succede dopo poche ore !!!

Ho provato a mettere uno sniffer e devo che in media 30 volte al giorno mi arrivano richieste http da qualsiasi parte del mondo... (virus ? pirati ? smanettoni ?)

Si puo' evitare che Arduino si blocchi ???

Qualche trucco ?
Logged

Genova
Offline Offline
Faraday Member
**
Karma: 38
Posts: 3287
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bhe il freeze della w5100 è abbastanza rinomato, non credo proprio che siano le richieste dalla Cina o Russia che lo inchiodano, ma dovresti aggiornarti sulla versione dell'ide, sono state sistemate parecchie cose dalla 0023 a oggi

Scrivi "w5100 arduino freeze" su google e te ne fai un idea, non sei da solo  smiley-lol

ciao
Logged

no comment

Offline Offline
Sr. Member
****
Karma: 0
Posts: 361
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Infatti ho letto da piu' parti del blocco della Wiznet, e ovunque leggo che ci sono dei workaround... Ma non trovo quali !

Provero' con la nuova IDE.


Esiste la possibilita' di fare in restart della Wiznet ?
Potrei far fare all'Arduino una richiesta http ad un sito internet, in caso di errore faccio fare un erhernet begin ?
Logged

Ivrea
Offline Offline
God Member
*****
Karma: 5
Posts: 680
"La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché." Albert Einstein
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

In cosa consiste questo bug? Dopo un po' si blocca? Accade anche con gli ultimi IDE?
Logged

Genova
Offline Offline
Faraday Member
**
Karma: 38
Posts: 3287
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Potrei far fare all'Arduino una richiesta http ad un sito internet, in caso di errore faccio fare un erhernet begin ?
Ma arduino non si inchioda e apparentemente nemmeno la ethernet, perchè quando non risponde più alle tue richieste di connessione ma lo vai a pingare ti risponde eccome.
Un ethernet begin può essere una soluzione, prende 400ms circa.
Logged

no comment

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 110
Posts: 6994
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

In cosa consiste questo bug? Dopo un po' si blocca? Accade anche con gli ultimi IDE?

Nelle versioni IDE precedenti, tipo la 0023 mancava la direttiva CLOSE all'interno del codice di gestione del wiz5100. Questa è stata aggiunta non ricordo se nella 1.0.1 o nella 1.0.4.
Quindi è altamente consigliato utilizzare la 1.0.4 -->  http://arduino.cc/en/Main/Software
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Ivrea
Offline Offline
God Member
*****
Karma: 5
Posts: 680
"La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché." Albert Einstein
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quindi il bug era software, non hardware, giusto? E comunque è stato risolto, giusto?  smiley-roll-sweat
Logged

Genova
Offline Offline
Faraday Member
**
Karma: 38
Posts: 3287
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Si è stato aggiunto un close_wait nella EthernetClient.cpp come descritto qui http://arduino.cc/forum/index.php/topic,94572.0.html
il dettaglio della patch è a pagina 9 ... comunque non ha risolto, si freeza sempre

Code:
int EthernetClient::connect(IPAddress ip, uint16_t port) {
  if (_sock != MAX_SOCK_NUM)
    return 0;

  for (int i = 0; i < MAX_SOCK_NUM; i++) {
    uint8_t s = W5100.readSnSR(i);
    if (s == SnSR::CLOSED || s == SnSR::FIN_WAIT || s == SnSR::CLOSE_WAIT) {
      _sock = i;
      break;
    }
  }
Logged

no comment

Offline Offline
Sr. Member
****
Karma: 0
Posts: 361
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Due settimane fa circa ho caricato lo sketch di esempio webserver.
Acceso Arduino Uno e lasciato li...

Ogni giorno controllo se funziona tramite il browser (ogni tanto mi dimentico di controllare)

Stasera il browser dice che il server non risponde.
Ho provato a ricaricare la pagina per vedere se riprende.... ed ogni ricarica pagina mi faceva blinkare la lucetta LINK sulla Ethernet Shield.
Segno che la shield funziona...

Mi son connesso alla seriale (che fa scattare il reset) e immediatamente il webserver ha ripreso a funzionare !

Morale:
Entro due settimane la WizNt si blocca.


Provero' a mettere un ethernet begin nel caso premo un tasto collegato a qualche PIN.... pero' mi tocchera' aspettare di nuovo tanto tempo perche il blocco si verifichi...



Arduino Uno R3.
Ethernet Shield R3.
Alimentatore stabilizzato.



Logged

Genova
Offline Offline
Faraday Member
**
Karma: 38
Posts: 3287
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Naaa ... si freeza prima di 2 settimane, non sono i giorni che contano, ma il numero di connessioni (con relative quantità di dati), che cosa fai in queste connessioni e da dove le fai.

Le hai sempre fatte dallo stesso client?
Lo hai anche raggiunto dall'esterno?
Hai usato diversi OS nelle connesioni?
Quante ne hai fatte?
Logged

no comment

Ivrea
Offline Offline
God Member
*****
Karma: 5
Posts: 680
"La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché." Albert Einstein
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ma mi spiegate in cosa consiste questo bug, in quali condizioni si verifica e come aggirarlo?
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 110
Posts: 6994
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ma mi spiegate in cosa consiste questo bug, in quali condizioni si verifica e come aggirarlo?

Se lo si sapesse avrebbero già pachato la libreria.  smiley-roll smiley-sweat
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Sto leggendo che pare ci sia un rimedio HW/SW.
Sembra che il tutto derivi da come il chip w510 gestisce il pin MISO.
http://john.crouchley.com/blog/archives/662

Può aiutarvi?
Logged


Offline Offline
Sr. Member
****
Karma: 0
Posts: 361
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Naaa ... si freeza prima di 2 settimane, non sono i giorni che contano, ma il numero di connessioni (con relative quantità di dati), che cosa fai in queste connessioni e da dove le fai.
Ho caricato lo sketch di esempio (.177 finale), quindi Arduino era raggiungibile solo dalla mia rete.
Le prove le ho fatte sempre solo dal mio PC.
Sempre Win XP + Firefox.
Una connessione al giorno (avvolte salto qualche giorno.

Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 110
Posts: 6994
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sto leggendo che pare ci sia un rimedio HW/SW.
Sembra che il tutto derivi da come il chip w510 gestisce il pin MISO.
http://john.crouchley.com/blog/archives/662

Può aiutarvi?

Nello schema della Ethernet Shield R3 c'è già un qualcosa di simile, in basso a destra --> http://arduino.cc/en/uploads/Main/arduino-ethernet-shield-06-schematic.pdf
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Pages: [1] 2 3 ... 8   Go Up
Jump to: