hello everyone,
I am using Gumstix Overo Firestorm COM on a custom made board without any USB connector provided. As of now i require a bluetooth mono headset(for low quality audio) to be interfaced with the embedded device and thus onboard bluetooth W2CBWOO3 CHIP is the only choice left for me. I am working solely in command line Linux (Angstrom 2011.03, kernel 3.0.0). I started my development by getting the mono-headset to talk with a desktop linux PC also running on command line connect with a USB bluetooth adaptor. That stage was successful and i used bluez4 and alsa-1.0.24 provided tools like aplay/arecord to get the audio link working.
However, on the embedded board, the same procedure yielded complete silence. I could hear the start and stop beeps (i believe when rfcomm comes into action) when i issue the command
root#> arecord -D samsung| aplay -D samsung
where samsung is the virtual alsa device created in the file ~/.asoundrc
pcm.samsung {
type plug
slave {
pcm "samsung_hw"
}
}
pcm.samsung_hw {
type bluetooth
device D8:57:EF:AC:F5:1E
profile "auto"
}
Details about the on board bluetooth adaptor as follows
root#> hciconfig hci0
hci0: Type: BR/EDR Bus: UART
BD Address: 00:19:88:4A:05:93 ACL MTU: 310:10 SCO MTU: 64:8
UP RUNNING PSCAN
RX bytes:9507 acl:116 sco:0 events:353 errors:0
TX bytes:188543 acl:132 sco:3541 commands:120 errors:0
root#> hciconfig hci0 -a
hci0: Type: BR/EDR Bus: UART
BD Address: 00:19:88:4A:05:93 ACL MTU: 310:10 SCO MTU: 64:8
UP RUNNING PSCAN
RX bytes:9507 acl:116 sco:0 events:353 errors:0
TX bytes:188543 acl:132 sco:3541 commands:120 errors:0
Features: 0xff 0xff 0x8f 0xfe 0x9b 0xf9 0x00 0x80
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF PARK
Link mode: SLAVE ACCEPT
Name: 'xxxx-0'
Class: 0x480100
Service Classes: Capturing, Telephony
Device Class: Computer, Uncategorized
HCI Version: 2.0 (0x3) Revision: 0xc5c
LMP Version: 2.0 (0x3) Subversion: 0xc5c
Manufacturer: Cambridge Silicon Radio (10)
root#> hciconfig hci0 revision
hci0: Type: BR/EDR Bus: UART
BD Address: 00:19:88:4A:05:93 ACL MTU: 310:10 SCO MTU: 64:8
Unified 21e
Chip version: BlueCore4-ROM
Max key size: 128 bit
SCO mapping: PCM
Further probing the problem in Gumstix forums led to the conclusion that the bluetooth chip SCO mapping is done to the PCM link and not HCI and cannot be altered. Besides the HCI uart link has a limited speed of 115Kbps and therefore SCO link quality is also limited. I did not want to purse the route of altering W2CBWOO3 chip firmware as it is risky. So the only way i can get audio to work is getting an alsa driver for the bluetooth PCM link and telling bluetooth device module about this device as mentioned here.
Link 1 http://gumstix.8.n6.nabble.com/Overo-audio-bluetooth-headset-td656900.html
Link 2 http://gumstix.8.n6.nabble.com/sco-routing-pcm-td567725.html
This lead me to a similar discussion in TI forum
Link3 http://e2e.ti.com/support/dsp/sitara_arm174_microprocessors/f/416/t/165965.aspx
and
Link 4 http://en.usenet.digipedia.org/thread/19013/31485/
where they are trying to develop a similar driver for the bluetooth PCM link. I could integrate their driver into my kernel sources and compile after changing the PCM link to omap-mcbsp-dai.4 (taking hint from Ash's post in link 2). But still the audio is not heard and i am at blank about how to mention the sco_sink/sco_source parameters. I have all the software ready with me for the Overo board. Can anyone direct me about how to proceed in this matter. I don't have any linux device driver development experience but can tweak existing drivers if given a hint. I am sure many folks are facing similar problems with same or other board/platforms as seen from the discussions in other forums which come to no conclusions.
The Overo document states that the board revision we are using has Bluetooth PCM connection added but not where. DM3730 datasheet says it has 5 McBSP connections available.
Thanks in advance
Noel