I bought this inexpensive (something like $3 delivered) Ethernet module a few years ago, only to discover that there really wasn’t a decent library to support it. So it got tossed into a drawer..A few days ago I realized that I needed a low cost Ethernet interface for one of my projects. It wouldn’t really need to do much, so I thought the ENC28J60 would probably be able to handle the task.
Doing the customary Google search for Arduino support turned out a full Ethernet library for it! 🙂
It’s called UIPEthernet and it is fully compatible with the original Ethernet library for the Arduino. What this means is that every piece of code written for the Ethernet library (in other words for the “classic” Arduino Ethernet Shield) can be made to work with a dirt-cheap ENC28J60 just by changing
#include <Ethernet.h>
to
#include <UIPEthernet.h>
This I had to see for myself, so I hooked it up.
The module that I have needs 3.3V power (not 5V!!) but its SPI pins are 5V tolerant so it will pair nicely with any Arduino.
The necessary hookup for the UNO, MEGA or DUE can be found in the library’s page: https://github.com/jcw/ethercard
I decided to try a classic Ethernet example sketch: The WebServer sketch. This one reads a few analog inputs on the Arduino and then serves them on a web page.
Sure enough, all I had to do to get it to work was just change the #include statement. It worked like a charm!
So, there you have it. You can add full wired Ethernet connectivity to your Arduino for less than $3.