enc28J60 e Arduino (11)

by luca

Il tutorial di oggi è un po’ particolare: spiega come rendere wireless il nostro ethernet shield.

Esistono diversi shield Wi-fi per Arduino: partendo da quello ufficiale, fino a shields basati su integrati Microchip, “cugini” dell’enc28j60 soggetto di questi tutorial.

A volte però può essere più comodo (e forse più economico!) collegare Arduino alla rete Wi-fi sfruttando lo shield ethernet che già abbiamo, abbinandolo ad un router wireless.

In particolare ho scoperto il nano router TL-WR702N di TP-LINK che, ad un costo di circa 20€ su eBay, ha tra le proprie funzionalità anche la modalità client, nella quale il router fa da “ponte” tra un dispositivo connesso alla sua porta ethernet e la rete Wi-fi.

Il router TL-WR702N inoltre ha dimensioni davvero ridotte e può essere alimentato tramite un connettore micro USB:


Configurarlo in modalità client è molto semplice:

Per prima cosa diamo al nostro PC un indirizzo fisso,, e colleghiamoci al router con il cavo ethernet:

Apriamo il browser e digitiamo, accedendo con utente e password admin.

Selezioniamo Client mode:

Clicchiamo su Survey per cercare la nostra rete Wi-fi, quindi inseriamo i parametri di sicurezza:

Attendiamo il restart del router:

Sarà ora possibile collegare Arduino e raggiungerlo tramite la rete Wi-fi!

Related Posts


Amario 9 dicembre 2012 - 20:13

Ciao Luca, io mi sono procurato questo:
Vobets VAP11G

fa da bridge, lo uso anche per collegare l’ethernet del Blueray
pagato 27 euro

lucadentella.it – enc28J60 e Arduino (11) | E4Y Electronics For You | Scoop.it 9 dicembre 2012 - 22:25

[…] Il tutorial di oggi è un po' particolare: spiega come rendere wireless il nostro ethernet shield. Esistono diversi shield Wi-fi per Arduino: partendo da quello ufficiale, fino a shields basati su integrati Microchip, “cugini” …  […]

Squonk42 11 dicembre 2012 - 22:44

Yes, and if you buy a TL-WR703N for about the same price (or its global export RoHS/CE/FCC compliant sister product, the slightly larger TL-MR3020), you get an additional USB host port where you can connect the Arduino directly without needing the Ethernet shield. For this purpose though, you have to replace the original firmware by OpenWrt, but it is pretty easy.

Actually, you can even use the free Ethernet port to get wired Ethernet access… I recorded a few videos describing the setup:


luca 12 dicembre 2012 - 08:52

Thanks Michel!

Squonk42 12 dicembre 2012 - 10:10

You are welcome!

If you have a chance to open your TL-WR702N, I would be very interested if you could take some hi-res pictures of the PCB top and bottom side.

You just have to open the top blue lid gently with a knife, there is no screw, and the PCB is just positioned within the case without screws.

You can close it back again without problem, the operation is not destructive 🙂

Reint 11 febbraio 2013 - 16:23

Hi Squonk421,

Can you tell some more about. What router i need to get, to do the same trick. because the TL-WR703N is hard to get in The Netherlands. The TL-WR702N is much easier but will it work? And the TL-MR3020 is easy to get but will it work with the thing you explain at Youtube. I have seen on the openWRT site that it isen’t supporter jet.

Amario 12 dicembre 2012 - 09:59


Mauro 12 dicembre 2012 - 15:51

Interessantissimo tutorial, ho acquistato anche io un nano router wireless della tp-link.

Proverò il tuo tutorial per rendere wireless alcuni dei miei progetti con arduino.


enc28J60 e Arduino (11) | Arduino - Ethernet | Scoop.it 15 dicembre 2012 - 15:07

[…] Il tutorial di oggi è un po' particolare: spiega come rendere wireless il nostro ethernet shield.  […]

Daj 21 dicembre 2012 - 07:58

Hello Sir Luca.nice tutorial!! Thats help me a lot!!
Sir, what is the equivalent code of CLIENT.PRINT of official arduino to the enc28j60 ethernet shield to ethercard library. ? Hoping for your valuable reply sir. 🙂

luca 21 dicembre 2012 - 16:28

