Headphone vs Lineout - and grounding issue and change to touchRead()

Davidelvig

Well-known member
I am using the Teensy 3.2 with a VS1053 synth chip from VLSI.fi.
It has only a "headphone out" (no line out) and it has R, L and "GBUF" - and GBUF "should not be connected to other grounds" based on the VS1053 documentation.

I'm using the Teensy 3.2's touch pins and touchRead() to detect finger touch... measuring "untouched" level at startup and comparing that to "touched" during use.

When some users plug their headphone out into the line in of some audio equipment (such as an audio interface), the touch sensing changes..and in my application at present, I fail to sense "touched".

I'm guessing this is somehow ground related... with the GND of the external equipment connecting to the GBUF of my headphone jack... changing the ground reference for the capacitance measurement of the touch pins.

Two questions:
  1. Is there a solution of this than "don't use it as a line out"?
  2. As I move to the SGTL5000, first using the Teensy Audio Adaptor, will I likely have the same issue with the SGTL5000's HPVGND pin on the headphone jack?
This could determine whether I need to add a separate line-out port (from the SGTL5000) on my device.

Bonus question 3). As I move to the SGTL5000, I'm also moving to Teensy 4.1, using FastTouch rather than touchRead() in the code for touch pins. Am I likely to see the same problem with altered touch readings using FastTouch?

Thanks for considering this rather complex/multi-part question.
 
@Davidelvig:

Based upon my experience with my TeensyMIDIPolySynth (which makes use of the T4.x + Teensy Audio Adapter), plugging an external device without a ground reference (battery-powered amplified speaker, etc.) into the headphone jack works OK. However, any external device with an actual ground reference (AC-powered amplifier, etc.) should not be plugged into the headphone jack. Rather the LINE OUT should be used, otherwise you get poor audio performance (anything from grumbly audio to very distorted audio). LINE OUT works well for this situation, so I would think it best for you to provide that as a separate connection.

Sorry, I don't have any experience with touch sensing to pass along.

Mark J Culross
KD5RXT
 
I am using the Teensy 3.2 with a VS1053 synth chip from VLSI.fi.
It has only a "headphone out" (no line out) and it has R, L and "GBUF" - and GBUF "should not be connected to other grounds" based on the VS1053 documentation.

I'm using the Teensy 3.2's touch pins and touchRead() to detect finger touch... measuring "untouched" level at startup and comparing that to "touched" during use.

When some users plug their headphone out into the line in of some audio equipment (such as an audio interface), the touch sensing changes..and in my application at present, I fail to sense "touched".

I'm guessing this is somehow ground related... with the GND of the external equipment connecting to the GBUF of my headphone jack... changing the ground reference for the capacitance measurement of the touch pins.

Two questions:
  1. Is there a solution of this than "don't use it as a line out"?
  2. As I move to the SGTL5000, first using the Teensy Audio Adaptor, will I likely have the same issue with the SGTL5000's HPVGND pin on the headphone jack?
This could determine whether I need to add a separate line-out port (from the SGTL5000) on my device.

Bonus question 3). As I move to the SGTL5000, I'm also moving to Teensy 4.1, using FastTouch rather than touchRead() in the code for touch pins. Am I likely to see the same problem with altered touch readings using FastTouch?

Thanks for considering this rather complex/multi-part question.
With the virtual ground approach there's likely a considerable risk of damaging the HP output if there's any other ground connection between the synth chip and the audio equipment you are connecting to the HP out.

If you must use HP out, a better approach is to pass the L and R headphone signals through large caps (220uF suggested in the SGTL5000 data sheet) and connect your regular analog ground to the headphone output socket. But if going to the SGTL5000 anyway, using the line out is easily the best solution.

When I switched to T4.1+fasttouch from T3.6+touchread, I saw reduced resolution when using a touch contact as multi-valued sensor , but have no problems using it as a relaible touch on/off sensor once you set your threshold appropriately.
 
Back
Top