From 9aef980e1cc66fd98596676e81b14d4aaed3b364 Mon Sep 17 00:00:00 2001 From: Nathan Rashleigh Date: Mon, 20 Jul 2026 17:10:19 +1000 Subject: [PATCH] hurrrrrrrrrrr --- README.md | 341 +++++----------- ambium.sublime-project | 13 +- ambium.kicad_pcb => kicad/ambium.kicad_pcb | 0 ambium.kicad_prl => kicad/ambium.kicad_prl | 0 kicad/ambium.kicad_pro | 443 +++++++++++++++++++++ ambium.kicad_sch => kicad/ambium.kicad_sch | 0 ambium.spice.cir => kicad/ambium.spice.cir | 0 7 files changed, 560 insertions(+), 237 deletions(-) rename ambium.kicad_pcb => kicad/ambium.kicad_pcb (100%) rename ambium.kicad_prl => kicad/ambium.kicad_prl (100%) create mode 100644 kicad/ambium.kicad_pro rename ambium.kicad_sch => kicad/ambium.kicad_sch (100%) rename ambium.spice.cir => kicad/ambium.spice.cir (100%) diff --git a/README.md b/README.md index 7b5f3b1..61d62e1 100644 --- a/README.md +++ b/README.md @@ -1,48 +1,42 @@ # ambium -Analog **brown-noise generator** with a slow amplitude swell (LFO). All-analog, -breadboard-friendly, single **+12 V** supply. Deep, drifting rumble that slowly -breathes in and out over ~20 s. +Analog white-noise generator. Single **+12 V** supply, breadboard-friendly. +Broadband hiss to a **4 Ω speaker** via a TIP120 driver. -Each stage is drawn as ASCII below. **Reference designators and model numbers are -consistent across every diagram, the BOM, and the connection list** — that list is -the authoritative netlist. +Reference designators and model numbers are consistent across every diagram, the +BOM, and the connection list — the connection list is the authoritative netlist. -## Parts used (model numbers) +## Parts -- **U1, U2** = **LM358** (dual op-amp, DIP-8). U1 = amp + integrator; U2 = LFO + buffer. - (LM258P is the same part — fine.) -- **Q1, Q2** = **2N3904** (NPN). Q1 = avalanche noise source; Q2 = shunt VCA. +- **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` · `BROWN` · `LFO` · -`LFO_CV` · `VCA` · `AUDIO_OUT` +`+12V` · `GND` · `VREF` (6 V mid-supply) · `NOISE` · `AMP` · `SPKR` ## Signal chain ``` - [noise] [amplify] [integrate] [VCA] [buffer] -Q1 2N3904 → U1A LM358 ×1000 → U1B LM358 −6dB/oct → Q2 2N3904 → U2B LM358 → AUDIO_OUT - NOISE AMP BROWN VCA (line out) - ▲ - swell - U2A LM358 LFO (~0.05 Hz) + [noise] [amplify] [driver] +Q1 2N3904 → U1B LM358 ×1000 → Q3 TIP120 → 4Ω speaker + NOISE AMP (class A) ``` -Legend for the diagrams: +Legend: ``` - [Rxx val] resistor ──┤├── film / non-polar cap ● junction (connected) - ──+┤├── polarised cap × no-connect - │\ (the + marks the + terminal) ► net continues (label) - ────┤−\ op-amp: IN− top, IN+ bottom, OUT right. - │ >── Powered from +12V / GND via LM358 pins 8 / 4 (see Power). + [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 box — E / B / C labels sit OUTSIDE the box: + E transistor: E / B / C labels outside the box. │ ┌──┴──┐ - B ───┤ Qx │ NPN 2N3904 + B ───┤ Qx │ NPN └──┬──┘ │ C @@ -50,7 +44,7 @@ Legend for the diagrams: --- -## Power · VREF divider (R2, R3, Cref) +## Power · VREF divider (R2, R3, Cref) ``` +12V @@ -58,258 +52,139 @@ Legend for the diagrams: [R2 10k] │ ●───────────────┬────────► VREF (6 V) - │ + Cref 10µF (+ terminal → VREF) + │ + Cref 10µF [R3 10k] ──┤├── │ − │ │ GND GND ``` -`R2`/`R3` = 20 kΩ across 12 V → 0.6 mA, midpoint = **6 V**. `Cref` holds VREF steady. -VREF is the AC ground every stage rides on (single supply, no negative rail). +R2/R3 = 20 kΩ across 12 V, midpoint = 6 V. VREF = AC ground (single supply). --- -## Stage 1 — White noise (R1, Q1, C1) +## Stage 1 — White noise (R1, Q1, C1) -Reverse-biased base–emitter junction of `Q1` driven into avalanche = broadband white -noise. `R1` limits current; `C1` couples the noise out. +Reverse-biased B–E junction of Q1 into avalanche = broadband white noise. R1 limits +current; C1 couples it out. ``` +12V │ [R1 100k] │ - ●──+┤├──────────► NOISE (stage-1 output → Stage 2) - │ C1 10µF - │ (+ terminal → emitter side; − → NOISE) + ●──+┤├──────────► NOISE + │ C1 10µF (+ → emitter side; − → NOISE) E ┌──┴──┐ GND─B─┤ Q1 │ 2N3904 └──┬──┘ │ - C - × collector: no connect - -The ● node (R1 / Q1 emitter) is the raw noise on a DC pedestal — internal, don't -label it NOISE. `C1` strips the DC; **NOISE = the AC-coupled output after C1.** + C × no connect ``` -> Avalanche quality varies part-to-part. Try one 2N3904; if quiet, swap for another. -> Needs the full +12 V (9 V is often too low to avalanche). +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 (U1 unit B, Rin1, Rf1) +## Stage 2 — Amplifier ×1000 (U1B, Rin1, Rf1) -Inverting amp, gain ≈ −Rf1/Rin1 = **×1000**. Output centred on VREF. +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). ``` - ┌───[Rf1 1M]────┐ - ├───[Cf1 22pF]──┤ Cf1 ∥ Rf1 — kills oscillation, limits BW - │ │ - NOISE ─[Rin1 1k]───● │ - pin 6 │ │\ │ - (IN−) ───────┴───┤−\ │ - │ >──● pin 7 (OUT) ──► AMP - (IN+) ───────────┤+ / - pin 5 VREF │/ U1 = LM358 (unit B) + ┌────∪────┐ + ┌───── 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 + └─────────┘ - Power + decoupling (whole LM358 U1 — wired ONCE, not per unit): + feedback (pin 7 ↔ pin 6): pin 7 ●──[Rf1 1M]──● pin 6 Rf1 ∥ Cf1 + pin 7 ●──[Cf1 22pF]─● pin 6 anti-osc, limits BW - pin 8 (V+) ── +12V pin 4 (V−) ── GND - - +12V ──+┤├── GND 47µF +12V ──┤├── GND 10nF (or 0.1µF) - (bulk electro, (HF ceramic, - + to +12V, near U1) right at pin 8) + input: NOISE ─[Rin1 1k]──● pin 6 ``` -> This stage uses **unit B** (pins 5/6/7) — as built. The integrator (Stage 3) uses -> the **other half, unit A** (pins 1/2/3). Power (8/4) + decoupling are shared by both -> halves — wire them once. To use unit A here instead: IN− = **2**, IN+ = **3**, OUT = **1**. +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. --- -## Stage 3 — Integrator → brown (U1 unit A, Rin2, Cint, Rf2) +## Output driver — TIP120 class-A follower (Q3), 4Ω speaker -Leaky integrator = **−6 dB/octave** → turns white into brown. `Rf2` bounds DC so the -output can't rail. Corner ≈ 1/(2π·Rf2·Cint) ≈ 1.6 Hz. +AMP is line level; the LM358 can't drive a speaker. Q3 emitter follower supplies the +current. Class A — needs a heatsink. ``` - ┌──────[Rf2 1M]──────┐ - │ │ - ├───────┤├───────────┤ Cint 100nF (Rf2 ∥ Cint) - │ │ - AMP ─[Rin2 10k]───● │ - pin 2 │ │\ │ - (IN−) ───────┴───┤−\ │ - │ >──● pin 1 (OUT) ──► BROWN - (IN+) ───────────┤+ / - pin 3 VREF │/ U1 = LM358 (unit A) + +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 ``` -Darker/deeper: ↑ Cint or Rf2. Lighter (toward pink): ↓ Cint. +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. ---- - -## Stage 4 — LFO (U2A, Rt, Ct, Ra, Rh) - -Single-op-amp relaxation oscillator. Period ≈ 2.2·Rt·Ct ≈ **~22 s**. The control -voltage is the ramp on `Ct` (net `LFO_CV`) — it drives the VCA in Stage 5. - -``` - ┌──────────[Rt 1M]──────────┐ - │ │ - ●──────┤├──── VREF │ Ct 10µF (non-polar) - │ Ct │ - │ │\ │ - LFO_CV ●──────┤−\ │ - │ │ >──●──────────────┴──► LFO (and to Rh) - ┌──────┤+ / │ U2A - │ │/ │ (LM358, unit A) - ●──[Ra 100k]──┤ - │ └── VREF - [Rh 100k] - │ - └───────────────────────────────────► LFO (hysteresis feedback) -``` -`Ra`/`Rh` set the hysteresis (both 100k). `LFO_CV` ramps ~3.5–8.5 V. -> `Ct` sees a bipolar swing about VREF — use a **non-polar** 10 µF (film or bipolar -> electrolytic), not a standard polarised cap. - ---- - -## Stage 5 — VCA + buffer + output (Rs, Q2, Rb2, U2B, Cout, Rvol) - -`Q2` shunts the brown-noise signal to VREF (AC ground) by an amount set by `LFO_CV` → -amplitude swells and fades. `U2B` buffers; `Cout` blocks DC; `Rvol` sets level. - -``` - VCA - │ - C - ┌──┴──┐ - LFO_CV ─[Rb2 100k]─B─┤ Q2 │ 2N3904 - └──┬──┘ - │ - E - │ - VREF - - BROWN ──[Rs 47k]────────► VCA (Rs feeds VCA; Q2 shunts VCA to VREF) - - VCA ───┤+\ - │ >──●──+┤├──●──[Rvol 10k]──► AUDIO_OUT - ┌─────┤−/ │ Cout │ (wiper) - │ │/ U2B 10µF GND - │ LM358 - │ unit B - └─────────● (OUT → IN− = unity buffer; Cout + → buffer out) -``` -When `LFO_CV` is low → Q2 off → signal passes (loud). High → Q2 conducts → shunts to -VREF (quiet). ~20 s swell. Soften the swell: 1 µF from `LFO_CV` to VREF. - ---- - -## Output driver — LM386 (U3), for the 4Ω speaker - -`AUDIO_OUT` is **line level** — the LM358 **cannot** drive a speaker. Add an **LM386** -power amp for a 4 Ω / 8 Ω speaker. (For bring-up you can feed it from `AMP` or `BROWN` -instead of `AUDIO_OUT`.) - -``` - +12V - │ - ●──────┤ pin 6 (V+) - ──+┤├── ──┤├── - 47µF 0.1µF (→ GND, at the chip) - │ │ - GND GND - - AUDIO_OUT ─+┤├─[VOL 10k]────► pin 3 (+IN) pin 5 (OUT) ─+┤├──► SPKR ─ GND - Cc 1µF (wiper) 470µF 4Ω - pin 5 ─[10Ω]─┤├─ GND (Zobel) - pin 2 (−IN) ── GND 10nF - pin 4 ── GND - pin 7 (BYPASS) ─+┤├─ GND (10µF) - pins 1 & 8 ── OPEN (gain ×20) -``` -LM386 pinout: `1` gain · `2` IN− · `3` IN+ · `4` GND · `5` OUT · `6` V+ · `7` bypass · `8` gain. - -**Notes** -- **Output cap must be big (~470µF, ≥16V).** Into 4 Ω, 47µF high-passes at ~850 Hz → - kills the bass (brown noise is all lows). Fat electrolytic, **+ → pin 5**. -- **Gain ×20** (pins 1 & 8 open). Back off with VOL to avoid clipping. A 10µF between - pins 1 & 8 gives ×200 — usually not needed. -- **On +12 V the LM386 runs warm into 4 Ω** (LM386N-1 max = 12 V). OK for testing; - for cooler running feed it from ~9 V. - ---- - -## LM358 power + decoupling - -Each LM358 (U1, U2) is powered once via its package pins — **not** per op-amp unit: - -``` - +12V ──┬── U1 pin 8 (V+) GND ──┬── U1 pin 4 (V−) - │ │ - └── U2 pin 8 (V+) └── U2 pin 4 (V−) - - Decoupling: 0.1µF from +12V to GND at EACH chip, plus one 47µF bulk on the +12V rail. -``` -LM358 unit A = pins 1(OUT) 2(IN−) 3(IN+); unit B = 7(OUT) 6(IN−) 5(IN+); power 8(V+) 4(V−). +TIP120 pinout (TO-220, face up, pins down): **1 Base · 2 Collector · 3 Emitter**. --- ## Bill of materials -| Ref | Value | Part / model | Function | -|-----|-------|--------------|----------| -| U1 | — | **LM358** (DIP-8) | U1A amp, U1B integrator | -| U2 | — | **LM358** (DIP-8) | U2A LFO, U2B buffer | -| Q1 | — | **2N3904** | avalanche white-noise source | -| Q2 | — | **2N3904** | shunt VCA | +| 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) | -| Rin2 | 10k | resistor | integrator input | -| Rf2 | 1M | resistor | integrator leak / brown corner | -| Rs | 47k | resistor | VCA series | -| Rb2 | 100k | resistor | LFO_CV → Q2 base | -| Rt | 1M | resistor | LFO timing | -| Ra, Rh | 100k | resistor | LFO hysteresis | -| Rvol | 10k | potentiometer | output level | +| 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 — **stops oscillation**, limits BW | -| Cint | 100nF | film | integrator (brown shaping) | -| Cout | 10µF | electrolytic | output coupling | -| Ct | 10µF | **non-polar** | LFO timing (bipolar swing) | -| U3 | — | **LM386** | speaker power amp (drives 4Ω/8Ω) | -| Cc | 1µF | film/electro | LM386 input coupling | -| Cout2 | **470µF** ≥16V | electrolytic | speaker output coupling — **big, for bass** | -| — | 10Ω + 10nF | — | LM386 Zobel network (stability) | -| — | 10µF | electro | LM386 pin 7 bypass | -| — | 0.1µF ×3 | ceramic | chip decoupling (one per LM358 + one at LM386 pin 6) | -| — | 47µF ×2 | electrolytic | +12V bulk (main rail + at LM386) | +| 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: 2× LM358 + 1× LM386 + 2× 2N3904.** Single +12 V supply -(feed the LM386 from ~9 V if it runs hot into 4 Ω). +Chip count: 1× LM358 + 1× 2N3904 + 1× TIP120. Q3 needs a heatsink. --- ## Connection list (authoritative netlist) ``` -+12V : R1.1, R2.1, U1.8, U2.8, (47µF+) -GND : R3.2, Q1.base, Cref.−, U1.4, U2.4, Rvol.3, (47µF−), (0.1µF ×2) -VREF : R2.2, R3.1, Cref.+, U1A.IN+(3), U1B.IN+(5), Ct(VREF end), Ra.1, Q2.emitter -(src) : R1.2, Q1.emitter, C1.+ (internal raw-noise node, DC pedestal) -NOISE : C1.−, Rin1.1 (stage-1 output, AC-coupled — after C1) -AMP : U1A.OUT(1), Rf1, Rin2.1 (Rin1.2, Rf1, U1A.IN−(2) = summing node) -BROWN : U1B.OUT(7), Cint, Rf2, Rs.1 (Rin2.2, Cint, Rf2, U1B.IN−(6) = summing) -LFO : U2A.OUT(1), Rt, Rh -LFO_CV : Rt, Ct(CV end), U2A.IN−(2), Rb2 (ramp that swells the VCA) -VCA : Rs.2, Q2.collector, U2B.IN+(5) - (U2B.OUT(7) = U2B.IN−(6) = Cout.+ → buffer) -AUDIO_OUT : Rvol.wiper(2) (Cout.− → Rvol.1; Rvol.3 → GND) ++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 ``` @@ -317,22 +192,16 @@ Q1 : collector = no-connect ## Build & test order -Build one stage at a time — verify before adding the next. - -1. **VREF** — R2/R3/Cref up. Confirm ~6.0 V. -2. **Noise (R1 + Q1)** — scope Q1 node → hiss (~mV). No noise? swap the 2N3904 or nudge supply to 12–15 V. -3. **Amp (U1A)** — scope AMP → loud hiss (~volts). -4. **Integrator (U1B)** — BROWN sounds darker/deeper than AMP. That's brown noise. -5. **LFO (U2A)** — scope LFO_CV → slow ramp, ~20 s. -6. **VCA + buffer (Q2, U2B)** — full chain: noise swells and fades on the LFO cycle. +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 | |------|--------| -| Deeper/darker | ↑ Cint or Rf2 | -| Lighter (toward pink) | ↓ Cint | -| Slower swell | ↑ Rt or Ct | -| Faster swell | ↓ Rt or Ct | -| Softer swell onset | 1µF from LFO_CV to VREF | | Louder | ↑ Rf1 (watch clipping) | +| Less harsh | ↓ Rf1 | +| Cooler driver | ↑ Re | +| More headroom | ↓ Re (hotter — bigger heatsink) | diff --git a/ambium.sublime-project b/ambium.sublime-project index 24db303..028bb92 100644 --- a/ambium.sublime-project +++ b/ambium.sublime-project @@ -2,7 +2,18 @@ "folders": [ { - "path": "." + "path": ".", + "folder_exclude_patterns": + [ + "target", + ".history" + ], + "file_exclude_patterns": + [ + "~ambium.kicad_sch.lck", + ".DS_Store", + "ambium.sublime-workspace" + ] } ] } diff --git a/ambium.kicad_pcb b/kicad/ambium.kicad_pcb similarity index 100% rename from ambium.kicad_pcb rename to kicad/ambium.kicad_pcb diff --git a/ambium.kicad_prl b/kicad/ambium.kicad_prl similarity index 100% rename from ambium.kicad_prl rename to kicad/ambium.kicad_prl diff --git a/kicad/ambium.kicad_pro b/kicad/ambium.kicad_pro new file mode 100644 index 0000000..69c4adb --- /dev/null +++ b/kicad/ambium.kicad_pro @@ -0,0 +1,443 @@ +{ + "board": { + "3dviewports": [], + "ipc2581": { + "bom_rev": "", + "dist": "", + "distpn": "", + "internal_id": "", + "mfg": "", + "mpn": "", + "sch_revision": "" + }, + "layer_pairs": [], + "layer_presets": [], + "viewports": [] + }, + "boards": [], + "component_class_settings": { + "assignments": [], + "meta": { + "version": 0 + }, + "sheet_component_classes": { + "enabled": false + } + }, + "cvpcb": { + "equivalence_files": [] + }, + "erc": { + "erc_exclusions": [], + "meta": { + "version": 0 + }, + "pin_map": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2 + ], + [ + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2 + ], + [ + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 2 + ], + [ + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2 + ], + [ + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2 + ], + [ + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2 + ] + ], + "rule_severities": { + "bus_definition_conflict": "error", + "bus_entry_needed": "error", + "bus_to_bus_conflict": "error", + "bus_to_net_conflict": "error", + "different_unit_footprint": "error", + "different_unit_net": "error", + "duplicate_reference": "error", + "duplicate_sheet_names": "error", + "endpoint_off_grid": "warning", + "extra_units": "error", + "field_name_whitespace": "warning", + "footprint_filter": "ignore", + "footprint_link_issues": "warning", + "four_way_junction": "ignore", + "ground_pin_not_ground": "warning", + "hier_label_mismatch": "error", + "isolated_pin_label": "warning", + "label_dangling": "error", + "label_multiple_wires": "warning", + "lib_symbol_issues": "warning", + "lib_symbol_mismatch": "warning", + "missing_bidi_pin": "warning", + "missing_input_pin": "warning", + "missing_power_pin": "error", + "missing_unit": "warning", + "multiple_net_names": "warning", + "net_not_bus_member": "warning", + "no_connect_connected": "warning", + "no_connect_dangling": "warning", + "pin_not_connected": "error", + "pin_not_driven": "error", + "pin_to_pin": "warning", + "power_pin_not_driven": "error", + "same_local_global_label": "warning", + "similar_label_and_power": "warning", + "similar_labels": "warning", + "similar_power": "warning", + "simulation_model_issue": "ignore", + "single_global_label": "ignore", + "stacked_pin_name": "warning", + "unannotated": "error", + "unconnected_wire_endpoint": "warning", + "undefined_netclass": "error", + "unit_value_mismatch": "error", + "unresolved_variable": "error", + "wire_dangling": "error" + } + }, + "libraries": { + "pinned_footprint_libs": [], + "pinned_symbol_libs": [] + }, + "meta": { + "filename": "ambium.kicad_pro", + "version": 3 + }, + "net_settings": { + "classes": [ + { + "bus_width": 12, + "clearance": 0.2, + "diff_pair_gap": 0.25, + "diff_pair_via_gap": 0.25, + "diff_pair_width": 0.2, + "line_style": 0, + "microvia_diameter": 0.3, + "microvia_drill": 0.1, + "name": "Default", + "pcb_color": "rgba(0, 0, 0, 0.000)", + "priority": 2147483647, + "schematic_color": "rgba(0, 0, 0, 0.000)", + "track_width": 0.2, + "tuning_profile": "", + "via_diameter": 0.6, + "via_drill": 0.3, + "wire_width": 6 + } + ], + "meta": { + "version": 5 + }, + "net_colors": null, + "netclass_assignments": null, + "netclass_patterns": [] + }, + "pcbnew": { + "last_paths": { + "idf": "", + "netlist": "", + "plot": "", + "specctra_dsn": "", + "vrml": "" + }, + "page_layout_descr_file": "" + }, + "schematic": { + "annotate_start_num": 0, + "annotation": { + "method": 0, + "sort_order": 0 + }, + "bom_export_filename": "${PROJECTNAME}.csv", + "bom_fmt_presets": [], + "bom_fmt_settings": { + "field_delimiter": ",", + "keep_line_breaks": false, + "keep_tabs": false, + "name": "CSV", + "ref_delimiter": ",", + "ref_range_delimiter": "", + "string_delimiter": "\"" + }, + "bom_presets": [], + "bom_settings": { + "exclude_dnp": false, + "fields_ordered": [ + { + "group_by": false, + "label": "Reference", + "name": "Reference", + "show": true + }, + { + "group_by": false, + "label": "Qty", + "name": "${QUANTITY}", + "show": true + }, + { + "group_by": true, + "label": "Value", + "name": "Value", + "show": true + }, + { + "group_by": true, + "label": "DNP", + "name": "${DNP}", + "show": true + }, + { + "group_by": true, + "label": "Exclude from BOM", + "name": "${EXCLUDE_FROM_BOM}", + "show": true + }, + { + "group_by": true, + "label": "Exclude from Board", + "name": "${EXCLUDE_FROM_BOARD}", + "show": true + }, + { + "group_by": true, + "label": "Footprint", + "name": "Footprint", + "show": true + }, + { + "group_by": false, + "label": "Datasheet", + "name": "Datasheet", + "show": true + } + ], + "filter_string": "", + "group_symbols": true, + "include_excluded_from_bom": true, + "name": "Default Editing", + "sort_asc": true, + "sort_field": "Reference" + }, + "bus_aliases": {}, + "connection_grid_size": 50.0, + "drawing": { + "dashed_lines_dash_length_ratio": 12.0, + "dashed_lines_gap_length_ratio": 3.0, + "default_line_thickness": 6.0, + "default_text_size": 50.0, + "field_names": [], + "hop_over_size_choice": 0, + "intersheets_ref_own_page": false, + "intersheets_ref_prefix": "", + "intersheets_ref_short": false, + "intersheets_ref_show": false, + "intersheets_ref_suffix": "", + "junction_size_choice": 3, + "label_size_ratio": 0.375, + "operating_point_overlay_i_precision": 3, + "operating_point_overlay_i_range": "~A", + "operating_point_overlay_v_precision": 3, + "operating_point_overlay_v_range": "~V", + "overbar_offset_ratio": 1.23, + "pin_symbol_size": 25.0, + "text_offset_ratio": 0.15 + }, + "legacy_lib_dir": "", + "legacy_lib_list": [], + "meta": { + "version": 1 + }, + "ngspice": { + "fix_include_paths": true, + "meta": { + "version": 0 + }, + "model_mode": 4, + "workbook_filename": "" + }, + "page_layout_descr_file": "", + "plot_directory": "", + "reuse_designators": true, + "subpart_first_id": 65, + "subpart_id_separator": 0, + "top_level_sheets": [ + { + "filename": "ambium.kicad_sch", + "name": "Root", + "uuid": "5ab6832c-376c-4ebe-b1c2-82e1b27b6200" + } + ], + "used_designators": "U1", + "variants": [] + }, + "sheets": [ + [ + "5ab6832c-376c-4ebe-b1c2-82e1b27b6200", + "Root" + ] + ], + "text_variables": {}, + "tuning_profiles": { + "meta": { + "version": 0 + }, + "tuning_profiles_impedance_geometric": [] + } +} diff --git a/ambium.kicad_sch b/kicad/ambium.kicad_sch similarity index 100% rename from ambium.kicad_sch rename to kicad/ambium.kicad_sch diff --git a/ambium.spice.cir b/kicad/ambium.spice.cir similarity index 100% rename from ambium.spice.cir rename to kicad/ambium.spice.cir