Tuesday 7 October 2014

Ethernet(ENC28J60) Interfaced Arduino

In this Artical we will see how to establish communication between computer/mobile to Arduino in a LAN or Wireless Network. We are interfacing the ENC28J60 Ethernet controller to Arduino so that our Arduino will be the one of member of that network. Once it will done the arduino can control things in that network or the arduino can be controlled by the other devices of that network it might be computer or mobile. Interfacing Arduino with the ENC28J60 will further gives us the freedom of using the internet on Arduino but before that we need to learn how to do all that networking stuff in a locan network.

Soon I will post about how to control the things in local network, how to send data on a local network, and how to interfaced with Android devices or how to make IOT Devices. IOT Devices are quite famous.
 

A simple block diagram of the data flow  is in the image below.


Ethernet Module( ENC28J60):  Microchip's ENC28J60 is a 28-pin,  Ethernet Controller with on board MAC & PHY, 8 Kbytes of Buffer RAM and an SPI serial interface. With a small foot print package size the ENC28J60 minimizes complexity, board space and cost. It used in so many application like Industrial Automation, Building Automation, Home Control, Security and Instrumentation, IOT Devices.
You can build Your own circuit but I use the Module to save my time.



VIRTUAL SIMULATION: I first simulate my design on the Proteus ISIS to make sure I am working in right direction and also to save my time. In ISIS their is already a component named "ENC28J60 ethernet controller" so I picked it from the library. Now I picked up the Arduino and connect it with the ethernet controller.


if the link dont work please comment

* Connections:   
  
Now make these connection in the ISIS design tool.


SOFTWARE: Now we all done with the Virtual Hardware Design lets make the software. All you need is the Ethercard Library for this example. Download it from here EtherCard. Click here
  • Extract the ZIP file , copy and paste the folder in your Arduino1.xx/library/  
  • once you place the folder in your arduino library folder restart your Arduino IDE
  • Now  go to ethercard > Examples > backsoon
 
 Compile the code  : if facing any problem then go to :  How To Simulate Arduino in ISIS

Make some changes in the program as given below
changes are in Red colour
Arduino code
/*#############################################################################
###############################################################################*/

// Present a "Will be back soon web page", as stand-in webserver.
// 2011-01-30 <jc@wippler.nl> http://opensource.org/licenses/mit-license.php

#include <EtherCard.h>

#define STATIC 0  // set to 1 to disable DHCP (adjust myip/gwip values below)

#if STATIC
// ethernet interface ip address
static byte myip[] = { 192,168,1,200 };
// gateway ip address
static byte gwip[] = { 192,168,1,1 };
#endif

// ethernet mac address - must be unique on your network
static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };

byte Ethernet::buffer[500]; // tcp/ip send and receive buffer

// char page[] is the HTML page you are uploading ..
char page[] PROGMEM =
"HTTP/1.0 503 My Seriavice \r\n"
"Content-Type: text/html\r\n"
"Retry-After: 600\r\n"
"\r\n"
"<html>"
  "<head><title>"
    "2embeddedrobotics "
  "</title></head>"
  "<body>"
    "<h3>Welcome to 2embeddedrobotics</h3>"
    "<p><em>"
      "The World of IOT Devices .<br />"
      "yipeee   Congrats...."
    "</em></p>"

   "</body>"
"</html>"
;

void setup(){
  Serial.begin(9600);
  Serial.println("\n[backSoon]");
 
  if (ether.begin(sizeof Ethernet::buffer, mymac) == 0)
    Serial.println( "Failed to access Ethernet controller");
#if STATIC
  ether.staticSetup(myip, gwip);
#else
  if (!ether.dhcpSetup())
    Serial.println("DHCP failed");
#endif

  ether.printIp("IP:  ", ether.myip);
  ether.printIp("GW:  ", ether.gwip); 
  ether.printIp("DNS: ", ether.dnsip); 
}

void loop(){
  // wait for an incoming TCP packet, but ignore its contents
  if (ether.packetLoop(ether.packetReceive())) {
    memcpy_P(ether.tcpOffset(), page, sizeof page);
    ether.httpServerReply(sizeof page - 1);
  }
}
/*##############################################################################
###############################################################################*/

