Introduction: Bluetooth Gateway Module for 2-Way Radios

About: Long time electronics enthusiast Electrical Engineer by trade Ham Radio hobbyist

Bluetooth Gateway Adapter for 2-way radios

Ever wanted to have a wireless headset to use with your ham rig? This can be realized nicely with a Bluetooth headset that has a decent microphone, and a radio that supports Bluetooth. There are newer radios that have a built in Bluetooth capability, but putting this capability onto equipment that doesn’t have it built in is a bit challenging. There are no readily available gateway devices that work as a Bluetooth base to connect to. About a year ago I began to look into this and found a Bluetooth gateway module that was available from KC Wirefree (http://www.kcwirefree.com/audio.html). I decided to use the KC-6112 BlueAudio Module to build this project, based on the information posted on their web site. I was able to bread-board the design using the BOB-6112 breakout board they offer, and build a proof of concept.

How it works

The audio output from the KC-6112 goes to the MIC input of your radio. The output from this module is adjustable, but I still put in a voltage divider that gives about 15dB attenuation. The output control manages the rest. I added a buffer stage to isolate the module, but I found it was not necessary. (I show a jumper to go around the buffer in the schematic).

The audio input to the module comes from the speaker output of the radio. I found 3dB of attenuation adequate for this input, since you can usually set the volume coming from the radio. The module also has an adjustment for input level, and you can normally control the volume in from the radio to give a good level to the headset you use.

I show the audio input as a stereo input on the schematic. This allows this module to be used as a stereo source if you wanted to use it for a Bluetooth source for music. (This requires a different software load). You really only need to populate the Left channel input for this application.

One of the features of the KC Wireless software was the capability to manage a PTT link with one of the BC05 digital IO lines indicating PTT when activated. I used this to drive a MOSFET to provide a switch to the radio. Most radios use PTT to GND as the signal, though there are some aberrations. This worked nicely for all the radios I have tried it with. The PTT function is based on the Bluetooth headset being able to ‘answer’ calls when linked to a cellular phone. This capability varies a lot from various headset manufacturers, so that is something to be aware of. (Not all wireless headsets support this capability compatible with the module software).

I opted to have this design power on and off with a switch. The KC-6112 module has an Enable pin that is capable of being used as a soft on-off control. This capability works best with later versions of the software. (To enable this function you would need to modify the PCB I designed..).

Step 1: Breadboard Version and PCB Build

Breadboard Version

The top pictures show the breadboard I built up. It worked well, but I wanted it to be a more compact and durable, so I wanted to build a PCB based module.

PCB

Eventually I designed a PCB and made a nice small version that I enjoy using. There were a few hic-ups along the way but I am pleased with the resultant design. I hope that it may be a useful design to others who might want to build it up. The design of the KC-6112 is based on an older Qualcomm (CSR) BlueCore 5 (BC05) device. There are a lot of Chinese modules out there that have the same chip, but the software is what defines this module. KC Wirefree has written a decent software set that allows their module to act as a wireless gateway specifically for wireless headphones. It employs the AGHFP (Audio Gateway) profile to do this, and they have added some nice features to make it work well. The design I came up with is based on the sample design that is shown in the KC Wirefree KC-6112 datasheet circuit example, with some tweaking. I decided that I would like to make this portable, so I opted to use the BC05 battery management and added a small LiPo battery to run it.

The PCB I designed uses SMD parts, since I wanted to keep it compact. I have included the Eagle output files as a zip file. These files can be used to have a board fabricated. (I had the PCB fabricated by PCBWay and they did a good job).

The build of this PCB will require a good soldering iron with a small tip and some patience to mount these small parts. I would refer you to various guides that are published in other articles for the hand soldering of SMD parts.

  • Mount all the small surface mount components first.
  • Then add the stereo jacks and USB connector. Add the through-hole components: LEDs and push button switches. (The headers are used for programming. If you install them and use the suggested box you will need to trim the top of the headers off to fit).
  • Then mount the KC-6112 module. Note that not all the pads on the module need to be soldered.
  • Inspect all your solder joints and make sure everything looks good.
  • Make sure the power switch is turned off, then connect the wires from the battery.
  • Please see the pictures for the build up of the PCB.

The schematic and bill of materials to build the board are included here. I wanted to design the PCB so it would fit a commercially available housing, so I selected the Bud Industries HH-3641 case which is available from various distributors. That case works well and it is about the right size for this circuit. I chose a battery that would fit in the case with the PCB on top and still give some clearance. The LiPo battery charging is managed by the KC-6112 module. The battery could be no thicker than 6mm for this case. I ended up getting a battery that is rated at 180mAh (Noiposi X0017VDHHF). This will give about 5 hours of use for this design at full charge (it takes about 1.5 hours to charge). Note that a larger battery will take longer to charge since the BC05 chip is only capable of 150mA charge current.

Step 2: Software Load and Control

Software Load

The KC-6112 module is capable of being a receiver or transmitter, so it is important what software is being used. The module is ordered with the version of SW you want on it. For this project, the gateway configuration is the version that will work. The current version of the gateway code available on their website (as of this writing) is 8.2.0. My experience with the various versions of the gateway code set available from KC Wirefree shows the best version for this project to be 8.1.0. That is the version I would recommend ordering (as a custom version). The 8.1.0 code provides the best default PTT functionality for how this design works. If you don’t want PTT and would rather use the VOX function of your radio, then either version would be fine. The 8.2.0 does not provide PTT as a default feature. Note that the 8.1.0 is not currently shown on the KC Wirefree archive website, but you can request it. (I have a copy if you need it).

You can flash the module to whatever version you would like if you follow the KC Wirefree Firmware Upgrade Guide. All the interfaces to manage this capability are shown in the schematic. This is beyond the intended scope of this discussion so I won’t go into it more. (Note that if you want to do software changes to the module, you need to install drivers and management software on a Windows based computer. You will also want to have a 3.3V USB to serial interface such as a Qunqi 3.3V 5.5V FT232RL available at Amazon and other places).

Module control

The KC-6112 module has several inputs which can be used for switch inputs for control. For this design, I decided to keep it simple and just have 3 push-button switches for managing the functions needed. (The following information is firmware dependant. This reflect 8.1.0 code).

Pair/BTB This button is used to pair with the headset. Pairing is initiated when this button is held down for more than a second. A short push will reconnect with a paired resource if it has disconnected.

VOL UP/VOL DN These buttons adjust the output volume (that drives your microphone input on your radio). You will need to experiment a little to see what works best for your radio input. Note that when you do a quick double-push on these buttons you adjust the input gain up and down.

I found it best to experiment a little with the volume and gain settings to get the best results. It obviously will change from radio to radio.

Please see the KcGateway User Guide available at the KC Wirefree website for the specific code set for a detailed explanation of the button functions. (The kcGateway_UserGuide_v8.1_b1.pdf for this 8.1.0 code set).

There are also 4 LEDs shown in my schematic for various status indications. The RED and BLUE LEDs are to provide general Bluetooth status and module status. The ‘Connected’ LED is really not needed because the state of the connection can be seen using the blue LED. I just found it to be helpful to have this indicator. The ‘PTT’ LED reflects the module PTT status. When PTT is asserted, the MOSFET drain is switched to ground. It is handy to have a visual indicator of this.

Step 3: Radio Connections and Conclusion

Interfacing to your radio

The radio interface depends on the radio. I have included a schematic of the cable that I made for using with an FT-897 (and similar radios) using the Data port. I have also included the schematic for using with a Baofeng HT. Basically you need to connect the radio microphone input to the KC-6112 output, and the radio speaker to the input.The PTT is functional as a input to ground.

Conclusion

I know this is a brief description of this unit, but it works well and I like being able to roam around without being right next to my radio. I found I can get about 20-30 feet without any issues with the headset I used. I did test several other headsets, and there were a couple that did not support the gateway protocol so they didn't work. Most 'non-music' headsets should work fine.

I hope if you build this up you can enjoy it as much as I do. Good luck.