Hello! It’s a bit more complex with this library… you have to “prepare” the response with Stash::prepare() and send it with ether.tcpSend().

Daj 22 dicembre 2012 - 15:40

Hello Sir. Thanks for the great idea. I’m planing to send this string data “Hello World”, its code in official arduino ethernet is CLIENT.PRINT(“HELLO WORLD”); . .is this right if i write the version of this code in ethercard like this:

Stash::prepare(“HELLO WORLD”);

luca 31 dicembre 2012 - 12:33

yes it should work…
is your client a web browser?

Daj 1 gennaio 2013 - 16:01

THANK YOU for your response Sir Luca. I really appreciate it.
My client is the arduino connect to visual basic using winsock. I’d found out that client.write is suitable for my application than client.print. Now, Sir Luca i would like to ask you again if what is client.write in ethercard library?. . I like your your tutorial very well. It helps beginners like us a lot. .!! 🙂 thankyou very much. Happy New Year!!

Renato Aloi 10 gennaio 2013 - 05:15

Great tutorial Luca! Thank you very much for this article! I had it done and woks like a charm. But there is a situation I am facing here… Working as a client, the router has no access to internet. I mean, any form of external links doesn’t work. I have tried loading a external CSS file and the HTML does not load at all. The browser keeps loading the page forever and never get it done… But the same page loads ok on wired connection. Do you know somehow to solve that? Any thoughts about that? Once again, thanks for the tutorial!

luca 10 gennaio 2013 - 12:11

Hi Renato,

if you configure the router as a “wireless client”, it acts as a PC or a smartphone connected to your network… you can forget it and consider it a “part” of your ethernet shield. How is your network configured? Have you got an ADSL router that connects you to Internet and also creates the local wireless network your TP-LINK is connected to?

bert 11 gennaio 2013 - 09:53

Hi Luca,

Thanks for your post, I tried it but for some reason I just can’t get the TP-link device to work with any of the wifi points I try and get it to connect to. It seems to connect to them but it doesn’t give my device and IP address, as DCHP is turned off I presume it acts as a bridge and should pass through any DCHP settings to the end device?

I’ve tried testing it using my laptop to see if it will give me a internet connection but for some reason it just won’t work. Any thoughts? Did you have to do any configuration on the wifi network you were connecting to? I’ve tried 3 and none of them seem to want to play ball.

Any help much appreciated, as it would be a great solution if I could get it working.

Best wishes


luca 11 gennaio 2013 - 20:23

Hi Bert!

if you configure your TP-LINK as a client, it acts like a bridge so you need a different DHCP server on your network. I can assure you that the router doesn’t block DHCP requests or response, so for example my Arduino is able to get its dynamic IP from my ADSL router.

Liber 6 marzo 2013 - 00:37

First of all, nice post!

But as bert, I must say that I’m unable to make it work in client mode; it doesn’t connect to the wireless network. Does it work in a network with WPA2 security? Or it needs to use WEP security, or nothing at all?

Thanks in advance for your reply.


luca 6 marzo 2013 - 10:04

Hi Liber,

I can confirm you that it works with WPA2 security: I’m using it with that security protocol.

Kirill 13 gennaio 2013 - 11:21


I am using the TL-WR702N too. And I have wrote new article with link to you about the TL-WR702N:


luca 13 gennaio 2013 - 12:46


Kirill 13 gennaio 2013 - 18:59

Thank you too!
Welcome to KSduino: http://ksduino.org

Mikael Nyberg 18 gennaio 2013 - 07:54

I ordered one on ebay:http://www.ebay.com/itm/150893487418?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649
Device has Chinese User Interface and there is no information of this. What shall I do?

luca 18 gennaio 2013 - 23:18

Hi Mikael,

it seems the exact model I own… I can change the interface’s language: did you try following the english manual linked in the auction?

Mikael Nyberg 19 gennaio 2013 - 11:37

I used Google tranlation to understand what do. From chinese to swedish works very well. Thanks for information how to use an AP in client mode. Mikael

Istrice 13 febbraio 2013 - 18:34

