Activation Codes and Methods, Hardware Details, Sniffing
leonarwen
Posts: 8
Joined: 17 Dec 2009, 05:00

Help on BandLuxe C170 (HSDPA)!

Post by leonarwen » 17 Dec 2009, 05:17

Is there any body work on BandLuxe C170 USB and successfully setup in USB_ModeSwitch?
As I can find in forum, only C120.
And it seems not only one command to switch. it needs 6 commands a least.

What I met the problem is,
After I sent one command to C170 USB and USB_ModeSwitch report it has been detached, I cannot send the second command to USB_ModeSwitch because it return it failed on error code -145.

How does it come?

Josh
Site Admin
Posts: 6570
Joined: 03 Nov 2007, 00:30

Post by Josh » 17 Dec 2009, 09:47

There is no guarantee that the C170 is behaving in the same way as the C120.
In fact, you seem to be lucky because the device has probably switched all right with only one command - that's the way it should be!

Now be so kind and post the data of this device:
  • the device IDs before and after running USB_ModeSwitch ("lsusb")
  • the output of "lsusb -v -d <YourVendorID>:<YourProductID>" after running USB_ModeSwitch
  • the device identification strings that USB_ModeSwitch prints out when running
Then we can move on to get the device working.

leonarwen
Posts: 8
Joined: 17 Dec 2009, 05:00

Post by leonarwen » 23 Dec 2009, 13:05

Hi, Josh,

It is not easy to switch via a singal command.
Last time, I used usb_modeswitch 0.94.
Now, I update to v1.06.
My "dmesg" is:
------------------------------
scsi1: SCSI emulation for USB Mass Storage devices
Vender BandRich Model: CDROM Rev: 2.01
Type: CD-ROM ANSI SCSI revision: 02
WARNING: USB Mass Storage data integrity not assured
USB Mass Storage device found at 3
usb.c: usb-storage driver claimed interface 81d31e60
------------------------------
After I get some commands data via sniffUSB/WinXP,
when I switch manually...
=====
1st:
usb_modeswitch -v 0x1a8d -p 0x1000 -m 0x01 -M 5553xxxxx
....
Looking for active driver ...
OK, driver found <"usb-storage">
OK, driver "usb-storage" detached
=====
Message can be sent out successfully.
But, I checked in 'lsusb', it has nothing change.
And I tried to enter next message.
=====
2nd:
usb_modeswitch -v 0x1a8d -p 0x1000 -m 0x01 -M 5553xxxxx
....
Looking for active driver ...
No driver found. Either detached before or never attached.
(no response)
=====
Therefore, I tried following command, it can be reset.
=====
usb_modeswitch -v 0x1a8d -p 0x1000 -I 0x81d31e60 -R
....
Reseting usb device .
OK, device was reset.
=====

Do I did the right thing?
Besides, I found interface "0x81d31e60" is different after rebooting.
How can I locate the correct interface?

Thanks

Josh
Site Admin
Posts: 6570
Joined: 03 Nov 2007, 00:30

Post by Josh » 24 Dec 2009, 01:03

Again, be so kind and post the information I requested.

leonarwen
Posts: 8
Joined: 17 Dec 2009, 05:00

Post by leonarwen » 24 Dec 2009, 05:28

Josh wrote:Again, be so kind and post the information I requested.
Ok, here you are:

Code: Select all

[admin@asus usb_modeswitch-1.0.6]$lsusb | grep 1a8d
Bus 003 Device 003: ID 1a8d:1000
[admin@asus usb_modeswitch-1.0.6]$./usb_modeswitch -v 0x1a8d -p 0x1000

Looking for default devices ... 
 Found default devices (1) 
Accessing device 003 on bus 003 ... 
Using endpoints 0x01 (out) and 0x81 (in) 
Inquiring device details; driver will be detached ... 
Looking for active driver ... 
 OK, driver found ("usb-storage") 
 OK, driver "usb-storage" detached 

SCSI inquiry data (for identification)
------------------------- 
  Vendor String: BandRich
 Model String: CD-ROM          
 Revision String: 2.01
------------------------- 

USB description data (for identification) 
------------------------- 
Manufacturer: BandRich, Inc
     Product: BandLuxe 3.5G HSPA Adapter
  Serial No.: 358093020730589
