Cheap as chips Arduino Ethernet shield

It’s no secret that Ethernet shields for the Arduino are a little expensive. With the official Ethernet shield selling for about $50 and other options not much cheaper, there’s a lot of room for improvement for Arduinofied Ethernet. [Boris] over at Open Electronics has a solution to this problem: his Ethercard powered by a $3 Ethernet controller.

The Ethercard uses the Microchip ENC28J60, a through-hole Ethernet controller. There isn’t much else on the board apart from an RJ45 jack, caps, resistors, and a cheap buffer chip. This board was designed to be easily produced, and we’re thinking it might be possible to etch this board at home.

There are a few drawbacks to this ENC28J60 Ethernet shield – the official Arduino Ethernet shield has a 10/100 Mbps connection where the Microchip-powered shield is limited to 10 Mbps. Given the reduced cost, ease of assembly, and the fact that it’s pretty hard to saturate a 100Mbps connection with an Arduino this flaw can be easily ignored.

Pretty neat, especially considering how much you can do with an Ethernet connection on your Arduino. Files and code available in the git.

Comments

  1. Peter says:

    dealextreme have two controllers based on the ENC28J60, one a shield (~US$21), the other more generic board (~US$11). Just search for ENC28J60 on the site.

  2. gruni says:

    i already built an enc28j60 based ethernet shield myself, adding the usual coupling transformer between the chip and the rj-45 jack and not using any buffer chips. it is etched at home and works like a charm except for the webduino http authentication library. does anybody perhaps have a fix for that?

  3. Chris C. says:

    It’s probably hard to saturate even a 10 Mbps connection with an Arduino. You might be able to do it with test packets, but not with meaningful data.

    Good looking shield, so props to the maker. And props to Microchip too, for selling a $3 Ethernet chip in a breadboard/socket friendly DIP package. Stuff like that is why I chose them over Atmel.

  4. Toon says:

    I bought this one: http://www.geeetech.com/arduino-enc28j60-ethernet-module-p-263.html

    Super cheap, and it works! Although it does not have the usability of a shield, those couple of wires are greatly compensated by the price!

  5. WestfW says:

    I still don’t get it. It’s not like the Wiznet W5100 chip (used on the official ethernet shield, and including an internal tcp/ip implementation) is that much more expensive than the ENCJ chip ($4 in singles from assorted places.) Nor does it require significantly more in the way of support electronics, as far as I can tell. The new W5200 is even simpler and cheaper. I think the ethernet shield prices is being driven by “market forces” rather than actual costs.

  6. yosh says:

    indeed, I use $6 ethernet cards based on the enc28j60 that I bought at least 6 months ago. It’s not expensive :)

  7. Ned says:

    i think you mean 10Mbps instead of 100Mbps in your text?
    “pretty hard to saturate a 100Mbps connection with an Arduino”

  8. Brian says:

    Wow, this library is a lot better than the one that was provided with my ENC28J60 shield that I bought from eBay!

    If you have an Ethernet shield that uses the library from nuelectronics.com, you can use the EtherCard library instead — all you need to do is change the CS pin from 8 to 10!

    The ether.begin() function can take an optional 3rd argument to do this, or you can change the default in EtherCard.h.

    • Treehouse Projects says:

      Would love it if you could give me a little more detail with regards to what you modified in the header file. I have the board from eBay, and am struggling to get it to interface with the Arduino. Many thanks Brian!

      • Brian says:

        to use with nuelectronics ethernet shield
        change CS pin from 8 to 10
        just add extra argument to ether.begin
        or change the EtherCard.h file
        anyway, to work the shield requires
        pins # 10, 11, 12, 13 (CS + SPI)

        (this line is the one:)
        static uint8_t begin (const uint16_t size, const uint8_t* macaddr,
        uint8_t csPin = TYPE YOUR DEFAULT CS PIN HERE);

  9. kmmankad says:

    Cool stuff! This one chip has been interfaced to all microcontrollers and SoCs out there.

    Infact,I’m in the process of completing a network stack built around the PSoC3/5 and this very network chip.

    https://github.com/kmmankad/ENC28J60-PSoC3

  10. gr0b says:

    I have purchased a few of the boards like this one http://www.geeetech.com/arduino-enc28j60-ethernet-module-p-263.html too, I have be able to find them as low as about $4

    The problem I run into these boards is that for me they don’t work with my gigabit switch and I found that DHCP fails most of the time too for me (using https://github.com/jcw/ethercard )

  11. mofoq says:

    the other advantage of the ENC28J60 is that unlike the W5100, the stack is not done in hardware but in software which means you can do IPv6 (you just have to get the code for it).

    currently, I’m working on extending EtherCard (the github library) to do IPv6 (and dual-stacking)

    I got mine from dx though ebay is another source.

  12. The Cageybee says:

    Hmmm. Looking at the schematic the level shifting seems to be being performed on the wrong lines.

    The lines from the Arduino to the ENC28J60 are not being shifted down, which they should be I believe, and the lines from the ENC28J60 to the Arduino are being shifted up, which they don’t need to be.

    Can someone confirm this?

  13. James says:

    Why not just buy a Nanode?

  14. vic says:

    It looks like they didn’t include the ferrite bead specified in the ENC28J60 datasheet. I’ve replaced it with a piece of wire myself in my personal projects and I’ve never had an issue. I’m a bit unsure what this choke is actually needed for, anyone could enlighten me?

    They used standard 47 Ohm 20 resistors instead of the 50 Ohm 1% type specified as well. I don’t know what consequences it may have but it seems rather odd to try to save at most a few cents that way.

  15. Toon Nelissen says:

    I used the chip and the library in my latest project and it’s on

  16. b00m00 says:

    I use an IBoard from ITead Studio (Wiz­net 5100), all in one board for 29$. however you cannot use shields .

  17. Sascha says:

    Why don’t you simply use a Nanode? It’s cheaper than an Arduino, and it already has Ethernet “on board”.

  18. SirBlade says:

    While you’ll might not need 100mbs on an arduino for speed, you might not it for compatibility reason. Plenty of modern switches are (advertised as)100/1000mbs, not 10/100/1000mbs.

    • sneakypoo says:

      But surely they’re backwards compatible still? I can’t imagine them dropping support for a lower speed, that seems silly.

      • AsmoB says:

        A common assumption, but false. Especially when you get into the gige hardware, they often drop support for slower speeds. If it doesn’t explicitly say that it supports 10/100/1000, it probably doesn’t.

      • Chris C. says:

        The first five gigabit switches listed on an Amazon search all had backwards support for 10mbps. While it’s possible that *some* are dropping 10mbps support, it doesn’t seem to be *common*.

        But it’s a good idea to keep your old switches, just in case. Maybe even pick up a few extra, I’ve grabbed a few for a buck or two at garage sales. You never know when they’ll come in handy.

  19. Joe says:
  20. hspsoftware says:

    Well €19.9 is around $25 and we also need to factor in shipping probably.

    That’s not really cheap.

    Go buy this board (use them myself)

    http://www.ebay.com/itm/Ethernet-Shield-W5100-For-Arduino-328-UNO-mega-1280-2560-/170875587576?pt=LH_DefaultDomain_0&hash=item27c8fa8bf8#ht_615wt_971

    $12 Arduino Ethernet Shield with free shipping!

    I wonder how HackADay have been able to miss that.

  21. Treehouse Projects says:

    I just bought an ENC28J60 board after reading this post on eBay for $4.50! I never knew I could get online for my AVR/Arduino projects for so cheap!

    Can’t wait, this opens a whole new realm for me :)

  22. Eddie says:

    Just a heads up for someone planning to buying a ENC28J60 bases network shield or Nanode.

    [capt. obvious]
    You can’t use the default Arduino ‘Ethernet library’.
    So its not a drop replacement for an original Wiznet shield, if you already have a nice sketch you need to change it to get it working with the ‘EtherCard library’ (github).
    [/capt. obvious]

    Also every time the ENC28J60 comes up people are complaining about it being only 10mbit.
    Who the foxtrot need 100mbit on a Arduino?

  23. Roger Wilco says:

    Free market ftw

  24. jason says:

    Is it really worth it, as you can get them only for under 5 dollars? http://goo.gl/i7xOa

  25. george says:

    man just go on aliexpress.com search for arduino ethernet shield it s 8.5 $ with shipping … enjoy

  26. mihai says:

    Please help me with jeecafe library for arduino and enc28j60.I have an arduino mega and it doesn’t work with ethercard library and I don’t find where must to change the pins definition for mega.Many thanks to all.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 96,597 other followers