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.

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?

Yep! In fact I also got it from Ebay. And, they provide more information than the average Ebay Chinese seller. (I was looking at Bluetooth modules, very hard to find with good documentation).

At first, the supplied code to test the board on an Arduino did not work. I think it had something to do with newer libraries. So I went to their forums, and they got me another example code. Sadly, Arduino does not supply standard libraries for the microchip ENC IC, so you have to get them elsewhere.

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.

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!

I got DHCP to work but was not 100% would only work sometimes, I think it was a buffer related issue where if you have the buffer set too low you don’t get the whole packet and if too high you have other memory issues.

No, it really shouldn’t be necessary to use level converters to at atmega.

According to the graph on page 330 in http://www.atmel.com/Images/doc2545.pdf the VIH threshold value is about 2.7 volts when the mega is at 5.0 volt VCC. So a peripheral that actually outputs 3.3 volts for high (and not significantly less) should be able to communicate with an Aruino just fine.

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.

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.

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?

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.