Repair that there is a vendor control request issued before sending the command 0x00 0xFF 0xFF.
RequestType = 0x40 (which means vendor) Request = 0x02 Value = 0x02 Index = 0x00 There is no data payload. Try the following: import usb.core import usb.util # find our device dev = usb.core.find(idVendor=0x10c4, idProduct=0x0002) # was it found? if dev is None: raise ValueError('Device not found') # set the active configuration. With no arguments, the first # configuration will be the active one dev.set_configuration() ## HERE THE CONTROL TRANSFER dev.ctrl_transfer(bmRequestType=0x04, bmRequest=0x02, wValue=0x02) msg = [0x00, 0xFF, 0xFF] sent_bytes = dev.write(0x02, msg, 0, 100) Hopefully you can read some response from the device... Wander 2010/1/24 Romain Aviolat <r.avio...@gmail.com>: > Ooops my mail was too big, I pasted the log files on pastebin instead. > > Yes I did both sniffing, from linux with usbmon and from windows itself with > usbsnoop. > What I didn't do is starting sniffing when I plug the device, I always > started sniffing before pressing the "download data" button under windows > when the device was already connected. > > This first log file is from windows running usbsnoop when I plug the device. > I don't know if this traffic is generated from windows querying the device > or from the device driver initialising the device. > http://pastebin.com/f43a0c4a0 > > The second log file, always from windows, is when I press the "download > data" button from the device software, so nothing happened between this log > and the previous one on the usb port > http://pastebin.com/f7acda94a > > Hope you can help me, I'm really stucked at this point > > Thanks, > Romain > > > On Fri, Jan 22, 2010 at 2:43 PM, Romain Aviolat <r.avio...@gmail.com> wrote: >> >> There must be some earlier data exchange, either on the out/in >> endpoint or in the default control endpoint... As you sad you were >> using a Windows VM for reverse engineering, you can use a USB sw >> sniffer to check it... >> >> You can use that: http://sourceforge.net/projects/usbsnoop/ >> >> Wander >> >> 2010/1/22 Romain Aviolat <r.avio...@gm...>: >> > My device has 1 configuration, 1 interface, and two endpoints >> > >> > Bus 002 Device 002: ID 10c4:0002 Cygnal Integrated Products, Inc. F32x >> > USBXpress Device >> > Device Descriptor: >> > bLength 18 >> > bDescriptorType 1 >> > bcdUSB 1.10 >> > bDeviceClass 0 (Defined at Interface level) >> > bDeviceSubClass 0 >> > bDeviceProtocol 0 >> > bMaxPacketSize0 64 >> > idVendor 0x10c4 Cygnal Integrated Products, Inc. >> > idProduct 0x0002 F32x USBXpress Device >> > bcdDevice 1.00 >> > iManufacturer 1 Silicon Labs >> > iProduct 2 USB API >> > iSerial 3 1 >> > bNumConfigurations 1 >> > Configuration Descriptor: >> > bLength 9 >> > bDescriptorType 2 >> > wTotalLength 32 >> > bNumInterfaces 1 >> > bConfigurationValue 1 >> > iConfiguration 0 >> > bmAttributes 0x80 >> > (Bus Powered) >> > MaxPower 60mA >> > Interface Descriptor: >> > bLength 9 >> > bDescriptorType 4 >> > bInterfaceNumber 0 >> > bAlternateSetting 0 >> > bNumEndpoints 2 >> > bInterfaceClass 0 (Defined at Interface level) >> > bInterfaceSubClass 0 >> > bInterfaceProtocol 0 >> > iInterface 0 >> > Endpoint Descriptor: >> > bLength 7 >> > bDescriptorType 5 >> > bEndpointAddress 0x02 EP 2 OUT >> > bmAttributes 2 >> > Transfer Type Bulk >> > Synch Type None >> > Usage Type Data >> > wMaxPacketSize 0x0040 1x 64 bytes >> > bInterval 0 >> > Endpoint Descriptor: >> > bLength 7 >> > bDescriptorType 5 >> > bEndpointAddress 0x82 EP 2 IN >> > bmAttributes 2 >> > Transfer Type Bulk >> > Synch Type None >> > Usage Type Data >> > wMaxPacketSize 0x0040 1x 64 bytes >> > bInterval 0 >> > Device Status: 0x0000 >> > >> > I'm running ubuntu linux ans PyUSB1.0 you are right. >> > >> > >> > >> > On Fri, Jan 22, 2010 at 10:05 AM, Romain Aviolat <r.avio...@gm...> >> > wrote: >> >> >> >> This can be many things, does your device have more than one >> >> configuration or interface/alternate setting? And about the endpoint >> >> address? I see you are using PyUSB 1.0, are you running it under >> >> Windows? I haven't tested it in Windows yet (actually I did, but there >> >> are some issues that I did not fix yet, then I could not progress with >> >> tests). >> >> >> >> Wander >> >> >> >> 2010/1/21 Romain Aviolat <r.avio...@gm...>: >> >> > Hi, this my first time in this mailing list, >> >> > >> >> > I'm trying to reverse a device that has no support for Linux, I'm new >> >> > to >> >> > pyusb and have a problem with my script. >> >> > >> >> > I sniffed the USBlog from a virtual machine running windows and my >> >> > working >> >> > device here's the log: >> >> > >> >> > f53ed800 355026092 S Co:2:002:0 s 40 02 0002 0000 0000 0 >> >> > f53ed800 355027800 C Co:2:002:0 0 0 >> >> > f53ed800 355075185 S Bo:2:002:2 -115 3 = 00ffff >> >> > >> >> > If the device receive the 0x00, 0xFF, 0xFF sequence, it then send >> >> > it's >> >> > data >> >> > >> >> > Here's my code (mainly used the examples on the pyusb website) >> >> > >> >> > ------------------------ >> >> > import usb.core >> >> > import usb.util >> >> > >> >> > # find our device >> >> > dev = usb.core.find(idVendor=0x10c4, idProduct=0x0002) >> >> > >> >> > # was it found? >> >> > if dev is None: >> >> > raise ValueError('Device not found') >> >> > >> >> > # set the active configuration. With no arguments, the first >> >> > # configuration will be the active one >> >> > >> >> > dev.set_configuration() >> >> > >> >> > msg = [0x00, 0xFF, 0xFF] >> >> > sent_bytes = dev.write(0x02, msg, 0, 100) >> >> > ------------------------ >> >> > >> >> > and here's the output >> >> > >> >> > f341b700 484297497 S Co:2:003:0 s 00 09 0001 0000 0000 0 >> >> > f341b700 484299102 C Co:2:003:0 0 0 >> >> > f341b700 484312389 S Bo:2:003:2 -115 3 = 00ffff >> >> > >> >> > The 0x00, 0xFF, 0xFF sequence is correctly sent but the device >> >> > doesn't >> >> > send >> >> > it's data, we can see in the first line of both log that the >> >> > ControlOutput >> >> > is not the same, I think this is my problem. >> >> > >> >> > I don't know how to change 09 0001 0000 0000 to 40 02 0002 0000 0000 >> >> > >> >> > Hope someone can help me, >> >> > >> >> > Cheers, Romain >> >> > >> >> > >> >> > >> >> > >> >> > >> >> > ------------------------------------------------------------------------------ >> >> > Throughout its 18-year history, RSA Conference consistently attracts >> >> > the >> >> > world's best and brightest in the field, creating opportunities for >> >> > Conference >> >> > attendees to learn about information security's most important issues >> >> > through >> >> > interactions with peers, luminaries and emerging and established >> >> > companies. >> >> > http://p.sf.net/sfu/rsaconf-dev2dev >> >> > _______________________________________________ >> >> > Pyusb-users mailing list >> >> > pyusb-us...@li... >> >> > https://lists.sourceforge.net/lists/listinfo/pyusb-users >> >> > >> >> > >> > >> > >> > >> > ------------------------------------------------------------------------------ >> > Throughout its 18-year history, RSA Conference consistently attracts the >> > world's best and brightest in the field, creating opportunities for >> > Conference >> > attendees to learn about information security's most important issues >> > through >> > interactions with peers, luminaries and emerging and established >> > companies. >> > http://p.sf.net/sfu/rsaconf-dev2dev >> > _______________________________________________ >> > Pyusb-users mailing list >> > pyusb-us...@li... >> > https://lists.sourceforge.net/lists/listinfo/pyusb-users >> > >> > > > > ------------------------------------------------------------------------------ > Throughout its 18-year history, RSA Conference consistently attracts the > world's best and brightest in the field, creating opportunities for > Conference > attendees to learn about information security's most important issues > through > interactions with peers, luminaries and emerging and established companies. > http://p.sf.net/sfu/rsaconf-dev2dev > _______________________________________________ > Pyusb-users mailing list > Pyusb-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/pyusb-users > > ------------------------------------------------------------------------------ The Planet: dedicated and managed hosting, cloud storage, colocation Stay online with enterprise data centers and the best network in the business Choose flexible plans and management services without long-term contracts Personal 24x7 support from experience hosting pros just a phone call away. http://p.sf.net/sfu/theplanet-com _______________________________________________ Pyusb-users mailing list Pyusb-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/pyusb-users