Discussion:
Pandaboard as Bluetooth Handsfree ( Headset)
Aashish Patel
2014-03-18 06:24:35 UTC
Permalink
Hi,

Can I make my pandaboard running android kitkat (bluedroid stack) to behave
as headset. Like I should be able to receive calls from my other mobile
device and stream music etc.

I know by default android device will act as Audio Gateway role of hands
free profile.

So is there any way to implement/enable hands free role of Hands Free
profile.

What changes I have to make in the stack/profile to enable this Hands Free
profile?

Thanks in Advance.
--
You received this message because you are subscribed to the Google Groups "pandaboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pandaboard+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
For more options, visit https://groups.google.com/d/optout.
LioricZ3 .
2014-03-18 19:07:19 UTC
Permalink
I have spent full 7 days trying to make a PandaBoard ES act as a (full
featured) headset. While I don't use Android (and don't want to ever use it
;) ) I have setup everything in a custom Linux OS

Well, hopefully in Android it is easier, but It was a mess to just get it
to a semi working state (A2DP, AVCRP, HFP profiles), I had to customize
BlueZ, customize PulseAudio, customize Alsa and customize some bits of the
Kernel, specially the shmem parts (at least ofono was compiled as default)

And after a lot (really a lot) modifications, I can get A2DP fully working
with some special combinations (BlueZ 5, Pulse from git), but no HFP with
this combination, PulseA (for BlueZ 5.x) doesn't register a HFP (SCO) audio
agent.