Salve stavo cercando le stesse librerie per la ethercard enc28j da utilizzare però in bascom in quanto l’implementazione del codice asm con questo linguaggio comportava una maggiore facilità di scrittura e una sensibile riduzione di codice macchina da caricare sull’atmega328… qualche giorno fa girando fra i siti e i link vari avevo trovato chi si stava occupando del porting… purtroppo non ho salvato quella pagina e nemmeno il link… qualcuno ha informazioni in merito? grazie

DMV 14 febbraio 2013 - 03:15

This is close to what I am looking for, but was wondering if there is a way to just have the WR702N connected to the ethernet shield of the Arduino and connect to it with an iphone without the use of any other internet or computer. I am trying to make a project where the arduino can be accessed and send messages to an iphone or other device wirelessly.So the WR702N would be a stand alone AP. I cannot seem to figure this out.

luca 14 febbraio 2013 - 08:56

Hi! I think you may connect your iPhone with the router using an “ad hoc” wireless network, i.e. a wireless network between two devices without the need of an AP.

Dauhee 23 febbraio 2013 - 22:08

a raspberry pi model A + dongle is cheaper than wifi router + ethernet card + arduino . . . . . also have more processing power etc.

Darius 6 marzo 2013 - 22:20

Hi, I am using a similar system to this. I have an Arduino board, ethernet shield and portable router. I give my laptop a fixed IP to access the router. I was wondering if you could suggest a way to connect my laptop to the internet at the same time, so I can control the Arduino remotely over the internet. Any thoughts? Thanks.

Ben 27 marzo 2013 - 17:04

Hi, One issue i have is how to power it without a device to plug the USB into? The reason i got it was to make it wireless not having to connect to a PC. Any suggestions ? Check micro USB battery pack?

luca 28 marzo 2013 - 09:28

Hi Ben! You can use any power supply with microusb connector (5V 1A minimum) or – for example – the Lipo Rider if you need a battery source.

André 13 aprile 2013 - 22:41

Dear Luca, please I bought the BL-MP01,


this dosen’t works with my arduino ethernet shield,only work how a cliente in my PC is it necessary to make somechanges in the Arduino program to work with BL-MP01? In my opinion it is similar to TL-WR702N.



luca 14 aprile 2013 - 13:25

Ciao Andrè

It should work, moving the switch in the “client” (= middle) position… no changes are required to the arduino sketch.

André 15 aprile 2013 - 00:24

Dear Luca, so i think that i’m made some mistake, because I can’t acess my arduino shield by the IP adress that I put in my sketch, in your sketch you are using the IP of your example above? In the router configuration are you using DHCP (Auto Config) or Static Mode (fixed IP)?

luca 16 aprile 2013 - 20:26


when you use the router in “client” mode, you don’t need to configure IP address… it acts like a “transparent” bridge between the Arduino (with the assigned IP) and your wireless network: you have only to configure the wireless parameters (SSID, encryption…) to ensure your router can connect to your wifi.

alb3 23 maggio 2013 - 10:13

ciao Luca!
che versione di arduino hai usato?
Arduino Ethernet Rev3 WITH PoE??

Posso alimentare il router tplink direttamente da arduino alimentato tramite una presa a muro?? (quindi evitando collegamenti col pc)


luca 23 maggio 2013 - 11:06

Ciao Albe,

attento: se usi Arduino Ethernet non puoi usare la libreria Ethercard, devi usare quella ufficiale e quindi rivedere i vari esempi.
Per quanto riguarda l’alimentazione, Arduino non è in grado di fornire sufficiente corrente per il TPLink (che comunque viene fornito con il suo alimentatore a muro, non devi per forza collegarlo al PC).

alb3 23 maggio 2013 - 13:29

grazie della risposta immediata!!!
… quindi cosa mi conviene usare? una qualsiasi e poi aggiungere un modulo ehternet esterno??

luca 23 maggio 2013 - 19:15

esatto, se vuoi seguire i miei tutorial ti serve un arduino qualsiasi (consigliato l’arduino uno) e uno shield basato su chip enc28j60

Mike 1 giugno 2013 - 21:20

Salve a tutti vi informo che arduino é in grado di alimentare perfettamente il nano router basta solo spillare i fili di un cavo micro USB e collegarsi a Vin e Gnd di arduino ed il gioco é fatto.

Sloba 10 luglio 2013 - 02:34

How could ENC28J60 and Arduino wirelessly connect to the TL-VR702N then TL-VR702N ethernet cable to the internet modem?

luca 10 luglio 2013 - 15:37

Hello! The usage of TL-VR702N is different: it connects using the wire (ENC28J60 is an ethernet shield) to the shield and then it connects via wireless to a router/cable modem.

Sloba 11 luglio 2013 - 15:25

Yes, but when I changed enc ENC28J60 chip AN1284 wifi chip, how many is it feasible?

luca 12 luglio 2013 - 13:45

Are you trying to use the Microchip WiFi chip? You need a totally different library for that…

Paolo 24 settembre 2013 - 11:31

Ciao Luca, il tuo tutorial era proprio quello che cercavo per far funzionare la mia Ethernet Shield con una rete wireless. Ho comprato il TP-LINK WR-702N e ho seguito i tuoi passaggi. Purtroppo però mi sono accorto che dopo aver settato a Client il TP, non riesco più ad entrarci con l’indirizzo Questo sia collegando il cavo direttamente al PC, sia passando attraverso il mio router WiFi. La necessità di ricollegarmi a TP viene dal fatto che mi sono dimenticato di impostare i parametri di sicurezza della rete. Hai qualche consiglio?

luca 24 settembre 2013 - 12:44

ciao Paolo

la cosa più veloce è fare il reset del router: a router acceso premi con una graffetta per 10 secondi il pulsante RESET. Al riavvio il router tornerà alle impostazioni di fabbrica.

Hamza 30 novembre 2013 - 04:45

Hi Luca,
I have Arduino Mega + ethernet shield + WR-702N router. I’m able to display the values on Analog input usin Arduino and ethernet shield. I want to do the same using the WR-702N router. Please, help me in this regard.

Hamza 30 novembre 2013 - 12:16

How to use client mode with ethernet shield, arduino mega 2560 and wr-702n router..?
please give steps to configure

luca 2 dicembre 2013 - 09:41

Hi Hamza,

the client mode is independent from the device you connect: use the instructions in this blog post.

Jean 2 dicembre 2013 - 08:52

Hi, is it possible to connect my arduino + ethernet shield to mysql database?
For example: Arduino and ethernet shield connected to wireless router, and my laptop (with mysql database) is also connected to the wireless router. If it’s possible, can you give me the codes on how to do it?

luca 2 dicembre 2013 - 09:37

Hi Jean

there are a couple of MySQL drivers for Arduino, like the following one:

They are usually designed to work with the official ethernet shield… I found an interesting library for ENC28J60 that should be compatible with that code, give it a try.

Jean 2 dicembre 2013 - 13:26

thanks for the quick response. i already tried this one. but it didn’t work for me.

luca 2 dicembre 2013 - 13:57

Hi Jean

sorry but I’ve no experience with that library so I can’t help you…

Jean 2 dicembre 2013 - 14:23

Ok Luca, thanks. i’ll try it again using the sample you gave me. thankyou

Jean 2 dicembre 2013 - 13:42

I have another question. How about using PIC16F877A and an Ethernet shield. is that also possible?

luca 2 dicembre 2013 - 13:52

Yes I think but you need to find/write compatible libraries…

Jean 4 dicembre 2013 - 10:10

Hi Luca! what about using Atmega328 and ethernet shield? do you have any schematic diagram that I can use. And the program to save the data coming form my MCU to mysql databse. Sorry for having so many questions. Thanks in advance. 🙂

luca 4 dicembre 2013 - 17:52

Hi Jean, the ATMega328 is the microcontroller Arduino uses so you can follow the instructions in this tutorial: http://arduino.cc/en/Tutorial/ArduinoToBreadboard

Tim 15 dicembre 2013 - 16:06

Ciao Luca, thanks for your great tutorial. I have realized a cabled network based on the WZ5100 breakout (Itead) with fixed IP’s sending and receiving a string over UDP. I want to transfer this to wireless with your wifi router solution. So I connected the modules with the WR702N, but somehow I didn’t manage to run this with fixed IP’s, to keep the units addressable. I even couldn’t ping them. Do you have any suggestions?

luca 16 dicembre 2013 - 14:13

Hi Tim,

if you configure the router in “client mode”, it should be “transparent” in your network… are you sure it is connected to the wifi? You should be able to find the Arduino in the list of connected devices in your router/AP.

