I have looked on google and have not see this documented anywhere, so I am not sure if it has something to do with my Ethernet Shield from Seeed Studio or there is an issue with the Ethernet Library.
I have a genuine Arduino Uno and a Ethernet Shield from Seeed Studio. The shield is version 1.1 06A12.
In any event, the issue occur when the MAC address starts with an odd number. Below is an example
byte mac[] = { 0xDF, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // 0xDF is an even number everything is fine.
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };// 0XDE is an odd number and networking doesn't work.
I have tried this across several different mac address, all exhibiting the same problem.
For testing purposes I used the example WebClient sketch that comes with Arduino and made 1 change, that being the ip address for my local network and everything works perfectly.
When I change the MAC address from 0xDF to 0XDE, networking no longer works.
I have tried this against other MAC addresses all exhibiting the same issue if the first Hex is an odd number.
Can someone else validate if they are having the same issue? I only have 1 Ethernet Shield, so I can't test on another shield.
Geez, I posted them backwards Obviously you are correct the DE is even and DF is odd. I also have the W5100 and the issue exists.
So either my Ethernet Shield is bad or the Seeed Studio Shield has an issue.
I am using a static IP address and only changing the MAC address on the shield. I have tried 20 different MAC addresses and the only time it occurs is when the first hex is an odd number. When I do an arp -a from my linux machine, the MAC address doesn't show when the first Hex is an odd number. When it is even, is shows up in the list.
Since I know the limitation it isn't too much of an issue for me, I just wanted to make sure it wasn't a bug in the Ethernet libraries. I would have be super surprised if it was, but you never know.