Then I can get a semi-working HFP with a totally different combination (and
more modifications) and finally use Alsa directly (I don't want to use
PulseA in my OS), but the SCO audio quality was not really usable. You need
to route via HCI and no PCM (the TiWiBle module, in the current PandaBoard
setup can't route via PCM), the voice sounds as if is sampled at twice the
speed, but the SCO connection reports 8000Hz, and this results in audio
played back at twice the speed. But then A2DP didn't work with this setup.

PBAP never worked on any of my tests, and a somewhat small subset of AVCRP
did

To solve this we need access to the firmware, and TI and LSI have it under
a lock.

After almost a week on this, I have started playing with HCI commands to
change the TiWiBLE setup directly to see if the sound issue can be
corrected, but I decided that this is taking more than what was allowed for
setting bluetooth, and we just threw hardware at the problem (we replaced
the odd TiWiBLE with a BC127) and in a couple of hours it was working
nicely with more features than what you would ever need (including PBAP,
SAP, SPP, source, sink modes and BLE support)

So, hopefully the Bluetooth stack in Android is more mature and stable, but
BlueZ/PulseAudio/ofono is a no go on Linux (at least in the current state)
and not really usable for production

Anyway if you are using BlueZ on Android and need any help, ask away I will
try to help

Lioric


On Tue, Mar 18, 2014 at 3:24 AM, Aashish Patel
Post by Aashish Patel
Hi,
Can I make my pandaboard running android kitkat (bluedroid stack) to
behave as headset. Like I should be able to receive calls from my other
mobile device and stream music etc.
I know by default android device will act as Audio Gateway role of hands
free profile.
So is there any way to implement/enable hands free role of Hands Free
profile.
What changes I have to make in the stack/profile to enable this Hands Free
profile?
Thanks in Advance.
--
You received this message because you are subscribed to the Google Groups
"pandaboard" group.
To unsubscribe from this group and stop receiving emails from it, send an
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "pandaboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pandaboard+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
For more options, visit https://groups.google.com/d/optout.
j***@public.gmane.org
2014-05-21 11:13:19 UTC
Permalink
*Hi lioric, *
*what kind of linux OS have you made? I am pulling my nuts down to make a
fully workable telephony-music environment, using Pandaboard ES rev2,
ubuntu 12.04 3.2.0 and blues 4.98, *
*but I can not handle it with audio transfer between smartphone and
Pandaboard.*
*a2dp works fine and AVRCP is still to do, what do you can suggest so far??*

*cheers*
*Xoce*
Post by LioricZ3 .
I have spent full 7 days trying to make a PandaBoard ES act as a (full
featured) headset. While I don't use Android (and don't want to ever use it
;) ) I have setup everything in a custom Linux OS
Well, hopefully in Android it is easier, but It was a mess to just get it
to a semi working state (A2DP, AVCRP, HFP profiles), I had to customize
BlueZ, customize PulseAudio, customize Alsa and customize some bits of the
Kernel, specially the shmem parts (at least ofono was compiled as default)
And after a lot (really a lot) modifications, I can get A2DP fully working
with some special combinations (BlueZ 5, Pulse from git), but no HFP with
this combination, PulseA (for BlueZ 5.x) doesn't register a HFP (SCO) audio
agent.
Then I can get a semi-working HFP with a totally different combination
(and more modifications) and finally use Alsa directly (I don't want to use
PulseA in my OS), but the SCO audio quality was not really usable. You need
to route via HCI and no PCM (the TiWiBle module, in the current PandaBoard
setup can't route via PCM), the voice sounds as if is sampled at twice the
speed, but the SCO connection reports 8000Hz, and this results in audio
played back at twice the speed. But then A2DP didn't work with this setup.
PBAP never worked on any of my tests, and a somewhat small subset of AVCRP
did
To solve this we need access to the firmware, and TI and LSI have it under
a lock.
After almost a week on this, I have started playing with HCI commands to
change the TiWiBLE setup directly to see if the sound issue can be
corrected, but I decided that this is taking more than what was allowed for
setting bluetooth, and we just threw hardware at the problem (we replaced
the odd TiWiBLE with a BC127) and in a couple of hours it was working
nicely with more features than what you would ever need (including PBAP,
SAP, SPP, source, sink modes and BLE support)
So, hopefully the Bluetooth stack in Android is more mature and stable,
but BlueZ/PulseAudio/ofono is a no go on Linux (at least in the current
state) and not really usable for production
Anyway if you are using BlueZ on Android and need any help, ask away I
will try to help
Lioric
Post by Aashish Patel
Hi,
Can I make my pandaboard running android kitkat (bluedroid stack) to
behave as headset. Like I should be able to receive calls from my other
mobile device and stream music etc.
I know by default android device will act as Audio Gateway role of hands
free profile.
So is there any way to implement/enable hands free role of Hands Free
profile.
What changes I have to make in the stack/profile to enable this Hands
Free profile?
Thanks in Advance.
--
You received this message because you are subscribed to the Google Groups
"pandaboard" group.
To unsubscribe from this group and stop receiving emails from it, send an
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "pandaboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pandaboard+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
For more options, visit https://groups.google.com/d/optout.
NimeshChanchani
2014-06-04 09:28:41 UTC
Permalink
Even i need to Enable the A2DP and HFP sink on Android Kitkat , wondering
if its better to use bluez in chrooted linux or extend the functionality of
bluedroid,

i'm first investigating extetion of bluedroid.. but it seems like a mess
with no documentation available ..i dont know to what extent the
functionality is implemented ...moreover since bluetooth specifications
mostly theoritical ( much unlike openmax) , i'm finding it very difficult
to identify what parts of the functionality are implemented...

has anyone ventured on this path .. and if so would you be kind enough to
share your experience and approach?
Post by j***@public.gmane.org
*Hi lioric, *
*what kind of linux OS have you made? I am pulling my nuts down to make a
fully workable telephony-music environment, using Pandaboard ES rev2,
ubuntu 12.04 3.2.0 and blues 4.98, *
*but I can not handle it with audio transfer between smartphone and
Pandaboard.*
*a2dp works fine and AVRCP is still to do, what do you can suggest so far??*
*cheers*
*Xoce*
Post by LioricZ3 .
I have spent full 7 days trying to make a PandaBoard ES act as a (full
featured) headset. While I don't use Android (and don't want to ever use it
;) ) I have setup everything in a custom Linux OS
Well, hopefully in Android it is easier, but It was a mess to just get it
to a semi working state (A2DP, AVCRP, HFP profiles), I had to customize
BlueZ, customize PulseAudio, customize Alsa and customize some bits of the
Kernel, specially the shmem parts (at least ofono was compiled as default)
And after a lot (really a lot) modifications, I can get A2DP fully
working with some special combinations (BlueZ 5, Pulse from git), but no
HFP with this combination, PulseA (for BlueZ 5.x) doesn't register a HFP
(SCO) audio
agent.
Then I can get a semi-working HFP with a totally different combination
(and more modifications) and finally use Alsa directly (I don't want to use
PulseA in my OS), but the SCO audio quality was not really usable. You need
to route via HCI and no PCM (the TiWiBle module, in the current PandaBoard
setup can't route via PCM), the voice sounds as if is sampled at twice the
speed, but the SCO connection reports 8000Hz, and this results in audio
played back at twice the speed. But then A2DP didn't work with this setup.
PBAP never worked on any of my tests, and a somewhat small subset of
AVCRP did
To solve this we need access to the firmware, and TI and LSI have it
under a lock.
After almost a week on this, I have started playing with HCI commands to
change the TiWiBLE setup directly to see if the sound issue can be
corrected, but I decided that this is taking more than what was allowed for
setting bluetooth, and we just threw hardware at the problem (we replaced
the odd TiWiBLE with a BC127) and in a couple of hours it was working
nicely with more features than what you would ever need (including PBAP,
SAP, SPP, source, sink modes and BLE support)
So, hopefully the Bluetooth stack in Android is more mature and stable,
but BlueZ/PulseAudio/ofono is a no go on Linux (at least in the current
state) and not really usable for production
Anyway if you are using BlueZ on Android and need any help, ask away I
will try to help
Lioric
Post by Aashish Patel
Hi,
Can I make my pandaboard running android kitkat (bluedroid stack) to
behave as headset. Like I should be able to receive calls from my other
mobile device and stream music etc.
I know by default android device will act as Audio Gateway role of hands
free profile.
So is there any way to implement/enable hands free role of Hands Free
profile.
What changes I have to make in the stack/profile to enable this Hands
Free profile?
Thanks in Advance.
--
You received this message because you are subscribed to the Google
Groups "pandaboard" group.
To unsubscribe from this group and stop receiving emails from it, send
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "pandaboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pandaboard+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
For more options, visit https://groups.google.com/d/optout.
LioricZ3 .
2014-06-04 16:07:30 UTC
Permalink
*what kind of linux OS have you made?*

*Kernel 3.4.27*

*BusyBox based toolset*

*omap drm HW GPU *

*Qt 5 running on GPU frame buffer (EGL/DRM/KMS)*



*The rest is fully customized (think of android) with my own Graphics
System (similar to what Surfaceflinger, Harware Composer et al are on
droids)*

*and it boots in 1.6s ;)*

