Notes on libusb and pyusb
=========================

Libusb provides access to the USB bus from user space.  It uses the
files in /dev/bus/usb/*/*.  The following commands are useful on Linux:

List devices on the USB bus:
  lsusb
Add -d 16c0:05dc for a specific device, -v for more information.

List file permissions for bus 001 device 005:
  ls -l /dev/bus/usb/001/005
These permissions default to 660 group root.

List udev information for bus 001 device 005:
  udevadm info --query=all  --name=/dev/bus/usb/001/005 --attribute-walk
These items can be used in udev rules.

Default USB permissions do not allow a non-root user to write to the bus.
To change permissions, add a rule to /etc/udev/rules.d/local.rules like this:
  SUBSYSTEM=="usb", ATTR{idVendor}=="16c0" , ATTR{idProduct}=="05dc", MODE="0666", GROUP="dialout"
Then notify udev with "udevadm control --reload_rules", or /etc/init.d/udev/restart.  But
on my system, I need to plug in the SoftRock and reboot.

To install Libusb on Windows, follow the instructions in
    http://sourceforge.net/apps/trac/libusb-win32/wiki.
Run the program libusb-win32*/bin/inf-wizard.exe.
On Windows, when libusb-win32 is properly installed, Device Manager reports a
top-level device "libusb-win32 devices" and a sub-device "DG8SAQ-I2C".  Otherwise
it reports "Unknown Device" under "Universal Serial Bus controllers".
