This commit is contained in:
Nathan Rashleigh committed 2026-07-22 14:53:56 +10:00
1 parent 956a72702b
commit 295391b119
4 files changed
+2828 -2975

No files matched your search

+80 -68
View File
@@ -1,16 +1,17 @@
# ambium
Analog brown-noise generator. Single **+12 V** supply, breadboard-friendly.
Deep filtered rumble to a **4 Ω speaker** via a TIP120 driver.
Deep filtered rumble to a **4 Ω speaker** via a cool-running **Class-AB push-pull** output.
Reference designators and model numbers are consistent across every diagram, the
BOM, and the connection list — the connection list is the authoritative netlist.
## Parts
- **U1** = LM358 (dual op-amp, DIP-8). U1B = amp + brown shaping. U1A unused (parked).
- **U1** = LM358 (dual op-amp, DIP-8). U1B = amp + brown shaping. U1A = output driver.
- **Q1** = 2N3904 (NPN). Avalanche noise source.
- **Q3** = TIP120 (NPN Darlington, TO-220). Class-A speaker driver.
- **Q2** = PN2222 (NPN). Push-pull top half (sources +).
- **Q3** = PN2907 (PNP). Push-pull bottom half (sinks −).
## Nets
@@ -19,27 +20,9 @@ BOM, and the connection list — the connection list is the authoritative netlis
## Signal chain
```
[noise] [amp + brown] [driver]
Q1 2N3904 → U1B LM358 −6dB/oct → Q3 TIP120 → 4Ω speaker
NOISE AMP (class A)
```
Legend:
```
[Rxx val] resistor ──┤├── film / non-polar cap ● junction
──+┤├── polarised cap (+ = + terminal)
│\ × no-connect
────┤−\ op-amp: IN− top, IN+ bottom, OUT right. ► net continues
│ >── Powered from +12V / GND (LM358 pins 8 / 4).
────┤+ /
│/
E transistor: E / B / C labels outside the box.
│
┌──┴──┐
B ───┤ Qx │ NPN
└──┬──┘
│
C
[noise] [amp + brown] [push-pull driver]
Q1 2N3904 → U1B LM358 −6dB/oct → U1A + Q2/Q3 → 4Ω speaker
NOISE AMP OUT (Class AB, cool)
```
---
@@ -122,43 +105,73 @@ LM358 DIP-8, notch at top, pin 1 top-left. Amp = **unit B** (pins 5/6/7).
DC handling: C1 blocks DC into Rin1, so the op-amp's own offset sees unity gain — output
sits at VREF (6 V), no railing.
Unit A unused → park as a follower so it can't oscillate: pin 3 → VREF, pin 2 → pin 1.
Unit A (pins 1/2/3) = the push-pull output driver — see next section.
Power/decoupling (whole chip, once): pin 8 → +12V, pin 4 → GND. 47µF bulk + 0.1µF at
pin 8.
---
## Output driver — TIP120 class-A follower (Q3), 4Ω speaker
## Output driver — Class-AB push-pull (U1A + Q2/Q3), 4Ω speaker
AMP is line level; the LM358 can't drive a speaker. Q3 emitter follower supplies the
current. Class A — needs a heatsink.
AMP is line level; the LM358 can't drive a speaker alone. Complementary emitter-
followers **inside the U1A loop**: Q2 (NPN) pushes the positive half, Q3 (PNP) pulls
the negative half. Both halves are actively driven, so there's **no idle resistor and
near-zero quiescent current → it runs cool.** U1A drives both bases; global feedback
from OUT hides crossover distortion (no bias diodes needed).
Driver = LM358 **unit A** (pins 1/2/3), same chip as the amp.
```
+12V +12V
│ │
[Rb1 10k] C (collector)
│ ┌──┴──┐
●───────●───────────────────B──┤ Q3 │ TIP120
│ │ └──┬──┘
[Rb2 10k] │ │
│ │ E
GND │ │
│ ●──+┤├──► SPKR ─ GND
AMP ─+┤├───┘ │ Cout2 470µF (+ → emitter)
Cc 10µF [Re 22Ω 3W] 4Ω
│
(base node ● = Rb1/Rb2/Cc) GND
┌─────∪────┐
bases ─ OUT A 1 ─┤ ├ 8 V+ ──── +12V
OUT ─ IN− A 2 ─┤ LM358 ├ 7 (OUT B → AMP, Stage 2)
AMP ─ IN+ A 3 ─┤ ├ 6
V− 4 ─┤ ├ 5
└──────────┘
```
The base node ● sits at ~6 V (Rb1/Rb2). Cc lands there and adds the AC — it never
connects to +12V.
- Rb1/Rb2 = 10k/10k → base ~6 V. Cc AC-couples AMP onto the base.
- Emitter ~4.5 V (base − ~1.5 V Darlington drop). Iq = 4.5V/Re ≈ 200 mA.
- Cout2 blocks DC; speaker sees AC only.
- **Heatsink Q3** (~1.5 W idle). Re ≥3 W.
- Cooler/quieter: Re = 47 Ω → Iq ~100 mA.
- Bias sag (hum/distortion): stiffen divider to 4.7k/4.7k.
TIP120 pinout (TO-220, face up, pins down): **1 Base · 2 Collector · 3 Emitter**.
Push-pull output stage (totem pole):
```
+12V
│
C
┌───┴───┐
bases ──B──────┤ Q2 │ PN2222 (NPN — sources +half)
└───┬───┘
E
[Re1 10Ω]
│
●──────────► OUT ──+┤├──► SPKR ─ GND
│ Cout 470µF 4Ω
[Re2 10Ω] (+ → OUT)
E
┌───┴───┐
bases ──B──────┤ Q3 │ PN2907 (PNP — sinks −half)
└───┬───┘
C
│
GND
```
Connections:
```
input: AMP ─────────────● pin 3 (IN+ A)
drive: pin 1 (OUT A) ───● bases → Q2.base + Q3.base
feedback: OUT ─────────────● pin 2 (IN− A)
Q2: C → +12V B → bases E → Re1 → OUT
Q3: C → GND B → bases E → Re2 → OUT
OUT node = Re1 ● Re2 ● pin 2 (fb) ● Cout.+ ; Cout.− → speaker → GND
```
- Idle ≈ 0 → **cool, no heatsink.** Re1/Re2 = **10 Ω ¼ W** (4.7–10 Ω ok; carry only AC — not hot).
- OUT sits at ~6 V DC (follows AMP); **Cout 470 µF** blocks it, speaker sees AC only.
TO-92 pinout (flat face toward you, leads down): **PN2222 = E-B-C**, **PN2907 = E-B-C**
(confirm against your batch's datasheet).
- PN2222/PN2907 cap ~600 mA → ~1 W into 4 Ω before current-limiting. Plenty for the
rumble, and cool. Want more power → TIP120+TIP125 pair, or an amp chip.
- Crossover buzz at low level? Split the bases and add **2× 1N4148** between them for
bias. Usually unneeded — feedback handles it for a noise source.
---
@@ -166,39 +179,38 @@ TIP120 pinout (TO-220, face up, pins down): **1 Base · 2 Collector · 3 Emitter
| Ref | Value | Part | Function |
|-----|-------|------|----------|
| U1 | — | LM358 (DIP-8) | U1B amp (U1A unused) |
| U1 | — | LM358 (DIP-8) | U1B amp+brown, U1A output driver |
| Q1 | — | 2N3904 | avalanche noise source |
| Q3 | — | TIP120 | class-A speaker driver |
| Q2 | — | PN2222 (NPN) | push-pull top (source) |
| Q3 | — | PN2907 (PNP) | push-pull bottom (sink) |
| R1 | 100k | resistor | avalanche current limit |
| R2, R3 | 10k | resistor | VREF divider |
| Rin1 | 1k | resistor | amp input |
| Rf1 | 1M | resistor | amp feedback (low-freq gain ×1000) |
| Rb1, Rb2 | 10k | resistor | Q3 base bias (~6 V) |
| Re | 22Ω 3W | resistor | Q3 idle-current set |
| Re1, Re2 | 10Ω ¼W | resistor | push-pull emitter degeneration (4.7–10Ω ok) |
| C1 | 10µF | electrolytic | noise coupling |
| Cref | 10µF | electrolytic | VREF bypass |
| Cf1 | 8.2nF | film / ceramic | feedback / brown shaping (−6dB/oct, corner ~19 Hz) |
| Cc | 10µF | electrolytic | AMP → base coupling |
| Cout2 | 470µF ≥16V | electrolytic | speaker coupling (big, for lows) |
| Cout | 470µF ≥16V | electrolytic | speaker coupling (big, for lows) |
| — | 0.1µF | ceramic | LM358 decoupling |
| — | 47µF | electrolytic | +12V bulk |
Chip count: 1× LM358 + 1× 2N3904 + 1× TIP120. Q3 needs a heatsink.
Chip count: 1× LM358 + 1× 2N3904 + PN2222/PN2907 pair. **No heatsink needed** (Class AB).
---
## Connection list (authoritative netlist)
```
+12V : R1.1, R2.1, U1.8, Rb1.1, Q3.collector, 47µF+
GND : R3.2, Q1.base, Cref.−, U1.4, Rb2.2, Re.2, 47µF−, 0.1µF
VREF : R2.2, R3.1, Cref.+, U1B.IN+(5), U1A.IN+(3)
U1A.OUT(1) = U1A.IN−(2) (spare amp parked as follower)
+12V : R1.1, R2.1, U1.8, Q2.collector, 47µF+
GND : R3.2, Q1.base, Cref.−, U1.4, Q3.collector, 47µF−, 0.1µF
VREF : R2.2, R3.1, Cref.+, U1B.IN+(5)
(src) : R1.2, Q1.emitter, C1.+ (internal raw-noise node)
NOISE : C1.−, Rin1.1 (after C1)
AMP : U1B.OUT(7), Rf1, Cf1, Cc.1 (Rin1.2, Rf1, Cf1, U1B.IN−(6) = summing)
base : Cc.2, Rb1.2, Rb2.1, Q3.base (~6 V bias)
SPKR : Q3.emitter, Re.1, Cout2.+ ; Cout2.− → speaker → GND
AMP : U1B.OUT(7), Rf1, Cf1, U1A.IN+(3) (Rin1.2, Rf1, Cf1, U1B.IN−(6) = summing)
bases : U1A.OUT(1), Q2.base, Q3.base (driver output → both bases)
OUT : Q2.emitter→Re1 ; Q3.emitter→Re2 ; Re1.2 = Re2.2 = OUT node
OUT → U1A.IN−(2) (feedback) ; OUT → Cout.+ ; Cout.− → speaker → GND
Q1 : collector = no-connect
```
@@ -209,7 +221,7 @@ Q1 : collector = no-connect
1. **VREF** — confirm ~6.0 V.
2. **Noise (R1, Q1)** — scope Q1 node → hiss (~mV). None? swap 2N3904 or raise supply to 12–15 V.
3. **Amp (U1B)** — scope AMP → deep rumble (~volts), darker than the raw Q1 hiss (that's the brown slope).
4. **Driver (Q3)** — feed AMP through Cc. Speaker hisses. Q3 warm, not hot; too hot → raise Re.
4. **Driver (Q2/Q3)** — wire push-pull + feedback. Speaker rumbles. Transistors stay **cool** (near-zero idle). OUT DC ~6 V.
## Tuning
@@ -218,5 +230,5 @@ Q1 : collector = no-connect
| Louder | ↑ Rf1 (raises low-freq gain; watch clipping) |
| Darker / deeper | ↑ Cf1 (lowers corner, more brown) |
| Brighter (toward white) | ↓ Cf1 (raises corner) |
| Cooler driver | ↑ Re |
| More headroom | ↓ Re (hotter — bigger heatsink) |
| Kill crossover buzz | add 2× 1N4148 base-bias diodes |
| More power | TIP120+TIP125 pair, or amp chip (PAM8403 / TDA2822) |