The Smart Controller library provides variety of supported controllers that are ready to use. If you want to make a custom controller check out Smart Phone Controller page and the contribution guidelines.