now compile the code with prefrence compile. in file option.. so that you will get the .HEX file for ISIS.







Now you have done every thing . Hit the Play Button and it will give you the assigned IP address in serial monitor now write it down on a paper.

 
open the web browser and write the IP address of your arduino in the browser.
 

 Now you can watch this page on any device connected to that network  As I show.

HARDWARE: We already did everything in virtual now we just need to connet each component as per the connection given in starting.
Now upload the program to your Arduino and turn on its Serial monitor so that u can get Your 
"IP in Serial Monitor" and just open browser and put your IP and check the webpage.



Now you have done then note your IP from the serial monitor and Enjoy..
Wish you a very good Luck.
 
 

About the Author

vikas

Author & Editor

Hobbyst Researcher and working in electronics domain, M.Tech in VLSI Design and Embedded Systems.

113 comments:

  1. when i try to run this project it says "writting to non-assigned register [0x41]=0x00 U1" to simulation log and "Failed to access Ethernet controller" to virtual terminal. Do you know why this error occurred?

    ReplyDelete
    Replies
    1. 3 question: 1> DID you connected a lan to your PC
      2> if so then edit properties of enc28j60 and check network card no
      3> if network card no is not in the edit properties of enc28j60 thenu need higher version of proteus i am using 7.8

      Delete
    2. I connected to wifi network. When i connected to a LAN you project work, Thank.

      Delete
    3. i have the same problem bro someone help me writting to non-assigned register [0x41]=0x00 U1

      Delete
  2. Hi Sir !
    I try to run your project on Proteus 7.10 and I edited MAC, IP and Gateway, choose card number in enc28j60.
    Connected to LAN cable.
    but when i run, Terminal only show : [backSoon].
    Please guide me sir !!Thanks you so much !!!
    [backSoon]

    ReplyDelete
    Replies
    1. try with different card number

      Delete
    2. when i run, Terminal only show : [backSoon].

      Delete
  3. Im running your project on Proteus 8 and I edited MAC, IP and Gateway, and I tried with all card numbers in ENC28J60.
    Connected to LAN cable.
    but when I run, Terminal only show : [backSoon].

    Could you please tell what´s wrong??

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete
  5. I tried this project but while running the serial monitor i found out letters and not any ip address at 9600 baud rate when i changed the baud rate to 57600 i got an indication of backsoon. I have a doubt on how to check whether ethernet is connected to the router or there is any indication on PC's device manager or in networking or there is some more configuration required. I found your project very interesting and thanks you in advance .Please kindly give me your reply.

    ReplyDelete
  6. I'm new and I hope somebody can help me. I got this erros in Isiss when I try to simulate de programe:

    Failed to initialize: WinPcap Drivers
    [SPICE]Error202: Too many iterations withoutconvergence

    ReplyDelete
  7. In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28:0,
    from C:\Users\Alexandre Borges\Documents\Arduino\libraries\ethercard-master/EtherCard.h:28,
    from arduino_temp.ino:7:
    arduino_temp.ino:24:13: error: variable 'page' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
    Erro compilando.

    ReplyDelete
    Replies
    1. This comment has been removed by the author.

      Delete
  8. your blogs is awesome.
    V Music
    Now you can listen to your choice of songs wherever you go. Just subscriber to our V Music service and listen to more than 50 thousand songs. Enjoy latest filmy songs, private albums, regional songs and many more. So what are you waiting for, just follow any one step to subscribe:
    Dial 5606001 (toll free) from your Phone.
    Activate : Dial 5606001 (toll free) from your Phone. Deactivate Dial 155223 from your phone. Subscription Charges: Rs 30 for 30 Days to enjoy Music.

    ReplyDelete
  9. Hello sir, I got similar error on proteus 'virtual terminal' screen. It shows 'Failed to access Ethernet controller' by trying 'dev_hub_net.cpp.hex' file and also shows '[backSoon]' by trying 'backSoon.cpp.hex' file (or vice versa).
    You notice above that see enc28j60's card number, Network card number.
    What do you mean by this? I looked to enc28j60 in your arduino+ethernet circuit in proteus. On ISIS 'Edit Component' window, there is Network Card No: 1. Is it right? or what is its mean? There are card numbers: default,0,1,2,3,4,5.
    What does it do? which one must write there, why?
    I know question is a bit boring, so, we need your helpfulness, if you please. yours sincerely (from Turkey)... :-)

    ReplyDelete
  10. Hello!!! Excellent but I get this error i proteus: invalid opcode 0x9419 at PC=0x23D4 and failed to initialize WinPcap Drivers... as I do?

    ReplyDelete
  11. Hello visit your post, it is excellent, but some said that should change what is in red. I do not understand that part, you could tell, because that's the only thing missing for me to work, I do not check my ip address or anything in the simulation

    ReplyDelete
  12. I declared the page varibale const and tried
    I am getting "simulation not running in real time due to excessive cpu load"

    ReplyDelete
  13. How to connect a lan to PC to process this project in Proteus ? Thank you for your replying

    ReplyDelete
    Replies
    1. just connect your internet wire with your pc

      Delete
  14. sir pls thhe code is not working

    ReplyDelete
  15. Sir pls the code is not working and in the virtual screen it shows only backsoon and pls.. reply

    ReplyDelete
    Replies
    1. hi switch pin of cs from 10 to 8 or 8 to 10

      Delete
    2. Respected sir,
      Thanks for your immediate reply and presently the ip address is appearing on virtual terminal but the DNS is appearing as 0.0.0.0
      Thank you

      pls reply......

      Delete
  16. i could not find why DNS is 0.0.0.0 may be due to this the ip is not loading in browser any suggestion please

    ReplyDelete
  17. This is by far the most usefull post on this topic.

    Thanks for the tutorial

    ReplyDelete
  18. variable 'page' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
    how to solve this error?

    ReplyDelete
  19. hello sir,
    this link doesn't work with me
    * DOWNLOAD FULL PROJECT IN ZIP FILE CLICK HERE *

    ReplyDelete
  20. This was the time before the ESP8266 which now allows the arduino through wifi. And of course, NodeMCU which can be used as a standalone server using Arduino IDE.

    ReplyDelete
  21. i receive this error

    "Failed to initialize WinPcap Drivers"


    then what should i do?

    ReplyDelete
  22. https://suntos.com.np/avr/ENC28J60%20Ethernet%20Controller

    ReplyDelete
  23. thanks for sharing the information.Indian Cyber Army is announcing “ Summer Internship 2018” on “ Ethical hacking and Cyber Crime Investigation” for the enthusiasts of Cyber security. Here internship will give you on-the-job experience, help you learn whether you and Cyber security industry are a good match and can provide you with valuable connections and references. Here interns are usually exposed to a wide variety of tasks and responsibilities which allows the intern to showcase their strengths by working on projects for various managers that work on different parts of Indian Cyber Army. Becoming a high performing intern is a fantastic way to improve your employment prospects. This internship can be a great way to get your foot in the door of success with a prestigious or desirable Organization

    ReplyDelete
  24. I couldn't get response from real model of this sample
    I'm using Arduino uno & ENC28J60 with Microchip MCU
    and also I couldn't see my ethercard's IP in network monitor
    why? I can share pictures if you want.

    ReplyDelete
  25. I am sure this post has helped me save many hours of browsing other related posts just to find what I was looking for. Many thanks!
    java training in chennai | java training in bangalore

    java training in tambaram | java training in velachery

    java training in omr | oracle training in chennai

    ReplyDelete
  26. This looks absolutely perfect. All these tiny details are made with lot of background knowledge. I like it a lot. 

    angularjs Training in chennai
    angularjs Training in chennai

    angularjs-Training in tambaram

    angularjs-Training in sholinganallur

    ReplyDelete
  27. myTectra Placement Portal is a Web based portal brings Potentials Employers and myTectra Candidates on a common platform for placement assistance

    ReplyDelete
  28. in my Virtual terminal, only show BackSoon, do you know how i can solved?

    obs: people with the problem about the "page" only change the parameter of variable for "const char page[] PROGMEN = ..."

    ReplyDelete
  29. Thank you for benefiting from time to focus on this kind of, I feel firmly about it and also really like comprehending far more with this particular subject matter. In case doable, when you get know-how, is it possible to thoughts modernizing your site together with far more details? It’s extremely useful to me.
    python training in chennai
    python training in Bangalore
    Python training institute in chennai

    ReplyDelete
  30. Such a wonderful article on AWS. I think its the best information on AWS on internet today. Its always helpful when you are searching information on such an important topic like AWS and you found such a wonderful article on AWS with full information.Requesting you to keep posting such a wonderful article on other topics too.
    Thanks and regards,
    AWS training in chennai
    aws course in chennai what is the qualification
    aws authorized training partner in chennai
    aws certification exam centers in chennai
    aws course fees details
    aws training in Omr

    ReplyDelete
  31. It was Informative Post,and Knowledgable also.Good Ones

    Guest posting sites
    Technology

    ReplyDelete
  32. Thanks for the good words! Really appreciated. Great post. I’ve been commenting a lot on a few blogs recently, but I hadn’t thought about my approach until you brought it up. 
    apple ipad service center in chennai | apple iphone service center in chennai | imac service center in chennai | apple ipad service center in chennai | iphone repair in chennai

    ReplyDelete
  33. Thanks a lot for sharing us about this update. Hope you will not get tired on making posts as informative as this.
    Devops Training in Chennai | Devops Training Institute in Chennai

    ReplyDelete

  34. Nice Article.very impressed for this informative
    ExcelR data analytics courses

    ReplyDelete
  35. This comment has been removed by the author.

    ReplyDelete
  36. This comment has been removed by the author.

    ReplyDelete
  37. This comment has been removed by the author.

    ReplyDelete
  38. This is always happy to know about Salesforce training in Gurgaon whose certification program helps many to get certificed. I strongly urge you to join now in Salesforce Training in Hyderabad | Course Price | Training institute and enroll for free demo at Salesforce Training in Bangalore | Course Certification Cost and Job Placement Assistance . I have gone through this Salesforce Certification Training. Why done you enroll for a free demo at Salesforce training institutes in Chennai [updated] | Course Price

    ReplyDelete
  39. Good Post! Thank you so much for sharing this pretty post, it was so good to read..keep posting.
    Data Science training institute in Hyderabad

    Data Science training in Hyderabad

    ReplyDelete
  40. Hi Great Stuff are you guys Provide this information...

    Data Science Training in Hyderabad

    ReplyDelete
  41. Thanks for sharing great information. I like your blog and highly recommendData Science Training in Hyderabad

    ReplyDelete
  42. The content is utmost interesting! I have completely enjoyed reading your points and have come to the conclusion that you are right about many of them. You are great,

    AWS Training in Hyderabad

    ReplyDelete
  43. I am looking for and I love to post a comment that "The content of your post is awesome" Great work!

    I am looking for and I love to post a comment that "The content of your post is awesome" Great work!

    ReplyDelete
  44. This comment has been removed by the author.

    ReplyDelete
  45. Sir... why at the time it runs only the backsoon display appears? I have tried to change the pin, I have used the ip address too, please respond, sir. Thank u!.

    ReplyDelete
  46. It's an remarkable piece of writing in support of all the web viewers; they will obtain advantage from it I am sure.

    ReplyDelete
  47. Great!it is really nice blog information.after a long time i have grow through such kind of ideas.thanks for share your thoughts with us.
    DevOps Training in Chennai

    DevOps Course in Chennai

    ReplyDelete
  48. I recently came across your article and have been reading along. I want to express my admiration of your writing skill and ability to make readers read from the beginning to the end. I would like to read newer posts and to share my thoughts with you.
    data science training in Hyderabad

    ReplyDelete
  49. your blog' s design is simple and clean and i like it. Your blog posts about Online writing Help are superb. Please keep them coming. Greets!

    Apache Spark Training Institute in Pune
    Best AWS Training Institute in Pune
    Best Tableau Training Institute in Pune

    ReplyDelete
  50. Great post! I am actually getting ready to across this information, is very helpful my friend. Also great blog here with all of the valuable information you have. Keep up the good work you are doing here. ExcelR Business Analytics Courses

    ReplyDelete
  51. Really awesome blog!!! I finally found a great post here.I really enjoyed reading this article. Thanks for sharing valuable information.
    Data Science Course in Pune
    Python Classes in Pune

    ReplyDelete
  52. Fantastic blog! Thanks for sharing a very interesting post, I appreciate to blogger for an amazing post.
    3D Laser Scanning Services in Bayern Germany
    Dimension Control Services in Bayern Germany

    ReplyDelete
  53. tubular batteries have increased the performance of my inverter. One should always go for tubular batteries they are highly optmised for the home inverters.

    ReplyDelete
  54. This concept is a good way to enhance knowledge. thanks for sharing..

    Python Institutes in Pune
    Python Classes in Pune

    ReplyDelete
  55. The best inverter for an average household, according to my personal experience, would be UTL Solar’s GAMMA+ inverter. Which has all the technological integration required for meeting the electrical demand of an average-sized house. You should explore the amazing range of inverters by UTL Solar.

    ReplyDelete
  56. Hi, Thanks for sharing good information, am waiting for more...

    AWS Training in Hyderabad

    ReplyDelete
  57. How Can You Make A Unique Identity For The Products In This Heavily Saturated Market? With Wonderful Pasta Packaging Boxes, Of Course! At ThePrintingDaddy We Assist You To Choose From A State Of The Art Range Of Pasta Packaging That Boasts Quality And Durability. With Wonderful Pasta Packaging Boxes, Of Course!

    ReplyDelete
  58. Best Software Training Center in Chennai | Infycle Technologies

    Description:
    Want to set your career towards the software field? Then join hands with Infycle Technologies to make this into reality. Infycle Technologies, the best software training institute in Chennai, gives the combined and best software training in Chennai, with various stages of multiple courses such as Big Data, Python, Data Science, Oracle, etc., which will be guided by professional tutors in the field. The Hands-on practical training and the mock interview sessions will be given to the candidates to face the interviews with full confidence. Apart from all, the candidates will be placed in the top MNC's with the highest salary package in the market. To get it all, call 7502633633 and make this happen for your happy life.
    Best place for training

    ReplyDelete
  59. Hey great post. Really helpful. Keep sharing such informative articles.
    If you want best research paper writing service then do follow the link for best writing service available online.

    ReplyDelete
  60. Title:
    Top Big Data Training Institute in Chennai | Infycle Technologies

    Description:
    Learn Big Data for the best career opportunities with Infycle Technologies. Infycle Technologies is the best Big Data training institute in Chennai, providing courses for the Big Data Training in Chennai in 100% hands-on practical training with expert trainers in the field. Apart from the training, the mock interviews will be arranged for the students, so that they can set their career without any struggle. Of all that, 100% placement assurance will be given here. For the best career, call 7502633633 to Infycle Technologies and grab a free demo to know more.
    Best training in Chennai

    ReplyDelete
  61. Learn Amazon Web Services for excellent job opportunities from Infycle Technologies, the best AWS training center in Chennai. Infycle Technologies gives the most trustworthy AWS course in Chennai, with full hands-on practical training from professional trainers in the field. Along with that, the placement interviews will be arranged for the candidates, so that, they can meet the job interviews without missing them. To transform your career to the next level, call 7502633633 to Infycle Technologies and grab a free demo to know more
    Best software training in chennai

    ReplyDelete
  62. Set 5:
    Want to learn Oracle DBA along with the job opportunities? Infycle are with you to make your dream into reality. Infycle Technologies gives the most trustworthy Oracle DBA Training in Chennai, in 100% hands-on practical training with professional tutors in the field. Along with that, the mock interviews will be assigned for the candidates, so that, they can meet the job interviews with full confidence. To transform your career to next level, call 7502633633 to Infycle Technologies and grab a free demo to know more

    best training institute in chennai

    ReplyDelete
  63. this post provides so much information about ethernetenc which is really difficult to understand.
    reels indir
    apk launcher

    ReplyDelete
  64. This is the first time am visiting your site. I found the discussion on your blog very interesting. From the tons of comments on your articles, I guess I am not the only one having all the enjoyment here for those of you interested in an excellent traffic sources give these below a try.

    Excellent premium traffic source trial-1
    Excellent premium traffic source trial-2

    ReplyDelete
  65. Finish the Selenium Training in Chennai from Infycle Technologies, the best software training institute in Chennai which is providing professional software courses such as Data Science, Artificial Intelligence, Java, Hadoop, Big Data, Android, and iOS Development, Oracle, etc with 100% hands-on practical training. Dial 7502633633 to get more info and a free demo and to grab the certification for having a peak rise in your career.

    ReplyDelete
  66. This is my first time i visit here and I found so many interesting stuff in your blog especially it's discussion, thank you. data scientist course in mysore

    ReplyDelete
  67. Infycle Technologies in Chennai offers the leading Big Data Hadoop Training in Chennai for tech professionals and students at the best offers. In addition to the Python course, other in-demand courses such as Data Science, Big Data Selenium, Oracle, Hadoop, Java, Power BI, Tableau, Digital Marketing also will be trained with 100% practical classes. Dial 7504633633 to get more info and a free demo.

    ReplyDelete
  68. Very good points you wrote here..Great stuff...I think you've made some truly interesting points.Keep up the good work.
    <a href="https://360digitmg.com/course/certification-program-on-full-stack-web-developerfull stack web development course</a>

    ReplyDelete
  69. This comment has been removed by the author.

    ReplyDelete
  70. Cybersecurity training is essential for anyone who uses technology in their daily life, whether it's for personal or professional purposes. With the ever-increasing threat of cyber attacks, it's crucial to stay informed and educated about the latest security measures and best practices to protect yourself and your organization.

    https://socialprachar.com/cyber-security-course-training-in-hyderabad/

    ReplyDelete
  71. This article provides an excellent guide on how to establish communication between a computer/mobile and Arduino in a LAN or Wireless Network using the ENC28J60 Ethernet controller. The step-by-step instructions, code snippets, and explanations make it easy for readers to follow along and implement this project. Well done.
    Data Analytics Courses In Dubai

    ReplyDelete
  72. This article offers a great tutorial on how to use the ENC28J60 Ethernet controller to set up communication between a computer or mobile device and an Arduino in a LAN or Wireless Network. Readers will find it simple to follow along with and implement this project because to the detailed directions, code samples, and explanations. Good work
    Data Analytics Courses in Agra

    ReplyDelete
  73. The author's detailed walkthrough of the hardware setup and library usage simplifies the process and reduces potential pitfalls for beginners.
    Data Analytics Courses In Chennai

    ReplyDelete
  74. Ethernet (ENC28J60) interfaced with Arduino facilitates network connectivity, enabling IoT applications and data transmission over Ethernet networks.
    In the realm of data analytics, Glasgow offers Data Analytics courses that provide the knowledge and skills needed to analyze and derive insights from data, including data generated by IoT devices. Please also read Data Analytics courses in Glasgow.

    ReplyDelete
  75. I appreciate the research that went into this. It's evident that you're passionate about the subject.

    ReplyDelete
  76. The blog post provides clear and concise explanation on how to establish communication between computer/mobile to Arduino in a LAN or Wireless Network.
    data analyst courses in limerick

    ReplyDelete
  77. This article explores establishing communication between Arduino and devices within a LAN/Wireless Network using the ENC28J60 Ethernet controller. It sets the groundwork for Arduino to control or be controlled by other network devices like computers or mobile devices. Future posts promise insights into local network control, data transmission, and interfacing with Android devices, tapping into the growing realm of IoT devices. The block diagram below depicts the data flow for this networking setup.
    Data Analytics courses in new york

    ReplyDelete
  78. To simplify communication with the ENC28J60 module, do we need to install the UIPEthernet library?
    investment banking courses in Canada

    ReplyDelete

  79. "This blog is a fantastic guide for interfacing an Arduino with the ENC28J60 Ethernet module, offering a clear and detailed walkthrough. The step-by-step instructions, along with the code snippets, make it incredibly accessible for enthusiasts and beginners alike. The emphasis on understanding the Ethernet module's functionalities and integrating it seamlessly with Arduino is commendable. A must-read for anyone diving into Ethernet interfacing with Arduino for their projects!"
    Investment banking jobs in Mumbai

    ReplyDelete
  80. Hey there! Ethernet(ENC28J60) interfaced Arduino is a fascinating combination that allows us to connect our Arduino projects to the internet. With this setup, we can create web-based applications, control devices remotely, and even gather data from online sources. It opens up a whole new world of possibilities for our Arduino projects. Thanks for sharing this cool topic!
    Data analytics courses in Rohini

    ReplyDelete

 
2embeddedrobotics © 2015 - Designed by Templateism.com