I'm interested in building a little (commercial) device on top of Arduino. I want it to be able to interface with network. Network as in standard Ethernet, Cat5, RJ-45, etc.
I know that there is an Ethernet Shield, but it costs even more than the Arduino itself, and it's pretty big. Naturally, I want my device to be as small and as cheap as possible.
So I'm thinking about recreating an Ethernet module myself. The problem is - I haven't got any experience with Ethernet, nor do I have a good idea where to start looking. Thus I can't even say if my ideas are feasible.
Ultimately I would like the device to have three ports - one for incoming signal, two for outgoing, so the device is essentially a little switch where it is plugged in itself as well. The switching capabilities need not be very fast - the volume of data will be low. 10Mbit is more than enough, can be even slower.
If that is not possible, a single port for controlling the device itself will also do.
Another possibility I'm considering is power line communications - sending information through power lines. That's another area I've no experience with. What hardware should I be looking at, and where can I find information about the necessary software?
So - can anyone tell me if these ideas are feasible, and if yes - where should I start looking?
It's feasible, but you're going to need to delve deep into layer 2 of the network stack, especially if you want to build a tiny switch. If you steer clear of layer 3 you can avoid having to implement your own IP stack which would be a major pain.
I'd recommend starting with fully understanding how layer 2 works, from top to bottom. Once you've got a solid grasp of what's going on, especially with regards to the Ethernet spec, then you can worry about how you'd go about doing that on an Arduino. I don't have that much experience with the Arduino, but a buddy of mine implemented a layer 2 hardware stop-and-wait protocol on an FPGA a few weeks ago, so you should be able to get at least something rolling. you probably won't be able to go any faster than 10 Mbit unless you've got a pretty fast clock, though.