From: Roger B. <ro...@ro...> - 2003-12-10 03:22:39
|
Steven Palm wrote: > Hey, my USB cable finally arrived, so now I can do some real world > testing. Here is what I saw on my first attempt to load data from the > phone: What cable is it? Is it a USB to serial convertor or a straight through connection. What does the System Profiler/Devices and Volumes tab say? The exceptions you are seeing: > BrewCommandException: Brew Error 0x0d > BrewCommandException: Brew Error 0x02 They are exactly what I get if I talk to the modem interface on the VX6000. Basically the phone has 3 interfaces when being spoken to directly via USB. The first two together form a standard USB modem interface. (Linux auto-binds a driver named ACM to it. Windows ignores it unless you supply a driver). The 3rd interface is the one that you have to talk the diagnostics protocols on. It is marked as a having a vendor specific protocol and no operating system automatically binds drivers to it. The good news is that I got libusb working, and that way BitPim can talk quite happily to the phone. I have no issues at all the 6000 on Linux using libusb. (The 4400 on the other hand - grrr). What you need to do is build the Python module. Look in the native/usb directory. You will need Swig installed. You also need libusb header and library installed. I can't tell from the libusb page if Macs already have the library installed or if you have to download it. I would imagine that the build process is astonishingly similar to the Linux one (in build.sh). You can then test it by running usb.py in that directory. The first bit of output should list your phone. Vendor id is 1004, product id is 6000. 1004/6000 010 <--- the 10 will be different for every user class USB_CLASS_COMM subclass 0 protocol 0 interface number 0 class USB_CLASS_COMM subclass 2 protocol 1 endpointaddress 0x1 TYPE_INTERRUPT interface number 1 class USB_CLASS_DATA subclass 0 protocol 0 endpointaddress 0xa TYPE_BULK IN endpointaddress 0xb TYPE_BULK OUT interface number 2 class USB_CLASS_VENDOR_SPEC subclass 255 protocol 0 endpointaddress 0x3 TYPE_BULK IN endpointaddress 0x6 TYPE_BULK OUT It then sends the memory config request to the phone. Your output should look like this: opening device getting configvalue value is 1 now about to set config config set claiming 2 device opened, about to write wrote, about to read Starting read request Ending readrequest read request read 10 bytes 'Y\x0c\x000\x8cb\x00*=~' Once that works, run the top level bitpim. The device should be detected and automatically used. Roger |