// NO INTERNAL MUTEX! Caller must synchronize
        public bool readUSB(ref byte[] buffer)
        {
            int errorCode = 0;

            SeaBreezeWrapper.seabreeze_read_usb(specIndex, ref errorCode, USB_RX_ENDPOINT, ref buffer[0], buffer.Length);

            string debug = "";

            for (int i = 0; i < buffer.Length; i++)
            {
                debug += String.Format(" 0x{0:x2}", buffer[i]);
            }
            logger.log("<< {0}", debug);

            return(errorCode == 0);
        }