Documentation

ShillehTek 3.5mm Stereo Audio Jack Breakout Board Pro Module | ShillehTek Product Manual
Documentation / ShillehTek 3.5mm Stereo Audio Jack Breakout Board Pro Module | ShillehTek Product Manual

ShillehTek 3.5mm Stereo Audio Jack Breakout Board Pro Module | ShillehTek Product Manual

Overview

This pre-soldered 3.5mm stereo audio jack breakout board exposes all four contacts of a TRRS (Tip-Ring-Ring-Sleeve) headphone-and-mic jack on standard breadboard pins, so you can wire it into any Arduino, Pi, or microcontroller project that needs to play sound, capture mic input, or use button-equipped headphones for input.

The four labelled pads are TIP (left audio), RING1 (right audio), RING2 (mic or video on TRRS jacks, ground on TRS jacks), and SLEEVE (ground or mic depending on standard). You also get a switch contact pair that detects when a plug is inserted — useful for auto-muting speakers when headphones are connected.

Use it as the audio output for a Pico W playing WAV files, the mic input for a voice-activated project, or just an easy way to add a 3.5mm jack to a custom enclosure without wiring loose connectors. Compatible with all standard 3.5mm plugs (TS, TRS, TRRS).

At a Glance

Jack Type
3.5mm TRRS
Contacts
Tip, Ring1, Ring2, Sleeve
Switch
Plug-detect contact
Form Factor
Breadboard-friendly
Pin Count
4 audio + 3 switch
Use Cases
Audio I/O, mic input

Specifications

Parameter Value
Connector 3.5mm female (1/8") TRRS jack
Compatible Plugs TS (mono), TRS (stereo), TRRS (stereo + mic)
Tip (T) Left audio channel
Ring 1 (R1) Right audio channel
Ring 2 (R2) Microphone (CTIA standard) or GND (OMTP)
Sleeve (S) GND (CTIA standard) or microphone (OMTP)
Switch Contact Closes when plug inserted
Pin Header Pitch 2.54 mm (0.1") breadboard standard
PCB Color Red
Operating Voltage Passive — handles whatever signal you drive
Dimensions ~22 × 18 mm

Pinout Diagram

3.5mm stereo audio jack breakout board pinout diagram showing the four labelled pads on top: TIP (left audio), RING1 (right audio), RING2 (microphone or ground), and SLEEVE (ground or microphone), plus the plug-detect switch contacts on the bottom

Wiring Guide

Audio Output (Stereo)

Drive TIP and RING1 from your audio source (DAC, PWM-with-RC-filter, or amplifier output). SLEEVE goes to GND. RING2 stays disconnected for stereo headphone use.

Jack Pad Audio Source
TIP Left audio out
RING1 Right audio out
RING2 Not connected
SLEEVE GND
Tip: If driving directly from an MCU PWM pin, add a simple RC low-pass filter (1k resistor + 10nF capacitor to GND) to smooth the PWM into an audio waveform.

Microphone Input (TRRS Headset)

Most modern headsets follow the CTIA standard. The mic signal sits on RING2; SLEEVE is ground. Add a bias resistor (~2.2k from VCC to RING2) so the electret mic gets DC bias to operate.

Jack Pad Connection
TIP Headphone left (drive with audio out)
RING1 Headphone right (drive with audio out)
RING2 Mic in (with 2.2k pull-up to 3.3V/5V)
SLEEVE GND
Info: Two competing standards exist — CTIA (Apple/Android, mic on R2) and OMTP (older Nokia, mic on Sleeve). CTIA is dominant. If your headset doesn't work, try swapping R2 and Sleeve.

Plug Detection Switch

The bottom three pads are a mechanical switch that closes when a plug is fully inserted. Wire it as a digital input with internal pull-up — when no plug is in, the input reads HIGH; insert a plug, the switch shorts to GND, and the input goes LOW.

Switch Pad Connection
Common GND
NO (Normally Open) GPIO with INPUT_PULLUP
NC (Normally Closed) Optional — opposite polarity

Code Examples

Arduino — Plug Detection

jack_detect.ino
// 3.5mm Audio Jack Breakout - Detect when a plug is inserted

const int detectPin = 2;

void setup() {
  Serial.begin(9600);
  pinMode(detectPin, INPUT_PULLUP);
}

void loop() {
  bool plugged = (digitalRead(detectPin) == LOW);
  Serial.println(plugged ? "Plug INSERTED" : "Plug REMOVED");
  delay(200);
}

Pico (MicroPython) — Play a Tone via PWM

jack_tone.py
# Play a 440 Hz tone out the audio jack via PWM (with RC low-pass filter)
# Wire: GP15 -> 1k resistor -> TIP, then 10nF capacitor TIP -> SLEEVE (GND)

from machine import Pin, PWM
import time

audio = PWM(Pin(15))
audio.freq(440)         # A4 tone
audio.duty_u16(32768)   # 50% duty -> square wave at 440 Hz

time.sleep(2)

audio.deinit()

Arduino — Read Mic Input

jack_mic.ino
// Read electret mic from a TRRS headset
// Wire: RING2 -> 2.2k pull-up to 5V, then RING2 -> 0.1uF cap -> A0
// SLEEVE -> GND. The capacitor blocks the DC bias; A0 reads the AC audio.

const int micPin = A0;
const int samples = 64;

void setup() {
  Serial.begin(115200);
}

void loop() {
  long sum = 0;
  long sumSq = 0;
  for (int i = 0; i < samples; i++) {
    int v = analogRead(micPin);
    sum += v;
    sumSq += (long)v * v;
  }
  long mean = sum / samples;
  long rms = sqrt((sumSq / samples) - (mean * mean));
  Serial.println(rms);
  delay(20);
}

Frequently Asked Questions

CTIA or OMTP — which standard does this support?
Both — the breakout exposes all four contacts as separate pads, so you wire whichever standard your headset uses. CTIA (Apple, Android, most modern headsets) puts mic on RING2 and ground on SLEEVE. OMTP (older Nokia, some industrial) swaps them. If your mic doesn't work with CTIA wiring, swap R2 and S.
Can I just plug regular stereo headphones in (TRS, not TRRS)?
Yes. A TRS plug only contacts TIP, RING1, and SLEEVE on this jack — RING2 is ignored. You get stereo audio with no mic. The plug-detect switch still works.
Can this drive headphones directly from an Arduino?
Marginally. Arduino digital pins source 20-40 mA, and headphones are typically 16-32Ω so a square wave PWM drives them, but it's loud and unfiltered. For real audio output, drive a small amplifier (PAM8403, MAX98357A, or a transistor pair) or use the Arduino's PWM with an RC low-pass filter and listen at low volume.
What's the plug-detect switch for?
It tells your circuit when a plug is inserted vs removed. Common uses: auto-muting external speakers when headphones are plugged in, switching audio source on/off to save power, or implementing "headphones only" features in a UI.
Why is my audio noisy?
Three usual culprits: (1) sharing GND with noisy digital lines — run a separate ground from the jack to your audio source's ground. (2) PWM frequency too low — increase the PWM frequency above 20 kHz so it's above audible range. (3) Missing low-pass filter — add an RC filter to smooth PWM into a clean analog signal.

Related Tutorials