Introduction: Bluetooth-FM-Phone Headset

About: I'm a mechanical engineer, and I like computer programming, mechanics, electronics and specially the robotics.

A few months ago I wanted to make a remote-controlled relay can be controlled by SMS and Bluetooth, so I bought a SIM800H module but the GSM part of the module does not work fine and made me buy another module. The first module was on my table for months until I accidentally found an old headphone with torn wires and thought of making a Bluetooth headphone to use these waste parts. I took a Li-Po battery from an old mini quadcopter. I just needed a few parts, so this project has been started. The final product has the following features.

  1. A Bluetooth headset to listen to music and answer the phone calls;
  2. An FM radio capable of receiving 87.5-108MHz frequencies;
  3. A mobile phone to receive voice calls;
  4. A wired stereo headphone using an AUX cable.

Making such a useful device of waste parts is really interesting and pleasant; I advise you to make one yourself by following this Instructable.

Step 1: Step 1: Things Needed


  • 1x Old headphone
  • 1x SIM800H module
  • 1x PIC12F683 microprocessor
  • 1x TP4056 battery charger module
  • 1x Rotary encoder with pull-ups module
  • 1x 3.7V Li-Po battery (I used a 150mAh battery)
  • 1x 10KΩ resistor
  • 1x 100μF electrolyte capacitor
  • 1x 100nF MKT capacitor
  • 3x 100nF ceramic capacitor
  • 1x 8-pin DIP IC socket
  • 1x Pushbutton
  • 1x DIP switch
  • 1x Pin header (male and female) [OPTIONAL]
  • 1x 3.5mm stereo jack
  • Some wires
  • Heat shrink
  • A piece of bright plastic (I used the body of an empty pen)


  • Soldering Iron, solder and flux
  • Drilling and carving tool
  • Glue and a hot glue gun
  • Pliers, needle nose pliers, wire cutter
  • Screwdrivers
  • PIC programmer (I recommend PICKit3 or Open Programmer)

Step 2: Step 2: Carving the Headphone

Take apart the headphone and carve the side that has enough room for all components (look at the images). I choose the right side because the microphone is attached to the left side. Drill a hole for rotary encoder and another hole for battery charger LEDs. Take a piece of bright plastic (I used an empty pen body), make it hot on a flame and press it on the second hole, and cut its extra parts. This will make the battery charger module LEDs looks like a large circle.

Step 3: Step 3: Making the Controller Circuit

The controller is made by a PIC12F683 microprocessor. It will be mounted on an 8-pin socket. It is recommended to look at the circuit diagram before doing below tasks (Click "More Images" to see the diagram).

  1. Solder 100μF electrolyte capacitor and 100nF MKT capacitor to pins 1 and 8 of IC socket.
  2. Solder 10KΩ resistor among pins 1 and 4 of IC socket.
  3. Attach the button to the IC socket among pins 4 and 8.

Step 4: Step 4: Preparing the Rotary Encoder

Remove the pins of the rotary encoder module and attach some wires to it. This rotary encoder is a mechanical device so it needs capacitors for de-bouncing. Solder 100nF ceramic capacitors to pins GND, DT, CLK, and SW.

Step 5: Step 5: SIM800H Module and Connections

First, remove the power LED to extend the battery life because it is always on, even when the module is turned off. Then use the soldering iron to close the S1 switch and open the S2 and S3 switches. Solder the battery wires through the switch to the module. Then solder wires for speakers, microphone and FM antenna. Use two short wires for speakers, long audio cable for microphone (I used the old headphone cables), and a long narrow wire as FM antenna.

Step 6: Step 6: Boards Fixtures

Place the modules on the headphone body and drill holes for fixing them with narrow wires. You can use extra leg of other electronic components for fixing the modules and solder them to the boards.

Step 7: Step 7: Complete the Circuit

Solder rotary encoder wires to the IC socket according to the circuit diagram (Click "More Images" to see the diagram). Attach wires for power supply and SIM800H module serial data and power control to the IC socket. Solder the wires to the battery charger and SIM800H modules.

Step 8: Step 8: Assembling What You Made

Place the modules on their positions and fix them by twisting the wires. I soldered the speakers’ wires to test them, the next step will show how to attach the speakers’ wires. I also changed the wire I first used as FM antenna because it was too brittle and broke several times during making this headset. Don’t forget to drill a small hole for the “Reset” button. Note that it will not be used a lot, so only a needle sized hole is enough.

Step 9: Step 9: Wiring the Speakers