------------------------- 
Warning: no switching method given. 
-> Run lsusb to note any changes. Bye.
[admin@asus usb_modeswitch-1.0.6]$lsusb | grep 1a8d
Bus 003 Device 003: ID 1a8d:1000
[admin@asus usb_modeswitch-1.0.6]$

Josh
Site Admin
Posts: 6570
Joined: 03 Nov 2007, 00:30

Post by Josh » 24 Dec 2009, 09:53

Unfortunately, your "lsusb" output is not very useful.

Please note the full output of this command (the colon is important):

Code: Select all

# lsusb -v -d 1a8d:
Then use the switching message that you have used in the first place (from the C120).

Then do it again to see "error -145".

Then do the same lsusb call again and post the full output of both calls here. Please do not edit it.

leonarwen
Posts: 8
Joined: 17 Dec 2009, 05:00

Post by leonarwen » 24 Dec 2009, 13:30

Josh wrote:

Code: Select all

# lsusb -v -d 1a8d:
Then do it again to see "error -145".
ok, "error -145" is what I saw in usb_modeswitch v.0.9.4.
Now, I changed to 1.0.6
My steps as following:

Code: Select all

[admin@asus usb_modeswitch-1.0.6]$ lsusb -v -d 1a8d:1000

Bus 003 Device 003: ID 1a8d:1000
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x1a8d
  idProduct          0x1000
  bcdDevice            0.00
  iManufacturer           2 BandRich, Inc.
  iProduct                1 BandLuxe  3.5G HSPA Adapter
  iSerial                 3 358093020730589
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          4 BandLuxe Configuration
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk (Zip)
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0000
  (Bus Powered)

[admin@asus usb_modeswitch-1.0.6]$ ./usb_modeswitch -v 0x1a8d -p 0x1000

Looking for default devices ...
 Found default devices (1)
Accessing device 003 on bus 003 ...
Using endpoints 0x01 (out) and 0x81 (in)
Inquiring device details; driver will be detached ...
Looking for active driver ...
 OK, driver found ("usb-storage")
 OK, driver "usb-storage" detached

SCSI inquiry data (for identification)
-------------------------
  Vendor String: BandRich
   Model String: CDROM
Revision String: 2.01
-------------------------

USB description data (for identification)
-------------------------
Manufacturer: BandRich, Inc.
     Product: BandLuxe  3.5G HSPA Adapter
  Serial No.: 358093020730589
-------------------------
Warning: no switching method given.
-> Run lsusb to note any changes. Bye.
Now, I list usb again...

Code: Select all

[admin@asus usb_modeswitch-1.0.6]$ lsusb -v -d 1a8d:1000

Bus 003 Device 003: ID 1a8d:1000
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x1a8d
  idProduct          0x1000
  bcdDevice            0.00
  iManufacturer           2 BandRich, Inc.
  iProduct                1 BandLuxe  3.5G HSPA Adapter
  iSerial                 3 358093020730589
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          4 BandLuxe Configuration
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk (Zip)
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0000
  (Bus Powered)
Nothing changed! Ok, I try to send a command:

Code: Select all

[admin@asus usb_modeswitch-1.0.6]$ ./usb_modeswitch -v 0x1a8d -p 0x1000 -m 0x01
-M 555342430810d3872400000080000612000000240000000000000000000000

Looking for default devices ...
 Found default devices (1)
Accessing device 003 on bus 003 ...
Using endpoints 0x01 (out) and 0x81 (in)
Inquiring device details; driver will be detached ...
Looking for active driver ...
 No driver found. Either detached before or never attached

SCSI inquiry data (for identification)
-------------------------
  Vendor String: BandRich
   Model String: CDROM
Revision String: 2.01
-------------------------

USB description data (for identification)
-------------------------
Manufacturer: BandRich, Inc.
     Product: BandLuxe  3.5G HSPA Adapter
  Serial No.: 358093020730589
-------------------------
Setting up communication with interface 0 ...
Trying to send the message to endpoint 0x01 ...
 OK, message successfully sent
-> Run lsusb to note any changes. Bye.
Send secessfully.

leonarwen
Posts: 8
Joined: 17 Dec 2009, 05:00

Post by leonarwen » 24 Dec 2009, 13:36

Ok, now, I check in listusb:

Code: Select all

Bus 003 Device 003: ID 1a8d:1000
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x1a8d
  idProduct          0x1000
  bcdDevice            0.00
  iManufacturer           2 BandRich, Inc.
  iProduct                1 BandLuxe  3.5G HSPA Adapter
  iSerial                 3 358093020730589
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          4 BandLuxe Configuration
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk (Zip)
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0000
  (Bus Powered)
