W5100 vs ENC28J60

There appears to be two common ways to connect your Arduino to the Ether.
The ENC28J60 is cheaper.
The W5100 is supported by the Arduino Ethernet library.

Other than that, what are the advantages and disadvantages of each?

Other than that, what are the advantages and disadvantages of each?

If you have to ask, you probably should get the w5100.

zoomkat:
If you have to ask, you probably should get the w5100.

So you think the ENC28J60 is so unimpressive that it is not worth leaning it's features.

So you think the ENC28J60 is so unimpressive that it is not worth leaning it's features.

No, the ENC28J60 apears to require advanced programming and knowledge skills which might be an issue. Search the board for discussions concerning the ENC28J60.

No, the ENC28J60 apears to require advanced programming and knowledge skills which might be an issue.

-- I'll second that as I am a newbie. I have both the enc28j60 and the W5100 and I feel the w5100 has a better standard library as well as easier to understand examples. I came across half a dozen different libraries for the enc28j60; some worked better then others. Also, the the soldering on my enc28j60 was just plain shoddy. After a week of fussing with an unresponsive board, I realized the smd resistors were improperly soldered. Obviously no one checked it after the manufacturing process. The w5100 fired up on the first go around with no problem. I think the specs are a little better for the W5100 too. I bought both because I was looking for a challenge, and it sure was.

seanz2003:
-- I'll second that as I am a newbie. I have both the enc28j60 and the W5100 and I feel the w5100 has a better standard library as well as easier to understand examples. ...

So the basic problem is that the library for W5100 is better and easier to use than anything available for the ENC28J60. There are several libraries for the ENC28J60 but none of them adequately abstract the functionality such they can be easily included in a sketch.

All, You can find here a translation of some notes taken by a fellow poster (@skywodd) in the French forum.
A link was also given there : http://www.lucadentella.it/en/category/enc28j60-arduino/

The notes needs to be refined, but help getting a view on what the Ethercard library allows you to do. Sharing of experiences and feedback/improvements on the documents are obviously more than welcome...

notes_skywodd_en.txt (7.57 KB)

The W5100 and the ENC28J60 both have their own edge and features, it may just cater for different needs. Here are two links for this kind of products:

W5100: http://imall.iteadstudio.com/m120525007.html
ENC28J60: http://imall.iteadstudio.com/im120525006.html

Best regards,
Wendy

@Wendy,