jason 27 dicembre 2013 - 15:18

hi luca! can you write a tutorial on how to connect an arduino+ethernetnet shield using the library ethercard and an additional library for mysql connector. thanks in advance 😀

luca 14 gennaio 2014 - 18:59

Hi Jason

unfortunately the MySQL library requires a “W5100-compatible” library… but the only one I found doesn’t work for the lack of free RAM.

ezio labruzzo 11 marzo 2014 - 14:46

Ciao Luca. Io uso una shield W5100 che collegata direttamente al router via cavo funziona come server web utilizzando lo sketch d’esempio nell’ide. Il problema compare quando lo collego al tl-wr702n. Non funziona quasi mai e se dopo diversi reset del mio arduino uno finalmente diviene raggiungibile dal browser, dopo una decina di minuti ritorna il black out. Tieni conto che il tl-wr702n lo uso regolarmente per il decoder mysky sulla stessa rete. Ho cambiato hardware ma il problema permane. Puoi autarmi?

luca 15 marzo 2014 - 10:26

ciao Ezio, purtroppo non ho lo shield con il W5100: posso dirti che con quello che ho io non riscontro problemi di blackout…

shorda 15 aprile 2014 - 19:00

Hi, I just need to know, if i buy it , can i do this without another wifi router? Can I directly setup bridge between my notebook and arduino with TL-WR702N. Get signal from TL-WR702N by using my notebook. Thanks for answer and sorry for english!!

luca 27 aprile 2014 - 12:39

Hi Shorda, hope I understood what you asked: yes the WR702 may act as an access point between your laptop and arduino.

fxstrike 16 gennaio 2015 - 09:09

I use prolink WNR1004 it’s works – the backsoon examples works without modification, same procedure.

Fernando 20 febbraio 2015 - 00:14

Just wanted to thank you for your Arduino tutorials, they are awesome and helpfull 🙂 Please keep making them.

luca 24 febbraio 2015 - 20:56

Hi Fernando and thanks a lot for your feedback!

Sean 27 marzo 2015 - 07:18

I managed to get OpenWrt installed on WR710N, which is similar to WR703N, but with 2 Ethernet and 1 USB. My goal is to use the USB to connect to Uno. However, I am not sure how to achieve that. can anyone help?

VINCENZO 8 ottobre 2017 - 18:10

Ciao Luca, Sto utilizzando un TP-Link TL-WR802N configurato come client (seguendo la tua guida) ma non riesco a connettermi a internet. Mi potresti aiutare?

luca 10 ottobre 2017 - 12:40

Ciao Vicenzo… con così poche informazioni è difficile riuscire ad aiutarti: il TP-Link risulta connesso alla tua rete? Da Arduino non riesci a raggiungere Internet o anche altri dispositivi in rete? Se usi DHCP è stato assegnato correttamente un indirizzo IP?

VINCENZO 15 ottobre 2017 - 16:15

Ciao Luca, di seguito i dettagli:

1. configuro il TP-LINK come client.
2. seleziono, dalla lista che viene fuori dalla scansioine delle reti, la rete wifi di casa a cui voglio connettere il mio TP-LINK.
3. seleziono “SmartIP(DHCP)” al posto di “StaticIP”
4. procedo con il reboot del TP-LINK
A questo punto mi aspetto che il mio TP-LINK mi fornisca la connessione ad internet poichè si appoggia alla wifi di casa, se lo attacco via ethernet al PC, ciò è vero…..se attacco via ethernet il TP-Link ad Arduino, la shield non risponde al ping.

Rispondo alle tue domande:
1. Il T-LINK risulta essere connesso alla rete poichè se lo attacco al PC mi consente di navigare
2. Da Arduino, solo tramite il TP-Link, non riesco a reggiungere internet
3. Ho assegnato ad Arduino un indirizzo IP del tipo

luca 15 ottobre 2017 - 21:33

ciao, prova a configurare arduino con IP dinamico (DHCP) perché è così che hai configurato il tp-link: in modalità client infatti lui “passa” l’IP che ottiene dal tuo router al dispositivo che hai collegato.


Rispondi a Mikael Nyberg Cancel Reply

2 × 4 =