I love the Arduino Nano - it's a nice compact yet fully functional version of the Arduino Uno. However, when I went to connect it to the internet all of that neat and tidy smallness disappeared under the big full sized ethernet shield I had. (See my other instructable on how to do that).

However, I recently discovered a better, more compact way to connect my Nano to the internet - by using the much smaller (and more affordable) WIZ550io module from WIZnet!

You can get an adapter board to connect this module up to an Arduino Uno for easy connection, but I wanted to keep things compact by using my Nano and directly connecting them together. However, the same procedure can be used to connect it up directly to a Uno if you don't have the adapter board.

Step 1: Parts

For this Instructable, I used the following parts:

1 Arduino Nano (or compatible)

1 WIZ550io module (available direct from WIZnet)

1 breadboard (I'm using one with 30 rows, which is just barely big enough)

5 m-m jumper wires

4 f-m jumper wires

Step 2: Making the Connections

Note: before connecting all the wires, it’s a good idea to first load the WebServer example onto your Arduino, to make sure there is no existing firmware on it that might cause issues with your WIZ550io.

1. Pop the Arduino Nano and the WIZ550io module onto a breadboard. I put them back to back (see pictures) to allow the USB power cable and the Ethernet cable to both be easily hooked up. As you can see in the pictures, my breadboard would ideally have been 1 row longer!

2. Connect 9 pins:

Arduino - WIZ550io

(5 M-M jumper wires)

3v3 - J1.8

GND - J1.1

D2 - J2.5 (INT)

D7 - J2.2 (RDY)

D10 - J1.6 (SCS)

(SPI needs 4 F-M jumper wires)

spi.1 - J1.4 (MISO)

spi.3 - J1.5 (SCK aka SCLK)

spi.5 - J2.3 (RST)

spi.4 - J1.3 (MOSI)

Note: spi.2 (VDD) - Do not connect! this is 5v and the WIZ board needs 3.3v

Refer to the SPI picture above to see the ordering of the pins on the Arduino Nano. Also, the board itself should have a digit 1 by the number 1 pin. This should be the outermost pin on the side of the VIN pin.

Step 3: Update the Ethernet Library

The WIZnet module uses a newer chip and requires an updated library for it to work. Don't worry, your older ethernet boards will still work with it too.

1. Download the WIZnet Ethernet Library: https://github.com/Wiznet/WIZ_Ethernet_Library There is a button at the bottom right labelled "Download ZIP" which downloads everything in one neat little file.

2. Copy the Ethernet folder into the Arduino Libraries folder (on Mac it’s Documents/Arduino/Libraries) This will override the built-in Ethernet library that’s part of the Arduino app. See Note (a) in the Notes step if you need to also use other ethernet shields and modules. Note that there are 2 versions of the Ethernet folder, depending on the version of your Arduino IDE. I’m using Arduino IDE version 1.0.6, so I copied the Ethernet folder from the WIZnet folder marked as 1.0.x.

3. In the Libraries/Ethernet/utility folder, open w5100.h and verify that only the 1 correct #define line (out of 3) is uncommented. For my WIZ550io it looks like this:

//#define W5100_ETHERNET_SHIELD // Arduino Ethernet Shield and Compatibles ...
//#define W5200_ETHERNET_SHIELD // WIZ820io, W5200 Ethernet Shield
#define W5500_ETHERNET_SHIELD   // WIZ550io, ioShield series of WIZnet</p>

4. In the same file, (optionally) also uncomment the line that allows the board to use the pre-assigned hardware MAC address:

#define WIZ550io_WITH_MACADDRESS // Use assigned MAC address of WIZ550io

The picture shows what my settings look like (I used XCode to edit the file, thus the nice formatting and colours!)

Step 4: Run a Webserver to Test It!

Now that everything is all set up, it is a good idea to test it to make sure everything was done correctly. Thankfully, the Ethernet library includes a set of very nice examples. We will just use the easy WebServer example.

1. Open the Arduino IDE and open the included example from File/Examples/Ethernet named WebServer

2. If you are on an Apple network (through Apple’s Airport wireless hubs), you will need to change the IP address to be noticed by other computers on your network. I used this:

IPAddress ip(10,0,1,177);  // on an Apple wifi network

Note that this is probably not necessary for most networks, as long as the first 3 digits match your own IP address .

3. Save it and give it a new name

4. Connect your WIZ550io to your network with a network cable

5. Connect your Arduino to your computer and run the WebServer example.

6. Open up a browser window and load the url matching the IP address you set in the WebServer example. In my case that’s

The browser window should just show a list of numbers, corresponding to each of the analog inputs. Note that as we did not hook up any of the analog inputs, those numbers will be somewhat random. You could of course start adding a bunch of sensors to them for more fun :)

Step 5: Notes and References


