Go Down

Topic: DIY Ethernet shield (W5100) (Read 19096 times) previous topic - next topic


Sep 09, 2011, 05:09 pm Last Edit: Sep 09, 2011, 05:33 pm by Bojes Reason: 1
I've made an Ethernet shield compatible with the official one on
through-hole components. Works well just like the original E.shield.
Schematics are similar to the official one, but I have 47nf cap
on RST line to avoid the reset problem with W5100.

I've started this project in January 2011 but due to long delays with
PCB manufacturing and other business it reached the real product stage
just now. This was big fun, I had to study datasheets and prior
designs (like Wiznet's reference schematics, Ethernet shields from
Arduino and Freetronics) and learn about PCB routing.

Apart from PCB, total parts cost is about $12 ($6-7 for the IC, $2 for
the pimped RJ-45, the rest is about $3). PCB cost is about $7-10 on
small runs. So total cost is about $20.

Once you solder the 0.4mm-spaced LQFP chip ]:) (which was a minor pain
even with my burnt to crisp $5 noname iron), the rest of the board is very
easy to assemble even for novice hackers without pro soldering

I used gEDA suite to produce board schematics and layout, which
required little of custom symbols to be made. I've attached the
schematics image.

A number of problems became evident as soon as I completed my first
Things which would make the board better include lower crystal,
regulator leads leaned, bigger holes for ferrite beads and LED silk marks.
There's an updated design which adds SEN=!SCS invertor and merges
grounds, layout has been redone from scratch; I haven't manufactured
any of these.


Such cases.


Bojes, congratulations on getting your board built. It looks a nice and easy board to build


Well done! did you tested it with arduino?


Yes, it completely compatible with the official Ethernet library.


Speaking of hardware, it's completely compatible with Arduino as well. I just plugged it in and it all worked out of the box.
I'm doing a home sensor network project and W5100 board will be used on central node which gathers data from other sensors.
I use cheap ISM 433 MHz modules and VirtualWire to transmit data.

DS18S20-based temperature sensor prototype setup residing on my balcony is shown on the photo.
Another Arduino with W5100 is installed in another room and shows latest data received from the sensor
when I access it from my local network using laptop with wifi.


Dec 12, 2011, 02:24 pm Last Edit: Dec 12, 2011, 02:41 pm by ikaros Reason: 1
Pretty good job, but the WIZ chip seems impossible to solder properly for me, so I think i'll buy an original one hehe.


EDIT: could you please share with us the components list?


yes, it needs a toaster oven I reckon!
[ I DO NOT respond to personal messages, I WILL delete them unread, use the forum please ]


Parts list to first version:
Code: [Select]
| refdes            | device               | quantity | value        | footprint                              |
| CONN1             | 13F-64               |        1 | unknown      | 13F-6X-par                             |
| C1 C2 C3 C6 C7 C9 | CAPACITOR            |        6 | 100n         | ACY-25                                 |
| C4 C5             | CAPACITOR            |        2 | 18n          | ACY-25                                 |
| C11               | CAPACITOR            |        1 | 47n          | ACY-25                                 |
| CONN4 CONN5       | CONNECTOR_6          |        2 | unknown      | CONNECTOR 6 1                          |
| CONN2 CONN3       | CONNECTOR_8          |        2 | unknown      | CONNECTOR 8 1                          |
| X1                | CRYSTAL              |        1 | 25M          | HC49                                   |
| FB1 FB2           | ferrite_bead         |        2 | BL01RN1A1D2B | RES-600P-340L-190D__Yageo-M-TYPE-12.fp |
| J1                | JUMPER               |        1 | unknown      | CONNECTOR 2 1                          |
| D1 D2 D3 D4 D5 D6 | LED                  |        6 | unknown      | LED3                                   |
| U1                | MC33269              |        1 | unknown      | TO220W                                 |
| RN1               | NR1-4-9              |        1 | 1K           | NR1-4-9                                |
| C12 C13           | POLARIZED_CAPACITOR  |        2 | 100u         | RCY100                                 |
| C10 C8            | POLARIZED_CAPACITOR  |        2 | 10u          | RCY100                                 |
| R8                | RESISTOR             |        1 | 10K          | 0.125W_Carbon_Resistor                 |
| R6                | RESISTOR             |        1 | 12K 1%       | 0.125W_Carbon_Resistor                 |
| R11 R12 R9        | RESISTOR             |        3 | 1K           | 0.125W_Carbon_Resistor                 |
| R5                | RESISTOR             |        1 | 1M           | 0.125W_Carbon_Resistor                 |
| R7                | RESISTOR             |        1 | 300 1%       | 0.125W_Carbon_Resistor                 |
| R1 R2 R3 R4       | RESISTOR             |        4 | 49.9         | 0.125W_Carbon_Resistor                 |
| S1                | SWITCH_PUSHBUTTON_NC |        1 | unknown      | SW__Panasonic_EVQPA_Series             |
| U2                | W5100                |        1 | unknown      | LQFP_40P_1300L1_1300L2_80N__WIZnet     |


Second revision is still under construction
(I hope to get PCB's manufactured by summer).

A better main board with SD card, DS1307 and slots for radio modules
(RFM23 and simple ASK TX/RX modules) is in the works too, picrelated.

I'm doing this for yet another house automation system.

I'll post schematics and gerbers when it's done.
PM me if you would be interested in kits.


Nice work! What is the reset problem with the W5100 you mentioned? I have an "official" Arduino Ethernet shield and haven't had any reset issues that I'm aware of.


It was present on older revisions of official ethernet shield.
The problem is that Wiznet chip required long 0 signal on reset line
to start properly. The workaround (also used in Freetronics shield)
is to add a small capacitor on reset line.
The problem was resolved in later versions of shield (v5 and v6)
when they added STM811 controller to handle reset.


The problem was resolved in later versions of shield (v5 and v6)
when they added STM811 controller to handle reset.

Ah, that explains it. Pretty sure I have one with the reset controller. I've also been using some WIZ811MJ modules, and using a separate MCU pin to reset them.


Does this chip has to be  burn some bootloader or program. or it's built in function for MC?? i  want to do something similar with that chip


Nope, W5100 is ready to go without any extra firmware. Arduino MCUs use SPI to communicate to W5100.

Go Up