Some background information

I have an Android based phone. The headset that came with it uses a TRRS connector. We normally have a button on the headset which when pressed, would allow you to play/pause or pick up calls.

You can read about how this works here: http://www.wisebread.com/build-a-cable-to-control-your-android-phone-while-you-drive

The sleeve of the TRRS and the ring next to it are normally open. The open circuit voltage that we get is around 2.5V (which the phone gives). When we press the button, these two connections essentially get shorted and we get a very small potential difference between these two pins. That's how the phone knows that the button was pressed.

My problem

Now, I want to control this button electronically using my microcontroller (MSP430). So, I decided to use an electronic switch.

My proposed circuit http://img832.imageshack.us/img832/2576/51364385.jpg

In the above switch, the 2.5V source on the left and the 33k resistor corresponding to it is my phone. The BJT is used for switching, and the 3.6 voltage source on the right is a high output from my micro-controller.

This is the circuit I had initially thought of (Of course, I'd add current limiting resistor in the base). The problem is, when the BJT is on, I get an expected drop of about 1.026V in the CE junction. So, the ground wire and the wire on the top are not exactly shorted, even though the BJT allows current to freely flow.

What I need

I'd like to short top write to ground electronically, just like a mechanical switch. However, is it possible to do it without using relays and other stuff. Or, people who already have knowledge working with headset buttons, can you provide me with another solution?

Something I haven't tried

A spare TRRS connector is hard to find here. So I haven't tested anything practically. SO, I'm not sure if the sleeve and the ring need to be voltage shorted, or just need to have current passing through them.


  • \$\begingroup\$ What happens when you add a base resistor? Note that it needs to be smaller than usual (as per text) for lowest Vsat (but not so low that the transistor glows in the dark ;-) ). \$\endgroup\$
    – Russell McMahon
    Commented Apr 16, 2012 at 3:47

2 Answers 2



  • As shown Q1 is drawing many amps of base current and the NOT expected 1+V Vce is a sign that the transistor is trying to glow white hot.

  • Add a sensible base resistor, say 3k to 10k, and it will work well in practice. (This is a much higher level of base drive than wold be used in most cases but will allow and extra low Vce on voltage. See below for details.

A very major problem is that you

  • haveused an incorrect simulation, which you have stated is incorrect,
  • have achieved a result that does not present what you would get in reality,
  • and have then concluded that this is what would happen
    when you use a different real world circuit than what you have shown.

Simulators such as SPICE can be excellent tools but you have to simulate the circuit that you intend to use as closely as possible, and you have to ensure that you do things which cause very gross departures from reality.

Consider - in your emulation, what is the base current of Q1?
Adding a measurement of this value should be instructive, at least.

With no base resistor the base current of Q1 will probably be in the many amps range. Using a [**TO3 metal can 2N3055""] (http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00000895.pdf) as an example which may approach this in real life you find that at Vbe = 1.8V, Ib = 4A, so at 3.6V it would be glowing quite nicely.

Adding a base resistor to Q1 should restore reality.

You say "and expected drop of 1.026V in the CE junction" BUT this should read "a wholly and completely unexpected drop in the CE junction".

By driving the transistor in a more normal manner here is what can be expected.
Below are graphs of the Vcesat = collector base junction voltage for a BC337 - datasheet here.
As base current is increased to about 10% of collector current Vce drops to around 0.05V for collector currents up to about 100 mA. At the < 0.1 mA required in this case, using a base current of 1 mA or so, so that Ib >> Ic, will result in extremely low saturation (= on) voltages.

enter image description here

The required voltages listed in the article that you referenced are >> 0.05V (see table below) except for "play/pause" which will tolerate somewhat more than the 4 mVshown so you should have no problem with Vce levels in practice.

enter image description here

From Build a Cable to Control Your Android Phone While You Drive

  • \$\begingroup\$ Thanks Russel. I now have a better understanding of the mistake that I made. \$\endgroup\$
    – AgilE
    Commented Apr 16, 2012 at 2:58

You could try to connect the GNDs of the circuit and microcontroller together, and now you connect a digital output pin with a 33k to the bottom or vice versa depending on where the sensing occurs.

  • \$\begingroup\$ This is what I'm going to try tomorrow when I get the connector. The 2.5V source and 33k is what I've used to model the phone, so these two things can be assumed to be inside the phone. I'll short the two grounds, and will connect the other wire to a port on my microcontroller. To keep the connection open, I'll simply make the port pin as input (with pull-ups disabled). To switch it on, I'll output a logic 0. I'll let you know if this worked after I test it tomorrow. Thanks! \$\endgroup\$
    – AgilE
    Commented Apr 15, 2012 at 16:41

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.