Circuit
Deepseek v4.1 Flash · full

Reviews & generation details
Reviews
No human review yet. Unreviewed does not mean unsuccessful.
Generation context
Imported historical artifact. Its exact original instructions and lineage are not known.
Generation prompt · exact text unavailable
See the current prompt for reference. It may differ from the instructions used to generate this artifact.
Inspect original source 97,477 bytes · SHA-256 e4324a55b070
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Stereo Audio Amplifier — Breadboard Build Guide</title>
<style>
*,*::before,*::after{box-sizing:border-box}
:root{
--bg:#070a10; --panel:#0e141f; --panel2:#121a28; --panel3:#0b111b;
--line:#1c2536; --line2:#26324a;
--txt:#dae3f2; --muted:#8a9bb8; --dim:#5e6d88;
--cy:#3fe0d0; --cy2:#17a396; --am:#ffbb4d; --rd:#ff6472; --gr:#5fe3a1; --bl:#5aa9ff; --vi:#b98cff;
--mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
--sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
--r:14px;
}
html{scroll-behavior:smooth;scroll-padding-top:78px}
body{
margin:0;background:var(--bg);color:var(--txt);font:16px/1.68 var(--sans);
background-image:
radial-gradient(1100px 560px at 12% -8%,rgba(63,224,208,.075),transparent 62%),
radial-gradient(900px 520px at 102% 2%,rgba(255,187,77,.055),transparent 58%),
linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),
linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px);
background-size:auto,auto,46px 46px,46px 46px;
background-attachment:fixed;
-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
h1,h2,h3,h4{line-height:1.22;margin:0;font-weight:650;letter-spacing:-.015em}
p{margin:0 0 1em}
a{color:var(--cy);text-decoration:none;border-bottom:1px solid rgba(63,224,208,.28)}
a:hover{border-bottom-color:var(--cy)}
code{font-family:var(--mono);font-size:.87em;background:#0a1018;border:1px solid var(--line);padding:.12em .42em;border-radius:6px;color:#bfe9e3;white-space:nowrap}
strong{color:#fff;font-weight:620}
.wrap{max-width:1200px;margin:0 auto;padding:0 22px}
/* ---------- top bar ---------- */
.topbar{position:sticky;top:0;z-index:50;backdrop-filter:blur(14px);background:rgba(7,10,16,.82);border-bottom:1px solid var(--line)}
.topbar .wrap{display:flex;align-items:center;gap:18px;height:60px}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.brand b{color:var(--cy);font-weight:600}
.brand .dot{width:9px;height:9px;border-radius:50%;background:var(--cy);box-shadow:0 0 12px var(--cy);animation:pulse 2.6s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.navlinks{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;margin-left:auto}
.navlinks::-webkit-scrollbar{display:none}
.navlinks a{font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--muted);border:1px solid transparent;padding:6px 11px;border-radius:8px;white-space:nowrap;transition:.18s}
.navlinks a:hover{color:var(--cy);border-color:var(--line2);background:#0c121c}
/* ---------- hero ---------- */
header.hero{padding:62px 0 34px;position:relative;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.35fr .95fr;gap:44px;align-items:center}
.eyebrow{font-family:var(--mono);font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--cy);display:flex;align-items:center;gap:10px;margin-bottom:18px}
.eyebrow::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,rgba(63,224,208,.5),transparent)}
h1{font-size:clamp(32px,4.6vw,54px);letter-spacing:-.03em}
h1 .grad{background:linear-gradient(100deg,#fff 8%,var(--cy) 52%,var(--am) 96%);-webkit-background-clip:text;background-clip:text;color:transparent}
.lede{color:var(--muted);font-size:17.5px;margin-top:18px;max-width:56ch}
.chips{display:flex;flex-wrap:wrap;gap:9px;margin-top:26px}
.chip{font-family:var(--mono);font-size:11.5px;letter-spacing:.05em;padding:7px 12px;border-radius:999px;border:1px solid var(--line2);background:#0c1320;color:var(--muted)}
.chip b{color:var(--txt);font-weight:600}
.chip.cy{color:var(--cy);border-color:rgba(63,224,208,.3)}
.chip.am{color:var(--am);border-color:rgba(255,187,77,.3)}
.chip.vi{color:var(--vi);border-color:rgba(185,140,255,.3)}
.hero-art{border:1px solid var(--line);border-radius:var(--r);background:linear-gradient(180deg,#0c1320,#080d15);padding:10px;box-shadow:0 24px 60px -30px rgba(0,0,0,.9)}
.hero-art svg{display:block;width:100%;height:auto}
/* ---------- layout ---------- */
.layout{display:grid;grid-template-columns:212px 1fr;gap:42px;padding-bottom:80px}
.toc{position:sticky;top:82px;align-self:start;font-family:var(--mono);font-size:12.4px}
.toc h5{margin:0 0 12px;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);font-weight:600}
.toc ol{list-style:none;margin:0;padding:0;counter-reset:t}
.toc li{counter-increment:t;margin-bottom:3px}
.toc a{display:flex;gap:9px;padding:6px 9px;border-radius:8px;color:var(--muted);border:1px solid transparent;border-bottom-color:transparent;transition:.16s}
.toc a::before{content:counter(t,decimal-leading-zero);color:var(--dim);font-size:11px}
.toc a:hover{background:#0c121c;border-color:var(--line2);color:var(--cy)}
.toc a:hover::before{color:var(--cy2)}
main{min-width:0}
section{margin-bottom:58px;scroll-margin-top:78px}
.sec-head{display:flex;align-items:baseline;gap:14px;padding-bottom:14px;margin-bottom:26px;border-bottom:1px solid var(--line);position:relative}
.sec-head::after{content:"";position:absolute;left:0;bottom:-1px;width:88px;height:2px;background:linear-gradient(90deg,var(--cy),transparent)}
.sec-num{font-family:var(--mono);font-size:12px;color:var(--cy);letter-spacing:.1em;border:1px solid rgba(63,224,208,.32);border-radius:7px;padding:3px 8px;background:rgba(63,224,208,.06)}
h2{font-size:clamp(22px,2.7vw,30px)}
h3{font-size:18px;margin:30px 0 12px;color:#fff}
h4{font-size:14.5px;margin:22px 0 8px;color:var(--cy);font-family:var(--mono);letter-spacing:.05em;text-transform:uppercase}
.sec-head h2{flex:1}
/* ---------- cards & callouts ---------- */
.card{border:1px solid var(--line);border-radius:var(--r);background:linear-gradient(180deg,var(--panel),var(--panel3));padding:22px 24px;margin:18px 0}
.card>*:last-child{margin-bottom:0}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.mini{border:1px solid var(--line);border-radius:12px;background:#0c121c;padding:16px 17px}
.mini h4{margin:0 0 6px;font-size:13px}
.mini p{margin:0;color:var(--muted);font-size:14.3px;line-height:1.6}
.callout{border:1px solid var(--line2);border-left:3px solid var(--cy);border-radius:10px;background:#0b1220;padding:15px 18px;margin:16px 0;font-size:15px}
.callout .tag{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--cy);display:block;margin-bottom:5px}
.callout p:last-child{margin-bottom:0}
.callout.warn{border-left-color:var(--rd);background:#150d12}
.callout.warn .tag{color:var(--rd)}
.callout.tip{border-left-color:var(--gr);background:#0b1418}
.callout.tip .tag{color:var(--gr)}
.callout.note{border-left-color:var(--am);background:#14110b}
.callout.note .tag{color:var(--am)}
/* ---------- lists ---------- */
ul.clean{list-style:none;padding:0;margin:0}
ul.clean li{position:relative;padding-left:26px;margin-bottom:9px;color:var(--muted)}
ul.clean li::before{content:"";position:absolute;left:4px;top:.62em;width:7px;height:7px;border-radius:2px;background:var(--cy);opacity:.85;transform:rotate(45deg)}
ul.clean li b{color:var(--txt)}
.checklist li::before{content:"✓";background:none;color:var(--gr);font-size:13px;width:auto;height:auto;left:2px;top:0;transform:none;font-weight:700}
.xlist li::before{content:"✕";background:none;color:var(--rd);font-size:12px;width:auto;height:auto;left:3px;top:0;transform:none;font-weight:700}
/* ---------- tables ---------- */
.table-wrap{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--panel3)}
.tscroll{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:14.6px;min-width:620px}
thead th{background:#0b1220;color:var(--cy);font-family:var(--mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;text-align:left;padding:12px 15px;border-bottom:1px solid var(--line2);font-weight:600;white-space:nowrap}
tbody td{padding:12px 15px;border-bottom:1px solid #141c2a;vertical-align:top;color:var(--muted)}
tbody tr:nth-child(even) td{background:rgba(255,255,255,.014)}
tbody tr:hover td{background:rgba(63,224,208,.045)}
tbody tr:last-child td{border-bottom:none}
td.ref{font-family:var(--mono);color:var(--am);font-size:12.5px;white-space:nowrap}
td.part{color:var(--txt);font-weight:560}
td.part span{display:block;font-family:var(--mono);font-size:11.6px;color:var(--dim);margin-top:3px;font-weight:400}
td.qty{font-family:var(--mono);text-align:center;color:var(--txt)}
.pill{display:inline-block;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;padding:2px 7px;border-radius:5px;border:1px solid var(--line2);color:var(--dim);margin-left:6px}
.pill.opt{color:var(--am);border-color:rgba(255,187,77,.32)}
.pill.core{color:var(--cy);border-color:rgba(63,224,208,.32)}
/* ---------- steps ---------- */
ol.steps{list-style:none;counter-reset:s;padding:0;margin:0}
ol.steps>li{counter-increment:s;position:relative;padding:0 0 0 60px;margin-bottom:20px}
ol.steps>li::before{content:counter(s,decimal-leading-zero);position:absolute;left:0;top:0;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-family:var(--mono);font-size:14px;color:var(--cy);background:#0c1420;border:1px solid var(--line2);box-shadow:0 0 0 4px rgba(63,224,208,.05)}
ol.steps>li::after{content:"";position:absolute;left:21px;top:46px;bottom:-20px;width:1px;background:linear-gradient(180deg,var(--line2),transparent)}
ol.steps>li:last-child::after{display:none}
.step-body{border:1px solid var(--line);border-radius:12px;background:linear-gradient(180deg,var(--panel),var(--panel3));padding:16px 19px}
.step-body h4{margin:0 0 8px;font-size:15px;color:#fff;font-family:var(--sans);letter-spacing:0;text-transform:none;font-weight:620}
.step-body p{margin:0 0 10px;color:var(--muted);font-size:15px}
.step-body p:last-child{margin-bottom:0}
.step-body ul{margin:8px 0 0}
/* ---------- svg figures ---------- */
figure{margin:22px 0;border:1px solid var(--line);border-radius:var(--r);background:linear-gradient(180deg,#0b111b,#080d15);overflow:hidden}
.fig-hd{display:flex;align-items:center;gap:10px;padding:13px 18px;border-bottom:1px solid var(--line);background:#0a0f18}
.fig-hd .n{font-family:var(--mono);font-size:11px;color:var(--am);border:1px solid rgba(255,187,77,.3);padding:2px 7px;border-radius:5px}
.fig-hd h4{margin:0;font-family:var(--mono);font-size:12.4px;letter-spacing:.1em;text-transform:uppercase;color:var(--txt)}
.fig-hd .sub{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--dim)}
.fig-body{padding:14px;overflow-x:auto}
.fig-body svg{display:block;width:100%;height:auto;min-width:640px}
figcaption{padding:12px 18px 15px;font-size:13.6px;color:var(--dim);border-top:1px solid var(--line)}
figcaption b{color:var(--muted)}
/* legend */
.legend{display:flex;flex-wrap:wrap;gap:8px 20px;padding:13px 18px;border-top:1px solid var(--line);background:#0a0f18;font-family:var(--mono);font-size:11.6px;color:var(--muted)}
.legend span{display:flex;align-items:center;gap:7px}
.sw{width:18px;height:4px;border-radius:2px;display:inline-block}
/* ---------- footer ---------- */
footer{border-top:1px solid var(--line);padding:34px 0 60px;color:var(--dim);font-size:13.6px}
footer .wrap{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between}
/* ---------- responsive ---------- */
@media(max-width:1000px){
.layout{grid-template-columns:1fr;gap:0}
.toc{position:static;margin-bottom:34px;border:1px solid var(--line);border-radius:12px;padding:16px 18px;background:#0b111b}
.toc ol{columns:2;column-gap:20px}
.hero-grid{grid-template-columns:1fr;gap:30px}
.grid2,.grid3{grid-template-columns:1fr}
}
@media(max-width:620px){
.wrap{padding:0 16px}
.toc ol{columns:1}
body{font-size:15.4px}
.fig-body svg{min-width:560px}
}
</style>
</head>
<body>
<div class="topbar">
<div class="wrap">
<div class="brand"><span class="dot"></span><span>LAB / <b>LM386 STEREO AMP</b></span></div>
<nav class="navlinks">
<a href="#intro">Overview</a>
<a href="#safety">Safety</a>
<a href="#parts">Parts</a>
<a href="#diagrams">Schematics</a>
<a href="#breadboard">Breadboard</a>
<a href="#assembly">Assembly</a>
<a href="#testing">Testing</a>
</nav>
</div>
</div>
<header class="hero">
<div class="wrap hero-grid">
<div>
<div class="eyebrow">Breadboard Build Guide · Rev 1.0</div>
<h1>Build a <span class="grad">Stereo Audio Amplifier</span> from Scratch</h1>
<p class="lede">Two LM386 power-amplifier ICs, a handful of passives and one 9 V supply. In about 45 minutes you will have a working two-channel amp on a breadboard that drives a pair of 8 Ω speakers from a phone, laptop, or mixing desk — no soldering required.</p>
<div class="chips">
<span class="chip cy"><b>2×</b> LM386</span>
<span class="chip am"><b>9 V</b> single supply</span>
<span class="chip"><b>~0.4 W</b> per channel @ 8 Ω</span>
<span class="chip vi"><b>Gain</b> 20 / 200</span>
<span class="chip"><b>0.2–12 V</b> supply range</span>
</div>
</div>
<div class="hero-art">
<svg viewBox="0 0 520 300" role="img" aria-label="Animated audio waveform from input to amplifier to speaker">
<defs>
<linearGradient id="wg" x1="0" y1="0" x2="1" y2="0">
<stop offset="0" stop-color="#5aa9ff"/><stop offset=".5" stop-color="#3fe0d0"/><stop offset="1" stop-color="#ffbb4d"/>
</linearGradient>
<linearGradient id="boxg" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#16203000"/><stop offset="1" stop-color="#0b111b"/>
</linearGradient>
</defs>
<g opacity=".5" stroke="#1c2536" stroke-width="1">
<path d="M0 60H520M0 120H520M0 180H520M0 240H520"/>
<path d="M60 0V300M180 0V300M300 0V300M420 0V300"/>
</g>
<text x="18" y="30" fill="#8a9bb8" font-family="ui-monospace,monospace" font-size="11" letter-spacing="1.6">SMALL SIGNAL IN</text>
<text x="390" y="30" fill="#ffbb4d" font-family="ui-monospace,monospace" font-size="11" letter-spacing="1.6">8 Ω LOAD</text>
<path d="M10 150 q8 -14 16 0 t16 0 t16 0 t16 0 t16 0" fill="none" stroke="#5aa9ff" stroke-width="2.4" stroke-linecap="round"/>
<rect x="150" y="96" width="96" height="108" rx="12" fill="url(#boxg)" stroke="#3fe0d0" stroke-width="1.4" opacity=".95"/>
<text x="198" y="140" text-anchor="middle" fill="#dae3f2" font-family="ui-monospace,monospace" font-size="12.5" letter-spacing="1.2">LM386</text>
<text x="198" y="158" text-anchor="middle" fill="#17a396" font-family="ui-monospace,monospace" font-size="9.5" letter-spacing="1.4">GAIN ×20</text>
<text x="198" y="176" text-anchor="middle" fill="#17a396" font-family="ui-monospace,monospace" font-size="9.5" letter-spacing="1.4">CLASS AB</text>
<path d="M96 150h44" fill="none" stroke="#5aa9ff" stroke-width="2" stroke-dasharray="3 4"/>
<path d="M258 150h40" fill="none" stroke="#ffbb4d" stroke-width="2" stroke-dasharray="3 4"/>
<path d="M300 150 q10 -34 20 0 t20 0 t20 0" fill="none" stroke="url(#wg)" stroke-width="3.2" stroke-linecap="round"/>
<g transform="translate(420,150)">
<path d="M0 -34 L0 -46 L34 -60 L34 60 L0 46 L0 34" fill="#0e141f" stroke="#ffbb4d" stroke-width="1.6" stroke-linejoin="round"/>
<path d="M34 -60 L34 60" stroke="#ffbb4d" stroke-width="1.6"/>
<path d="M42 -46 q16 46 0 92" fill="none" stroke="#ffbb4d" stroke-width="1.2" opacity=".55"/>
<path d="M54 -34 q16 34 0 68" fill="none" stroke="#ffbb4d" stroke-width="1.2" opacity=".32"/>
</g>
<path d="M120 258H400" stroke="#1c2536" stroke-width="1" stroke-dasharray="4 6"/>
<text x="260" y="282" text-anchor="middle" fill="#5e6d88" font-family="ui-monospace,monospace" font-size="10.5" letter-spacing="1.4">SINGLE 9 V SUPPLY · COMMON GROUND</text>
</svg>
</div>
</div>
</header>
<div class="wrap layout">
<aside class="toc">
<h5>Contents</h5>
<ol>
<li><a href="#intro">How it works</a></li>
<li><a href="#safety">Safety & prerequisites</a></li>
<li><a href="#parts">Complete parts list</a></li>
<li><a href="#diagrams">Circuit diagrams</a></li>
<li><a href="#breadboard">Breadboard wiring</a></li>
<li><a href="#assembly">Step-by-step build</a></li>
<li><a href="#testing">Testing & troubleshooting</a></li>
</ol>
</aside>
<main>
<!-- ============ 1. INTRO ============ -->
<section id="intro">
<div class="sec-head"><span class="sec-num">01</span><h2>How a stereo audio amplifier works</h2></div>
<p>A line-level audio source — a phone, laptop, mixer, or game console — puts out roughly <strong>0.3 V to 1 V RMS</strong> of signal, but it can supply almost no current. An 8 Ω speaker needs <strong>hundreds of milliamps</strong> to move air. The amplifier's whole job is current gain: it takes a signal we can hear only as a whisper and reproduces it at a level the speaker can turn into sound pressure.</p>
<p>This build uses one <strong>LM386</strong> per channel. The LM386 is a complete class-AB power amplifier in an 8-pin DIP: input buffer, voltage gain stage, output stage, internal bias network and feedback resistors all on one die. Feed it a single supply (anything from 4 V to 12 V) and it idles its output at exactly half the supply voltage, so a single-ended output can swing both ways around that midpoint. That is why every design here needs an <em>output coupling capacitor</em> — it blocks the 4.5 V DC midpoint and passes only the AC audio to the speaker.</p>
<h3>The signal path, one channel</h3>
<div class="grid3">
<div class="mini"><h4>1 · Volume control</h4><p>The source feeds a 10 kΩ potentiometer wired as a voltage divider. Its wiper hands the amp anywhere from the full signal down to silence. The pot also gives the input a defined DC path to ground.</p></div>
<div class="mini"><h4>2 · Gain stage</h4><p>The wiper drives pin 3, the non-inverting input. The LM386's internal feedback network sets a default gain of <b>20× (26 dB)</b>. Bridging pins 1 and 8 with a 10 µF capacitor bypasses the internal 1.35 kΩ resistor and pushes the gain to <b>200× (46 dB)</b> — the setting we use here.</p></div>
<div class="mini"><h4>3 · Output drive</h4><p>Pin 5 sits at V<sub>S</sub>/2 and drives through a 220 µF coupling capacitor into the 8 Ω speaker. The cap is the single most important part in the chain: remove it and DC current flows straight through the voice coil.</p></div>
</div>
<div class="callout note">
<span class="tag">Ripple rejection</span>
<p>Pin 7 is the bypass node. A capacitor from pin 7 to ground improves supply ripple rejection — handy on battery power where the rail sags on every bass note. It is optional, and this build leaves it open.</p>
</div>
<h3>Why two chips instead of one stereo chip?</h3>
<p>Stereo amplifier ICs exist (the TDA2822, PAM8403 and friends), but the LM386 is the classic teaching part: cheap, forgiving, available as a DIP for breadboards, and its datasheet circuit is only five external parts. Running two of them gives you <strong>two electrically independent channels</strong>, which means you can probe, measure, and even break one channel without touching the other — a genuinely useful thing while learning.</p>
<div class="table-wrap">
<div class="tscroll">
<table>
<thead><tr><th>Specification</th><th>Value</th><th>Notes</th></tr></thead>
<tbody>
<tr><td class="ref">Supply</td><td class="part">4 – 12 V DC</td><td>Absolute max 15 V. 9 V is the sweet spot.</td></tr>
<tr><td class="ref">Quiescent current</td><td class="part">≈ 4 mA / IC</td><td>8 mA total — a 9 V battery lasts many hours at moderate volume.</td></tr>
<tr><td class="ref">Gain</td><td class="part">20 (26 dB) default · 200 (46 dB) with 10 µF</td><td>Set by the capacitor between pins 1 and 8.</td></tr>
<tr><td class="ref">Output power</td><td class="part">≈ 0.4 W into 8 Ω @ 9 V</td><td>≈ 0.7 W into 4 Ω. Not a party amp — but genuinely loud on efficient speakers.</td></tr>
<tr><td class="ref">Input impedance</td><td class="part">50 kΩ (pin 3)</td><td>Comfortable for line-level sources.</td></tr>
</tbody>
</table>
</div>
</div>
<div class="callout tip">
<span class="tag">What you will have at the end</span>
<p>A breadboarded two-channel amplifier with an independent volume control per channel, running from a 9 V battery or a wall adapter, driving two 8 Ω speakers loudly enough to fill a room. Every connection stays pluggable, so you can re-tune the gain, swap coupling caps, or add the optional Zobel network and hear the difference immediately.</p>
</div>
</section>
<!-- ============ 2. SAFETY ============ -->
<section id="safety">
<div class="sec-head"><span class="sec-num">02</span><h2>Safety & prerequisites</h2></div>
<p>This is a low-voltage build — 9 V cannot hurt you through dry skin. The real risks are <em>thermal</em> (a shorted amplifier can cook the IC until it is too hot to touch) and <em>financial</em> (a reversed supply kills both chips instantly). Ten seconds of care per step is the whole discipline.</p>
<div class="grid2">
<div class="callout warn">
<span class="tag">Power off before you rewire</span>
<p>Replugging jumpers on a live board is the number-one way to short an output to ground. Unclip the battery first, rearrange, then reconnect. The LM386 survives surprisingly little of this.</p>
</div>
<div class="callout warn">
<span class="tag">Polarity is not optional</span>
<p>The LM386 has no reverse-polarity protection. Pin 6 (V<sub>S</sub>) must see the positive rail and pin 4 the negative. Reverse it and the chip dies in milliseconds. Trace the red lead from the battery with your finger before you clip it on.</p>
</div>
<div class="callout warn">
<span class="tag">Never short the output</span>
<p>Do not let speaker wires touch each other while the amp is powered. A dead short on pin 5 makes the IC draw far beyond its rating and overheat.</p>
</div>
<div class="callout tip">
<span class="tag">Heat & hearing</span>
<p>If an IC becomes hot to the touch, cut power immediately and re-check the wiring. And keep the volume sane — this circuit can output well over 100 dB through efficient speakers, and sustained loud levels damage hearing.</p>
</div>
</div>
<h3>Tools & equipment</h3>
<div class="table-wrap">
<div class="tscroll">
<table>
<thead><tr><th>Tool</th><th>Why you need it</th><th>Required?</th></tr></thead>
<tbody>
<tr><td class="part">Solderless breadboard<span>830 tie-point, full size</span></td><td>Holds two DIP-8 ICs side by side with room for power rails and passives.</td><td><span class="pill core">Required</span></td></tr>
<tr><td class="part">Solid-core jumper wire<span>22 AWG, pre-formed or a stripped spool</span></td><td>Stranded wire frays and will not stay in a breadboard. Solid core only, cut to length with small right-angle bends.</td><td><span class="pill core">Required</span></td></tr>
<tr><td class="part">Wire cutters & strippers</td><td>Cutting jumpers to length and stripping 6 mm of insulation. A small pair of flush cutters is ideal.</td><td><span class="pill core">Required</span></td></tr>
<tr><td class="part">Digital multimeter</td><td>Checks continuity, verifies the polarity and voltage of the rails, and measures DC offset at the output. Non-negotiable for debugging.</td><td><span class="pill core">Required</span></td></tr>
<tr><td class="part">Small flat screwdriver</td><td>Adjusting trimmer potentiometers, prying IC legs straight.</td><td><span class="pill core">Required</span></td></tr>
<tr><td class="part">Audio source + 3.5 mm cable</td><td>Phone, laptop headphone jack, or a signal generator. Anything with a line or headphone output.</td><td><span class="pill core">Required</span></td></tr>
<tr><td class="part">Speakers (or a known-good test speaker)</td><td>Two 8 Ω speakers, or one speaker reused to test each channel in turn.</td><td><span class="pill core">Required</span></td></tr>
<tr><td class="part">Soldering iron & solder</td><td>Only if you want to solder the jack or battery clip to short pigtails. Everything on the board itself is plug-in.</td><td><span class="pill opt">Optional</span></td></tr>
<tr><td class="part">Helping hands / tweezers</td><td>Useful when inserting a bent IC leg or a fiddly electrolytic.</td><td><span class="pill opt">Optional</span></td></tr>
</tbody>
</table>
</div>
</div>
<h3>Component knowledge you need before you start</h3>
<div class="grid2">
<div class="card">
<h4>Reading a breadboard</h4>
<ul class="clean">
<li>Each <b>column of five holes</b> in the upper half (rows a–e) is one electrical node. Same for rows f–j below.</li>
<li>The <b>centre channel</b> separates the two halves — that is where a DIP IC straddles.</li>
<li>The two <b>long rails</b> at the top and bottom carry power. Convention: <b>red line = positive</b>, <b>blue line = ground</b>.</li>
<li>Rails are <b>not</b> connected end-to-end on a full-size board — you must jumper the top and bottom rails together.</li>
</ul>
</div>
<div class="card">
<h4>Parts that have a direction</h4>
<ul class="clean">
<li><b>Electrolytic capacitors</b> are polarised. The lead by the stripe (with minus signs) is negative. Reversing one makes it swell, hiss, and eventually vent.</li>
<li><b>ICs</b> have a notch or dot marking pin 1. Get the orientation wrong and the chip will not work — or will die.</li>
<li><b>Potentiometers</b> have three terminals: two ends of a resistive track and a wiper. Terminal 1 is the one anti-clockwise from the wiper when viewed from the shaft.</li>
<li><b>Ceramic capacitors</b> and <b>resistors</b> are non-polarised. Direction never matters.</li>
</ul>
</div>
</div>
<div class="callout note">
<span class="tag">Before any power-up</span>
<p>Do a full continuity pass with the meter: red rail to pin 6 of each IC, blue rail to pins 2 and 4, and <em>no</em> continuity between the red and blue rails. Thirty seconds here prevents 90 % of first-power-up failures.</p>
</div>
</section>
<!-- ============ 3. PARTS ============ -->
<section id="parts">
<div class="sec-head"><span class="sec-num">03</span><h2>Complete parts list</h2></div>
<p>Everything below is available from any hobby-electronics supplier. Prices are trivial — the two ICs are usually the most expensive items at around a dollar each. The designators match the schematic in the next section, so <code>C5</code> in this table is <code>C5</code> on the drawing.</p>
<div class="table-wrap">
<div class="tscroll">
<table>
<thead>
<tr><th>Ref</th><th>Component / Part number</th><th>Qty</th><th>Purpose in the circuit</th></tr>
</thead>
<tbody>
<tr>
<td class="ref">U1, U2</td>
<td class="part">LM386 Low Voltage Audio Power Amplifier IC<span>DIP-8 · LM386N-1 / N-3 / N-4 · 4–12 V</span></td>
<td class="qty">2</td>
<td>The amplifier itself — one per channel. Internally biased to half the supply, with a built-in feedback network giving a default gain of 20×.</td>
</tr>
<tr>
<td class="ref">RV1, RV2</td>
<td class="part">10 kΩ logarithmic (audio-taper) potentiometer<span>Dual-gang stereo, or two separate panel/trimmer pots</span></td>
<td class="qty">2</td>
<td>Volume control per channel. Wired as a voltage divider: signal in one end, ground the other, wiper to pin 3. Audio taper gives a natural volume feel.</td>
</tr>
<tr>
<td class="ref">C1, C2</td>
<td class="part">10 µF 16 V electrolytic capacitor<span>Polarised — observe the stripe</span></td>
<td class="qty">2</td>
<td>Gain-set capacitors across pins 1 and 8. Bypasses the internal 1.35 kΩ resistor, raising the gain from 20 to <b>200</b>.</td>
</tr>
<tr>
<td class="ref">C3, C4</td>
<td class="part">10 µF 16 V electrolytic capacitor</td>
<td class="qty">2</td>
<td>Bulk supply decoupling, one per channel, placed right at the IC. Keeps the rail steady when the output stage slams current into the speaker on a bass transient.</td>
</tr>
<tr>
<td class="ref">C5, C6</td>
<td class="part">220 µF 16 V electrolytic capacitor<span>The output coupling cap — 100 µF–470 µF all work</span></td>
<td class="qty">2</td>
<td>AC-couples pin 5 to the speaker. Blocks the 4.5 V DC midpoint, passes audio, and sets the low-frequency roll-off (with 8 Ω, 220 µF gives ≈ 90 Hz at −3 dB).</td>
</tr>
<tr>
<td class="ref">C7, C8</td>
<td class="part">0.1 µF (100 nF) ceramic capacitor</td>
<td class="qty">2</td>
<td>High-frequency decoupling across the power rails, in parallel with C3/C4. Swallows the fast current spikes the electrolytics are too slow to supply.</td>
</tr>
<tr>
<td class="ref">C9, C10</td>
<td class="part">0.1 µF ceramic capacitor<span>Zobel network</span></td>
<td class="qty">2</td>
<td>Part of the optional Zobel network. Together with R1/R2 it damps the rising impedance of the speaker at high frequencies and keeps the amp stable with long or capacitive speaker leads.</td>
</tr>
<tr>
<td class="ref">R1, R2</td>
<td class="part">10 Ω ¼ W resistor<span>Zobel network</span></td>
<td class="qty">2</td>
<td>The resistive half of the Zobel network, in series with C9/C10 from pin 5 to ground.</td>
</tr>
<tr>
<td class="ref">LS1, LS2</td>
<td class="part">8 Ω loudspeaker<span>3 W or higher · 4 Ω also works and gives more power</span></td>
<td class="qty">2</td>
<td>Left and right output. Never connect a load below 4 Ω — the LM386 is rated for 4 Ω minimum.</td>
</tr>
<tr>
<td class="ref">J1</td>
<td class="part">3.5 mm stereo jack / breakout board<span>Or two RCA sockets, or a pair of clip leads from the source</span></td>
<td class="qty">1</td>
<td>Brings tip = left, ring = right and sleeve = ground onto the board as three wires.</td>
</tr>
<tr>
<td class="ref">BT1</td>
<td class="part">9 V battery + snap connector<span>Or a regulated 9–12 V DC adapter, 500 mA</span></td>
<td class="qty">1</td>
<td>Single-rail power. A battery is inherently current-limited, which is a real safety feature while you are learning.</td>
</tr>
<tr>
<td class="ref">—</td>
<td class="part">Solderless breadboard<span>830 tie-point, full size (63 × 10)</span></td>
<td class="qty">1</td>
<td>The build platform. Full size gives you the central channel needed to straddle two DIP-8 ICs plus free rows for routing.</td>
</tr>
<tr>
<td class="ref">—</td>
<td class="part">Solid-core jumper wire<span>22 AWG, pre-cut kit or a stripped spool</span></td>
<td class="qty">1</td>
<td>All the interconnections. Use several colours and stay consistent: red = +9 V, black = ground, yellow/orange = signal, green = output.</td>
</tr>
<tr>
<td class="ref">—</td>
<td class="part">Audio source & 3.5 mm cable</td>
<td class="qty">1</td>
<td>Phone, laptop, MP3 player or signal generator. Start every test at half source volume.</td>
</tr>
<tr>
<td class="ref">—</td>
<td class="part">Digital multimeter</td>
<td class="qty">1</td>
<td>Continuity, voltage and resistance checks. The single most useful debugging tool you own.</td>
</tr>
<tr>
<td class="ref">—</td>
<td class="part">Wire cutters / strippers · small screwdriver<span>Optional: soldering iron, helping hands</span></td>
<td class="qty">1 ea</td>
<td>Cutting jumpers to length, adjusting the volume trimmers, and tidying up the bench.</td>
</tr>
</tbody>
</table>
</div>
<div class="legend">
<span><i class="sw" style="background:#3fe0d0"></i>Required for the core build</span>
<span><i class="sw" style="background:#ffbb4d"></i>C9, C10, R1, R2 are the optional Zobel network</span>
</div>
</div>
<div class="callout tip">
<span class="tag">Kit tip</span>
<p>Buy <strong>five</strong> LM386s, not two. They cost about £0.60 each, and having spares on the bench means a mis-wired first attempt is a two-minute setback instead of a trip to the shop. Buy matching electrolytics too — 10 µF and 220 µF in 16 V or 25 V ratings are the two values the whole design leans on.</p>
</div>
</section>
<!-- ============ 4. DIAGRAMS ============ -->
<section id="diagrams">
<div class="sec-head"><span class="sec-num">04</span><h2>Circuit diagrams</h2></div>
<p>Two views of the same circuit follow. The <strong>schematic</strong> shows what is electrically connected; the <strong>breadboard guide</strong> in the next section shows where to physically put things. Read the schematic first — it is the language the rest of this guide speaks.</p>
<!-- ==== FIG 1 : full schematic ==== -->
<figure>
<div class="fig-hd">
<span class="n">FIG 4.1</span>
<h4>Complete stereo schematic — two LM386 channels</h4>
<span class="sub">gain = 200 · single 9 V supply</span>
</div>
<div class="fig-body">
<svg viewBox="0 0 820 790" role="img" aria-label="Full stereo LM386 amplifier schematic">
<defs>
<!-- ground symbol -->
<g id="gnd" fill="none" stroke="#8a9bb8" stroke-width="2" stroke-linecap="round">
<path d="M-13 0h26M-8 7h16M-3 14h6"/>
</g>
<!-- +V flag -->
<g id="vflag">
<path d="M-17 0h34" stroke="#ff6472" stroke-width="3" stroke-linecap="round"/>
<text x="0" y="-9" text-anchor="middle" fill="#ff6472" font-family="ui-monospace,monospace" font-size="12" font-weight="600">+9V</text>
</g>
<style>
.w{fill:none;stroke:#9fb0c9;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ws{fill:none;stroke:#5aa9ff;stroke-width:1.8;stroke-linecap:round}
.wo{fill:none;stroke:#ffbb4d;stroke-width:1.8;stroke-linecap:round}
.lbl{fill:#dae3f2;font-family:ui-monospace,monospace;font-size:11.5px}
.val{fill:#3fe0d0;font-family:ui-monospace,monospace;font-size:11px}
.pn{fill:#63718c;font-family:ui-monospace,monospace;font-size:10.5px}
.nm{fill:#8a9bb8;font-family:ui-monospace,monospace;font-size:10.5px}
</style>
</defs>
<!-- ======= ONE CHANNEL ======= -->
<g id="chan">
<!-- potentiometer -->
<rect x="-9" y="10" width="18" height="110" rx="3" fill="#131a28" stroke="#3fe0d0" stroke-width="1.6"/>
<path class="w" d="M0-25V10M0 120v30"/>
<path class="w" d="M30 65h20"/>
<path d="M10 59l9 6-9 6z" fill="#3fe0d0"/>
<use href="#gnd" x="0" y="150"/>
<text class="val" x="26" y="20">10k</text>
<text class="nm" x="26" y="33">VOL</text>
<!-- input coupling cap -->
<path class="ws" d="M50 65h-3M60 65h20"/>
<path class="lbl" stroke="#3fe0d0" stroke-width="2" d="M51 56v18M59 56v18"/>
<text class="val" x="55" y="46" text-anchor="middle">10µF</text>
<path class="ws" d="M80 65v85h15"/>
<text class="nm" x="86" y="112">IN</text>
<!-- gain cap between pins 1 & 8 -->
<path class="w" d="M150 60h-35"/>
<path class="w" d="M150 95h-35"/>
<path class="lbl" stroke="#b98cff" stroke-width="2" d="M106 70h18M106 78h18"/>
<path class="lbl" stroke="#b98cff" stroke-width="2" d="M115 60v10M115 78v17"/>
<text class="val" x="96" y="36" text-anchor="end" fill="#b98cff">10µF</text>
<text class="nm" x="96" y="49" text-anchor="end">GAIN</text>
<!-- IC body -->
<rect x="180" y="15" width="150" height="225" rx="8" fill="#131a28" stroke="#3fe0d0" stroke-width="1.6"/>
<text x="232" y="122" text-anchor="middle" fill="#dae3f2" font-family="ui-monospace,monospace" font-size="15" font-weight="600" letter-spacing="1">LM386</text>
<text x="232" y="140" text-anchor="middle" fill="#17a396" font-family="ui-monospace,monospace" font-size="9" letter-spacing="1.4">POWER AMP</text>
<!-- left pins -->
<path class="w" d="M150 60h30M150 95h30M150 150h30M150 195h30"/>
<text class="pn" x="176" y="55" text-anchor="end">1</text>
<text class="pn" x="176" y="90" text-anchor="end">8</text>
<text class="pn" x="176" y="145" text-anchor="end">3</text>
<text class="pn" x="176" y="190" text-anchor="end">2</text>
<text class="nm" x="186" y="64">GAIN</text>
<text class="nm" x="186" y="99">GAIN</text>
<text class="nm" x="186" y="154">+ IN</text>
<text class="nm" x="186" y="199">− IN</text>
<!-- right pins -->
<path class="wo" d="M330 150h100"/>
<path class="w" d="M330 195h30"/>
<text class="pn" x="334" y="145">5</text>
<text class="pn" x="334" y="190">7</text>
<text class="nm" x="324" y="154" text-anchor="end">OUT</text>
<text class="nm" x="324" y="199" text-anchor="end">BYP</text>
<text x="378" y="199" fill="#63718c" font-family="ui-monospace,monospace" font-size="9.5">open</text>
<!-- power pins -->
<path d="M210 15V-15" fill="none" stroke="#ff6472" stroke-width="1.8"/>
<path d="M210 240v30" fill="none" stroke="#8a9bb8" stroke-width="1.8"/>
<text class="pn" x="204" y="8" text-anchor="end">6</text>
<text class="pn" x="204" y="258" text-anchor="end">4</text>
<text class="nm" x="216" y="2">V+</text>
<text class="nm" x="216" y="252">GND</text>
<use href="#vflag" x="210" y="-15"/>
<use href="#gnd" x="210" y="270"/>
<!-- pin 2 to ground -->
<path class="w" d="M110 195v27"/>
<use href="#gnd" x="110" y="222"/>
<!-- zobel network (optional) -->
<rect x="404" y="158" width="66" height="132" rx="6" fill="none" stroke="#2a3550" stroke-width="1.2" stroke-dasharray="4 4"/>
<path class="w" d="M430 150v25"/>
<path class="w" d="M430 175l9 5-18 10 18 10-18 10 9 5"/>
<path class="w" d="M430 215v10"/>
<path class="w" d="M421 225h18M421 233h18"/>
<path class="w" d="M430 233v18"/>
<use href="#gnd" x="430" y="251"/>
<text class="val" x="472" y="196" fill="#63718c">10Ω</text>
<text class="val" x="472" y="228" fill="#63718c">0.1µF</text>
<text class="nm" x="437" y="306" text-anchor="middle" fill="#63718c" font-size="9">ZOBEL · OPTIONAL</text>
<circle cx="430" cy="150" r="3.2" fill="#9fb0c9"/>
<!-- output coupling capacitor -->
<path class="wo" d="M480 150h-1"/>
<path class="wo" d="M490 150h40"/>
<path stroke="#ffbb4d" stroke-width="2" d="M481 140v20M489 140v20"/>
<text x="472" y="136" text-anchor="middle" fill="#ffbb4d" font-family="ui-monospace,monospace" font-size="13" font-weight="700">+</text>
<text class="val" x="485" y="176" text-anchor="middle" fill="#ffbb4d">220µF</text>
<!-- speaker -->
<path class="wo" d="M530 150v-30h25"/>
<path class="wo" d="M555 180h-35v70"/>
<use href="#gnd" x="520" y="252"/>
<rect x="555" y="105" width="22" height="90" rx="3" fill="#131a28" stroke="#ffbb4d" stroke-width="1.6"/>
<path d="M577 115l28 35-28 35z" fill="#131a28" stroke="#ffbb4d" stroke-width="1.6" stroke-linejoin="round"/>
<text class="val" x="572" y="215" text-anchor="middle" fill="#ffbb4d">8Ω</text>
</g>
<!-- ======= CHANNEL 1 ======= -->
<use href="#chan" transform="translate(150,60)"/>
<text x="26" y="26" fill="#3fe0d0" font-family="ui-monospace,monospace" font-size="12" letter-spacing="2">LEFT CHANNEL</text>
<text x="26" y="42" fill="#63718c" font-family="ui-monospace,monospace" font-size="10" letter-spacing="1">U1 · RV1 · C1/C3/C5/C7</text>
<!-- ======= CHANNEL 2 ======= -->
<use href="#chan" transform="translate(150,420)"/>
<text x="26" y="386" fill="#b98cff" font-family="ui-monospace,monospace" font-size="12" letter-spacing="2">RIGHT CHANNEL</text>
<text x="26" y="402" fill="#63718c" font-family="ui-monospace,monospace" font-size="10" letter-spacing="1">U2 · RV2 · C2/C4/C6/C8</text>
<!-- ======= INPUT JACK ======= -->
<g transform="translate(20,180)">
<rect x="0" y="0" width="90" height="150" rx="10" fill="#0f1521" stroke="#5aa9ff" stroke-width="1.6"/>
<text x="45" y="20" text-anchor="middle" fill="#5aa9ff" font-family="ui-monospace,monospace" font-size="10" letter-spacing="1.2">J1 · STEREO</text>
<text x="45" y="34" text-anchor="middle" fill="#63718c" font-family="ui-monospace,monospace" font-size="9">3.5 mm JACK</text>
<circle cx="45" cy="95" r="21" fill="#070a10" stroke="#5aa9ff" stroke-width="1.6"/>
<circle cx="45" cy="95" r="11" fill="#0b111b" stroke="#5aa9ff" stroke-width="1.2"/>
<circle cx="45" cy="95" r="4" fill="#5aa9ff" opacity=".55"/>
<circle cx="20" cy="128" r="3.4" fill="#5aa9ff"/>
<circle cx="45" cy="128" r="3.4" fill="#3fe0d0"/>
<circle cx="70" cy="128" r="3.4" fill="#8a9bb8"/>
<text x="16" y="146" fill="#5aa9ff" font-family="ui-monospace,monospace" font-size="9">TIP L</text>
<text x="40" y="146" fill="#3fe0d0" font-family="ui-monospace,monospace" font-size="9">RING R</text>
<text x="66" y="146" fill="#8a9bb8" font-family="ui-monospace,monospace" font-size="9">SHLD</text>
<!-- left signal run -->
<path class="ws" d="M90 30h30V-45h27"/>
<!-- right signal run -->
<path class="ws" d="M90 70h8v175h52"/>
<!-- sleeve to ground -->
<path class="w" d="M90 128H70V170"/>
<use href="#gnd" x="70" y="176"/>
</g>
<text x="20" y="176" fill="#5aa9ff" font-family="ui-monospace,monospace" font-size="9.5">TIP → LEFT IN · RING → RIGHT IN</text>
</svg>
</div>
<div class="legend">
<span><i class="sw" style="background:#5aa9ff"></i>Signal path</span>
<span><i class="sw" style="background:#ffbb4d"></i>Output / speaker side</span>
<span><i class="sw" style="background:#9fb0c9"></i>Ground & bias</span>
<span><i class="sw" style="background:#b98cff"></i>Gain-setting network</span>
<span><i class="sw" style="background:rgba(255,255,255,.35)"></i>Dashed = optional Zobel</span>
</div>
<figcaption><b>Reading it:</b> the wiper of each 10 kΩ pot drives pin 3. Pin 2 is tied to ground, so the input stage runs in its non-inverting configuration. A 10 µF cap across pins 1 and 8 lifts the gain to 200×. Pin 5 sits at +4.5 V DC; the 220 µF cap strips that DC before it reaches the speaker. Power and ground are common to both channels.</figcaption>
</figure>
<!-- ==== FIG 2 : pinout ==== -->
<figure>
<div class="fig-hd">
<span class="n">FIG 4.2</span>
<h4>LM386 DIP-8 physical pinout</h4>
<span class="sub">viewed from above, notch to the left</span>
</div>
<div class="fig-body">
<svg viewBox="0 0 760 250" role="img" aria-label="LM386 DIP-8 pinout diagram">
<g transform="translate(60,40)">
<rect x="0" y="0" width="200" height="150" rx="12" fill="#131a28" stroke="#3fe0d0" stroke-width="1.6"/>
<path d="M0 75a16 16 0 0 1 16-16" fill="none" stroke="#3fe0d0" stroke-width="1.6"/>
<circle cx="14" cy="40" r="5" fill="#3fe0d0" opacity=".85"/>
<text x="108" y="72" text-anchor="middle" fill="#dae3f2" font-family="ui-monospace,monospace" font-size="15" font-weight="600" letter-spacing="1.5">LM386</text>
<text x="108" y="90" text-anchor="middle" fill="#17a396" font-family="ui-monospace,monospace" font-size="9.5" letter-spacing="2">N-1 / N-3 / N-4</text>
<!-- pins -->
<g font-family="ui-monospace,monospace" font-size="12">
<g stroke="#9fb0c9" stroke-width="2.4" stroke-linecap="round">
<path d="M0 30h-30M0 75h-30M0 120h-30M0 150h-30"/>
<path d="M200 30h30M200 75h30M200 120h30M200 150h30"/>
</g>
<g fill="#3fe0d0" font-weight="600">
<text x="-36" y="34" text-anchor="end">1</text>
<text x="-36" y="79" text-anchor="end">2</text>
<text x="-36" y="124" text-anchor="end">3</text>
<text x="-36" y="154" text-anchor="end">4</text>
<text x="236" y="34">8</text>
<text x="236" y="79">7</text>
<text x="236" y="124">6</text>
<text x="236" y="154">5</text>
</g>
</g>
</g>
<g font-family="ui-monospace,monospace" font-size="12" fill="#8a9bb8">
<text x="24" y="40" text-anchor="end">GAIN</text>
<text x="24" y="85" text-anchor="end">− IN</text>
<text x="24" y="130" text-anchor="end">+ IN</text>
<text x="24" y="160" text-anchor="end">GND</text>
<text x="316" y="40" fill="#3fe0d0">GAIN</text>
<text x="316" y="85">BYPASS</text>
<text x="316" y="130" fill="#ff6472">V + (supply)</text>
<text x="316" y="160" fill="#ffbb4d">OUTPUT</text>
</g>
<g transform="translate(540,20)">
<rect x="0" y="0" width="200" height="210" rx="10" fill="#0b111b" stroke="#1c2536"/>
<text x="14" y="26" fill="#3fe0d0" font-family="ui-monospace,monospace" font-size="10.5" letter-spacing="1.4">ORIENTATION CHECK</text>
<text x="14" y="56" fill="#8a9bb8" font-family="ui-monospace,monospace" font-size="11">• notch / dot = pin 1</text>
<text x="14" y="80" fill="#8a9bb8" font-family="ui-monospace,monospace" font-size="11">• pins run counter-clock-</text>
<text x="26" y="96" fill="#8a9bb8" font-family="ui-monospace,monospace" font-size="11">wise from pin 1</text>
<text x="14" y="126" fill="#8a9bb8" font-family="ui-monospace,monospace" font-size="11">• notch to the LEFT on</text>
<text x="26" y="142" fill="#8a9bb8" font-family="ui-monospace,monospace" font-size="11">the breadboard</text>
<text x="14" y="176" fill="#ff6472" font-family="ui-monospace,monospace" font-size="11">pin 6 = +9 V</text>
<text x="14" y="192" fill="#ff6472" font-family="ui-monospace,monospace" font-size="11">pin 4 = ground</text>
</g>
</svg>
</div>
<figcaption><b>Physical check before you insert anything:</b> hold the IC with the legs pointing down and the notch (or the round dimple) on the left. The lower-left pin is pin 1. Count counter-clockwise: 1, 2, 3, 4 down the right… in board terms you will place pins 1–4 along one row and 8–5 along the row below. Do this check once and never think about it again.</figcaption>
</figure>
<!-- ==== FIG 3 : power ==== -->
<figure>
<div class="fig-hd">
<span class="n">FIG 4.3</span>
<h4>Power supply & decoupling detail</h4>
<span class="sub">shared by both channels</span>
</div>
<div class="fig-body">
<svg viewBox="0 0 760 300" role="img" aria-label="Power supply and decoupling schematic">
<defs>
<g id="gnd2" fill="none" stroke="#8a9bb8" stroke-width="2" stroke-linecap="round">
<path d="M-13 0h26M-8 7h16M-3 14h6"/>
</g>
</defs>
<!-- battery -->
<g transform="translate(70,90)">
<path d="M0 0v40M0 60v40" stroke="#9fb0c9" stroke-width="2"/>
<path d="M-26 40h52" stroke="#ff6472" stroke-width="3.4" stroke-linecap="round"/>
<path d="M-14 50h28" stroke="#8a9bb8" stroke-width="3.4" stroke-linecap="round"/>
<path d="M-14 60h28" stroke="#ff6472" stroke-width="3" stroke-linecap="round"/>
<path d="M-26 70h52" stroke="#8a9bb8" stroke-width="3.4" stroke-linecap="round"/>
<text x="34" y="34" fill="#ff6472" font-family="ui-monospace,monospace" font-size="13" font-weight="700">+</text>
<text x="34" y="86" fill="#8a9bb8" font-family="ui-monospace,monospace" font-size="13" font-weight="700">−</text>
<text x="-46" y="86" text-anchor="end" fill="#dae3f2" font-family="ui-monospace,monospace" font-size="12">9V</text>
<text x="-46" y="102" text-anchor="end" fill="#63718c" font-family="ui-monospace,monospace" font-size="10">BT1</text>
</g>
<!-- rails -->
<path d="M96 40H690" stroke="#ff6472" stroke-width="3" stroke-linecap="round"/>
<path d="M96 250H690" stroke="#3fe0d0" stroke-width="3" stroke-linecap="round"/>
<text x="96" y="26" fill="#ff6472" font-family="ui-monospace,monospace" font-size="12" letter-spacing="1.5">+9V RAIL</text>
<text x="96" y="274" fill="#3fe0d0" font-family="ui-monospace,monospace" font-size="12" letter-spacing="1.5">GROUND RAIL (0 V)</text>
<path d="M70 90V40h26" fill="none" stroke="#9fb0c9" stroke-width="2"/>
<path d="M70 190v60h26" fill="none" stroke="#9fb0c9" stroke-width="2"/>
<!-- decoupling pair -->
<g transform="translate(280,0)">
<path d="M0 40v66M0 122v128" stroke="#9fb0c9" stroke-width="2"/>
<path d="M-16 106h32M-16 122h32" stroke="#3fe0d0" stroke-width="2.6"/>
<text x="26" y="100" fill="#3fe0d0" font-family="ui-monospace,monospace" font-size="11">10µF</text>
<text x="26" y="114" fill="#63718c" font-family="ui-monospace,monospace" font-size="9.5">C3 / C4</text>
<text x="26" y="128" fill="#63718c" font-family="ui-monospace,monospace" font-size="9.5">electrolytic</text>
</g>
<g transform="translate(430,0)">
<path d="M0 40v66M0 122v128" stroke="#9fb0c9" stroke-width="2"/>
<path d="M-16 106h32M-16 122h32" stroke="#b98cff" stroke-width="2.6"/>
<text x="26" y="100" fill="#b98cff" font-family="ui-monospace,monospace" font-size="11">0.1µF</text>
<text x="26" y="114" fill="#63718c" font-family="ui-monospace,monospace" font-size="9.5">C7 / C8 · ceramic</text>
<text x="26" y="128" fill="#63718c" font-family="ui-monospace,monospace" font-size="9.5">sits next to C3/C4</text>
</g>
<!-- IC taps -->
<g>
<rect x="570" y="96" width="90" height="98" rx="8" fill="#131a28" stroke="#3fe0d0" stroke-width="1.4"/>
<text x="615" y="139" text-anchor="middle" fill="#dae3f2" font-family="ui-monospace,monospace" font-size="12" letter-spacing="1">U1</text>
<text x="615" y="156" text-anchor="middle" fill="#17a396" font-family="ui-monospace,monospace" font-size="9">PIN 6 / PIN 4</text>
<path d="M615 40v56" stroke="#ff6472" stroke-width="2"/>
<path d="M615 194v56" stroke="#3fe0d0" stroke-width="2"/>
</g>
</svg>
</div>
<figcaption><b>Why two capacitors per channel?</b> The 10 µF electrolytic handles the slow, high-energy bass current; the 0.1 µF ceramic handles the fast switching transients the electrolytic physically cannot respond to. They work as a team. Mount both pairs as close as you can to the IC's power pins, and always on the same half of the breadboard if possible.</figcaption>
</figure>
</section>
<!-- ============ 5. BREADBOARD ============ -->
<section id="breadboard">
<div class="sec-head"><span class="sec-num">05</span><h2>Breadboard wiring guide</h2></div>
<p>A schematic tells you what connects to what. A breadboard view tells you where to actually push the wire. Before the full board layout, here is the one thing you must internalise:</p>
<figure>
<div class="fig-hd"><span class="n">FIG 5.1</span><h4>How a breadboard is internally connected</h4><span class="sub">the five-hole rule</span></div>
<div class="fig-body">
<svg viewBox="0 0 640 250" role="img" aria-label="Diagram explaining breadboard internal connections">
<g transform="translate(60,30)">
<rect x="0" y="0" width="520" height="190" rx="10" fill="#0f1521" stroke="#232f45"/>
<!-- power rails -->
<rect x="10" y="14" width="500" height="22" rx="4" fill="#251018" stroke="#4a1f2b"/>
<rect x="10" y="150" width="500" height="22" rx="4" fill="#0f2130" stroke="#1e4258"/>
<text x="-8" y="30" text-anchor="end" fill="#ff5b6b" font-family="ui-monospace,monospace" font-size="10">+</text>
<text x="-8" y="166" text-anchor="end" fill="#5aa9ff" font-family="ui-monospace,monospace" font-size="10">−</text>
<!-- rows -->
<g fill="#1a2233" stroke="#2b3852" stroke-width="1">
<!-- generated look: static circles -->
<circle cx="60" cy="60" r="3.6"/><circle cx="84" cy="60" r="3.6"/><circle cx="108" cy="60" r="3.6"/><circle cx="132" cy="60" r="3.6"/><circle cx="156" cy="60" r="3.6"/><circle cx="180" cy="60" r="3.6"/><circle cx="204" cy="60" r="3.6"/><circle cx="228" cy="60" r="3.6"/><circle cx="252" cy="60" r="3.6"/><circle cx="276" cy="60" r="3.6"/>
<circle cx="60" cy="76" r="3.6"/><circle cx="84" cy="76" r="3.6"/><circle cx="108" cy="76" r="3.6"/><circle cx="132" cy="76" r="3.6"/><circle cx="156" cy="76" r="3.6"/><circle cx="180" cy="76" r="3.6"/><circle cx="204" cy="76" r="3.6"/><circle cx="228" cy="76" r="3.6"/><circle cx="252" cy="76" r="3.6"/><circle cx="276" cy="76" r="3.6"/>
<circle cx="60" cy="92" r="3.6"/><circle cx="84" cy="92" r="3.6"/><circle cx="108" cy="92" r="3.6"/><circle cx="132" cy="92" r="3.6"/><circle cx="156" cy="92" r="3.6"/><circle cx="180" cy="92" r="3.6"/><circle cx="204" cy="92" r="3.6"/><circle cx="228" cy="92" r="3.6"/><circle cx="252" cy="92" r="3.6"/><circle cx="276" cy="92" r="3.6"/>
<circle cx="60" cy="108" r="3.6"/><circle cx="84" cy="108" r="3.6"/><circle cx="108" cy="108" r="3.6"/><circle cx="132" cy="108" r="3.6"/><circle cx="156" cy="108" r="3.6"/><circle cx="180" cy="108" r="3.6"/><circle cx="204" cy="108" r="3.6"/><circle cx="228" cy="108" r="3.6"/><circle cx="252" cy="108" r="3.6"/><circle cx="276" cy="108" r="3.6"/>
<circle cx="60" cy="124" r="3.6"/><circle cx="84" cy="124" r="3.6"/><circle cx="108" cy="124" r="3.6"/><circle cx="132" cy="124" r="3.6"/><circle cx="156" cy="124" r="3.6"/><circle cx="180" cy="124" r="3.6"/><circle cx="204" cy="124" r="3.6"/><circle cx="228" cy="124" r="3.6"/><circle cx="252" cy="124" r="3.6"/><circle cx="276" cy="124" r="3.6"/>
</g>
<!-- centre channel -->
<rect x="10" y="132" width="500" height="0" fill="none"/>
<!-- highlighted column -->
<rect x="146" y="50" width="20" height="84" rx="6" fill="rgba(63,224,208,.14)" stroke="#3fe0d0" stroke-width="1.3"/>
<path d="M156 54v76" stroke="#3fe0d0" stroke-width="2" stroke-dasharray="3 3"/>
<text x="156" y="44" text-anchor="middle" fill="#3fe0d0" font-family="ui-monospace,monospace" font-size="10.5">one node</text>
<!-- second highlighted column -->
<rect x="242" y="50" width="20" height="84" rx="6" fill="rgba(185,140,255,.13)" stroke="#b98cff" stroke-width="1.3"/>
<path d="M252 54v76" stroke="#b98cff" stroke-width="2" stroke-dasharray="3 3"/>
<text x="252" y="44" text-anchor="middle" fill="#b98cff" font-family="ui-monospace,monospace" font-size="10.5">separate node</text>
<!-- rails highlight -->
<path d="M20 25h480" stroke="#ff5b6b" stroke-width="1.4" stroke-dasharray="5 4" opacity=".85"/>
<path d="M20 161h480" stroke="#5aa9ff" stroke-width="1.4" stroke-dasharray="5 4" opacity=".85"/>
<text x="510" y="30" fill="#ff5b6b" font-family="ui-monospace,monospace" font-size="10.5">1 long node</text>
<text x="510" y="166" fill="#5aa9ff" font-family="ui-monospace,monospace" font-size="10.5">1 long node</text>
</g>
<text x="60" y="242" fill="#5e6d88" font-family="ui-monospace,monospace" font-size="11">Columns of five are connected · the middle channel splits them · rails run the full length</text>
</svg>
</div>
<figcaption>Every column of five holes is a single node. A DIP IC straddles the centre channel, so pins 1–4 land in one row and pins 8–5 in the row three holes away — which is exactly why a DIP-8 fits across the channel with four pins on each side.</figcaption>
</figure>
<figure>
<div class="fig-hd">
<span class="n">FIG 5.2</span>
<h4>Full breadboard layout — pin-to-pin wiring guide</h4>
<span class="sub">U1 = left channel · U2 = right channel</span>
</div>
<div class="fig-body">
<svg id="bbSvg" viewBox="0 0 1200 830" role="img" aria-label="Full breadboard layout of the stereo LM386 amplifier"></svg>
</div>
<div class="legend">
<span><i class="sw" style="background:#ff5b6b"></i>+9 V</span>
<span><i class="sw" style="background:#8ea2bb"></i>Ground</span>
<span><i class="sw" style="background:#ffd95e"></i>Left signal</span>
<span><i class="sw" style="background:#ff9f43"></i>Right signal</span>
<span><i class="sw" style="background:#b98cff"></i>Gain network</span>
<span><i class="sw" style="background:#3fe0d0"></i>Speaker output</span>
<span>⤴ arc = wire crosses over without connecting</span>
</div>
<figcaption><b>Component placement, left to right:</b> J1 stereo jack and BT1 battery on the outside of the board; U1 at columns 8–11 and U2 at columns 25–28; the two 10 kΩ volume pots sit in the middle pair of columns so neither channel's wiring has to cross the other's; C5 and C6 (220 µF) drop straight down to the speakers. Pin 6 of each IC goes to the <em>bottom</em> red rail, so do not forget the two rail-link jumpers in the right margin.</figcaption>
</figure>
<div class="callout note">
<span class="tag">Wire it in this order</span>
<p>Rails first, then the ICs, then power and ground, then the pots and signal wiring, then the output capacitors and speakers. Every step from here on assumes the previous step is finished and visually verified.</p>
</div>
</section>
<script>
(function(){
const NS='http://www.w3.org/2000/svg';
const svg=document.getElementById('bbSvg');
if(!svg)return;
const mk=(n,a,parent)=>{const e=document.createElementNS(NS,n);for(const k in a)e.setAttribute(k,a[k]);(parent||svg).appendChild(e);return e;};
const g=mk('g',{});
const COL0=250,CDX=24,ROW0=298,RDY=20;
const X=c=>COL0+(c-1)*CDX;
const Y=r=>r<5?ROW0+r*RDY:446+(r-5)*RDY;
const RT=230,BT=256,RB=592,BB=618;
const C={pos:'#ff5b6b',gnd:'#8ea2bb',L:'#ffd95e',R:'#ff9f43',out:'#3fe0d0',gain:'#b98cff',pot:'#5aa9ff',ink:'#dae3f2',dim:'#5e6d88'};
/* ---------- defs: hole pattern ---------- */
const defs=mk('defs',{});
const pat=mk('pattern',{id:'bbHoles',patternUnits:'userSpaceOnUse',width:CDX,height:RDY},defs);
mk('circle',{cx:0,cy:0,r:3.6,fill:'#161e2e',stroke:'#2b3852','stroke-width':1},pat);
/* ---------- board shell ---------- */
mk('rect',{x:215,y:200,width:865,height:460,rx:12,fill:'#0f1521',stroke:'#232f45','stroke-width':1.4});
mk('rect',{x:228,y:208,width:839,height:444,rx:9,fill:'none',stroke:'#18202f'});
function field(ty,rows){
const gp=mk('g',{transform:'translate('+COL0+','+ty+')'});
mk('rect',{x:-12,y:-12,width:816,height:rows===5?104:104,fill:'url(#bbHoles)'},gp);
}
field(ROW0,5); /* rows a-e */
field(446,5); /* rows f-j */
/* centre channel */
mk('rect',{x:228,y:382,width:839,height:56,rx:5,fill:'#080d15',stroke:'#161f2e'});
mk('text',{x:640,y:414,fill:'#232f45','font-family':'ui-monospace,monospace','font-size':11,'text-anchor':'middle','letter-spacing':3}).textContent='CENTRE CHANNEL';
/* rails */
function rail(y,fill,stroke,line){
mk('rect',{x:244,y:y-6,width:806,height:12,rx:3,fill:fill,stroke:stroke,'stroke-width':1});
const gp=mk('g',{transform:'translate('+COL0+','+y+')'});
mk('rect',{x:-12,y:-7,width:816,height:14,fill:'url(#bbHoles)'},gp);
mk('path',{d:'M250 '+(y+9)+'H1042',stroke:line,'stroke-width':1.4,opacity:.5});
}
rail(RT,'#251018','#4a1f2b',C.pos);
rail(BT,'#0f2130','#1e4258',C.pot);
rail(RB,'#251018','#4a1f2b',C.pos);
rail(BB,'#0f2130','#1e4258',C.pot);
/* rail + row labels */
function txt(x,y,s,o){o=o||{};const t=mk('text',{x:x,y:y,fill:o.fill||C.dim,'font-family':'ui-monospace,monospace','font-size':o.size||11,'text-anchor':o.anchor||'start','letter-spacing':o.ls||0,'font-weight':o.weight||400});t.textContent=s;return t;}
txt(250,219,'+9 V RAIL',{fill:C.pos,size:10,ls:1});
txt(250,277,'GND RAIL (0 V)',{fill:C.pot,size:10,ls:1});
txt(250,581,'+9 V RAIL',{fill:C.pos,size:10,ls:1});
txt(250,641,'GND RAIL (0 V)',{fill:C.pot,size:10,ls:1});
/* column numbers */
[5,10,15,20,25,30].forEach(c=>txt(X(c),278,''+c,{size:9,anchor:'middle',fill:'#3a4864'}));
/* row letters */
'abcde'.split('').forEach((r,i)=>{txt(231,Y(i)+3.5,r,{size:10,anchor:'end',fill:'#3a4864'});txt(1068,Y(i)+3.5,r,{size:10,fill:'#3a4864'});});
'fghij'.split('').forEach((r,i)=>{txt(231,Y(i+5)+3.5,r,{size:10,anchor:'end',fill:'#3a4864'});txt(1068,Y(i+5)+3.5,r,{size:10,fill:'#3a4864'});});
/* ---------- wires (drawn under components that matter, over the board) ---------- */
function wire(pts,color,o){
o=o||{};
let d;
if(o.bow&&pts.length===2){
const a=pts[0],b=pts[1],mx=(a[0]+b[0])/2,my=(a[1]+b[1])/2;
const dx=b[0]-a[0],dy=b[1]-a[1],len=Math.hypot(dx,dy)||1;
const cx=mx-dy/len*o.bow, cy=my+dx/len*o.bow;
d='M'+a[0]+' '+a[1]+'Q'+cx+' '+cy+' '+b[0]+' '+b[1];
}else{
d=pts.map((p,i)=>(i?'L':'M')+p[0]+' '+p[1]).join(' ');
}
const w=o.w||3;
mk('path',{d:d,fill:'none',stroke:'#04070d','stroke-width':w+2.8,'stroke-linecap':'round','stroke-linejoin':'round',opacity:.85},g);
mk('path',{d:d,fill:'none',stroke:color,'stroke-width':w,'stroke-linecap':'round','stroke-linejoin':'round',opacity:o.op||1},g);
}
function dot(x,y,color){mk('circle',{cx:x,cy:y,r:3.4,fill:color,stroke:'#04070d','stroke-width':1.2},g);}
/* === POWER === */
wire([[X(1),230],[X(1),100],[206,100]],C.pos);
wire([[206,140],[225,140],[225,BT],[274,BT]],C.gnd);
/* rail links (right margin) */
wire([[1042,RT],[1058,RT],[1058,RB],[1042,RB]],C.pos,{w:2.8});
wire([[1042,BT],[1070,BT],[1070,BB],[1042,BB]],C.gnd,{w:2.8});
/* IC power + ground */
wire([[X(9),Y(2)],[X(9),BT]],C.gnd); /* U1 pin2 */
wire([[X(11),Y(2)],[X(11),BT]],C.gnd); /* U1 pin4 */
wire([[X(10),Y(5)],[X(10),RB]],C.pos); /* U1 pin6 */
wire([[X(26),Y(2)],[X(26),BT]],C.gnd); /* U2 pin2 */
wire([[X(28),Y(2)],[X(28),BT]],C.gnd); /* U2 pin4 */
wire([[X(27),Y(5)],[X(27),RB]],C.pos); /* U2 pin6 */
/* === POTS === */
wire([[X(15),Y(0)],[X(15),BT]],C.gnd);
wire([[X(22),Y(0)],[X(22),BT]],C.gnd);
/* left channel signal + wiper */
wire([[195,330],[219,330],[219,406],[X(17),406],[X(17),Y(0)]],C.L);
wire([[X(16),Y(0)],[X(16),390],[X(10),390],[X(10),Y(4)]],C.L);
/* right channel signal + wiper */
wire([[195,380],[228,380],[228,432],[X(20),432],[X(20),Y(0)]],C.R);
wire([[X(21),Y(0)],[X(21),418],[X(27),418],[X(27),Y(4)]],C.R);
/* jack ground to rail */
wire([[195,430],[208,430],[208,BT],[X(1),BT]],C.gnd);
/* === GAIN NETWORK === */
wire([[X(8),Y(0)],[X(6),Y(0)]],C.gain,{bow:-15,w:2.8});
wire([[X(8),Y(5)],[X(6),Y(5)]],C.gain,{bow:11,w:2.8});
wire([[X(25),Y(0)],[X(23),Y(0)]],C.gain,{bow:-15,w:2.8});
wire([[X(25),Y(5)],[X(23),Y(5)]],C.gain,{bow:11,w:2.8});
/* === OUTPUT === */
wire([[X(11),Y(5)],[X(11),Y(9)]],C.out);
wire([[X(28),Y(5)],[X(28),Y(9)]],C.out);
wire([[X(12),Y(9)],[X(12),690]],C.out);
wire([[X(29),Y(9)],[X(29),690]],C.out);
/* ---------- components ---------- */
const comp=mk('g',{});
function icBody(c1,c3,label,pins){
const x1=X(c1)-9,x2=X(c3)+9,y1=368,y2=424;
const gp=mk('g',{},comp);
/* legs */
[c1,c1+1,c1+2,c1+3].forEach((c,i)=>{
mk('path',{d:'M'+X(c)+' '+Y(2)+'V'+y1,stroke:'#93a4bd','stroke-width':2.6,'stroke-linecap':'round'},gp);
mk('path',{d:'M'+X(c)+' '+Y(5)+'V'+y2,stroke:'#93a4bd','stroke-width':2.6,'stroke-linecap':'round'},gp);
});
mk('rect',{x:x1,y:y1,width:x2-x1,height:y2-y1,rx:7,fill:'#1a2233',stroke:'#3a4a66','stroke-width':1.4},gp);
mk('path',{d:'M'+x1+' 389a9 9 0 0 0 0 14',fill:'none',stroke:'#3fe0d0','stroke-width':1.6},gp);
mk('circle',{cx:x1+13,cy:382,r:2.6,fill:'#3fe0d0',opacity:.85},gp);
const t=mk('text',{x:(x1+x2)/2+4,y:400,fill:'#dae3f2','font-family':'ui-monospace,monospace','font-size':12,'text-anchor':'middle','letter-spacing':1.5},gp);
t.textContent=label;
/* pin numbers */
pins.forEach(p=>{
const pinned=mk('text',{x:X(p[1])+9,y:p[0]==='t'?330:456,fill:'#3fe0d0','font-family':'ui-monospace,monospace','font-size':10,'text-anchor':'middle'},gp);
pinned.textContent=p[2];
});
}
/* U1: top row pins 1..4 at cols 8..11 ; bottom row pins 8..5 at cols 8..11 */
icBody(8,11,'U1',[['t',8,'1'],['t',9,'2'],['t',10,'3'],['t',11,'4'],['b',8,'8'],['b',9,'7'],['b',10,'6'],['b',11,'5']]);
icBody(25,28,'U2',[['t',25,'1'],['t',26,'2'],['t',27,'3'],['t',28,'4'],['b',25,'8'],['b',26,'7'],['b',27,'6'],['b',28,'5']]);
/* pot */
function pot(c1,label,sub){
const gp=mk('g',{},comp);
const x1=X(c1)-11,x2=X(c1+2)+11,y1=258,y2=286;
mk('rect',{x:x1,y:y1,width:x2-x1,height:y2-y1,rx:6,fill:'#151d2c',stroke:'#5aa9ff','stroke-width':1.4},gp);
[c1,c1+1,c1+2].forEach(c=>mk('path',{d:'M'+X(c)+' '+Y(0)+'V'+y2,stroke:'#93a4bd','stroke-width':2.4,'stroke-linecap':'round'},gp));
mk('circle',{cx:X(c1+1),cy:(y1+y2)/2,r:8,fill:'#0d1420',stroke:'#5aa9ff','stroke-width':1.2},gp);
mk('path',{d:'M'+X(c1+1)+' '+((y1+y2)/2)+'v-6',stroke:'#5aa9ff','stroke-width':1.6},gp);
const t=mk('text',{x:X(c1+1),y:252,fill:'#5aa9ff','font-family':'ui-monospace,monospace','font-size':10.5,'text-anchor':'middle'},gp);
t.textContent=label;
const s=mk('text',{x:X(c1+1),y:300,fill:'#5e6d88','font-family':'ui-monospace,monospace','font-size':8.5,'text-anchor':'middle'},gp);
s.textContent=sub;
}
pot(15,'10k','RV1');
pot(20,'10k','RV2');
/* vertical capacitor between two y positions */
function capV(x,y1,y2,color,label,sub,pol){
const gp=mk('g',{},comp);
const mid=(y1+y2)/2;
mk('path',{d:'M'+x+' '+y1+'V'+(mid-6),stroke:'#93a4bd','stroke-width':2.2},gp);
mk('path',{d:'M'+x+' '+(mid+6)+'V'+y2,stroke:'#93a4bd','stroke-width':2.2},gp);
mk('path',{d:'M'+(x-12)+' '+(mid-6)+'h24M'+(x-12)+' '+(mid+6)+'h24',stroke:color,'stroke-width':2.8,'stroke-linecap':'round'},gp);
if(pol)mk('text',{x:x+17,y:mid-9,fill:color,'font-family':'ui-monospace,monospace','font-size':11,'font-weight':700},gp).textContent='+';
const t=mk('text',{x:x,y:y1-9,fill:color,'font-family':'ui-monospace,monospace','font-size':10,'text-anchor':'middle'},gp);
t.textContent=label;
if(sub){const s=mk('text',{x:x,y:y2+15,fill:'#5e6d88','font-family':'ui-monospace,monospace','font-size':8.5,'text-anchor':'middle'},gp);s.textContent=sub;}
}
/* rail decoupling: near U1 col 3-4, near U2 col 32-33 */
capV(X(3),RT,BT,'#3fe0d0','10µF','C3',true);
capV(X(4),RT,BT,'#b98cff','0.1µF','C7',false);
capV(X(32),RT,BT,'#3fe0d0','10µF','C4',true);
capV(X(33),RT,BT,'#b98cff','0.1µF','C8',false);
/* gain caps, vertically across the channel at col 6 / col 23 */
capV(X(6),Y(4),Y(5),'#b98cff','10µF','C1',false);
capV(X(23),Y(4),Y(5),'#b98cff','10µF','C2',false);
/* horizontal output caps between col 11-12 and 28-29 at row j */
function capH(c1,c2,color,label,pol){
const gp=mk('g',{},comp);
const y=Y(9),x1=X(c1),x2=X(c2),mid=(x1+x2)/2;
mk('path',{d:'M'+x1+' '+y+'H'+(mid-4),stroke:'#93a4bd','stroke-width':2.2},gp);
mk('path',{d:'M'+(mid+4)+' '+y+'H'+x2,stroke:'#93a4bd','stroke-width':2.2},gp);
mk('path',{d:'M'+(mid-4)+' '+(y-11)+'V'+(y+11)+'M'+(mid+4)+' '+(y-11)+'V'+(y+11),stroke:color,'stroke-width':2.8,'stroke-linecap':'round'},gp);
if(pol)mk('text',{x:mid-13,y:y-6,fill:color,'font-family':'ui-monospace,monospace','font-size':11,'font-weight':700},gp).textContent='+';
const t=mk('text',{x:mid,y:y+26,fill:color,'font-family':'ui-monospace,monospace','font-size':10,'text-anchor':'middle'},gp);
t.textContent=label;
}
capH(11,12,'#ffbb4d','220µF C5',true);
capH(28,29,'#ffbb4d','220µF C6',true);
/* ---------- off-board: battery, jack, speakers ---------- */
/* battery */
(function(){
const gp=mk('g',{},comp);
mk('rect',{x:70,y:80,width:120,height:92,rx:8,fill:'#0d141f',stroke:'#ff5b6b','stroke-width':1.4},gp);
mk('path',{d:'M96 100h68M108 112h44M108 122h44M96 134h68',stroke:'#8ea2bb','stroke-width':3,'stroke-linecap':'round'},gp);
mk('text',{x:130,y:70,fill:'#dae3f2','font-family':'ui-monospace,monospace','font-size':11,'text-anchor':'middle'},gp).textContent='9V BT1';
mk('text',{x:174,y:104,fill:'#ff5b6b','font-family':'ui-monospace,monospace','font-size':12,'font-weight':700},gp).textContent='+';
mk('text',{x:176,y:138,fill:'#8ea2bb','font-family':'ui-monospace,monospace','font-size':12,'font-weight':700},gp).textContent='−';
mk('circle',{cx:196,cy:100,r:4,fill:'#ff5b6b'},gp);
mk('circle',{cx:196,cy:140,r:4,fill:'#8ea2bb'},gp);
})();
/* jack */
(function(){
const gp=mk('g',{},comp);
mk('rect',{x:30,y:300,width:155,height:170,rx:10,fill:'#0d141f',stroke:'#5aa9ff','stroke-width':1.4},gp);
mk('rect',{x:52,y:314,width:110,height:52,rx:6,fill:'#070a10',stroke:'#22314a'},gp);
mk('circle',{cx:107,cy:340,r:16,fill:'#0b111b',stroke:'#5aa9ff','stroke-width':1.4},gp);
mk('circle',{cx:107,cy:340,r:6,fill:'#5aa9ff',opacity:.5},gp);
mk('text',{x:107,y:382,fill:'#5aa9ff','font-family':'ui-monospace,monospace','font-size':10.5,'text-anchor':'middle'},gp).textContent='J1 3.5mm STEREO';
[330,380,430].forEach((y,i)=>{
const cols=['#ffd95e','#ff9f43','#8ea2bb'];
mk('circle',{cx:185,y:y,r:4,fill:cols[i]},gp);
mk('text',{x:172,y:y-9,fill:cols[i],'font-family':'ui-monospace,monospace','font-size':8.5,'text-anchor':'end'},gp).textContent=['TIP L','RING R','SHLD'][i];
});
})();
/* speakers */
function speaker(x,label,y0){
const gp=mk('g',{},comp);
mk('rect',{x:x,y:y0,width:110,height:82,rx:6,fill:'#131a28',stroke:'#ffbb4d','stroke-width':1.5},gp);
mk('path',{d:'M'+(x+110)+' '+(y0+8)+'l38 33-38 33z',fill:'#131a28',stroke:'#ffbb4d','stroke-width':1.5,'stroke-linejoin':'round'},gp);
mk('circle',{cx:x+92,cy:y0+8,r:4,fill:'#3fe0d0'},gp);
mk('circle',{cx:x,cy:y0+52,r:4,fill:'#8ea2bb'},gp);
mk('text',{x:x+55,y:y0+46,fill:'#ffbb4d','font-family':'ui-monospace,monospace','font-size':11,'text-anchor':'middle'},gp).textContent=label;
mk('text',{x:x+55,y:y0+108,fill:'#5e6d88','font-family':'ui-monospace,monospace','font-size':9,'text-anchor':'middle'},gp).textContent='8 Ω SPEAKER';
}
speaker(X(12)-2,'LS1',690);
speaker(X(29)-4,'LS2',690);
wire([[X(12),690],[X(12)+92,690]],C.out,{w:2.6});
wire([[X(29),690],[X(29)+92,690]],C.out,{w:2.6});
wire([[X(12)-2,742],[X(9),742],[X(9),BB]],C.gnd,{w:2.6});
wire([[X(29)-4,742],[X(27),742],[X(27),BB]],C.gnd,{w:2.6});
/* ---------- hops ---------- */
const hops=[[219,380,'h'],[228,406,'h'],[X(12),RB,'v'],[X(12),BB,'v'],[X(29),RB,'v'],[X(29),BB,'v']];
hops.forEach(([x,y,ax])=>{
mk('circle',{cx:x,cy:y,r:7,fill:'#080d15'},g);
mk('ellipse',{cx:x,cy:y,rx:ax==='h'?7:4.6,ry:ax==='h'?4.6:7,fill:'#080d15'},g);
mk('path',{d:ax==='h'?'M'+(x-7)+' '+y+'A7 7 0 0 1 '+(x+7)+' '+y:'M'+x+' '+(y-7)+'A7 7 0 0 1 '+x+' '+(y+7),
fill:'none',stroke:'#3fe0d0','stroke-width':3,'stroke-linecap':'round'},g);
});
/* ---------- on-board key ---------- */
(function(){
const k=mk('g',{},g);
mk('rect',{x:760,y:36,width:410,height:132,rx:10,fill:'#0b111b',stroke:'#18202f'},k);
mk('text',{x:778,y:58,fill:'#3fe0d0','font-family':'ui-monospace,monospace','font-size':10.5,'letter-spacing':2},k).textContent='BOARD KEY';
const rows=[
['wire','+9 V rail → IC pin 6','#ff5b6b'],
['wire','ground rail → IC pins 2 + 4','#8ea2bb'],
['wire','pot wiper → IC pin 3 (gain 200)','#ffd95e'],
['link','top & bottom rails joined by 2 links','#3fe0d0'],
['note','C1/C2 across pins 1 & 8 · C5/C6 → speakers','#b98cff']
];
rows.forEach((r,i)=>{
const y=80+i*22;
if(r[0]==='wire')mk('path',{d:'M780 '+(y-4)+'H808',stroke:r[2],'stroke-width':3,'stroke-linecap':'round'},k);
else mk('circle',{cx:794,cy:y-4,r:4,fill:r[2]},k);
mk('text',{x:820,y:y,fill:'#8a9bb8','font-family':'ui-monospace,monospace','font-size':10.5},k).textContent=r[1];
});
})();
/* ---------- title ---------- */
txt(30,44,'FIG 5.2 · STEREO LM386 AMPLIFIER — BREADBOARD TOP VIEW',{fill:'#dae3f2',size:13,ls:1.6,weight:600});
txt(30,64,'Drawn off-scale. Holes shown enlarged for legibility.',{fill:'#4a5872',size:10.5});
})();
</script>
<!-- ============ 6. ASSEMBLY ============ -->
<section id="assembly">
<div class="sec-head"><span class="sec-num">06</span><h2>Step-by-step assembly</h2></div>
<p>Total time: about 45 minutes at a relaxed pace. Work left to right and do not skip the checks between steps — each one takes ten seconds and catches the mistake that would otherwise cost you an IC.</p>
<ol class="steps">
<li>
<div class="step-body">
<h4>Lay out the bench and inventory the parts</h4>
<p>Empty the work area and lay every component on a light-coloured surface — a sheet of white paper works and stops tiny 0.1 µF ceramics rolling onto the floor. Group them by value.</p>
<ul class="clean checklist">
<li>Check both LM386s: straight legs, a visible notch or dot at pin 1, no bent pins.</li>
<li>Sort the electrolytics into <b>10 µF</b> and <b>220 µF</b> piles. Read the printed value, not the size — a 220 µF is physically bigger, but always confirm.</li>
<li>Cut a dozen solid-core jumpers into useful lengths: 10 mm, 25 mm, 50 mm. Bend the ends 90° with pliers so they drop cleanly into the board.</li>
<li>Touch a grounded metal object (a radiator or a metal chassis) to discharge any static before handling the ICs.</li>
</ul>
</div>
</li>
<li>
<div class="step-body">
<h4>Insert the two ICs across the centre channel</h4>
<p>Place <strong>U1 across the centre channel at columns 8–11</strong> and <strong>U2 at columns 25–28</strong>. The notch points left, and each IC straddles the channel with four pins in row c and four pins in row f.</p>
<ul class="clean">
<li>Row c from left to right is pins <b>1, 2, 3, 4</b>.</li>
<li>Row f from left to right is pins <b>8, 7, 6, 5</b>.</li>
<li>Never force a pin. If one will not enter, straighten it with flat-nose pliers and try again. A pin bent under the body is invisible and impossible to debug.</li>
<li>Press down firmly and evenly until the body sits flush with the board.</li>
</ul>
<div class="callout warn"><span class="tag">Check now</span><p>Tug each IC gently. If it moves, a pin is folded. Pull the chip, straighten the pins against a flat surface, and reinsert.</p></div>
</div>
</li>
<li>
<div class="step-body">
<h4>Build the power rails</h4>
<p>Run jumper wires along the <strong>red rails</strong> and the <strong>blue rails</strong>, then link the rail pairs together.</p>
<ul class="clean">
<li>Red link (right margin): top +9 V rail → bottom +9 V rail.</li>
<li>Blue link (right margin): top ground rail → bottom ground rail.</li>
<li>Keep these two links spatially apart so they can never brush together.</li>
<li>If you are using a 9 V battery, connect the snap now but <b>leave the battery unclipped</b> until step 12.</li>
</ul>
<div class="callout note"><span class="tag">Why both rails?</span><p>Pin 6 of each IC ends up pointing <em>down</em> toward the bottom rail, while pins 2 and 4 point up toward the top rail. Linking the two red rails and the two blue rails makes the whole board one supply.</p></div>
</div>
</li>
<li>
<div class="step-body">
<h4>Wire power and ground to both ICs</h4>
<ul class="clean">
<li><b>U1 pin 6</b> (row f, column 10) → bottom red rail.</li>
<li><b>U1 pin 4</b> (row c, column 11) → top blue rail.</li>
<li><b>U1 pin 2</b> (row c, column 9) → top blue rail.</li>
<li>Repeat for U2: pin 6 (column 27) → bottom red rail; pins 4 and 2 (columns 28 and 26) → top blue rail.</li>
</ul>
<p>Pin 2 is the inverting input; grounding it puts the amplifier into its standard non-inverting configuration. Leaving it floating creates a loud hum generator, so double-check this one.</p>
</div>
</li>
<li>
<div class="step-body">
<h4>Fit the supply decoupling capacitors</h4>
<p>Insert <strong>C3 (10 µF)</strong> and <strong>C7 (0.1 µF)</strong> so their legs land in the top red and top blue rail holes, near U1. Repeat with <strong>C4</strong> and <strong>C8</strong> near U2. On a full-size breadboard the rail holes for column 1 also belong to the rail, so any hole in a rail works.</p>
<ul class="clean">
<li>The <b>electrolytic</b> has a polarity: the striped leg is negative and goes to the blue rail; the positive leg goes to the red rail.</li>
<li>Push them all the way down. A loose electrolytic leg is a very common intermittent fault.</li>
</ul>
</div>
</li>
<li>
<div class="step-body">
<h4>Install the volume potentiometers</h4>
<p>Each pot has three terminals in adjacent columns. Wire them identically in intent, but mirrored in physical position:</p>
<ul class="clean">
<li><b>RV1 (left):</b> signal input on the right-hand terminal, wiper in the middle, ground on the left-hand terminal → top blue rail.</li>
<li><b>RV2 (right):</b> signal input on the left-hand terminal, wiper in the middle, ground on the right-hand terminal → top blue rail.</li>
<li><b>Wiper of RV1</b> → down into the centre channel → across to <b>U1 pin 3</b> (row c, column 10).</li>
<li><b>Wiper of RV2</b> → down into the centre channel → across to <b>U2 pin 3</b> (row c, column 27).</li>
</ul>
<div class="callout tip"><span class="tag">Use the centre channel</span><p>The empty centre channel is the best routing real estate on the board. Running the wiper wires through it keeps them clear of the IC pins and makes the layout easy to read and re-check.</p></div>
</div>
</li>
<li>
<div class="step-body">
<h4>Bring in the audio input</h4>
<p>Wiring a 3.5 mm stereo jack directly is fine — tip, ring and sleeve land in three separate board columns, and you take three wires from there:</p>
<ul class="clean">
<li><b>Tip = left channel</b> → the signal terminal of RV1.</li>
<li><b>Ring = right channel</b> → the signal terminal of RV2.</li>
<li><b>Sleeve = screen/ground</b> → the top blue rail (or the leftmost red? no — the <em>blue</em> rail).</li>
</ul>
<p>If you are using a breakout board or two RCA sockets, the same three connections apply. A cheap 3.5 mm to dual-RCA cable gives you a tidy pair of test leads instead.</p>
</div>
</li>
<li>
<div class="step-body">
<h4>Set the gain — C1 and C2 across pins 1 and 8</h4>
<p>Each 10 µF capacitor bridges pin 1 (row c, first column of the IC) and pin 8 (row f, first column of the IC). Because the IC's pin 1 and pin 8 sit in different halves of the board, you need <b>two jumpers</b> per capacitor: one in the air above row a from pin 1 to the capacitor's upper leg, and one along row f from pin 8 to its lower leg.</p>
<ul class="clean">
<li><b>C1</b> for U1, <b>C2</b> for U2, each inserted so its two legs land in the same column but on opposite sides of the centre channel.</li>
<li>Leave these out and the amp still works — at a much quieter gain of 20×. Fit them, and it becomes <b>200×</b>, which is what makes an LM386 genuinely loud.</li>
</ul>
<div class="callout note"><span class="tag">Polarity of C1/C2</span><p>Either orientation works here; the DC between pins 1 and 8 is negligible. If you want to be strict, put the positive leg toward pin 1.</p></div>
</div>
</li>
<li>
<div class="step-body">
<h4>Add the output coupling capacitors</h4>
<p>Insert <strong>C5 (220 µF)</strong> so one leg lands in the pin 5 node of U1 and the other in the adjacent column of row j. Do the same with <strong>C6</strong> at U2.</p>
<ul class="clean">
<li>Pin 5 is the fourth pin of row f (column 11 for U1, column 28 for U2). Any hole in that same column group reaches it — route a short jumper down to row j.</li>
<li><b>Polarity matters here.</b> The positive leg faces the IC (pin 5 sits at +4.5 V DC); the negative leg faces the speaker.</li>
<li>Never connect a speaker directly to pin 5 without this capacitor. The DC midpoint current will push the cone hard against one end of its travel and cook the coil.</li>
</ul>
</div>
</li>
<li>
<div class="step-body">
<h4>Connect the speakers</h4>
<ul class="clean">
<li><b>LS1 (left):</b> positive terminal → the free leg of C5. Negative terminal → the bottom blue ground rail.</li>
<li><b>LS2 (right):</b> positive terminal → the free leg of C6. Negative terminal → the bottom blue ground rail.</li>
<li>If your speakers have no polarity markings, it genuinely does not matter for a single speaker — but if you use two speakers side by side, wire them the same way so they move in phase.</li>
<li>Keep the speaker leads short for now. Long untwisted leads near the input wiring invite hum.</li>
</ul>
</div>
</li>
<li>
<div class="step-body">
<h4>Optional: fit the Zobel network</h4>
<p>If you have R1/R2 (10 Ω) and C9/C10 (0.1 µF), place each pair in series from pin 5 to ground. They are not needed for a bench build with short speaker leads, but they damp high-frequency ringing and make the amplifier stable with longer or capacitive cables. If you skip them, nothing else in this guide changes.</p>
</div>
</li>
<li>
<div class="step-body">
<h4>Final pre-power verification</h4>
<p>Battery still disconnected. Set the meter to continuity (the beep mode) and confirm each of the following:</p>
<ul class="clean">
<li><b>Red rail ↔ U1 pin 6</b>: continuity. <b>Red rail ↔ U2 pin 6</b>: continuity.</li>
<li><b>Blue rail ↔ U1 pins 2 and 4</b>: continuity. Same for U2 pins 2 and 4.</li>
<li><b>Red rail ↔ blue rail: NO continuity.</b> If the meter beeps, you have a power-rail short. Find it before you apply power — unclip jumpers until the beep stops.</li>
<li><b>Speaker + ↔ speaker −</b> with the meter on ohms: expect roughly 6–7 Ω for an 8 Ω speaker. A dead short means the wires touch.</li>
<li>Turn both volume pots fully anticlockwise (minimum).</li>
</ul>
<div class="callout warn"><span class="tag">The short test is the important one</span><p>A rail-to-rail short will destroy both ICs in the time it takes to clip a battery on. It takes fifteen seconds to rule out.</p></div>
</div>
</li>
</ol>
</section>
<!-- ============ 7. TESTING ============ -->
<section id="testing">
<div class="sec-head"><span class="sec-num">07</span><h2>Testing & troubleshooting</h2></div>
<p>Bring the circuit up in stages. Each stage has a measurement that tells you whether to continue or stop and fix something.</p>
<h3>First power-up, in this order</h3>
<div class="table-wrap">
<div class="tscroll">
<table>
<thead><tr><th>#</th><th>What to do</th><th>Expected reading</th><th>If it is wrong</th></tr></thead>
<tbody>
<tr>
<td class="ref">1</td>
<td class="part">Clip the battery on with no audio source connected and both volumes at zero.</td>
<td>Nothing audible. Nothing gets warm.</td>
<td>Any click, hiss or heat → disconnect immediately and repeat the rail-short check.</td>
</tr>
<tr>
<td class="ref">2</td>
<td class="part">Measure across the red and blue rails.</td>
<td><b>8.4 – 9.6 V</b> from a fresh 9 V battery.</td>
<td>Below 8 V → the battery is flat, or something is loading the rail heavily (a reversed electrolytic or a short).</td>
</tr>
<tr>
<td class="ref">3</td>
<td class="part">Measure DC from pin 5 of each IC to ground.</td>
<td><b>About half the rail</b>: 4.2 – 4.8 V.</td>
<td>0 V or full rail → the output stage is not biased. Check pin 6 and pin 4 solderless connections first, then the IC orientation.</td>
</tr>
<tr>
<td class="ref">4</td>
<td class="part">Measure DC across each speaker's terminals.</td>
<td><b>Under 0.05 V</b> (essentially zero).</td>
<td>A few volts here means the output capacitor is shorted, reversed, or bypassed by a stray wire. That is what kills speakers — fix it before playing anything.</td>
</tr>
<tr>
<td class="ref">5</td>
<td class="part">With the meter still on pin 5, turn a volume pot up and down.</td>
<td>The DC level should not move at all.</td>
<td>If DC moves with the volume control, signal is reaching the output as DC — suspect a coupling capacitor inserted in the wrong place or a solderless short.</td>
</tr>
<tr>
<td class="ref">6</td>
<td class="part">Connect the source, set the phone to about half volume, and gently raise the amp's volume.</td>
<td>Clean, loud audio from both speakers.</td>
<td>See the symptom table below.</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="callout tip">
<span class="tag">If it works the first time</span>
<p>Leave it powered and let it play quietly for five minutes, then touch each IC. Warm is normal; hot is not. If it stays merely warm, you have a correct build — now measure the voltage across the speaker at moderate volume and enjoy watching the music appear as a wobbling DC reading.</p>
</div>
<h3>Symptom → cause → fix</h3>
<div class="table-wrap">
<div class="tscroll">
<table>
<thead><tr><th>Symptom</th><th>Most likely cause</th><th>Fix</th></tr></thead>
<tbody>
<tr>
<td class="part">Dead silence on both channels<span>No hum, no hiss at all</span></td>
<td>No supply reaching the ICs, or both chips inserted backwards.</td>
<td>Measure the rails, then measure pin 6 of each IC to ground. Check the notch orientation against FIG 4.2.</td>
</tr>
<tr>
<td class="part">Loud continuous hum on one channel</td>
<td>Pin 2 (inverting input) left floating, or an input wire running parallel to a speaker lead.</td>
<td>Jumper pin 2 to the ground rail. Then physically separate the input wiring from the output wiring.</td>
</tr>
<tr>
<td class="part">Everything hot, loud buzzing</td>
<td>Motorboating oscillation — almost always the output capacitor missing or the Zobel network required by your lead length.</td>
<td>Power off. Confirm C5/C6 are present and in series with the speaker. Fit the Zobel network. Keep speaker leads short.</td>
</tr>
<tr>
<td class="part">One channel works, the other does not</td>
<td>That channel's IC is mis-inserted, dead, or its power pin is in the wrong column.</td>
<td>Swap in a spare LM386 and compare pin-by-pin voltages with the working channel. Identical readings mean the IC is fine and the fault is in the passives.</td>
</tr>
<tr>
<td class="part">Audio is distorting very early</td>
<td>Gain set too high for the source, or the source itself is already clipping.</td>
<td>Remove the gain capacitor on that channel (back to 20×) or turn the source down. A phone output at full volume easily overdrives a 200× stage.</td>
</tr>
<tr>
<td class="part">Volume control has almost no effect</td>
<td>Wiper wired to the wrong terminal, or the pot's ground terminal is not grounded.</td>
<td>The wiper must be the <em>middle</em> terminal. Verify the end terminals read about 10 kΩ between them and the wiper reads 0–10 kΩ as you turn it.</td>
</tr>
<tr>
<td class="part">Bass is thin and tinny</td>
<td>Output coupling capacitor too small for the load.</td>
<td>220 µF into 8 Ω rolls off below about 90 Hz. Move to 470 µF if you want more low end — the LM386's own bass response is fine.</td>
</tr>
<tr>
<td class="part">It works, then cuts out when it gets loud</td>
<td>The 9 V battery sagging under current, or a supply adapter with too little headroom.</td>
<td>Recharge or replace the battery, or use a 12 V adapter rated at 500 mA. A tired 9 V cell simply cannot deliver two channels' worth of bass current.</td>
</tr>
<tr>
<td class="part">Same music heard twice, delayed</td>
<td>Nothing electrical — the speaker output is being picked up acoustically by an open microphone, or you are hearing a room echo.</td>
<td>Not a fault. Reduce the volume or use headphones-free monitoring to confirm.</td>
</tr>
</tbody>
</table>
</div>
</div>
<h3>The five mistakes that account for most failures</h3>
<div class="grid2">
<div class="callout warn"><span class="tag">01 · Reversed polarity</span><p>Pin 6 to the red rail, pin 4 to the blue rail. Reverse it once and the IC is scrap. Trace it with a finger before the battery goes on.</p></div>
<div class="callout warn"><span class="tag">02 · Reversed electrolytic</span><p>The striped lead is negative. A reversed 220 µF in the output path will hiss, swell, and eventually vent — and it sends DC to your speaker in the meantime.</p></div>
<div class="callout warn"><span class="tag">03 · Loose ground</span><p>Every ground must reach a rail eventually. A floating pin 2 or an ungrounded pot terminal is the number-one cause of hum.</p></div>
<div class="callout warn"><span class="tag">04 · Feedback loop</span><p>Output wiring running alongside input wiring couples the amplifier back into itself. Keep the speaker leads physically separate from the pot and jack wiring.</p></div>
<div class="callout warn"><span class="tag">05 · Missing rail link</span><p>Pin 6 points at the bottom rail while the battery feeds the top rail. Without the two link jumpers the amplifier has no supply at all, and it looks perfectly correct on the board.</p></div>
<div class="callout tip"><span class="tag">And one habit</span><p>Change one thing at a time and test after each change. Randomly re-seating six jumpers teaches you nothing — a single deliberate change with a measurement behind it teaches you everything.</p></div>
</div>
<h3>Where to go next</h3>
<div class="grid3">
<div class="mini"><h4>Headphone-safe output</h4><p>Add a 100 Ω resistor in series with each output before a headphone socket. The LM386 is far too loud for direct headphone drive.</p></div>
<div class="mini"><h4>Bass boost</h4><p>A 0.033 µF capacitor plus a 10 kΩ resistor between pins 1 and 5 adds a deliberate low-frequency lift — the classic datasheet bass-boost trick.</p></div>
<div class="mini"><h4>Move to stripboard</h4><p>Once it works on the breadboard, transfer it to stripboard and solder it. Solder both ICs to sockets so a future failure is a two-second swap.</p></div>
</div>
<div class="callout note">
<span class="tag">Reference: expected DC voltages at a glance</span>
<p><b>Vs (pin 6) = 9 V</b> · <b>GND (pin 4) = 0 V</b> · <b>inverting (pin 2) = 0 V</b> · <b>non-inverting (pin 3) = ≈ 0 V with no source</b> · <b>gain pins 1 & 8 = ≈ 0 V</b> · <b>output (pin 5) = 4.5 V ± 0.3 V</b> · <b>bypass (pin 7) = ≈ 4.5 V</b>. Anything wildly different from this list points straight at the faulty node.</p>
</div>
</section>
</main>
</div>
<footer>
<div class="wrap">
<div>
<div style="color:var(--muted);font-family:var(--mono);font-size:12px;letter-spacing:.12em">STEREO LM386 AMPLIFIER · BREADBOARD BUILD GUIDE</div>
<div style="margin-top:6px">Two channels · one 9 V rail · nothing but plugs and patience.</div>
</div>
<div style="font-family:var(--mono);font-size:12px">
<a href="#intro">Back to top ↑</a>
</div>
</div>
</footer>
</body>
</html>