Files
ambium/README.md
T
2026-07-20 17:10:19 +10:00

208 lines
7.4 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 white-noise generator. Single **+12 V** supply, breadboard-friendly.
Broadband hiss to a **4 Ω speaker** via a TIP120 driver.
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. U1A unused (inputs tied to VREF).
- **Q1** = 2N3904 (NPN). Avalanche noise source.
- **Q3** = TIP120 (NPN Darlington, TO-220). Class-A speaker driver.
## Nets
`+12V` · `GND` · `VREF` (6 V mid-supply) · `NOISE` · `AMP` · `SPKR`
## Signal chain
```
[noise] [amplify] [driver]
Q1 2N3904 → U1B LM358 ×1000 → 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
```
---
## 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 ×1000 (U1B, Rin1, Rf1)
Inverting amp, gain ≈ −Rf1/Rin1 = ×1000, centred on VREF. Clips into the rails at
this gain — that's the loud hiss fed to the driver. Too harsh? Drop Rf1 (e.g. 470k).
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 22pF]─● pin 6 anti-osc, limits BW
input: NOISE ─[Rin1 1k]──● pin 6
```
Unit A unused → park as a follower so it can't oscillate: pin 3 → VREF, pin 2 → pin 1.
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
AMP is line level; the LM358 can't drive a speaker. Q3 emitter follower supplies the
current. Class A — needs a heatsink.
```
+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
```
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**.
---
## Bill of materials
| Ref | Value | Part | Function |
|-----|-------|------|----------|
| U1 | — | LM358 (DIP-8) | U1B amp (U1A unused) |
| Q1 | — | 2N3904 | avalanche noise source |
| Q3 | — | TIP120 | class-A speaker driver |
| R1 | 100k | resistor | avalanche current limit |
| R2, R3 | 10k | resistor | VREF divider |
| Rin1 | 1k | resistor | amp input |
| Rf1 | 1M | resistor | amp feedback (×1000) |
| Rb1, Rb2 | 10k | resistor | Q3 base bias (~6 V) |
| Re | 22Ω 3W | resistor | Q3 idle-current set |
| C1 | 10µF | electrolytic | noise coupling |
| Cref | 10µF | electrolytic | VREF bypass |
| Cf1 | 22–100pF | ceramic | amp feedback / anti-oscillation |
| Cc | 10µF | electrolytic | AMP → base coupling |
| Cout2 | 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.
---
## 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)
(src) : R1.2, Q1.emitter, C1.+ (internal raw-noise node)
NOISE : C1.−, Rin1.1 (after C1)
AMP : U1B.OUT(7), Rf1, Cc.1 (Rin1.2, Rf1, 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
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 → loud hiss (~volts).
4. **Driver (Q3)** — feed AMP through Cc. Speaker hisses. Q3 warm, not hot; too hot → raise Re.
## Tuning
| Want | Change |
|------|--------|
| Louder | ↑ Rf1 (watch clipping) |
| Less harsh | ↓ Rf1 |
| Cooler driver | ↑ Re |
| More headroom | ↓ Re (hotter — bigger heatsink) |