Add basic camera operation and config to support it

This is all work I did on my own fork before I had push permissions.