Unfortunately your links only include very few information. For example, there is no clear diagram with connector pinouts.
The 5100 board includes a 5V-3V3 regulator, but can it be used with a 3V3 supply as well ?
Nice to see you added a "useful links" page, but maybe you should populate it with something (like a link back to here :wink:

Could you also make a check on the consumption of the boards as said in the 28J60 review ? Regarding this review, I'm surprised that michael had DHCP issues, for me (using a DINo) it worked at the first try.

@All, I relaised that this post does not get high on search because some keywords aren't present by accident. For example Ethernet Ethernet Ethernet !

I would also like to add some nuances to the other posts in this thread. While the 28J60 indeed does require a bigger load on the CPU (no TCP in HW for example), this could also have advantages : for example, it is possible to support 6lowPAN in the future :slight_smile:

Also, DHCP is supported standard in EtherCard library, it's just a matter of choosing static or not.

tochinet:
@Wendy,

Unfortunately your links only include very few information. For example, there is no clear diagram with connector pinouts.
The 5100 board includes a 5V-3V3 regulator, but can it be used with a 3V3 supply as well ?

Please check the schematics in downloaded area. The second answer is Yes.

Wow, zero download on my file ! Impressive how people are uninterested in ENC28J60 cheap Ethernet for Arduino !!!

hi
i dont know tech. newbie
i referred net
it seems w5100 costs4 dollar(as per the following link)

nlogs48:
it seems w5100 costs4 dollar(as per the following link)
http://www.saelig.com/product/ETH014.htm

But that's a naked chip. Not a subsystem.

Hi,

KSduino support both W5100 & ENC28J60.
See How to connect ENC28J60 to KSduino in this article: http://ksdu.in/o/1d

RandallR:

seanz2003:
-- I'll second that as I am a newbie. I have both the enc28j60 and the W5100 and I feel the w5100 has a better standard library as well as easier to understand examples. ...

So the basic problem is that the library for W5100 is better and easier to use than anything available for the ENC28J60. There are several libraries for the ENC28J60 but none of them adequately abstract the functionality such they can be easily included in a sketch.

finally there's a library for ENC28J60 that implements the stock Ethernet-libraries API, you can run the Ethernet-examples that come with the Arduino-ide by just replacing the include "Ethernet.h" by "UIPEthernet.h"

  • Norbert

Since no one answered the first question, I will go ahead.

  • The first and most important difference (and the reason of the prices) is the speed. The ENC28J60 supports up to Ethernet speed (10Mbps), and the W5100 supports fast Ethernet speed (100 Mbps). You can confirm this with the chip package (SPDIP is a through hole package and this are made for slow technologies). This is on the Ethernet side, but on the microcontroller side (Arduino) this is different and this could mean a disadvantage for the W5100. I will explain this below.

  • Another difference is the control interface. The ENC28J60 only have SPI (serial) interface to communicate with a microcontroller, but the W5100 have also a parallel interface (instead of accessing just one bit at a time, you can have a whole word i.e. 8 bits). If you're going to use the Arduino Ethernet library this is meaningless because the Arduino library use only the serial interface (SPI).

  • The W5100 has four sockets for communication, this means that you can manage up to four independent communications (different IPs, different computers, etc), but the ENC28J60 has only one socket.

  • At last but not least (in fact this difference is very important) the ENC28J60 has a variable size SPI stream up to 16 bits (could be 8 bits also), but the W5100 has a fixed size stream of 32 bits. Both chips use one byte of data. This means, if both chips has the same clock, the W5100 will take more time to transmit just one byte, and if you are transmitting several bytes of data, this difference will be incremented.

  • Instead of the difference in the SPI stream, the W5100 SPI clock (up to 14 MHz) can be faster than the ENC28J60 (up to 10 MHz).

These are just the major differences.

Just wanting to get this post up because I'm wondering also and searching for the differences.

I think we cannot only take in consideration that the best is the one with the "easy-to-understand" library for newbies.

I'm probably not the only one willing to learn and dig deeper in the code to address other constraints.

On my side, I went to the ENC28J60 because it was cheaper and smaller than an Ethernet Shield.

My aim is to convert my experiments to standalone circuits when finished development (to have standalone and small boxes for home automation for instance), not to build big buildings of Arduino shields ...

But, I'm facing two more complex issues:

  1. Stability:
    I updated the Ethercard library, which is really simple to use, so I can send data bigger than the buffer, using multiple packets. But sometimes packets may not arrive and there is no packet management for resend, re-ordering etc. The library seems just to push out packets without ever monitoring what they become and what the client replies ...

  2. Sketch size:
    With 32K of program memory on an Arduino UNO, the Ethercard library uses much much space and I'm getting near 100% use with my "management" part (using Ethercard and LCD libraries) without actually doing any usefull stuff. Fixing the stability issue by adding code won't help get things better ...

So, I may give a try to the W5100 chip, which seems to be available under other formats than the Arduino shield:
http://fr.aliexpress.com/item/Free-shipping-W5100-Ethernet-module-Ethernet-network-module-for-arduino/32228891692.html

I just bought one of the ENC28J60 boards from ebay, I already have a standard Ethernet Shield which works fine.. im just looking at options.. fantastic information here !!

I like the ENC28J60 board because I can piggyback the small footprint directly onto another board and still keep the overall PCB size down

I see from previous comments that it is best sued alongside a ATMega1280 or hgher, as the '328 may not have enough flash/ram to cope with the Ethercard library

ANyway, thanks for the info :slight_smile:

Hi

Did some performance testing the ENC, here are the findings.
In the bar chart if you read < 1 Second it means between 750 & 1000ms, same for 500 which is between 250 and 500ms.

Hi christophedm

Can you attach the image with more resolution (or as an attachment), I cant read it from the page
Thanks