Sunday, March 23, 2014

Getting Arduino Online – Via the HR911105A Board + uIP TCP/IP Stack

I have wanted to connect my arduino to my home network and also to the internet, for quite some time, so i bought this very cheap board, the HR911105A breakout board / NIC:

ENC28J60_1

I connected my Arduino Uno to it like this:

Arduino UNO pin 12 -- SO  (SPI MISO)
Arduino UNO pin 11 -- SI  (SPI MOSI)
Arduino UNO pin 13 -- SCK (SPI SCK)

Arduino UNO pin 10 -- CS  (SPI SS)
Arduino UNO 3v3    -- VCC
Arduino UNO GND   -- GND

I saw many webpages on the internet about connecting this board to the Arduino, and all said that the CS pin on the board connected to the Arduino pin 8, I tried it and i never worked (even with other TCP/IP stacks, besides the uIP). I searched the code and found out that i was actually the SPI SS pin, wich is pin 10 on the Arduino Uno.

image

to use it on the Arduino Mega, you need to connect it like this:

Arduino MEGA pin 50 -- SO  (SPI MISO)
Arduino MEGA pin 51 -- SI  (SPI MOSI)
Arduino MEGA pin 52 -- SCK (SPI SCK)
Arduino MEGA pin 53 -- CS  (SPI SS)
Arduino MEGA 3v3    -- VCC
Arduino MEGA GND   -- GND

I saw in the arduino page:

http://playground.arduino.cc/Hardware/ArduinoEthernet#.Uy4hFvl_tsM

that the uIP TCP/IP stack is available for the HR911105A Boards / NICs since October 2013 (just a coupple of months ago). You can find more information about this stack here:

http://en.wikipedia.org/wiki/UIP_(micro_IP)

this stack is quickly becoming the “de facto” standart for an for 8-and 16-bit microcontrollers, as you can see  even cisco is supporting it (“In October 2008, Cisco, Atmel, and SICS announced a fully compliant IPv6 extension to uIP, called uIPv6”)

I downloaded the uIP IP stack and followed the instructions here:

https://github.com/ntruchsess/arduino_uip

basically what I downloaded the uIP, extracted it, and put it on the arduino libraries folder

image

To test it, go to arduino IDE and select an example like the EchoServer

image

and change the IP, to one that it’s on your network (my network: 192.168.1.xx/24)

image

upload it to the Arduino and test it out.

FIrst ping it:

image

and then telnet into it, the EchoServer example will return all that you type:

image

image

You can also buy the HR911105A module / NIC in the form of an Arduino Uno Shield:

imageimage

this version is a bit more expensive, but is the same as the breakout board. All the steps above are the same (you can go from the breakout board to the sheild without reprograming the Arduino), the main diference is that you don’t need to do the wiring:

imageBut if you don’t want to put the shield on top of the arduino for some reason, you can connect it like this:

image

Arduino UNO pin 12 -- Shield  pin 12  (SPI MISO)
Arduino UNO pin 11 -- Shield  pin 11  (SPI MOSI)
Arduino UNO pin 13 -- Shield  pin 13  (SPI SCK)
Arduino UNO pin 10 -- Shield  pin 10  (SPI SS)
Arduino UNO 5v     -- Shield  pin 5v  (VCC)
Arduino UNO GND   -- Shield  pin GND (GND)

to use the Arduino Mega, just connect it like this:

Arduino MEGA pin 50 -- Shield  pin 12  (SPI MISO)
Arduino MEGA pin 51 -- Shield  pin 11  (SPI MOSI)
Arduino MEGA pin 52 -- Shield  pin 13  (SPI SCK)
Arduino MEGA pin 53 -- Shield  pin 10  (SPI SS)
Arduino MEGA 5v     -- Shield  pin 5v  (VCC)
Arduino MEGA GND    -- Shield  pin GND (GND)

And the internet of things / internet of everything starts Alegre

 

You can find the documentation about the uIP library here:

http://arduino.cc/en/Reference/Ethernet

this is not exactly the HR911105A breakout board / NIC documentation, but it the looks like it has the same methods / functions.

 

Check out my online community at: https://www.facebook.com/BragaLab

This post was made specially for the BragaLab fans

Post a Comment