Still cannot find anything changed!
Ok, I tried to send command again!

Code: Select all

[admin@asus usb_modeswitch-1.0.6]$ ./usb_modeswitch -v 0x1a8d -p 0x1000 -m 0x01
-M 55534243003ec8882400000080000612000000240000000000000000000000

Looking for default devices ...
 Found default devices (1)
Accessing device 003 on bus 003 ...
Using endpoints 0x01 (out) and 0x81 (in)
Inquiring device details; driver will be detached ...
Looking for active driver ...
 No driver found. Either detached before or never attached

^C
weird! it hang without response... Try to reset again:

Code: Select all

[admin@asus usb_modeswitch-1.0.6]$ ./usb_modeswitch -v 0x1a8d -p 0x1000 -R

Looking for default devices ...
 Found default devices (1)
Accessing device 003 on bus 003 ...
Using endpoints 0x01 (out) and 0x81 (in)
Inquiring device details; driver will be detached ...
Looking for active driver ...
 No driver found. Either detached before or never attached

^C
Still the same...
But if I use "/I" interface to reset, that could be work.
Finally, I found something interesting in dmesg:

Code: Select all

...
WARNING: USB Mass Storage data integrity not assured
USB Mass Storage device found at 2
usb.c: usb-storage driver claimed interface 81d31de0
scsi1 : SCSI emulation for USB Mass Storage devices
  Vendor: BandRich  Model: CDROM             Rev: 2.01
  Type:   CD-ROM                             ANSI SCSI revision: 02
WARNING: USB Mass Storage data integrity not assured
USB Mass Storage device found at 3
usb.c: usb-storage driver claimed interface 81d31e60
USB Mass Storage support registered.
vlan1: Setting MAC address to  00 17 31 e4 b7 1f.
VLAN (vlan1):  Underlying device (eth0) has same MAC, not checking promiscious
ode.
vlan1: add 01:00:5e:00:00:01 mcast address to master interface
kjournald starting.  Commit interval 5 seconds
EXT3 FS 2.4-0.9.19, 19 August 2002 on sd(8,1), internal journal
EXT3-fs: recovery complete.
EXT3-fs: mounted filesystem with ordered data mode.
Adding Swap: 28792k swap-space (priority -1)
usbdevfs: USBDEVFS_CONTROL failed dev 3 rqt 128 rq 6 len 4 ret -32
usb.c: usbdevfs driver claimed interface 81d31e60
usbdevfs: USBDEVFS_CONTROL failed dev 3 rqt 128 rq 6 len 4 ret -32
usb.c: usbdevfs driver claimed interface 81d31e60
usbdevfs: process 366 (usb_modeswitch) did not claim interface 0 before use
usb.c: usbdevfs driver claimed interface 81d31e60
usbdevfs: USBDEVFS_CONTROL failed dev 3 rqt 128 rq 6 len 4 ret -32
usb.c: usbdevfs driver claimed interface 81d31e60
usb.c: usbdevfs driver claimed interface 81d31e60
[admin@asus usb_modeswitch-1.0.6]$
There is a error message comes out from usbdevfs after I found it has no response.

What the problem could be?

Josh
Site Admin
Posts: 6570
Joined: 03 Nov 2007, 00:30

Post by Josh » 24 Dec 2009, 20:56

O.K., now I can see what you see.

What happens if you try the MessageContent from the C120?
(55534243123456781200000080000603000000020000000000000000000000)

The C120 has the NeedResponse flag; did you try to add option "-n"?

You mentioned a sniffing log from Windows. Can you post that on "pastebin.com" and give us the link?

Some hints for your experiments:
  • To start with a defined state, replug the device before each time you make a new try to switch
  • Don't give the endpoint on the command line, it is determined automatically. Leave away the "-m" option.

leonarwen
Posts: 8
Joined: 17 Dec 2009, 05:00

Post by leonarwen » 25 Dec 2009, 05:43

Josh wrote:You mentioned a sniffing log from Windows. Can you post that on "pastebin.com" and give us the link?
Sure, I sent the total USBSniff log on
http://pastebin.com/m14d7f50f

I collect every messeage sent to [endpoint 0x00000001] which like switch command as below:
http://pastebin.com/m6c1b49a

I hope it will be more clear.
Thanks for your kindly help. :wink:

