tube improvements

This commit is contained in:
Bane Stojkovic
2026-11-02 15:51:26 +01:00
parent e369ea6200
commit 3ba4434b66
10 changed files with 391 additions and 293 deletions
+14 -6
View File
@@ -74,15 +74,16 @@ Package sizes, nominal (mid-range) body length x diameter from the outline drawi
| Fast Rectifier | DO-201AD | UF5400-UF5408, MUR460, BY399 |
| Schottky | DO-41 / DO-201AD | 1N5817-1N5819, SB140, SB160, SR160, 11DQ04 / 1N5820-1N5822, SB560 |
`DiodeGlass.datasheet`, 200 parts:
`DiodeGlass.datasheet`, 239 parts:
| Group | Package | Parts |
|---|---|---|
| Signal | DO-35 | 1N4148, 1N914, 1N4448, 1N916, 1N4151, BAV21, 1N3600, BA221 |
| Signal | DO-35 | 1N4148, 1N914, 1N4448, 1N916, 1N4151, BAV21, 1N3600, BA221, 1S1588, 1S2473, MA150 |
| Signal | DO-34 | 1SS133, MA856 |
| Schottky | DO-35 / DO-34 | BAT41, BAT42, BAT43, BAT46, BAT48, BAT85, 1N5711 / BAT86 |
| Germanium | DO-7 / DO-35 | 1N34A, 1N270, OA90, OA91, OA95, OA47, AA119, AA143 / 1N60, 1N60P |
| Fast Rectifier | SOD-57 | BYV26C, BYV26E |
| Zener (1N47xx) | DO-41 | 1N4728A-1N4764A |
| Zener (1N47xx), (BZX85) | DO-41 | 1N4728A-1N4764A, BZX85C3V3-C75 |
| Zener (1N52xx), (1N7xx), (BZX55), (BZX79) | DO-35 | 1N5221B-1N5267B, 1N746A-1N759A, BZX55C and BZX79C 2V4-75 |
Sourcing notes:
@@ -97,8 +98,15 @@ Sourcing notes:
- 1N60 / 1N60P are sold as germanium but current Asian production is often a silicon Schottky.
- Left out: BAT54 (SMD), 1N695 (secondary sources only), Soviet D9/D18 (own glass cases, not JEDEC),
DO-15 parts (none needed once 1N539x went to DO-41).
- Popular additions not yet sourced: 1S1588, 1SS133, MA150/MA856 (Japanese pedal clippers), BZX85C
(1.3 W zeners), SF14/SF18, MBR160, SB5100, 1N4150, 1N456/1N457, BY228/BYW96 (SOD-64).
- Japanese clippers, kept only with a pedal schematic behind them: 1S1588 (Boss SD-1, King of
Tone), 1S2473 (Boss HM-2, early DS-1/SD-1), MA150 (TS808, TS9), 1SS133 (Boss BD-2), MA856 (King
of Tone); all from Toshiba, Rohm and Panasonic sheets and all obsolete. Their cathode bands follow
the maker (yellow on Rohm and MA856, white on MA150), so band colour varies per row while size
stays per package. Dropped for lack of pedal evidence: 1S2076A, 1SS270A, 1S953, 1S1555, 1SS176,
MA165, 1SS53.
- BZX85C follows Vishay's current range (3V3-75, glass DO-41); older makers went to 2V7 and up to
200 V. Nexperia's 1.3 W equivalent is BZV85, Diotec's ZPY.
- Popular additions not yet sourced: SF14/SF18, MBR160, SB5100, 1N4150, 1N456/1N457, BY228/BYW96 (SOD-64).
Rules for every row: a part's package is read from its manufacturer data sheet (or two independent
sources); where makers ship the same number in different envelopes (1N47xx in glass or plastic
@@ -123,7 +131,7 @@ other is noted.
1. **Plan**: this document.
2. **Code**: done - D3, D4, `DiodeDatasheetTest`, `@AiNote` on both classes. The test fails until
the datasheets exist.
3. **Library**: done - 277 parts in two datasheets, all five `DiodeDatasheetTest` cases pass, whole
3. **Library**: done - 316 parts in two datasheets, all five `DiodeDatasheetTest` cases pass, whole
reactor passes (core 227, library 513, swing 29), parts rendered per package; `catalog_full.json`
regenerated; release note in 6.10.
4. **Later**: bridge rectifiers; LEDs (3 mm / 5 mm / 10 mm bodies) if wanted.
+6 -2
View File
@@ -42,9 +42,11 @@ joined against 9, and that choice is made by the wiring, not the tube.
| V6 | Heater and filament ends | Named after their pin: `H4`, `H5` on a noval, `H2`, `H7` on an octal. A directly heated filament, which is also the cathode, is `F2`/`F8`. The `_n` suffix is never used for them | Each end is its own net (§1). Naming by pin follows `VCC+1`/`VCC+5` on the LM3886, the precedent for repeated roles that the package does not join. |
| V7 | Joined pins | A repeated name with the `_n` suffix, numbered by occurrence as on the ICs, only where the data book says the pins are connected inside the tube (e.g. the EF80 cathode on pins 1 and 3, `K_1`/`K_2`) | Same rule as the ICs, so `NetlistBuilder` joins exactly what the tube joins. |
| V8 | Unused pins | `NC` for no connection. Pins the data book marks "IC" (internal connection - do not use as a tie point) are `IC`, and `IC` joins `NC` and `RSV` in `Node.NON_NET_NAMES` | Several `IC` pins on one tube must not become one net. One-line core change. |
| V9 | Factory variants | The six named variants of §1 are retired (`deletedOn`), as the DIP8/DIP16 and resistor variants were; the four plain ones (PCB/Chassis Noval/Octal) stay as mount presets | The datasheet replaces them with correct names; leaving them would keep handing out shorted netlists. |
| V9 | Factory variants | The six named variants of §1 are retired (`deletedOn`), as the DIP8/DIP16 and resistor variants were; the four plain ones (PCB/Chassis Noval/Octal) stay as mount presets | The datasheet replaces the named ones with correct names; leaving them would keep handing out shorted netlists. The plain ones preset the mount, which a datasheet model deliberately leaves alone (V3), and their numbered labels short nothing, so a plain preset plus a model is the intended way to place a tube. |
| V11 | Drawn labels | Drawn through `AbstractMakerBoard.getDisplayPinLabel`, so `G1_1` shows as `G1` and parenthesised notes are dropped, as on the ICs; node names keep the suffix | Joined pins carry one role; printing the suffix crowded small sockets (6S19P). |
| V12 | Equivalents on one basing | A tube given a RETMA basing takes that basing's names, including its section numbers, even where its own data sheet numbers the units the other way (6N8S and 6N9S use the 6SN7's); tubes with no RETMA code keep their sheet's numbering | Swapping a 6N8S for a 6SN7 must not relabel the socket; section numbers are labels, the pin grouping is identical. |
| V13 | Property name | The `electrodeLabels` field and its accessors keep their names; the property is shown as "Pin Names", as on the ICs | One name for the same idea across ICs and tubes, for users and the AI. Variants store values by property name with no alias mechanism, so the two factory presets are re-keyed; a user's own saved tube variants lose their labels, as user variants lost "Display Pin #s" when the ICs renamed it. |
| V14 | What a pin shows | New `pinLabels` field with the shared `PinLabels` enum, shown as "Pin Labels": None, Names (default), Numbers. Numbers are the base's pin numbers, drawn where the names go | Matches `SIL_IC` and `MultiwattIC`. Old files deserialize with `null`, which reads as Names - exactly what every socket drew before. |
| V10 | Existing projects | Unchanged. A project placed from a retired variant keeps its labels and its shorted nets; nothing rewrites user data | Labels are user data. The release note can say how to re-apply a model. |
### Explicitly out of scope
@@ -209,4 +211,6 @@ where the basing is confirmed identical (the 6L6 family is not uniformly 7AC, an
3. **Library**: done - 188 tubes (46 small-signal, 54 radio and space-charge, 58 power, rectifier
and reference, 30 Soviet and EL91). `catalog_full.json` regenerated; release notes in 6.10
(datasheet, and the shorted-variant fix).
4. **Later, on request**: the UX4/jumbo 4-pin bases (300B, 2A3, 211, 845), magnoval.
4. **Pin labels**: done - V13 ("Pin Names"), V14 ("Pin Labels"), factory presets re-keyed,
`TubeSocketTest` covers the old-file default; rendered in all three modes.
5. **Later, on request**: the UX4/jumbo 4-pin bases (300B, 2A3, 211, 845), magnoval.