First, let me clarify two things:

  1. The SIM800H audio output is not stereo so you must connect the speaker together.
  2. According to SIM800H datasheet SPK1 output can drive 32Ω receiver, my headphone speakers are 18Ω. And this is the reason I connected the speakers in series to achieve 36Ω impedance instead of parallel (9Ω).

Attach the stereo jack to the body with glue. Solder one wire of each speaker to sleeve pin (Use a cable as long as microphone cable for the other side speaker). Solder the other wire to outer tip and ring pins. Note that the left speaker must be connected to the tip and the right speaker must be connected to the ring. Solder SPK1P and SPK1N wires coming from the SIM800H module to the inner tip and ring pins of the stereo connector.

Step 10: Step 10: Some Details

Bend the GSM antenna and solder it. Use some glue to fix the wires on the body of IC socket to prevent them connecting together while closing the cover. I also putted a piece of paper among ceramic capacitor legs as insulation.

Put the PIC12F683 into the programmer connect it to the computer and program it with “bfpHeadset.hex” file and place it on the socket. I also attached the firmware source code for you. It is written in mikroC for PIC environment.

Step 11: Step 11: the Other Side

Pass the cables through the top pad and solder them to the left speaker and microphone. I also glued the pin header inside the microphone base as a connector for an external FM antenna and made a curly antenna. The antenna wire passes from the right side to the left is enough and this connector is optional.

Step 12: Step 12: Final Works

Place ear pads, screw the headset enclosures and draw some icons on the body. I used white nail polish as the ink and a toothpick as the pen. Place a knob on the rotary encoder shaft (I filled the cap of an empty glue with hot glue and pressed it on the shaft).

Step 13: Step 13: User Manual

It’s time to turn on your headset. Here’s a brief guide for this device functions.

Rotary Encoder Action Modes:

  1. Push down and release. (Act1)
  2. Push down and hold for about 2 seconds. (Act2)
  3. Decrease (Rotate clockwise). (Act3)
  4. Increase (Rotate counter-clockwise). (Act4)
  5. Decrease while pushed down and release. (Act5)
  6. Increase while pushed down and release. (Act6)

Sleep Mode:

  • Act1: Nothing
  • Act2: Nothing
  • Act3: Nothing
  • Act4: Nothing
  • Act5: Wake Up in Bluetooth Mode
  • Act6: Wake Up in FM Mode

FM Mode:

  • Act1: Swap Volume/Frequency Changing Mode
  • Act2: Go to Sleep
  • Act3: Decrease Sound Volume/Frequency
  • Act4: Increase Sound Volume/Frequency
  • Act5: Answer Incoming Call
  • Act6: Reject Incoming Call

Bluetooth Mode:

  • Act1: Play/Pause Music
  • Act2: Go to Sleep
  • Act3: Decrease Sound Volume
  • Act4: Increase Sound Volume
  • Act5: Previous Music - Answer Incoming Call
  • Act6: Next Music - Reject Incoming Call

Settings Mode:

  • Act1: Go to Next Setting - Go to Sleep on the Last Index
  • Act2: Nothing
  • Act3: Decrease Value
  • Act4: Increase Value
  • Act5: Nothing
  • Act6: Nothing

Note that to wake up the headset in Bluetooth mode or FM mode, you must rotate the rotary encoder at least 5 ticks while it is pushed down.

To enter the settings mode when the device is sleep decrease rotary encoder 1 tick, increase it 2 ticks, and again decrease it 3 ticks, and wait for the beep. The device will go to sleep again by pushing the rotary encoder on the last index. This is the list of settings.

  1. Bluetooth Pairing Mode: Auto pin code pairing (one beep) - Fixed pin code pairing (two beeps); [The pin code is 9852. Auto pin code pairing is not supported by old devices.]
  2. Sound Volume: 1-10; [Longer beep, louder sound.]
  3. Microphone Gain: 1-10; [Longer beep, more gain.]
  4. Ringtone: 1-19
  5. Ringer Sound Level: 1-10

Reset Button: Pressing the reset button will reset the device and deletes all paired Bluetooth devices.

Power Switch: This switch can be used to turn off the device completely. It is recommended to use sleep mode instead of switching off using this button for daily use. Use this switch if you don't want to use the device for a long time, or for resetting the headset without deleting the paired devices.

The AUX input is stereo and must be used while the device is asleep or off.

Step 14: Step 14: Future Works

You can use a more powerful microprocessor, attach a micro SD card socket to the SIM800H, and modify the firmware to add MP3 playing feature to this headset. To do this you may use CMEDPLAY, CMEDIAVOL, FSDRIVE and FSLS command.

Audio Contest 2018

Participated in the
Audio Contest 2018