3
\$\begingroup\$

What kind of data modulation schemes might be suitable for sending data to/from a Bluetooth audio headset? e.g. What kind of data modulation would likely survive the audio compression schemes and bandwidths used by the Bluetooth headset or hands-free audio profile? Assume that any other (non-audio) Bluetooth profile is absolutely not available. Assume that DSP capable microcontrollers are available on both ends outside the Bluetooth channel for audio data modulation/demodulation.

Are there cheap Bluetooth headphone/headset experimenter kits available for testing this idea?

\$\endgroup\$
5
  • \$\begingroup\$ What kind of data rates are you wanting to achieve? \$\endgroup\$
    – Oli Glaser
    Commented Sep 9, 2011 at 19:15
  • \$\begingroup\$ FSK is probably your best bet. The compression shouldn't mess with the frequency at all (or much) where as it might mess with the phase. I don't have experience with BT compression though so I will let someone else answer. \$\endgroup\$
    – Kellenjb
    Commented Sep 9, 2011 at 19:31
  • \$\begingroup\$ @Oli : Unless Bluetooth audio compression is really lossy (I don't know), it seems like it might be possible to push a kbit/sec of data down the audio channel. Maybe more? \$\endgroup\$
    – hotpaw2
    Commented Sep 9, 2011 at 21:04
  • 2
    \$\begingroup\$ @hotpaw2 - yes, I think this should be possible. As Kellenjb says, AFSK sounds like a good idea, I would set up a simple 2 tone test and see how it performs. I think Bluetooth uses SBC compression, but rather than delving into algorithms I would just try it and see first. \$\endgroup\$
    – Oli Glaser
    Commented Sep 9, 2011 at 23:44
  • \$\begingroup\$ @hotpaw2 - what data rate is acceptable? What's the object of the exercise. You could try using surplus (now long obsolete) 300/300 or 1200/75 modems. But just sending tones and looking at what you get on an oscilloscope would give a fair idea of what to expect. \$\endgroup\$
    – Russell McMahon
    Commented Sep 10, 2011 at 15:58

1 Answer 1

3
\$\begingroup\$

If memory serves me correctly, the audio bandwidth in both cases is just 8kHz - enough for voice transmission over the telephone network.

The audio can be encoded/decoded using either CVSD or PCM using logarithmic a-law or μ-law quantization. See links below for an explanation.

http://en.wikipedia.org/wiki/CVSD

http://en.wikipedia.org/wiki/PCM

I believe it to be unlikely that you will ever determine which of the above schemes is in use for a module type Bluetooth solutions because I think the decision which quantisation and encoding/decoding is decided as the wireless link is created and no shared with the outside host microcontroller. Thus you need to just determine which modulation scheme works best after trying a handful of different solutions. If you run an actual Bluetooth stack on your PC/microcontroller, you are more likely to be able to decide which one to use, but you are still limited by the device you choose to connect to - if it is an off-the-shelf consumer headset, the headset may only support one type and that it the one you are stuck with!

If you search around on the internet for "Bluetooth Module HSP" you will find plenty of vendors offering complete modules and kits that can be used to create a Bluetooth based Headset or Handsfree link. The usual suspect (Digikey, Element14/Farnell, RS etc.) all stock various kits as do many on-line dealers.

In terms of considering a modulation scheme, I would start by considering the DTMF tones that you can generate with any modern telephone (see here http://en.wikipedia.org/wiki/Dual-tone_multi-frequency_signaling). I doubt your overall data throughput will be very high, but I have seen many projects that used DTMF signalling over telephones to control electronic systems - simple stuff like turning lights on and off etc.

Hope this provide some helpful hints.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.