*> **a2dp works fine and AVRCP is still to do, what do you can suggest so
far??*

Actually, I have dropped the whole "Bluetooth Linux stack plus TiWiBLE",
and switched to a IC embbeded BT stack solution (BC127) that is connected
via UART to my system, so in a couple of hours after switching I had HFP
A2DP AVRCP MAP SPP PBAP and BLE working nicely, with access to the phone
book and even a variety of audio codecs with echo cancelling.

My suggestion after all the research that I did on Panda/Bluetooth is that
Linux BT stack (Blue/ofono/PulseAudio) is not really a viable solution in
its current state. Even after all the patching and mix and matching, one
last issue remains: the quality of the audio, and this is not something
that can be fixed without a soldering iron ;) as it is hardware related.
The TiWiBLE is not wired to route SCO audio on PCM so you only have to
route it via HCI (I don't remember it very well as it has been several
months since I worked with the Panda BT ic, but I believe PCM is routed to
the FM output or something similar)

Anyway if you have everything working on the software side, and only HFP
audio (voice) is not being played, you need to route it via HCI

These commands are from memory, so please review them with the vendor
specific cmd datasheet:

/usr/bin/hcitool cmd 0x3f 0x211

That reads the SCO channels configuration. It returns 3 blocks of hex
values, you are interested in the second one (channel 0), something similar
to:

XX XX XX XX 00 30 XX.... (channel0) XX XX .... (channel1)

The first value of the channel (here 00) shows the SCO connection type:

00 -> PCM
01 -> HCI

You need to change this to HCI (01) for the voice to route to the host. Get
the resulting channel configuration block, change the first byte to 01,
remove the third byte and use the write SCO configuration cmd:

/usr/bin/hcitool cmd 0x3f 0x210 0x01 0x30 XX XX XX

I will try to find the vendor specific datasheet for the wl127, hopefully
it is still somewhere in any of the disks, also I will search in the bash
history of the panda to see if the actual commands are there and verify the
correct values

Lioric




