Files
vlt/projects/ambium/README.md
T
2026-09-18 23:22:55 +10:00

289 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ambium
Analog brown-noise generator. Single **+12 V** supply, breadboard-friendly.
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.
## Complete schematic
```text
+12V
|
+-----------------+--------------------------+
| | |
R1 100k R2 10k U1 pin 8
| | |
o raw o----- VREF (6V) |
|\ | |
| E Q1 2N3904 R3 10k C2 100n
| B| C (NC) | |
| +-- GND GND GND
|
+-- C1 10u -- NOISE -- Rin1 1k --o SUM
+ - |
+---+---+
| |
Rf1 1M Cf1 8.2n
| |
+---+---+
|
+------------------------- AMP
| |
U1B pin 6 (-) U1A pin 3 (+)
VREF ------------------------------------------------ U1B pin 5 (+)
U1B pin 7 (OUT) -------------------------- AMP
U1A: LM358 output driver
OUT o--------------------- U1A pin 2 (-)
U1A pin 1 (OUT)
|
BASES
+----+----+
| |
B Q2 Q3 B
+12V ------- C PN2222 PN2907 C ------- GND
E E
| |
Re1 10R Re2 10R
| |
+----+----+
|
OUT
|
Cout 470u (+| |-) ---- SPKR ---- LS1 4R ---- GND
VREF bypass: VREF ---- Cref 10u (+| |-) ---- GND
Supply bulk: +12V ---- C3 47u (+| |-) ---- GND
U1 supply: pin 8 = +12V, pin 4 = GND
```
## Parts
- **U1** = LM358 (dual op-amp, DIP-8). U1B = amp + brown shaping. U1A = output driver.
- **Q1** = 2N3904 (NPN). Avalanche noise source.
- **Q2** = PN2222 (NPN). Push-pull top half (sources +).
- **Q3** = PN2907 (PNP). Push-pull bottom half (sinks −).
## Nets
`+12V` · `GND` · `VREF` (6 V mid-supply) · `NOISE` · `AMP` · `SPKR`
## Signal chain
```
[noise] [amp + brown] [push-pull driver]
Q1 2N3904 → U1B LM358 −6dB/oct → U1A + Q2/Q3 → 4Ω speaker
NOISE AMP OUT (Class AB, cool)
```
---
## Power · VREF divider (R2, R3, Cref)
```
+12V
│
[R2 10k]
│
●───────────────┬────────► VREF (6 V)
│ + Cref 10µF
[R3 10k] ──┤├──
│ −
│ │
GND GND
```
R2/R3 = 20 kΩ across 12 V, midpoint = 6 V. VREF = AC ground (single supply).
---
## Stage 1 — White noise (R1, Q1, C1)
Reverse-biased B–E junction of Q1 into avalanche = broadband white noise. R1 limits
current; C1 couples it out.
```
+12V
│
[R1 100k]
│
●──+┤├──────────► NOISE
│ C1 10µF (+ → emitter side; − → NOISE)
E
┌──┴──┐
GND─B─┤ Q1 │ 2N3904
└──┬──┘
│
C × no connect
```
NOISE = the AC-coupled output after C1. The ● node is raw noise on a DC pedestal —
internal, don't label it.
> Avalanche varies part-to-part. If quiet, swap the 2N3904. Needs full +12 V.
---
## Stage 2 — Amplifier + brown shaping (U1B, Rin1, Rf1, Cf1)
Single inverting amp, low-frequency gain −Rf1/Rin1 = ×1000, centred on VREF. A feedback
cap Cf1 across Rf1 makes it a leaky integrator: flat gain below the corner, then −6 dB/oct
above it. That −6 dB/oct slope turns white noise into **brown**. One stage does gain and
browning together — no separate integrator needed.
- corner fc = 1/(2π·Rf1·Cf1) ≈ **19 Hz** with Rf1 1M, Cf1 8.2nF.
- below fc: flat ×1000. above fc: −6 dB/oct, reaching unity (×1) at ~20 kHz.
- so the whole audible band (20 Hz–20 kHz) rides the brown slope; peak gain ×1000 at the
bottom, rolling off inaudible ultrasonics at the top for free.
**Why not a flat ×1000 stage?** LM358 GBW = 1 MHz → a flat ×1000 stage has only 1 MHz/1000
≈ **1 kHz** bandwidth, collapsing the band (measured ~27 mV pp at AMP). Here Cf1 makes the
demanded gain *fall* with frequency, so the op-amp GBW is never the limit — the RC feedback
does the shaping, not the op-amp rolloff.
LM358 DIP-8, notch at top, pin 1 top-left. Amp = **unit B** (pins 5/6/7).
```
┌─────∪────┐
OUT A 1 ─┤● ├ 8 V+ ──── +12V
IN− A 2 ─┤ ├ 7 OUT B ──●──────────────► AMP
VREF ─ IN+ A 3 ─┤ LM358 ├ 6 IN− B ──●
GND ─ V− 4 ─┤ ├ 5 IN+ B ──── VREF
└──────────┘
feedback (pin 7 ↔ pin 6): pin 7 ●──[Rf1 1M]────● pin 6 Rf1 ∥ Cf1
pin 7 ●──[Cf1 8.2nF]──● pin 6 brown slope, corner ~19 Hz
input: NOISE ─[Rin1 1k]──● pin 6
```
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 (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 — Class-AB push-pull (U1A + Q2/Q3), 4Ω speaker
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.
```
┌─────∪────┐
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
└──────────┘
```
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.
---
## Bill of materials
| Ref | Value | Part | Function |
|-----|-------|------|----------|
| U1 | — | LM358 (DIP-8) | U1B amp+brown, U1A output driver |
| Q1 | — | 2N3904 | avalanche noise source |
| 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) |
| 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) |
| 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 + PN2222/PN2907 pair. **No heatsink needed** (Class AB).
---
## Connection list (authoritative netlist)
```
+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, 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
```
---
## Build & test order
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 (Q2/Q3)** — wire push-pull + feedback. Speaker rumbles. Transistors stay **cool** (near-zero idle). OUT DC ~6 V.
## Tuning
| Want | Change |
|------|--------|
| Louder | ↑ Rf1 (raises low-freq gain; watch clipping) |
| Darker / deeper | ↑ Cf1 (lowers corner, more brown) |
| Brighter (toward white) | ↓ Cf1 (raises corner) |
| Kill crossover buzz | add 2× 1N4148 base-bias diodes |
| More power | TIP120+TIP125 pair, or amp chip (PAM8403 / TDA2822) |