Arduino Ethernet! When?

Hi all, I was reading about the arduino and I could think of 1001 things I could use it for, I really like the project and the effort everybody has put into it. I hope to contribute some things as soon as i've got it all figured out. I ordered an Arduino NG a couple of days ago, so hopefully it will arrive somewhere next week so that I can start experimenting :slight_smile:

While browsing through all Arduino related sites I noticed the following tinker.it page:
http://www.tinker.it/en/Products/ArduinoEth

This is really what I've been looking for.. I'd like to have an internet connected interface for a project. In this case you don't need an computer to remotely control the I/O ports on the Arduino over the internet. This is more a specific question for Massimo, when will it become available?

I'm also curious about the prototyping toolkit: "We're expanding our toolkit every month, subscribers get a shipment of new "experience elements" to use in their designs."
Are these components only available to subscribers or are there plans to release this stuff to the public (via webshop/pcb layouts/schematics)?

I sent tinker.it an email asking them the same questions about a month ago. I haven't heard back from them.

I did the same a week ago, no reply. Not even a 'hello' ... 'thanks for bothering to contact us'. Perhaps the idea's been shelved, it's all rather odd, such a nice picture of the ethernet board, but no follow ups :-?

New info on the Arduino Ethernet.

http://tinker.it/now/2007/06/06/the-arduino-ethernet-board/

This is exciting. I am currently on the lookout for a general purpose controller. I had already more or less decided on the http://www.bluemelon.org/index.php/Products/BM7504_BlueSense_ethernet_router because I need network access. Unfortunately, BlueMelon have scrapped their forum, so the "community feel" just isn' there.

The Arduino always seemed more interesting from the support and software/IDE side. If it gets network connectivity, that will make my job a lot easier!

It certainly would be great to get Ethernet on the Arduino board, but it is probably a little much for the ATMega to do all the TCP/IP/DHCP stuff.

I suggest looking at combining a serial-to-Ethernet ASIC based system like:

WizNet:
http://www.saelig.com/miva/merchant.mvc?Screen=PROD&Product_Code=ETH004&Category_Code=ETH

or what I've used, the Xport which is very solid and easy to use:

or the cheaper Xport Direct:

The Arduino Ethernet will have 32k of flash, it's enough to implement all those protocols

I would imagine it would cost more or less the same as the xport itself (but you get an arduino board)

massimo

I'm not up to speed on designing something just now but this XPort Embedded Ethernet Module | Lantronix
is so [insert censored word here] interesting I might offer one to a someone who has proven they can utilize it with the Arduino and share the results.

It is an ethernet jack that is a webserver, telnet server with 384kb for webpages/stuff. Etc. Processor is "Based on the DSTni-EX enhanced 16-bit, 48MHz or 88MHz, x86 architecture"

It has an AES encryption feature built in.

etc, etc, etc, :o :smiley: :wink:

Hi all, I was reading about the arduino and I could think of 1001 things I could use it for, I really like the project and the effort everybody has put into it. I hope to contribute some things as soon as i've got it all figured out. I ordered an Arduino NG a couple of days ago, so hopefully it will arrive somewhere next week so that I can start experimenting :slight_smile:

@mrmeval

try this

http://www.google.ca/search?q=arduino+xport

see ladyada's site for ethernet shield using aforementioned module.
http://www.ladyada.net/make/

The Xport looks pretty interesting. Now I need to figure out something cool to do with the darned thing.

I've downloaded the Xport User's Guide, and am reading the configuration instructions.

If one of you Internet guru's can sanity check the following connection idea, I'd appreciate it.

First of all, I have an always-on DSL connection, with dynamic IP periodically changed by my ISP. I have a wireless router and a Buffalo Linkstation NAS drive, with a built-in FTP server.

I use a free dyndns.org account to provide my FTP server a URL in the format ftp..dyndns.org. I've configured my router to send an email to dyndns.org each time my IP address changes. That always keeps ftp..dyndns.org pointing to my FTP server.

In my router, I've mapped port 21 to the hard IP address I've assigned the Linkstation.

To my utter amazement, it all seems to work.

So, would the same thing work to put the Xport on the air as a web server?

I'm thinking, assign the Xport a hard IP address. In the router, map port 80 to the Xport's IP. Would a connection to www..dyndns.org forward a connection to my IP address of the moment on port 80?

If so, it looks like I have a solid way of connecting the Xport to the net.

If that all works, the question becomes "what to do with it?" I'm open to ideas.

I gather I can load web pages. Can I export a Processing app to a web page, then load that page into the sever to get something intelligent running? And would such an app be able to talk to the Xport's serial port (and thus, to the Arduino?) Or is there an easier way of providing some automation?

A lot of this is probably RTFM stuff. Some of these questions might be answered in the User's Guide, but it didn't look like I'd find all the info there.

I'd appreciate any help and discussion you're willing to provide.

Thanks!

Tom

Tom, Tom Igoe's book Making Things Talk contains some pretty interesting ideas on how to apply XPORT and other devices to real life situations, using Arduino.

I have made an Arduino Ethernet shield based on Mircochip's ENC28J60 and an open-source TCP/IP library available for downloading.

There is the link for the post that I've just put on the forum --
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1206024602

