Dual NIC Arduino

I am looking at putting together an Arduino Ethernet with an Arduino Ethernet Shield to create a dual nic environment. Has anyone else done this? If so, what are the limitations of this setup? If not, is this possible with these components?

I have not tried this, but it seems theoretically possible. You would need to do some pin bending to move the ethernet shield slave select to another pin, like D9, then modify the existing library to use that pin also when accessing the shield. If you would have enough memory and power to do that would be questionable.

SurferTim:
You would need to do some pin bending

... or use an interceptor shield such as the Mayhew Labs inbetween shield, or connect the second shield by wires (that could be done reasonably cleanly using a set of male/female header connectors and some short sections of ribbon cable).

I am wondering what your achieving with dual NICs. Are you bridging two networks? Maybe you would be better off using a switch/router. If your trying to achieve redundancy, then the Arduino is probably the wrong platform.

If it's envisaged as something to carry any network traffic between the two networks then performance - or lack of it - would likely be a major issue. In that case it'd be better to look at reflashing a router as KrazeyNKrusty suggests.

KrazeyNKrusty:
I am wondering what your achieving with dual NICs. Are you bridging two networks? Maybe you would be better off using a switch/router. If your trying to achieve redundancy, then the Arduino is probably the wrong platform.

I am looking to create a small footprint device that will allow me to filter network traffic by IP address range.

PeterH:
If it's envisaged as something to carry any network traffic between the two networks then performance - or lack of it - would likely be a major issue. In that case it'd be better to look at reflashing a router as KrazeyNKrusty suggests.

I am looking to filter out ip addresses (by range). I have looked at routers; however, I only need 2 ports and a small form factor. I do not need any additional tools/features/services other then the address range filter and am having a time trying to find something that fits this bill.

TotalComm:
I am looking to create a small footprint device that will allow me to filter network traffic by IP address range.

I don't know what sort of LAN speed you are expecting to handle but the Arduino has nowhere near the capacity to handle the bandwidth you could reasonably expect to be used on a conventional Ethernet LAN.

Why don't you just put a dual NIC router in there and configure it to do whatever you want with the different address ranges? It might not even need to be dual NIC, depending what you're really trying to achieve. What are you considering as 'small form factor'? Is something like a DSL router small enough? They're available dead cheap and can be configured to do the sort of routing you're looking for by somebody familiar with network routing.

I think it is beyond theory now. I'm testing my new ethernet library function "Ethernet.select()". I can access the ethernet shield with D10 bent and the slave select jumpered to D9, and all works well. It required a few library mods, but not too bad.

Would you like to test it? I can post the changes if you are interested.

SurferTim:
I think it is beyond theory now. I'm testing my new ethernet library function "Ethernet.select()". I can access the ethernet shield with D10 bent and the slave select jumpered to D9, and all works well. It required a few library mods, but not too bad.

Would you like to test it? I can post the changes if you are interested.

I would be interested in what you've found.
Thanks!

Here is my post with the changes.
http://forum.arduino.cc/index.php?topic=217423.msg1601862#msg1601862

You would need to call Ethernet.select() with the slave select for the w5100 you wish to access each time you want to change NICs.

So stupid, I didn't have notify turned on and just saw your post today... ironically I found your other topic doing searches and PMd you. I'm working to try to test but am getting compile errors. I'll update more as I go.

I'd be interested if you had suggestions for how to integrate the W5200 chip into your 5100 code?
I had found this with an example of the 5200 integration well.

SurferTim:
Here is my post with the changes.
Change SS pin on Ethernet Shield - #10 by SurferTim - Networking, Protocols, and Devices - Arduino Forum

You would need to call Ethernet.select() with the slave select for the w5100 you wish to access each time you want to change NICs.

Thanks for your help and example code. I was able to successfully integrate everything together. I was wondering how you handle reusing the same W5100 class? I have a problem now that if you unplug one of the Ethernet cables the SNSR status kills my ability to use BOTH interfaces. If I plug it back in they immediately start responding.