I have attached some very early, unfinished, experimental drivers that have been tested with the following Ethernet shields:
* Arduino Ethernet Shield (original)
* Arduino Ethernet Shield (new design) requires soldering of optional 3x2 'ICSP' connector
* DFRobot Ethernet Shield
(...)
What you can do with this driver:
1. Send/receive data to devices/servers on the Internet (using System.Net.Sockets.Socket)
2. Request web pages
3. Act as a TCP server (web, web services, sockets, etc.)
3. Use web services
4. Stream data
EDIT: updated drivers posted on 25-Nov-2010
I can report that the experimental driver for Wiznet-based Ethernets shields works perfectly with the $20 WIZ811MJ module, connected to my Netduino Mini.
I used the test program that Chris provided, which needed only three minor adjustments to cope with the Mini (see below)
(...) // So that we can designate Netduino Mini pins: using SecretLabs.NETMF.Hardware.NetduinoMini; (...) namespace NetduinoWiznetTest { public class Program { public static void Main() { // configure our wiznet chip SecretLabs.NETMF.Net.Wiznet5100 wiznet = new SecretLabs.NETMF.Net.Wiznet5100(SPI.SPI_module.SPI1, Pins.GPIO_PIN_12); // configure our IP settings NetworkInterface networkInterface = NetworkInterface.GetAllNetworkInterfaces()[0]; networkInterface.PhysicalAddress = new byte[] { 0x5C, 0x86, 0x4A, 0x00, 0x00, 0x00 }; // test MAC address // Adjust to the network environment; here the router is at 192.168.1.1 networkInterface.EnableStaticIP("192.168.1.12", "255.255.255.0", "192.168.1.1"); (...) } } }
One detail worth mentioning, which in fact is the only issue that I've got. I started using GPIO_PIN_13 as the CS pin for SPI, and for some unknown reason, noticed that this pin was persistently high, even though I left it disconnected, just in the case of a wiring/soldering issue that would force its state. So I changed CS from GPIO_PIN_13 to GPIO_PIN_12 and it then worked: it consumed 10K of RAM, and took only 720ms to the Wiznet to fetch the first byte (the 'H' of HTTP) from Secret Labs home page, and a lots have happened at this point already, as you know. Indeed there is no DNS resolution involved but still, I was quite impressed. And the fact that the Netduino is smaller than the Ethernet module adds to the delight!
I can send detailed connection/schema/log information for those interested in troubleshooting their setting. Just let me know.
Great work Chris and folks at Secret Labs!
JP
From top to bottom: the WIZ811MJ module, a power supply module to feed the Wiznet with 3.3V, the Netduino Mini powered by a NiMH battery, and the USBto232 module for deployment & debugging.