# Ho aggiunto LAN (enc28j60) ma non funziona

**URL:** <https://forum.arduino.cc/t/ho-aggiunto-lan-enc28j60-ma-non-funziona/1270535>\
**Category:** Software\
**Created:** [June 11, 2024, 11:12am UTC](https://forum.arduino.cc/t/ho-aggiunto-lan-enc28j60-ma-non-funziona/1270535 "2024-06-11T11:12:52Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![squackmcduck](https://avatars.discourse-cdn.com/v4/letter/s/bbe5ce/32.png) [@squackmcduck](https://forum.arduino.cc/u/squackmcduck)\
**Post date:** [June 11, 2024, 11:12am UTC](https://forum.arduino.cc/t/ho-aggiunto-lan-enc28j60-ma-non-funziona/1270535/1 "2024-06-11T11:12:52Z")

</div>

Ciao, ho un arduino uno r4 wifi e ho intenzione di fare datalogging su SD card della temperatura rilevata e fare un upload su internet dei files con i dati.  
Non voglio usare il wifi per motivi miei. Per questo ho preso il enc28j60

Ho creato il codice per rilevare la temperatura con bmp280 e scrivere su SD ( Chip Select sul pin 10, altri pin 11,12 e 13).  
Ieri ho cablato i pin di contatto con la nuova scheda enc28j60 (Chip Select sul pin 9). Gli altri pin che ho usato per la scheda di rete sono quel 'grumo' di 6 pin che stanno vicino alla matrice a LED, anche loro SPI.  
L'unico pin della enc28j60 che non ho collegato è il WoL. Ma credo che il mio problema non sia dato da questo.

Uso la libreria EthernetENC 2.0.5.

Caricando l'esempio "link status" mi dice "device unknow".

```arduino

#include <SPI.h>
#include <Ethernet.h>

void setup() {
  // You can use Ethernet.init(pin) to configure the CS pin
  Ethernet.init(9); // Most Arduino shields
  //Ethernet.init(5); // MKR ETH Shield
  //Ethernet.init(0); // Teensy 2.0
  //Ethernet.init(20); // Teensy++ 2.0
  //Ethernet.init(15); // ESP8266 with Adafruit FeatherWing Ethernet
  //Ethernet.init(33); // ESP32 with Adafruit FeatherWing Ethernet

  Serial.begin(9600);
}

void loop() {
  auto link = Ethernet.linkStatus();
  Serial.print("Link status: ");
  switch (link) {
    case Unknown:
      Serial.println("Unknown");
      break;
    case LinkON:
      Serial.println("ON");
      break;
    case LinkOFF:
      Serial.println("OFF");
      break;
  }
  delay(1000);
}

```

Il resto dell'hardware l'ho lasciato collegato nella scheda di arduino piochè ho pensato non desse fastidio : l'idea era quella di provare la scheda ethernet prima di integrare il codice per il suo funzionamento in quello vecchio che faceva datalogging.

Ho controllato tipo 10 volte i cavi e i collegamenti, e sono convinto siano a posto.  
La scheda di accende con il suo bel diodo rosso che è fisso, poi anche i due mini-led verde e giallo che sono accanto ad ogni connettore ethernet si illuminano quando inserisco il cavo. Il verde fisso, il giallo lampeggia irregolarmente (credo segnali lo scambio di pacchetti). L'altro capo del filo è collegato ad un router e sono sicuro funzioni perchè l'ho staccato dalla stampante, che è sempre andata bene via Lan:

avete qualche idea sul perché non mi vada?

---

<div class="post-metadata">

**Author:** ![docdoc](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/docdoc/32/220907_2.png) [@docdoc](https://forum.arduino.cc/u/docdoc)\
**Post date:** [June 11, 2024, 12:49pm UTC](https://forum.arduino.cc/t/ho-aggiunto-lan-enc28j60-ma-non-funziona/1270535/2 "2024-06-11T12:49:09Z")

</div>

> [@squackmcduck](#):
>
> Non voglio usare il wifi per motivi miei.

Se non vuoi dirlo, ok, però è una cosa curiosa lo ammetterai ;-) Tra l'altro a quel punto ti bastava un R4 minima... 🕶

Poi con "usare il WiFi" dipende da cosa intendi: se ad esempio non vuoi agganciarti ad una rete WiFi esistente (che so, magari per proteggere certi dati) potresti impostare Arduino come Access Point, con un SSID specifico e non visibile alla ricerca, con credenziali di accesso che solo tu conosci e protezione WPA2.  
Non mi vengono in mente altri motivi per questo vincolo, ma ovviamente se non vuoi dirlo, ok, fai pure, non ci resterò male, ma le cose che vanno apparentemente contro la logica mi lasciano perplesso.

Detto questo, non ho mai collegato un Ethernet ad una UNO R4 per cui l'unica cosa che mi viene in mente è che forse quella libreria non è compatibile con R4 (non sarebbe né la prima né l'unica...), ti consiglierei di investigare cercando ulteriori informazioni sia sulla libreria specifica, sia con chi ti ha venduto quel modulo con enc28j60 (hai un link?) se sappia che con R4 ci sia una libreria cmpatibile.

---

<div class="post-metadata">

**Author:** ![gpb01](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/gpb01/32/830685_2.png) [@gpb01](https://forum.arduino.cc/u/gpb01)\
**Post date:** [June 11, 2024, 12:57pm UTC](https://forum.arduino.cc/t/ho-aggiunto-lan-enc28j60-ma-non-funziona/1270535/3 "2024-06-11T12:57:52Z")

</div>

> [@docdoc](#):
>
> Detto questo, non ho mai collegato un Ethernet ad una UNO R4 per cui l'unica cosa che mi viene in mente è che forse quella libreria non è compatibile con R4

... stando alla [tabella](https://github.com/arduino/uno-r4-library-compatibility?tab=readme-ov-file#tested-and-confirmed-libraries) ufficiale delle compatibilità la [EthernetENC](https://github.com/Networking-for-Arduino/EthernetENC) **dovrebbe** essere utilizzabile con Arduino UNO R4 🙄

Guglielmo

---

<div class="post-metadata">

**Author:** ![ilguargua](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/ilguargua/32/901053_2.png) [@ilguargua](https://forum.arduino.cc/u/ilguargua)\
**Post date:** [June 11, 2024, 1:39pm UTC](https://forum.arduino.cc/t/ho-aggiunto-lan-enc28j60-ma-non-funziona/1270535/4 "2024-06-11T13:39:29Z")

</div>

Quando hai provato c'era la SD collegata? Hai provato a scollegarla?

Ciao, Ale.

---

<div class="post-metadata">

**Author:** ![squackmcduck](https://avatars.discourse-cdn.com/v4/letter/s/bbe5ce/32.png) [@squackmcduck](https://forum.arduino.cc/u/squackmcduck)\
**Post date:** [June 11, 2024, 4:26pm UTC](https://forum.arduino.cc/t/ho-aggiunto-lan-enc28j60-ma-non-funziona/1270535/5 "2024-06-11T16:26:34Z")

</div>

Ciao no, sta sera o al massimo domani provo a staccarla e vi aggiorno

---

<div class="post-metadata">

**Author:** ![squackmcduck](https://avatars.discourse-cdn.com/v4/letter/s/bbe5ce/32.png) [@squackmcduck](https://forum.arduino.cc/u/squackmcduck)\
**Post date:** [June 11, 2024, 4:28pm UTC](https://forum.arduino.cc/t/ho-aggiunto-lan-enc28j60-ma-non-funziona/1270535/6 "2024-06-11T16:28:28Z")

</div>

L'ho presa su un noto negozio online americano. Postare il link non è contro le regole?  
Però si, posso provare a scrivere al produttore per vedere se sa darmi info in più.

Anche cambiare libreria ma mi piacerebbe tenere questa come dice Guglielmo sotto dovrebbe essere compatibile

---

<div class="post-metadata">

**Author:** ![gpb01](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/gpb01/32/830685_2.png) [@gpb01](https://forum.arduino.cc/u/gpb01)\
**Post date:** [June 11, 2024, 4:58pm UTC](https://forum.arduino.cc/t/ho-aggiunto-lan-enc28j60-ma-non-funziona/1270535/7 "2024-06-11T16:58:14Z")

</div>

> [@squackmcduck](#):
>
> Postare il link non è contro le regole?

È permesso, sempre se " **in tema**" con la discussione e non solo a fini pubblicitari ;)

Guglielmo

---

<div class="post-metadata">

**Author:** ![gpb01](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/gpb01/32/830685_2.png) [@gpb01](https://forum.arduino.cc/u/gpb01)\
**Post date:** [June 11, 2024, 5:04pm UTC](https://forum.arduino.cc/t/ho-aggiunto-lan-enc28j60-ma-non-funziona/1270535/8 "2024-06-11T17:04:08Z")

</div>

@squackmcduck: in ogni caso ricorda che è buona cosa SEMPRE, nel setup(), inizializzare i pin di CS/SS sia della SD che della Ethernet come pin in OUTPUT (_con la pinMode()_) ed assegnargli, come valore iniziale, il valore HIGH (_con la digitalWrite()_) così da avere, inizialmente, i due bus SPI non selezionati ... poi, normalmente, le librerie gestiscono loro correttamente tali pin durante l'uso.

Guglielmo

---

<div class="post-metadata">

**Author:** ![squackmcduck](https://avatars.discourse-cdn.com/v4/letter/s/bbe5ce/32.png) [@squackmcduck](https://forum.arduino.cc/u/squackmcduck)\
**Post date:** [June 12, 2024, 8:10pm UTC](https://forum.arduino.cc/t/ho-aggiunto-lan-enc28j60-ma-non-funziona/1270535/9 "2024-06-12T20:10:34Z")

</div>

Ho provato a scollegare termometro, pila (per il realtime clock) e SD. Non cambia nulla.

Riepilogo i PIN schedaLAN/ Arduino nel caso abbia sbagliato qualcosa.  
Mi baso su questo PINOut, quello ufficiale : [https://docs.arduino.cc/resources/pinouts/ABX00087-full-pinout.pdf](https://docs.arduino.cc/resources/pinouts/ABX00087-full-pinout.pdf)

SO \<=\> 1. CIPO  
VCC \<=\> 2. +5 V  
SCK \<=\> 3. RSPCKA  
SI \<=\> 4. COPI  
RESET \<=\> 5. RESET  
GND \<=\> 6. GROUND  
CS \<=\> Pin 9  
CLKOUT (Non collegato)  
INT (Non collegato)  
WOL (Non collegato)

---

<div class="post-metadata">

**Author:** ![squackmcduck](https://avatars.discourse-cdn.com/v4/letter/s/bbe5ce/32.png) [@squackmcduck](https://forum.arduino.cc/u/squackmcduck)\
**Post date:** [June 12, 2024, 8:14pm UTC](https://forum.arduino.cc/t/ho-aggiunto-lan-enc28j60-ma-non-funziona/1270535/10 "2024-06-12T20:14:27Z")

</div>

Ecco, il gingillo è questo : [https://www.amazon.it/dp/B07XTFL7Q7?psc=1&ref=ppx\_yo2ov\_dt\_b\_product\_details](https://www.amazon.it/dp/B07XTFL7Q7?psc=1&ref=ppx_yo2ov_dt_b_product_details)

---

<div class="post-metadata">

**Author:** ![squackmcduck](https://avatars.discourse-cdn.com/v4/letter/s/bbe5ce/32.png) [@squackmcduck](https://forum.arduino.cc/u/squackmcduck)\
**Post date:** [June 12, 2024, 8:39pm UTC](https://forum.arduino.cc/t/ho-aggiunto-lan-enc28j60-ma-non-funziona/1270535/11 "2024-06-12T20:39:50Z")

</div>

Ho provato a cambiare l'alimentazione: l'ho spostata sul 3.3V così almeno ora al tatto non è calda. Questa soluzione mi piace di più, però purtroppo non risolve il problema.

Se non vedete anomalie nei collegamenti posso anche decidere di restituire la schedina dicendo che non funziona. Secondo voi è una stupidaggine?

---

<div class="post-metadata">

**Author:** ![docdoc](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/docdoc/32/220907_2.png) [@docdoc](https://forum.arduino.cc/u/docdoc)\
**Post date:** [June 13, 2024, 7:15am UTC](https://forum.arduino.cc/t/ho-aggiunto-lan-enc28j60-ma-non-funziona/1270535/12 "2024-06-13T07:15:35Z")

</div>

> [@squackmcduck](#):
>
> Riepilogo i PIN schedaLAN/ Arduino nel caso abbia sbagliato qualcosa.

Non mi pare nulla di strano, è normale connessione SPI. Io con la UNO avevo tenuto da parte questo schema:

| ENC28J60 | Arduino UNO |
| --- | --- |
| CS | D10 (CS) |
| SI | D11 (MOSI) |
| SO | D12 (MISO) |
| SCK | D13 (SCK) |
| RESET | RESET |
| VCC | 3.3V |
| GND | GND |

L'unica differenza che posso vedere, a parte Vcc (che quindi **va collegato a 3.3** ), è che tu hai collegato CS al pin 9 invece del 10 ma non è rilevante.

Ho però ora notato una cosa, tu dici:

> [@squackmcduck](#):
>
> Uso la libreria EthernetENC 2.0.5.

Ma nel tuo sketch (del primo post) la `#include <Ethernet.h>` non è della EthernetENC, bensì della standard Ethernet! Devi usare `#include <EthernetENC.h>`!

Verifica bene...

---

<div class="post-metadata">

**Author:** ![gpb01](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/gpb01/32/830685_2.png) [@gpb01](https://forum.arduino.cc/u/gpb01)\
**Post date:** [June 13, 2024, 8:07am UTC](https://forum.arduino.cc/t/ho-aggiunto-lan-enc28j60-ma-non-funziona/1270535/13 "2024-06-13T08:07:11Z")

</div>

> [@docdoc](#):
>
> Ma nel tuo sketch (del primo post) la `#include <Ethernet.h>` non è della EthernetENC, bensì della standard Ethernet! Devi usare `#include <EthernetENC.h>`!

In realtà, se guardi i sorgenti della EthernetENC ti accorgi che `EthernetENC.h` contiene una sola riga: `#include <Ethernet.h>` che fa sempre parte di detta libreria ... però ... se uno ha tra le librerie entrambe le librerie installate (_sia la EthernetENC che la Ethernet_) chissà quale piglia 🤔

Guglielmo

---

<div class="post-metadata">

**Author:** ![docdoc](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/docdoc/32/220907_2.png) [@docdoc](https://forum.arduino.cc/u/docdoc)\
**Post date:** [June 13, 2024, 8:10am UTC](https://forum.arduino.cc/t/ho-aggiunto-lan-enc28j60-ma-non-funziona/1270535/14 "2024-06-13T08:10:59Z")

</div>

> [@gpb01](#):
>
> chissà quale piglia

La #include della libreria è con le doppie virgolette (`#include "Ethernet.h"`) non con "\<" e "\>", quindi prende la "Ethernet.h" che si trova nella stessa libreria EthernetENC, e da lì tutto il resto. Se include solo `<Ethernet.h>` prende quella standard, non ENC, e non può funzionare.

---

<div class="post-metadata">

**Author:** ![PaoloP](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/paolop/32/214739_2.png) [@PaoloP](https://forum.arduino.cc/u/PaoloP)\
**Post date:** [June 13, 2024, 8:16am UTC](https://forum.arduino.cc/t/ho-aggiunto-lan-enc28j60-ma-non-funziona/1270535/15 "2024-06-13T08:16:33Z")

</div>

Ma non è la Ethernet.h della libraria Ethernet, è il file incluso nella EthenretENC che ha lo stesso nome.  
[Qui](https://github.com/Networking-for-Arduino/EthernetENC/tree/master/src) i sorgenti della libraria arrivata alla versione 2.0.5.

Oltre a Ethernet.init(), nel Setup, aggiungi Ethernet.begin() con i vari parametri.

---

<div class="post-metadata">

**Author:** ![gpb01](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/gpb01/32/830685_2.png) [@gpb01](https://forum.arduino.cc/u/gpb01)\
**Post date:** [June 13, 2024, 8:20am UTC](https://forum.arduino.cc/t/ho-aggiunto-lan-enc28j60-ma-non-funziona/1270535/16 "2024-06-13T08:20:24Z")

</div>

> [@docdoc](#):
>
> La #include della libreria è con le doppie virgolette

**GIUSTO !**... SE effettivamente lui ha le due librerie installate, il problema sicuramente sussiste.

Per altro, se uno leggesse il readme scoprirebbe:

> This library doesn't have examples, because examples of the Arduino Ethernet library apply. You can find them in the Arduino IDE Examples menu Ethernet section. Only change `#include <Ethernet.h>` to `#include <EthernetENC.h>`. Some examples require [a little change](https://github.com/jandrassy/EthernetENC/wiki/Examples).

@PaoloP: i sorgenti li avevo già indicati io alcuni post più su ... leggi attentamente TUTTA la discussione, non solo gli ultimi post 😉 Mi era solo sfuggito che il #include era fatto con i doppi apici 🙄

Guglielmo

---

<div class="post-metadata">

**Author:** ![PaoloP](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/paolop/32/214739_2.png) [@PaoloP](https://forum.arduino.cc/u/PaoloP)\
**Post date:** [June 13, 2024, 8:25am UTC](https://forum.arduino.cc/t/ho-aggiunto-lan-enc28j60-ma-non-funziona/1270535/17 "2024-06-13T08:25:58Z")

</div>

> [@gpb01](#):
>
> @PaoloP: i sorgenti li avevo già indicati io alcuni post più su ... leggi attentamente TUTTA la discussione, non solo gli ultimi post 😉 Mi era solo sfuggito che il #include era fatto con i doppi apici 🙄

Ok.

Riguardo il codice, prova ad aggiungere Ethernet.maintain() alla fine del loop.

---

<div class="post-metadata">

**Author:** ![gpb01](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/gpb01/32/830685_2.png) [@gpb01](https://forum.arduino.cc/u/gpb01)\
**Post date:** [June 13, 2024, 8:27am UTC](https://forum.arduino.cc/t/ho-aggiunto-lan-enc28j60-ma-non-funziona/1270535/18 "2024-06-13T08:27:48Z")

</div>

> [@PaoloP](#):
>
> prova ad aggiungere

... io ??? 😮 ... magari l'OP ... che è quello che ha il problema 😉

Guglielmo

---

<div class="post-metadata">

**Author:** ![PaoloP](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/paolop/32/214739_2.png) [@PaoloP](https://forum.arduino.cc/u/PaoloP)\
**Post date:** [June 13, 2024, 8:32am UTC](https://forum.arduino.cc/t/ho-aggiunto-lan-enc28j60-ma-non-funziona/1270535/19 "2024-06-13T08:32:03Z")

</div>

Si, ovvio.  
Lo sai che è molto che non frequento il forum e non mi trovo con la nuova interfaccia.  
Non ho messo la citazione multipla, ma il secondo periodo è per [squackmcduck](https://forum.arduino.cc/u/squackmcduck).

---

<div class="post-metadata">

**Author:** ![squackmcduck](https://avatars.discourse-cdn.com/v4/letter/s/bbe5ce/32.png) [@squackmcduck](https://forum.arduino.cc/u/squackmcduck)\
**Post date:** [June 13, 2024, 12:47pm UTC](https://forum.arduino.cc/t/ho-aggiunto-lan-enc28j60-ma-non-funziona/1270535/20 "2024-06-13T12:47:07Z")

</div>

Vi ringrazio molto davvero. Per l'interessamento e il supporto. Nonché per il brainstorming.

Leggendovi e documentandomi un po' sono convinto che risolverò modificando la libreria aggiungendo ENC. Si, sono convinto di averle installate entrambe.

Se posso già sta sera provo e vi aggiorno.

Nel frattempo...  
Che differenza c'è nel modo di chiamare la libreria con le parentesi angolare e con le doppie virgolette?

[Next page](https://forum.arduino.cc/t/ho-aggiunto-lan-enc28j60-ma-non-funziona/1270535.md?page=2)
