Ian Powell what results (as root) this command: for i in $( seq 3 ) ; do echo $i ; /usr/lib/cups/backend/usb ; done versus that command (all on one single command line): for i in $( seq 3 ) ; do echo $i ; ./usbreset /dev/bus/usb/001/005 ; /usr/lib/cups/backend/usb ; done (replace /dev/bus/usb/001/005 with the currently right value according to your "lsusb" output).