title: Location of Bluetooth Profile in Bluetooth System
body: <p>My question is very basic.I need to know where does all Bluetooth profile such HID, HFP or HSP loaded in Bluetooth stack? Is it in Host layer or in Bluetooth Hardware Chipset such as USB dongle/module or in both Host and Chipset Side? </p>
  
  <p>According to my understanding, we can implement Bluetooth profiles on Host side using packages like BlueZ but at same time Bluetooth chipset which is connected to Host should need some sort of firmware and logic(like CSVD, A-law )  inside its chipset. </p>
  
  <p>A quote found in BlueZ Android package doc: "Wideband Speech support in HFP it is required that BT chip assumes mSBC codec". This means Host layer can implement that Profile only if BT chipset provides the low-level support like mSBC. </p>
  
  <p>My Answer is like this: " We can build any Bluetooth Profile say 'X' on Host layer if BT chipset is equipped with underlining Low-level firmware which support the Profile 'X'".Please agree or disagree with my understanding.</p>
  
  <p>PFA diagram of my understanding
  <a href="https://i.stack.imgur.com/kQYv0.jpg" rel="nofollow noreferrer">Position of profile and its low-level firmware</a></p>
  
  <p>I need to select a USB Bluetooth dongle compatible to Raspberry Pi and customize the HID and HFP using BlueZ.</p>
  
  <p>Advance Thanks to all Bright minds!</p>