High-performance General-Purpose I/O

Large, complex robots have lots of sensors and actuators. Talking to them all can be tricky, particularly since many/most bus architectures use different OS libraries to talk to them, making it hard to write cross-platform device drivers. Fortunately, Ethernet is (almost) OS-neutral, has high-performance kernel drivers wherever it is found, and has more bandwidth than any other peripheral bus except the bleeding-edge stuff like Intel's Thunderbolt and USB3, both of which are currently scarce in silicon if you aren't a giant OEM, and will likely be buried in OS-specific software stacks for a while. Additional unique benefits of gigabit Ethernet: it's routable, usable over long cables, and debuggable using awesome free tools like Wireshark.

My current prototype of a gigabit-ethernet based system is shown below. It has two gigabit ethernet PHY's to allow daisy-chaining down robot arms and whatnot. The FPGA is a Spartan-6 LX25 in the FT256 package, which is cheap and has a decent amount of I/O. About 110 I/O lines are routed to a high-density connector on the back of the board to allow applications such as motor controllers (stepper, DC, BLDC, etc.), cameras, structured light, general i/o, and so on.