w5100 only works on my switch with 10 mpbs speed


I’m facing a problem with my router at home and ethernet shield. My router is a dlink DSL-2740E.

My arduino + ethernet shield w5100 only works if I manually down the speed of the port to 10 Mpbs.
Autonegotiation and 100 Mpbs do not work. The leds on shield all works (link, 100,fukk, rx, tx) but the board do not ping.

Whats happening? Any ideas?

Thanks in advance


I have a RB433AH with a MikroTik OS on it. It is set to auto-negotiation and it is now at 100Mbps on the ethernet shield interface. Works fine. Ping, client, server, etc.

I've had connectivity issues with my w5100's (3 of them - all from ebay) on my Arduino Uno R3 both with my d-link router and also generic 8port gbit switch. They would never negotiate successfully and instead cycle through the lights on the board - no connectivity at all.

I pulled the datasheet for the on-board wiznet chip and it refers to three pins that determine the operation mode. On my board each of the pins were grounded which effectively sets OPMODE to '000' - auto negotiate. I think some boards might allow you to control these pins through software but I don't believe mine is one of those.

I carefully cut pin 65's tiny leg from the board (using a Stanley knife blade and steady hand) to switch the board from OPMODE '000' auto-negotiate to '100' Manual selection of 100 BASE-TX FDX. Works a treat now, connection made first time every time on both switches. Yes I've lost auto-negotiation but to be fair the boards were useless to me as they were.

Not quite sure if this would help you but it may be that some w5100 variants have a hard time handshaking on particular brands/types of switches.

wiznet chip datasheet: https://www.sparkfun.com/datasheets/DevTools/Arduino/W5100_Datasheet_v1_1_6.pdf

look under PHY settings (page 10-11) pins 65,64,63.

Best Regards

Hey thanks.. I will try cut the pin.
But there is a way to do this via software..set manually to 10?

Thanks for the suggestion, sonneyboy. Before modification, shield would connect on tplink 5-port TL SG1005D but failed with 8-port D-Link DGS 2208.

After modification, still failed with D-Link but thankfully still works on the tplink, so no harm in trying.

How can I set my w5100 shield to auto negotiation mode using software ?
Please suggest any solution..

Best Regards.

How can I set my w5100 shield to auto negotiation mode using software ?
Please suggest any solution..

Best Regards.

There is no register in the w5100 that allows you to select the speed with software. Auto negotiation is selected by the hardware pins.

edit: The w5500 apparently does have this capability, but i don't have one to test with. It is common register 0x002E. The Wiznet library has the function in the w5500.h file to access that register.

uint8_t readPHYCFGR();
void writePHYCFGR(uint8_t data);

How to configure it is in page 43 of the w5500 datasheet


Thank you for the suggestion.


can any know how to do auto negotiation(by software) using arduino shield 2 w5500....
kindly help me folks.... :confused: