Discussion:
[Libusb-devel] Problems with a program using libusb 1.0.
Anders Holmberg
2012-03-12 17:35:30 UTC
Permalink
Hello!
I am a new listmember with a lot of questions and very little knowledge
about libusb.
I have successfully used libusb win32 with a program called brltty which
is a service that puts out braille on a brailledisplay connected to the
usb port.
However now i've got a new motherboard with usb 3 support.
It has renesas usb3 controllers on it.
Now libusb win32 no longer works with it so i decided to use libusb 1.0
with brltty.
Sadly this does not work either.
It seems that the brltty service detects my brailledisplay but the
libusb driver seems not to work properly.
I have tried to upgrade the drivers for my usb ports to the latest with
no success.
As i stated above i know very little about these things so i really need
as much help as you're willing to give.
I am not a programmer either but really need this to work for me so i
can use my braille device properly under windows.
I use windows 7 64 bit.
The motherboard is an Asus P5g41t-m/usb3.
I can provide more info if you need.
Thanks in advance for any help.
/A
Tim Roberts
2012-03-12 18:06:25 UTC
Permalink
...Now libusb win32 no longer works with it so i decided to use libusb
1.0 with brltty.
Sadly this does not work either.
What are the symptoms? What actually happens when you try this?
As i stated above i know very little about these things so i really
need as much help as you're willing to give.
Part of the problem here is USB 3.0. Microsoft does not actually
support USB 3, and will not officially support it until Windows 8 comes
out. Thus, when you are running USB 3 on Windows today, you are running
a stack of drivers from the host controller manufacturer. It is the
"wild, wild west". There is no way to tell what set of rules that
manufacturer happened to use. The driver interfaces for USB are not
part of the USB specifications -- they have to come from the operating
system vendors.

The libusb team has had relatively good success, so it's likely that
your device CAN be made to work, but the team will need some more
information to figure out what's going on.
--
Tim Roberts, ***@probo.com
Providenza & Boekelheide, Inc.
Tim Roberts
2012-03-13 18:32:57 UTC
Permalink
The symptoms are that i can't see or read anything on the brailledisplay.
It seems that its not beeing detected.
You are running this on a 64-bit system. So, your device is the one
brltty.exe: USB: testing: vendor=0403 product=F208
brltty.exe: libusb_open error 40: Function not implemented.
brltty.exe: libusb_open error 40: Function not implemented.
brltty.exe: USB configuration descriptor not readable: 0
brltty.exe: USB configuration descriptor not found: 1
I don't know what class this device advertises itself as. If it is in a
device class that has a standard driver, then you would need to override
that driver so your application can gain control.

I checked the BRLTTY web page, and they don't have any Windows versions
at all. It's all Linux Where did you get your binary? Perhaps you
should contact them to see if they have any advice.
--
Tim Roberts, ***@probo.com
Providenza & Boekelheide, Inc.
Anders Holmberg
2012-03-14 12:16:24 UTC
Permalink
Hello!
Post by Tim Roberts
The symptoms are that i can't see or read anything on the brailledisplay.
It seems that its not beeing detected.
You are running this on a 64-bit system. So, your device is the one
Thats true.
brltty.exe: USB: testing: vendor=0403 product=F208
brltty.exe: libusb_open error 40: Function not implemented.
brltty.exe: libusb_open error 40: Function not implemented.
brltty.exe: USB configuration descriptor not readable: 0
brltty.exe: USB configuration descriptor not found: 1
I don't know what class this device advertises itself as. If it is in a
device class that has a standard driver, then you would need to override
that driver so your application can gain control.
I checked the BRLTTY web page, and they don't have any Windows versions
at all. It's all Linux Where did you get your binary? Perhaps you
should contact them to see if they have any advice.
Well here is a version for windows.
http://brl.thefreecat.org/brltty/brltty-win-4.3-4-libusb-1.0.exe
Akos Vandra
2012-03-14 12:21:17 UTC
Permalink
VID 0x0403 are ftdi chips, why not use the libftdi to communicate with it?

Regards,
Ákos Vandra
Post by Anders Holmberg
Hello!
The symptoms are that i can't see or read anything on the brailledisplay.
It seems that its not beeing detected.
You are running this on a 64-bit system. So, your device is the one
Thats true.
brltty.exe: USB: testing: vendor=0403 product=F208
brltty.exe: libusb_open error 40: Function not implemented.
brltty.exe: libusb_open error 40: Function not implemented.
brltty.exe: USB configuration descriptor not readable: 0
brltty.exe: USB configuration descriptor not found: 1
I don't know what class this device advertises itself as. If it is in a
device class that has a standard driver, then you would need to override
that driver so your application can gain control.
I checked the BRLTTY web page, and they don't have any Windows versions
at all. It's all Linux Where did you get your binary? Perhaps you
should contact them to see if they have any advice.
Well here is a version for windows.
http://brl.thefreecat.org/brltty/brltty-win-4.3-4-libusb-1.0.exe
------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
Libusb-devel mailing list
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Xiaofan Chen
2012-03-14 13:14:28 UTC
Permalink
Post by Tim Roberts
Post by Tim Roberts
I don't know what class this device advertises itself as. If it is in a
device class that has a standard driver, then you would need to override
that driver so your application can gain control.
I checked the BRLTTY web page, and they don't have any Windows versions
at all. It's all Linux Where did you get your binary? Perhaps you
should contact them to see if they have any advice.
Well here is a version for windows.
http://brl.thefreecat.org/brltty/brltty-win-4.3-4-libusb-1.0.exe
Since it uses libusb-1.0 Windows, did you install the WinUSB
driver to replace the existing vendor driver?
http://www.libusb.org/wiki/windows_backend (currently seems to be down).

You can use Zadig to install that winusb driver.
http://sourceforge.net/apps/mediawiki/libwdi/index.php?title=Main_Page

However, your device seems to be using a USB to serial converter,
in that case, you may use need to specify the serial port and not
to use usb at all as per the documentation.
--
Xiaofan
Tim Roberts
2012-03-14 16:58:22 UTC
Permalink
Post by Xiaofan Chen
However, your device seems to be using a USB to serial converter,
in that case, you may use need to specify the serial port and not
to use usb at all as per the documentation.
I think people are replying without taking a few moments to understand
the poster's situation. He is a sight-impaired person trying to use a
Braille printer, which happens to use an FTDI device (although the PID
is specific to the Braille printer). He's using a special Braille
printer utility that understands how to use this device, but the libusb
hookup isn't working. He is not (as I understand it) actually trying to
program with this device. He wants to use a tool that already
(supposedly) knows how to use the device.

To Anders, I think you need to go directly to the BRLTTY folks for
support. I'm not sure there is very much we can do for you.
--
Tim Roberts, ***@probo.com
Providenza & Boekelheide, Inc.
Anders Holmberg
2012-03-14 19:44:26 UTC
Permalink
Post by Tim Roberts
Post by Xiaofan Chen
However, your device seems to be using a USB to serial converter,
in that case, you may use need to specify the serial port and not
to use usb at all as per the documentation.
I think people are replying without taking a few moments to understand
the poster's situation. He is a sight-impaired person trying to use a
Braille printer, which happens to use an FTDI device (although the PID
is specific to the Braille printer). He's using a special Braille
printer utility that understands how to use this device, but the libusb
hookup isn't working. He is not (as I understand it) actually trying to
program with this device. He wants to use a tool that already
(supposedly) knows how to use the device.
To Anders, I think you need to go directly to the BRLTTY folks for
support. I'm not sure there is very much we can do for you.
Hi!
Ok thanks anyway for all help.
It was a plunge into the dark from me so no hard feelings here.
Yes i am using a braille display which translates the windows screen to
braille via the program brltty.
So i am not wanting to program anything here.
libftdi seems not to be compiled for windows anyway and i am not going
to try to do that.
Thanks anyway for all suggestions.
/A
Peter Stuge
2012-03-15 00:52:12 UTC
Permalink
Hej Anders!
Post by Anders Holmberg
now i've got a new motherboard with usb 3 support.
It has renesas usb3 controllers on it.
Now libusb win32 no longer works with it so i decided to use libusb
1.0 with brltty.
Sadly this does not work either.
The code exists for this to work also on the Renesas USB 3.0 ports,
but unfortunately the libusb-win32 to libusb-1.0 transition is not
yet seamless, since libusb-win32 and libusb-1.0 require different
kernel drivers.