leonarwen
Posts: 8
Joined: 17 Dec 2009, 05:00

Post by leonarwen » 25 Dec 2009, 09:31

Yes, I didn't add "Need response" flag.

Finally,I found something I did switch mode successfully by followin 3 commands (Message Content):

Code: Select all

00000000: 55 53 42 43 00 3e c8 88 00 00 00 00 00 00 06 1e
00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00000000: 55 53 42 43 08 70 e9 87 00 00 00 00 00 00 06 00
00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00000000: 55 53 42 43 a8 e4 06 89 00 00 00 00 00 00 06 1b
00000010: 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00
After lsusb twice:

I can see the new detected usb port (0x1a8d:0x1009)

Thanks for your great hint.
I am going to connect modem on the next step...

Josh
Site Admin
Posts: 6570
Joined: 03 Nov 2007, 00:30

Post by Josh » 25 Dec 2009, 09:53

Great news!

But do you really have to send all three commands? What happens if you send only the last one (with "06 1b" in it) ??

Anyway, the next thing to do is to see if a driver has recognized the switched device. After switching, look at the output of "dmesg" and check if "ttyUSBx" or "ttyACMx" are mentioned, the "x" being a number. If not, say:

Code: Select all

# modprobe -v option
# echo "1a8d 1009" > /sys/bus/usb-serial/drivers/option1/new_id
Then do "dmesg" again.

leonarwen
Posts: 8
Joined: 17 Dec 2009, 05:00

Post by leonarwen » 28 Dec 2009, 05:01

Josh wrote:Great news!
But do you really have to send all three commands? What happens if you send only the last one (with "06 1b" in it) ??
Yes, exactly! I have tried all combinations. At least, I need use three commands to switch mode.
Anyway, thanks a lot.
I found ttyUSB and connect to pppd successfully.

Thanks again.

CCTU
Posts: 14
Joined: 02 Jun 2010, 14:23

Post by CCTU » 02 Jun 2010, 15:25

Thanks for your tutorial.
But I meet a big problem.
I could not point out which message content is USB_ModeSwitch need.

My device is BandLuxe C170.
My lsusb log is
http://dl.dropbox.com/u/2495108/lsusb.log
My SniffUSB/XP log is
http://dl.dropbox.com/u/2495108/UsbSnoop.log

There have many messages suit to "endpoint 0x00000001"
So I try this first message for "endpoint 0x00000001"
in line 293 of SniffUSB log file.
"
PipeHandle = 88f2249c [endpoint 0x00000001]
TransferFlags = 00000000 (USBD_TRANSFER_DIRECTION_OUT, ~USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 0000001f
TransferBuffer = 890f4598
TransferBufferMDL = 00000000
00000000: 55 53 42 43 18 18 c0 88 24 00 00 00 80 00 06 12
00000010: 00 00 00 24 00 00 00 00 00 00 00 00 00 00 00
"
But when copy it as MessageContent, it failed.
(I modified MessageContent item of /etc/usb_modeswitch/1a8d:1000 whitch is config of C120)
the file modified is http://dl.dropbox.com/u/2495108/1a8d_1000

This is the log file after I excute : "sudo usb_modeswitch -W -c "/etc/usb_modeswitch.d/1a8d:1000""
http://dl.dropbox.com/u/2495108/modswitch.log
After this command, it still not change mode from 1a8d:1000 to 1a8d:1009.

In the thread, leonarwen say C170 need three message command(But my SniffUSB log have more than three message commands on endpoint 0x01...).
But I don't know how to put this three message in config file(ex./etc/usb_modeswitch/1a8d:1000).

Could someone help me to set up it,please?

leonarwen wrote:
Josh wrote:Great news!
But do you really have to send all three commands? What happens if you send only the last one (with "06 1b" in it) ??
Yes, exactly! I have tried all combinations. At least, I need use three commands to switch mode.
Anyway, thanks a lot.
I found ttyUSB and connect to pppd successfully.

Thanks again.

Josh
Site Admin
Posts: 6570
Joined: 03 Nov 2007, 00:30

Post by Josh » 02 Jun 2010, 16:57

The commands - or MessageContents - are shown in post 11 (from Fri Dec 25, 2009 8:31 am). Just remove the byte count at the beginning of the lines and all spaces between the bytes.

Since version 1.1.2 you can put them all in one configuration as "MessageContent", "MessageContent2" and "MessageContent3".

Post Reply