Add hardware tests
Add some tests for the critical functionality of the code. The tests should be automate-able, but will only run from my desktop with the right hardware. A subsequent issue will handle setting up a specialized test runner.
Edited by Max Regan