(a) If you also have other ethernet shields, you will need to choose the correct line in w5100.h when working with that particular shield (and then change it back when using the WIZ550io again). For example, for my other Wiz5100 based ethernet shield, I uncomment the top line:

#define W5100_ETHERNET_SHIELD // Arduino Ethernet Shield and Compatibles ...
//#define W5200_ETHERNET_SHIELD // WIZ820io, W5200 Ethernet Shield
//#define W5500_ETHERNET_SHIELD   // WIZ550io, ioShield series of WIZnet

(b) There are no other notes ;)


For more information, please refer to:

https://github.com/Wiznet/WIZ_Ethernet_Library (see the ReadMe file)




<p>Very well documented!. There is a board based on ENC28J60 thas sits down arduino nano to make it even more compact and costs around USD $4.30 ( <a href="http://s.click.aliexpress.com/e/7uvRJAq" rel="nofollow">http://s.click.aliexpress.com/e/7uvRJAq</a> )</p>
<p>Hi,</p><p>The W5500 alone on the WIZ550io board typically sinks about 130 mA (from the datasheet), and the output of the 3.3V regulator on the Arduino Uno can safely supply 50mA. I do not know about the Nano, but I would expect similar. This would mean that connecting the WIZ550io directly to the 3.3V of the Arduino board is marginal, which would explain why sometimes it works, sometimes it does not.</p>
<p>when i power everything up the wiz550io blinks orange as if its trying to tell me something is wrong and nothing works. i used an alternate 3.3v power supply instead of the normal 3.3v from the nano and it works fine. any reason you can think of that the nano will not power the wiz?</p>
<p>I wonder if the power into the nano is not enough to supply both? For my Instructable I was using a 5v version of the nano. Not sure if that makes a difference.</p>
Hmm I'm using a usb connected to my computer. What did you use? Also here are the nanos I used: <br>https://www.amazon.com/gp/aw/d/B00SGMEH7G/ref=mp_s_a_1_3?ie=UTF8&amp;qid=1467903046&amp;sr=8-3&amp;pi=SY200_QL40&amp;keywords=arduino+nano&amp;dpPl=1&amp;dpID=51FTYd5KG5L&amp;ref=plSrch<br><br>Anything glaring wrong or different in these vs what you used?
<p>Sounds like you did exactly what I did. I was using the USB from a Macbook (late 2009). And I realize now that all Nanos are 5v by design (I got confused with the Pro Mini options out there)... I suppose it's possible that some Nano clones might use 3.3v regulators with lower amp output, but that seems unlikely. Does it make a difference if you power the Nano directly with an alternate power supply?</p>
<p>its weird its like it doesn't even matter what sketch i have loaded up. if i put on the simple blink sketch it still doesn't power the wiz. I tried alt power sources one USB into the computer and another wall wart. neither will power the project. I tried to power the wiz with a Uno, with the rest of the sketch running on the Nano, and the sketch ran perfectly but when i tried to power up the wiz again with the Nano...no love.</p>
<p>One other thing to try might be to check if you're getting a proper 3.3v on the Nano 3.3v pin.</p><p>Other than that I'm afraid I don't have the answer :( Maybe try Wiznet support?</p>
<p>I tried your project and it works great! Thank you!</p><p>For the next step, how is it possible to connect to the web server from outside the network using a forwarding port?</p>
Hi Tom,<br><br>Great to hear it!<br>Port forwarding is handled by your router, so you'd have to log in to your router to set that up. The how-to varies, depending on your router make and model - maybe do a search for your specific model to get the how-to details.<br><br>Cheers,<br>-Nico
<p>Properly packaged !</p>
<p>That looks great! I haven't done much with enclosures, I really should - looks a lot better than open wires :)</p>
<p>Just to thank you for directions on setting up a Nano + WIZ550io. Adding <br> a FireCracker CM17A computer interface and using <br>&quot;http://brohogan.blogspot.ca/2015/01/internet-control-of-x10.html?showComment=1425876120117#c335582800143686627&quot; <br> web server I can control my X10 lights and appliances modules, from any <br> browser, on any portable devices. That is cool !!!</p>
<p>Great project! Glad my Instructable was able to help. Thanks for sharing the pictures too :)</p>
<p>Excellent Job!</p>
<p>Hi,</p><p>I am a WIZnet engineer. Thank you for interesting in WIZnet chips.</p><p>Will I introude your instructables on our WIZnet's Musuem(<a href="http://wiznetmuseum.com" rel="nofollow">http://wiznetmuseum.com</a>)?</p><p>Thank you in advance!!!</p>
<p>whoa, great Instructable! thanks for sharing! </p>

About This Instructable




Bio: Hi There! I'm a mobile app developer (iPhone and Android) in British Columbia, Canada. I also write firmware, and enjoy dabbling with electronic circuits ... More »
More by ntewinkel:Arduino Nano with WIZ550io = Easy Internet Arduino Echo Locator Crazy Countdown Timer 
Add instructable to: