Garbage IO with Ethernet but fine with Ethernet2

Really not sure whats going on here. I have an app running with Ethernet2 for the past year that I figure I should move to Ethernet as most issues have already been fixed with the shipped Ethernet module. I started having issues after moving to the official library (yes, I included SPI.h) and decided to test with one of the examples.

The Chat server example works fine if I use Ethernet2.h, if I use Ethernet.h and SPI.h I get garbage as soon as a client connects. This is running Arduino-0021.

Any pointers?

What client is connecting? Do you get valid data after the initial garbage if you type messages?

I connect with telnet. The same garbage streams non-stop until I disconnect. I have tried with a different arduinos, different telnet clients, I have tcpdumped the telnet connection (nothing). It works find with ethernet2.h, just not with ethernet.h

This is using just about any network code, I have simplified and used the chatserver example code shipped with arduino-0021 (also tried -0022) so that I could confirm it wasnt my code, and same deal.

I’m getting data after (sometimes before) the valid data.

Ill get like 13 ‘good’ packets, 60 bytes long, then ill get a lot of packets 1514 bytes long filled with gibberish and sometimes with the message in there multiple times, at the start or end. then one 572 byte packet with gibberish before i get a 13 good ones again. If i make the message longer ill get a smaller number of good packets. The IP/ports from the packets sent are always valid.

I tried with TCP too and also got gibberish

#include <SPI.h>
#include <Ethernet.h>
#include <Udp.h>

char blah[] = "Im a little teapot";
byte rip[] = {192,168,1,3};

void setup() {
  byte mac[] = { 0xD4, 0x44, 0x42, 0x42, 0x46, 0x46 }; 
  byte ip[] = {192,168,1,4};
 // byte gw[] = {192,168,1,254};

void loop(){



Out of curiosity, does anyone have ethernet.h working correctly? :) If so, what hardware are you using? I am using the adafruit shield with a wiznet module.