Getting wiznet based shields to start every time

Hi,

I may be the only one who has had this problem. I couldn't find another post regarding this so I thought this might be help to someone else.

The problem:

I have found that getting the network shield to turn on successfully every single time was essentially not possible with the off-the shelf hardware.

I have been using the device with 5v into the USB port and also 7.5v into the power socket so this isn't a voltage issue (at least I don't think so).

With either 5v via USB or 7.5v as described above the network board would turn on 90% of the time.

The solution:

I've been using the ethernet shield PCB from Adafruit.

After careful examination I discovered there is a reset pin on wiznet chip that is not connected to anything on this PCB (other that a via that is).

I have simply run a wire from pin 8 (you could use any free one) to the RST via on this board. In my startup code i do the following:

  pinMode(8, OUTPUT);
  digitalWrite(8, HIGH);
  delay(50);
  digitalWrite(8, LOW);
  delay(50);
  digitalWrite(8, HIGH);
  delay(100);

This resets the wiznet chip itself and now I get a network connection every single time i power the device on.

Hope this helps someone. :slight_smile:

I can confirm this works. Someone I work with is using 5 or 6 arduinos to collect data on a network, and getting them all to come on from a cold start was a 10 minute ordeal.

To find the pin, look at the Ethernet Shield from above with all of the writing in the correct direction (board is sideways, analog pins closest to you, Wiznet Ethernet jack facing LEFT), the TOP LEFT pin in the upper black header that the Wiznet plugs into is the Wiznet's reset pin. There is a trace on the board coming from that pin, you can follow it to the 8 empty holes hiding under the Wiznet module. The second from the bottom on the right-side row is where the pin is broken out. It looks like lady ada had her thinking cap on when she designed this board.

hey guys, I have same problem.

I am powering my arduino + ladyada's shield + Wiznet811mj with 5v regulated power (no usb attached).

I have to press reset button after powring up my above setup.

I traced the reset from WIZMJ11 (pin next to WIZ811MJ lable on the module) to reset pin on shield and they are connected (shield came with a jumper fix 6 months ago).

Is there anything I can do to fix my issue ?

This is just a guess, but it could be a reset timing issue.

I also had problems at first, because I overlooked the reset jumper assembly step when building my Adafruit shield. I haven't seen any reset problems since I fixed that (but I haven't used the Ethernet shield as much as I'd like, so my experience isn't statistically significant).

I'm thinking that, depending on which bootloader you have, and the design of your sketches, it's possible you're trying to access the Wiznet before it's finished its own initialization (Remember that it's not just hardware: it has its own little CPU, that has to set up its own firmware). If it's working consistently after hitting the reset button, it could be because a power-on reset takes longer than a reset after it's already been up and running.

Try adding a delay() before your first call to the Ethernet library in the setup() function, somewhere in the range of 10-100mS. If my guess is right, giving the Wiznet that extra time would cure the problem.

Ran

Yes it works every time after pressing reset button on the shield.

I will try the delay.

Thx.

An interesting development: after my previous posting, I started on a new Ethernet-based project, and found myself having problems with unreliable reset on the Wiznet module.

This project uses a different model of Arduino, which may have a slightly-different hardware reset circuit.

Since I have spare I/O pins on this project, I made the change to control the reset from software, and it appears to have solved the problem.

Ran

I've had a similar problem, and it seemed to go away after I put in a capacitor between the reset and GND pins on the shield.

..this is my first post, and it doesn't like that I'm posting links..

this is where I got the solution from:

/cgi-bin/yabb2/YaBB.pl?num=1225354009/0

Thanks for the info, Santosh. I have two Adafruit shields (for now: one is going away soon to report on weather conditions at a remote site), so I can try both methods side-by-side.

What value capacitor did you use? The reports in the thread you pointed out seemed to indicate that 22nF was too little, but 100nF interfered with bootloading.

Ran

I tried it with 100nF. It didn't cause issues for me while uploading sketches. I guess you'd have to try different capacitors?