Arduino hardware interface libraries... with test programs!
The interfaces can be port-configured to conform to your specific hardware. For example,
the stepper interface can be configured to use any three GPIO pins (step, dir, enb).
You can test hardware sections in isolation by running test programs found in this project. For example, the program StepperPulse allows the user to test a connected stepper by entering serial port commands.