This gets the current connection settings, it returns
Post by j***@public.gmane.org
*Hi lioric, *
*what kind of linux OS have you made? I am pulling my nuts down to make a
fully workable telephony-music environment, using Pandaboard ES rev2,
ubuntu 12.04 3.2.0 and blues 4.98, *
*but I can not handle it with audio transfer between smartphone and
Pandaboard.*
*a2dp works fine and AVRCP is still to do, what do you can suggest so far??*
*cheers*
*Xoce*
Post by LioricZ3 .
I have spent full 7 days trying to make a PandaBoard ES act as a (full
featured) headset. While I don't use Android (and don't want to ever use it
;) ) I have setup everything in a custom Linux OS
Well, hopefully in Android it is easier, but It was a mess to just get it
to a semi working state (A2DP, AVCRP, HFP profiles), I had to customize
BlueZ, customize PulseAudio, customize Alsa and customize some bits of the
Kernel, specially the shmem parts (at least ofono was compiled as default)
And after a lot (really a lot) modifications, I can get A2DP fully
working with some special combinations (BlueZ 5, Pulse from git), but no
HFP with this combination, PulseA (for BlueZ 5.x) doesn't register a HFP
(SCO) audio
agent.
Then I can get a semi-working HFP with a totally different combination
(and more modifications) and finally use Alsa directly (I don't want to use
PulseA in my OS), but the SCO audio quality was not really usable. You need
to route via HCI and no PCM (the TiWiBle module, in the current PandaBoard
setup can't route via PCM), the voice sounds as if is sampled at twice the
speed, but the SCO connection reports 8000Hz, and this results in audio
played back at twice the speed. But then A2DP didn't work with this setup.
PBAP never worked on any of my tests, and a somewhat small subset of
AVCRP did
To solve this we need access to the firmware, and TI and LSI have it
under a lock.
After almost a week on this, I have started playing with HCI commands to
change the TiWiBLE setup directly to see if the sound issue can be
corrected, but I decided that this is taking more than what was allowed for
setting bluetooth, and we just threw hardware at the problem (we replaced
the odd TiWiBLE with a BC127) and in a couple of hours it was working
nicely with more features than what you would ever need (including PBAP,
SAP, SPP, source, sink modes and BLE support)
So, hopefully the Bluetooth stack in Android is more mature and stable,
but BlueZ/PulseAudio/ofono is a no go on Linux (at least in the current
state) and not really usable for production
Anyway if you are using BlueZ on Android and need any help, ask away I
will try to help
Lioric
Post by Aashish Patel
Hi,
Can I make my pandaboard running android kitkat (bluedroid stack) to
behave as headset. Like I should be able to receive calls from my other
mobile device and stream music etc.
I know by default android device will act as Audio Gateway role of hands
free profile.
So is there any way to implement/enable hands free role of Hands Free
profile.
What changes I have to make in the stack/profile to enable this Hands
Free profile?
Thanks in Advance.
--
You received this message because you are subscribed to the Google
Groups "pandaboard" group.
To unsubscribe from this group and stop receiving emails from it, send
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups
"pandaboard" group.
To unsubscribe from this group and stop receiving emails from it, send an
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "pandaboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pandaboard+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
For more options, visit https://groups.google.com/d/optout.
Aashish Patel
2014-03-19 05:59:29 UTC
Permalink
Thanks for quick reply.

Problem is I have been asked to use kitkat only (which is not officially
supported for pandaboard) and I cannot find any useful documentation on
bluedroid. After a week of grinding through bluedroid source code I have
come to the conclusion that we may have to completely replace the HFP
interface in it(since its for Audio Gateway Role) with our own
(Implementing Hands free role) for it to work as Hands free.

Still going through HFP specs to find a workaround so that I can use the
same code with some tweaks.

will update on developments.
Post by Aashish Patel
Hi,
Can I make my pandaboard running android kitkat (bluedroid stack) to
behave as headset. Like I should be able to receive calls from my other
mobile device and stream music etc.
I know by default android device will act as Audio Gateway role of hands
free profile.
So is there any way to implement/enable hands free role of Hands Free
profile.
What changes I have to make in the stack/profile to enable this Hands Free
profile?
Thanks in Advance.
--
You received this message because you are subscribed to the Google Groups "pandaboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pandaboard+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
For more options, visit https://groups.google.com/d/optout.
Aashish Patel
2014-06-23 06:37:26 UTC
Permalink
Hi Lioric,

Thanks for reply.

Even we are thinking of dropping the idea of implementing HF role and A2DP
sink on android(bluedroid stack).
And looking for IC solutions with embedded BT stack.

The one that you have mentioned BC127 seems good but only has support for
HFP,A2DP and PBAP could not find any info on BLE profiles supported by it.
So have you implemented MAP and other profiles ?
Is proper documention available for implementing a profile ? (Since I am
newbie to BT technology)
We would like to share data(objects) as future application.

Can you suggest any other IC modules?
Only module we found is PAN1026 (with Toshiba TC35661 and an embedded
Controller)
Post by Aashish Patel
Hi,
Can I make my pandaboard running android kitkat (bluedroid stack) to
behave as headset. Like I should be able to receive calls from my other
mobile device and stream music etc.
I know by default android device will act as Audio Gateway role of hands
free profile.
So is there any way to implement/enable hands free role of Hands Free
profile.
What changes I have to make in the stack/profile to enable this Hands Free
profile?
Thanks in Advance.
--
You received this message because you are subscribed to the Google Groups "pandaboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pandaboard+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
For more options, visit https://groups.google.com/d/optout.
LioricZ3 .
2014-06-25 23:49:26 UTC
Permalink
The BC127 does support BLE (even IBeacon, in fact it has the most broad
support of profiles and features from any Bluetooth ICs in MY research)

See the BlueCreations site for more details
Post by Aashish Patel
So have you implemented MAP and other profiles ?
Map is supported by default on Melody (the firmware) 5.x (I don't remember
the exact version)

The firmware is closed so there is no way to implement what s not already
there
Post by Aashish Patel
Can you suggest any other IC modules?
Not really, maybe try on some bluetooth or wireless forums

Maybe test some RovingNetworks IC, as it is considered to be good bluetooth
radios
Post by Aashish Patel
Hi Lioric,
Thanks for reply.
Even we are thinking of dropping the idea of implementing HF role and A2DP
sink on android(bluedroid stack).
And looking for IC solutions with embedded BT stack.
The one that you have mentioned BC127 seems good but only has support for
HFP,A2DP and PBAP could not find any info on BLE profiles supported by it.
So have you implemented MAP and other profiles ?
Is proper documention available for implementing a profile ? (Since I am
newbie to BT technology)
We would like to share data(objects) as future application.
Can you suggest any other IC modules?
Only module we found is PAN1026 (with Toshiba TC35661 and an embedded
Controller)
Post by Aashish Patel
Hi,
Can I make my pandaboard running android kitkat (bluedroid stack) to
behave as headset. Like I should be able to receive calls from my other
mobile device and stream music etc.
I know by default android device will act as Audio Gateway role of hands
free profile.
So is there any way to implement/enable hands free role of Hands Free
profile.
What changes I have to make in the stack/profile to enable this Hands
Free profile?
Thanks in Advance.
--
You received this message because you are subscribed to the Google Groups
"pandaboard" group.
To unsubscribe from this group and stop receiving emails from it, send an
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "pandaboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pandaboard+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
For more options, visit https://groups.google.com/d/optout.
Ashish Patel
2014-11-20 23:10:58 UTC
Permalink
Latest android asop code 5.0.0 has bluetooth Handsfree Profile (HF role)
Bluetooth Interface included in it.
Has anyone tested it ?
Post by Aashish Patel
Hi,
Can I make my pandaboard running android kitkat (bluedroid stack) to
behave as headset. Like I should be able to receive calls from my other
mobile device and stream music etc.
I know by default android device will act as Audio Gateway role of hands
free profile.
So is there any way to implement/enable hands free role of Hands Free
profile.
What changes I have to make in the stack/profile to enable this Hands
Free profile?
Thanks in Advance.
--
You received this message because you are subscribed to the Google Groups "pandaboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pandaboard+***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
f***@gmail.com
2016-04-15 07:21:14 UTC
Permalink
Hello Aashish,

We are working on this Bluetooth Handsfree profile HS role. Did you
got any breakthrough in achieving this for Android OS.
I checked with the Bluedroid sources and they have this profile but could
not turn it on. If you have achieved this can you please share more info on
this.

Thanks and Regards.
Fongz.
Post by Ashish Patel
Latest android asop code 5.0.0 has bluetooth Handsfree Profile (HF role)
Bluetooth Interface included in it.
Has anyone tested it ?
Post by Aashish Patel
Hi,
Can I make my pandaboard running android kitkat (bluedroid stack) to
behave as headset. Like I should be able to receive calls from my other
mobile device and stream music etc.
I know by default android device will act as Audio Gateway role of hands
free profile.
So is there any way to implement/enable hands free role of Hands Free
profile.
What changes I have to make in the stack/profile to enable this Hands
Free profile?
Thanks in Advance.
--
You received this message because you are subscribed to the Google Groups "pandaboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pandaboard+***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Loading...