libusb-win32 uses the libusb-win32 driver libusb0.sys, while
libusb-1.0 uses the Microsoft driver WinUSB.sys.

This means that the driver for the device must be changed.

The brltty-win-4.3-4-libusb-1.0 package includes a
brltty-libusb-1.0.inf file which I believe can be used to accomplish
this, but I'm afraid I can't say if it will work for you. You would
have to try it out. After upgrading the driver for the device to use
this .inf file then the brltty.exe program should just work.

README.first.txt in the brltty-win-4.3-4-libusb-1.0 package mentions
that it should be enough to right-click on bin/brltty-libusb-1.0.inf
unpacked from the zip, and then select Install.

In practise I have only had success installing WinUSB.sys using
libwdi-based applications, never using an .inf file. There is a GUI
application called zadig.exe for this purpose, but I don't know how
accessible that is. There is also a command line version, called
zadic.exe, and there is a minimal simple command line example
application called wdi-simple.exe. I built them just now for 64-bit
Windows and they include the WinUSB driver. If I have done everything
right the wdi-simple example should already use the correct USB id
for your device. You can download it from:

http://stuge.se/wdi-simple-winusb-papenmeier.exe

and in theory it should install the WinUSB.sys driver if you just run
it once. (But try using the .inf file in the brltty package first.)

I haven't tested it, so there might be some further detail missing.
I am e.g. unsure about the so-called device description, a text name
that may need to match the current description of the device which
Windows already knows. In that case, it may be better to use the
zadic.exe program, which I uploaded to:

http://stuge.se/zadic.exe

And which should be run as such:

zadic --usealldevices --vid 0x0403 --pid 0xf208

This should install the driver for the device.
Post by Anders Holmberg
It seems that the brltty service detects my brailledisplay but the
libusb driver seems not to work properly.
This is a typical symptom when the USB device is using the wrong
kernel driver for libusb.
Post by Anders Holmberg
I have tried to upgrade the drivers for my usb ports to the latest
with no success.
The key is to upgrade the driver for the device itself, not so much
for the USB ports. Unfortunately this whole driver business is very
different on Windows compared to other platforms supported by libusb.
But oh well.
Post by Anders Holmberg
I use windows 7 64 bit.
I built for 64 bit so the exes should work for you.


//Peter
Xiaofan Chen
2012-03-15 13:33:28 UTC
Permalink
Post by Peter Stuge
Hej Anders!
Post by Anders Holmberg
now i've got a new motherboard with usb 3 support.
It has renesas usb3 controllers on it.
Now libusb win32 no longer works with it so i decided to use libusb
1.0 with brltty. Sadly this does not work either.
Hi Anders, just wondering why you say "libusb-win32" no longer
works? Last time we tried it, it works fine with USB 3.0 host
controller.
Post by Peter Stuge
The code exists for this to work also on the Renesas USB 3.0 ports,
but unfortunately the libusb-win32 to libusb-1.0 transition is not
yet seamless, since libusb-win32 and libusb-1.0 require different
kernel drivers.
libusb-win32 uses the libusb-win32 driver libusb0.sys, while
libusb-1.0 uses the Microsoft driver WinUSB.sys.
This means that the driver for the device must be changed.
The brltty-win-4.3-4-libusb-1.0 package includes a
brltty-libusb-1.0.inf file which I believe can be used to accomplish
this, but I'm afraid I can't say if it will work for you. You would
have to try it out. After upgrading the driver for the device to use
this .inf file then the brltty.exe program should just work.
README.first.txt in the brltty-win-4.3-4-libusb-1.0 package mentions
that it should be enough to right-click on bin/brltty-libusb-1.0.inf
unpacked from the zip, and then select Install.
Right click can not be used to install device driver. Apparently the
author is not so sure, README.windows.txt file says like this.
"To actually be able to use the libusb-1.0 driver, right-click on
brltty/hotplug/brltty-libusb-1.0.inf and select install, or on braille
device plug, point at the brltty/hotplug/brltty-libusb-1.0.inf file."

The second file should work. But in the zip archive (now typing
under Mac OS X, so only open the zip archive) does not
have the brltty/hotplug/brltty-libusb-1.0.inf file.

The suggestion to use Zadig is good. zadic can also be used
but Zadig may be easier.
--
Xiaofan
Continue reading on narkive:
Loading...