* Huawei K3715 UMTS stick and alsa
@ 2009-07-26 22:43 Artem Makhutov
2009-07-28 7:36 ` Clemens Ladisch
0 siblings, 1 reply; 4+ messages in thread
From: Artem Makhutov @ 2009-07-26 22:43 UTC (permalink / raw)
To: alsa-devel
[-- Attachment #1: Type: text/plain, Size: 1415 bytes --]
Hello,
i am wondering if it is possible to write a quirk in usbquirks.h for a Huawei
K3715 UMTS stick to make the audio interfaces available in linux.
This two interfaces are used for audio (I have sniffed in Windows):
bEndpointAddress 0x83 EP 3 IN
bEndpointAddress 0x02 EP 2 OUT
I have attached a lsusb -vv.
The payload of this interfaces is 320 bytes. Here is an example payload data.
What kind of audio could this be?
93 06 1D 01 BD F6 17 EA 94 E3 DA DB 1C E2 E1 FA 23 0C 13 0B FD 08 78 11 51 17 02 13 C4 04 F5 F2 CA EC 03 F9 5F 09 1E 15 4D 1B B2 0A B7 F5 3D EE A4 E2 62 E5 D2 FA 23 07 26 05 B2 09 6A 20 D8 22 97 0B 77 F7 3F EE C0 E8 48 E1 11 DB 55 E7 E9 05 AC 24 57 28 FF 1B D5 0E 45 07 DC 06 26 07 FE FC 17 ED C8 E0 3F D4 3D E0 8B 03 75 13 0F 04 D3 F2 FF F4 31 08 A2 09 A6 01 FF FA 14 01 49 10 D3 1A 63 25 27 1F C5 00 4C E8 15 E0 0A D8 E3 DE 53 F0 D5 F2 BD F9 F5 10 8B 26 F1 20 55 0C 3E 00 56 FA C8 F5 E8 F0 39 ED F5 F1 F7 00 66 13 7F 1A 67 0F 70 01 D1 FC 71 01 63 09 61 05 0B F7 7F EB 6E E8 CA F6 D2 07 BF 0B 75 FC 70 F0 10 F5 44 06 ED 08 0B 05 92 FE 2F FD 95 0B 40 16 05 22 A7 16 A5 FA 08 E9 52 E5 B5 D9 1F E3 F7 FB 9C 02 6E 03 EF 09 76 1C E1 19 50 06 02 F6 20 F0 8A F0 99 EE 7E E6 42 EB EF 01 AA 1C FF 20 73 14 F0
06 D4 01 41 05 F4 07 EF 00 2E EF D8 E4 12 E2 55 F5 DE 03 C3 09 EF 04 A4 FB 93 F9 77 FE F9 03 CC 07 14 07 BF 0B CF 16 26 1A 6B 16 CC 05 CC F7 FA ED D9 E1 DA D5
Thanks, Artem
[-- Attachment #2: lsusb-huawei.txt --]
[-- Type: text/plain, Size: 7244 bytes --]
Bus 002 Device 005: ID 12d1:1001 Huawei Technologies Co., Ltd. E620 USB Modem
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x12d1 Huawei Technologies Co., Ltd.
idProduct 0x1001 E620 USB Modem
bcdDevice 0.00
iManufacturer 2 HUAWEI Technology
iProduct 1 HUAWEI Mobile
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 131
bNumInterfaces 5
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 5
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 32
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 32
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 32
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 32
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x84 EP 4 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 32
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 32
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk (Zip)
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x85 EP 5 IN
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 0x04 EP 4 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 4
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk (Zip)
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x05 EP 5 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 0x86 EP 6 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: 0x0003
Self Powered
Remote Wakeup Enabled
[-- Attachment #3: Type: text/plain, Size: 160 bytes --]
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Huawei K3715 UMTS stick and alsa
2009-07-26 22:43 Huawei K3715 UMTS stick and alsa Artem Makhutov
@ 2009-07-28 7:36 ` Clemens Ladisch
2009-07-29 9:33 ` Artem Makhutov
0 siblings, 1 reply; 4+ messages in thread
From: Clemens Ladisch @ 2009-07-28 7:36 UTC (permalink / raw)
To: Artem Makhutov; +Cc: alsa-devel
Artem Makhutov wrote:
> i am wondering if it is possible to write a quirk in usbquirks.h for a Huawei
> K3715 UMTS stick to make the audio interfaces available in linux.
What kind of audio does this UMTS stick have?
> This two interfaces are used for audio (I have sniffed in Windows):
>
> bEndpointAddress 0x83 EP 3 IN
> bEndpointAddress 0x02 EP 2 OUT
The lsusb output shows that these are bulk endpoints. The snd-usb-audio
driver is designed for isochronous endpoints; a simple quirk would not
suffice.
> The payload of this interfaces is 320 bytes.
How many bytes per second?
Best regards,
Clemens
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Huawei K3715 UMTS stick and alsa
2009-07-28 7:36 ` Clemens Ladisch
@ 2009-07-29 9:33 ` Artem Makhutov
2009-07-30 22:38 ` Artem Makhutov
0 siblings, 1 reply; 4+ messages in thread
From: Artem Makhutov @ 2009-07-29 9:33 UTC (permalink / raw)
To: Clemens Ladisch; +Cc: alsa-devel
Hello,
On Tue, Jul 28, 2009 at 09:36:30AM +0200, Clemens Ladisch wrote:
> Artem Makhutov wrote:
> > i am wondering if it is possible to write a quirk in usbquirks.h for a Huawei
> > K3715 UMTS stick to make the audio interfaces available in linux.
>
> What kind of audio does this UMTS stick have?
This is a good question. In Windows you can use the Huawei "Mobile Partner"
software to make voice calls using the UMTS stick. You just start the software
and can dial a phone number from there. Then you can use your Headset and/or
Noteboot Microphone to talk with the other partie.
> > This two interfaces are used for audio (I have sniffed in Windows):
> >
> > bEndpointAddress 0x83 EP 3 IN
> > bEndpointAddress 0x02 EP 2 OUT
>
> The lsusb output shows that these are bulk endpoints. The snd-usb-audio
> driver is designed for isochronous endpoints; a simple quirk would not
> suffice.
Ok, thank you for the info.
I did some more tests and have seen that Windows is creating 3 serial ports
(COM15, COM16, COM17) for the UMTS stick. It sends the AT commands to COM17 and
(I believe) receives and sends audio over COM16. It is not possible to send any
AT commands to COM16.
If you create a dialup connection then COM15 will be used for it.
In Linux the option module is also creating 3 serial ports (/dev/ttyUSB0,
/dev/ttyUSB1 and /dev/ttyUSB2).
I have done some small test with some AT commands using Windows and was trying
to get audio to COM16 without the "Mobile Partner" software. But it did not
worked.
> > The payload of this interfaces is 320 bytes.
>
> How many bytes per second?
Unfortunately I did not had much time to do more detailed test.
I will do some more test and will report this.
Thanks and best regards, Artem
PS: What is a good software for doing USB reverse engineering?
I have seen usb-robot and USB Snoopy on Linux, but USB Snoopy is from the year 2000...
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Huawei K3715 UMTS stick and alsa
2009-07-29 9:33 ` Artem Makhutov
@ 2009-07-30 22:38 ` Artem Makhutov
0 siblings, 0 replies; 4+ messages in thread
From: Artem Makhutov @ 2009-07-30 22:38 UTC (permalink / raw)
To: Clemens Ladisch; +Cc: alsa-devel
Hello,
Artem Makhutov schrieb:
> [...]
> I have done some small test with some AT commands using Windows and was trying
> to get audio to COM16 without the "Mobile Partner" software. But it did not
> worked.
>
>>> The payload of this interfaces is 320 bytes.
>> How many bytes per second?
The phone is sending 320 bytes every 20ms. So one second of call is
16000 bytes.
I finally managed to write the captured payload data to a file.
I can playback the audio now using
aplay -r 8000 -c 1 -f S16_LE test.wav
If you send the AT-Command "AT^CVOICE?" to the card then it will answer
with "^CVOICE:0,8000,16,20" it is also possible to change this setting.
So I think that the card should be able to output other audio formats
too (like 3G wideband audio), but I have not tested this command out.
The next thing to do is to find out how to make the UMTS-Card output
sound without using the "Mobile Partner" application.
Regards, Artem
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2009-07-30 22:38 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-07-26 22:43 Huawei K3715 UMTS stick and alsa Artem Makhutov
2009-07-28 7:36 ` Clemens Ladisch
2009-07-29 9:33 ` Artem Makhutov
2009-07-30 22:38 ` Artem Makhutov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox