Fixed bug causing USBError after repeated polling

* Added a device reset() after each poll which seems to eliminate the USBErrors which were being thrown consistently after repeated polling.
* Added logging
* Moved commands to a global