2026-07-21 14:06:20 +10:00
2026-07-21 14:06:20 +10:00
2026-07-15 17:23:23 +10:00
2026-07-16 15:14:53 +10:00
2026-07-15 17:23:23 +10:00
2026-07-20 17:10:19 +10:00
2026-07-15 17:23:23 +10:00
2026-07-21 14:06:20 +10:00

ambium

Analog brown-noise generator. Single +12 V supply, breadboard-friendly. Deep filtered rumble 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 + brown shaping. U1A unused (parked).
  • 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]      [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

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 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 (low-freq gain ×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 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)
— 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, 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
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 (Q3) — feed AMP through Cc. Speaker hisses. Q3 warm, not hot; too hot → raise Re.

Tuning

Want Change
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)
S
Description
No description provided
Readme
16 MiB
0 Stars 1 Watchers 0 Forks
Languages
Rust 77.2%
Just 21%
RPC 1.8%