w6100 Ethernet initialize error


I am now using w6100 Ethernet shield with Arduino and connecting to a router. When using the example project (WebClient), it always shows “Failed to configure Ethernet using DHCP”. Has anyone met with the same problem before?

Is there a DHCP server in your network environment that supports IPv6?

The network does not support IPv6, but I tried to download from pullrequest-w6100 branch on github which seems to support IPv4 to me. However, it does not work either. Is there any library available to use w6100 on IPv4?

I tried to debug the code, and found that the arduino board did not recognize the w6100 chip, i.e. the return value of function isW6100 is not 1. I can confirm that the SS pin is correctly set. What is possible cause of the issue?

Update: I further look into the problem and find that the problem happens at following location:

writeSYCR0(0x0); // Software Reset

	do{												// Wait Lock Complete
		if(++count > 20) {							// Check retry count
			return 0;								// Over Limit retry count
	} while ((readSYSR_W6100() & W6100_SYSR_CHPL_LOCK) ^ W6100_SYSR_CHPL_LOCK);	// Exit Wait Lock Complete

After software reset, the softReset function will exist because the value of count will be larger than 20. As a result, W6100 is not recognized by arduino board.

Any help will be appreciated.

Hi, @Xinjun_Dong

W6100 ethernet shield has the same spi pin as arduino ethernet shield.

could you try web example code with the below code?

thank you

Hello Xinjun_Dong,

Please, refer to this URL(Howtouse · Wiznet/Ethernet Wiki · GitHub).

1 Like

Thanks for the reply, and the advancedChatServer works for me. However, when I am trying to use WebClient example, the program stuck at “Initialize Ethernet with DHCP:” , and I could not see the device in my router list. I have switched to a router that supports IPv6, and the setting is as follows:

I just checked and found that even though the advancedChatServer works for me, I did not see the device in the list of router either.

Please advise what is the possible cause of the problem. Also, I am also wondering where I can find a example of TCP client example using IPv4 for the shield.


Hi @Xinjun_Dong

Sorry for being late.

first you need to check ipv6 working with pc.

set ipv6 in router and connect pc to router on ipv6.
you can check if ipv6 is working or not with this website https://test-ipv6.com/ .
If router’ ipv6 works, all test will be passed.

if it is not passed, you can set ipv6 dns server manually

after that, try again ipv6 dhcp then share it.
thank you