The Xport looks pretty interesting. Now I need to figure out something cool to do with the darned thing.
I'm thinking, assign the Xport a hard IP address. In the router, map port 80 to the Xport's IP. Would a connection to www..dyndns.org forward a connection to my IP address of the moment on port 80?

If so, it looks like I have a solid way of connecting the Xport to the net.

If that all works, the question becomes "what to do with it?" I'm open to ideas.

That should all work fine.

The XPort does act as a webserver, but it is limited. There is no ability to run scripts on the XPort, only serving static web pages - except, you can write a java applet to store with your html which gets loaded and runs on the browser. This java applet can open a telnet type connection back to the XPort (you'd need another port open on your router) which will send the data through its serial port to your processor, your processor would then return the appropriate data to the XPort which sends it via the telnet connection to the java applet in the browser.

Phew.

The webserver memory on the XPort is split into 6 x 64k chunks. It means that a web page can be no more than 64k and (I'm not 100% on this) you only get 6 pages. (It might be more accurate to say 6 applications, I'm not sure).

Another thing - the datasheet overview mentions SMTP. As far as I can tell, you can only configure the device to send preset emails to a preset address based on the state of the GPIO pins.

Also, the XPort doesn't support DNS. If you want to use it to access information on a server on the internet (say page scrape traffic info for your city) you have to specify the IP address of the server. These are not fixed, which could cause problems in the future. A work around for this is to use PING and parse the IP address from that.

I think the XPort is a great little device, but it does have some limitations which are not apparent when first reading the datasheets.

Regards,

Mike

I suppose I should plug my Netduino Ethernet Expansion Shield and code library in this thread also. :slight_smile:

More details start in this thread.

--Phil.

I'd be very interested in seeing how much smaller the code is for a wiznet based solution (which does up through TCP/IP at least in hardware, but may be complex to talk to) vs a solution that does all the work on the AVR (but can be customized to only do the pieces needed.)

A very simple http server implemented on Arduino using the TCP/IP stack on the wiznet takes only a few lines of code. There is an example and I think uses some 250 lines of code corresponding to 3.5K sketch size and uses SPI to communicate with wiznet. Wiznet is about to announce a chip with 50Mbps transmission speed, the current chip supports up to 25Mbps... I think you need to use the direct addressing mode to get these speeds, instead of SPI. It is worth mentioning that the TCP/IP stack on the wiznet is much robust than the open source version.

a wiznet based solution (which does up through TCP/IP at least in hardware, but may be complex to talk to)

The vendor supplied a sample driver that provides a Unix-like socket interface which I have ported to create an Arduino library libw5100.

This code produces a simple serial <-> network proxy using the high level Serial-like interface of the NetworkConnection object (from simple_serial_proxy.pde):

  // Configure the network device
  SpiConfiguration SPI = SpiConfiguration();
  SPI.begin();
  W5100Device W5100 = W5100Device(PIN_RESET);
  NetworkInterface Network = NetworkInterface(W5100);

  // You need to customise these to your own environment
  Network.device.setIp(210,55,77,111);
  Network.device.setMask(255,255,255,128);
  Network.device.setGateway(210,55,77,1);

  Serial.begin(9600); // Read the output in the Arduino serial monitor
  
  while (1) {
    NetworkConnection conn = Network.listen(7);
    
    Serial.println("Waiting for client...");
    
    while (!conn.isConnected()) {
      delay(500);
    }

    Serial.println("Connected...");

    while (conn.isConnected()) {
       if (conn.available()) {
         Serial.print(conn.read(), BYTE);
       }

       if (Serial.available()) {
          conn.print(Serial.read());
       }
    }

  conn.close();
  Serial.println("Connection closed.");
      
  }

vs a solution that does all the work on the AVR (but can be customized to only do the pieces needed.)

Incidentally, the W5100 does provide raw network socket access as well so you could theoretically port the usual AVR network libraries to it also.

--Phil.

Wiznet is about to announce a chip with 50Mbps transmission speed, the current chip supports up to 25Mbps... I think you need to use the direct addressing mode to get these speeds, instead of SPI.

I found some somewhat vague W5100/WIZ810MJ throughput figures but suffice to say I don't think you'll be getting 50Mbps :slight_smile: or even 25Mbps via SPI--in fact I don't think SPI's even an option on the new W5300.

I would be interested to see what sort of numbers people get with libw5100 and a WIZ810MJ.

--Phil.

That should all work fine.

The XPort does act as a webserver, but it is limited. There is no ability to run scripts on the XPort, only serving static web pages - except, you can write a java applet to store with your html which gets loaded and runs on the browser. This java applet can open a telnet type connection back to the XPort (you'd need another port open on your router) which will send the data through its serial port to your processor, your processor would then return the appropriate data to the XPort which sends it via the telnet connection to the java applet in the browser.

Phew.

Regards,

Mike

Mike,

Many thanks for your reply.

Yes, I was aware of all you posted. That stuff was fairly well covered in the published documentation. What wasn't covered, and what I was unable to locate, was the specifics of using the web server to do something over the serial interface.

I decided that if the Xport folks don't care enough to document their chip, I don't care enough to waste any of my time or money on that flaky outfit's products. Life is too short.

I appreciate your time and effort.

Once again, many thanks.

Tom