I like the Robix controller but it's USB based, not serial port based. The advantage to this of course is that it doesn't require external power because USB ports provides power. You can control a ton of servos and it does have some I/O ports too. But the best part is that it has a client/server architecture. In other words, you could have the client software executing your commands and scripts, while the server software talks to the controller and controls the robot or gathers I/O. Since it's IP based, the server could be on a computer downstairs or anywhere across the Internet. The client/server communication is all handled for you. You need to write in Java to use it.