Quote Originally Posted by hbx View Post
I'm looking at some available breakout boards now, and some feature the charge pump as some form of safety. How to the breakout boards implement this?
It's generally a circuit that enables the outputs, via some logic gates, when it detects a square wave of the right frequency on one of the port outputs. That square wave is outputted by the software, so the outputs are only active when, in your case, LinuxCNC is running. It stops the motors moving a tiny bit when you boot the computer, that's about it. I wouldn't worry if the breakout board you have doesn't have it.

Quote Originally Posted by hbx View Post
Also, regarding the use of more limit and home switches than available inputs, what's the most common solution? I saw the documentation on LinuxCNC which suggests connecting the switches in series. This doesn't seem to make much sense especially if the machine starts in a completely unknown state.
So long as you only press one (normally closed) switch at a time, then the software can use it for homing since it know which axis is moving, and thus which switch must have been pressed. If that still doesn't get you enough ports you can add a second parallel port - generally a PCI parallel port card.