Help on BandLuxe C170 (HSDPA)!
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?
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?
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:
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
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
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
Ok, here you are:Josh wrote:Again, be so kind and post the information I requested.
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]$
Unfortunately, your "lsusb" output is not very useful.
Please note the full output of this command (the colon is important):
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.
Please note the full output of this command (the colon is important):
Code: Select all
# lsusb -v -d 1a8d:
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.
ok, "error -145" is what I saw in usb_modeswitch v.0.9.4.Josh wrote:Then do it again to see "error -145".Code: Select all
# lsusb -v -d 1a8d:
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.
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)
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.
Ok, now, I check in listusb:
Still cannot find anything changed!
Ok, I tried to send command again!
weird! it hang without response... Try to reset again:
Still the same...
But if I use "/I" interface to reset, that could be work.
Finally, I found something interesting in dmesg:
There is a error message comes out from usbdevfs after I found it has no response.
What the problem could be?
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)
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
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
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]$
What the problem could be?
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:
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.
Sure, I sent the total USBSniff log onJosh wrote:You mentioned a sniffing log from Windows. Can you post that on "pastebin.com" and give us the link?
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 :wink:](./images/smilies/icon_e_wink.gif)
Yes, I didn't add "Need response" flag.
Finally,I found something I did switch mode successfully by followin 3 commands (Message Content):
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...
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
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...
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:Then do "dmesg" again.
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
Yes, exactly! I have tried all combinations. At least, I need use three commands to switch mode.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) ??
Anyway, thanks a lot.
I found ttyUSB and connect to pppd successfully.
Thanks again.
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?
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:Yes, exactly! I have tried all combinations. At least, I need use three commands to switch mode.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) ??
Anyway, thanks a lot.
I found ttyUSB and connect to pppd successfully.
Thanks again.
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".
Since version 1.1.2 you can put them all in one configuration as "MessageContent", "MessageContent2" and "MessageContent3".