@vessel-dsp/compiler 0.6.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/bbd-clock.d.ts +42 -0
- package/dist/bbd-clock.d.ts.map +1 -1
- package/dist/bbd-clock.js +378 -1
- package/dist/bbd-clock.js.map +1 -1
- package/dist/compile.d.ts.map +1 -1
- package/dist/compile.js +92 -23
- package/dist/compile.js.map +1 -1
- package/dist/device-laws.d.ts.map +1 -1
- package/dist/device-laws.js +77 -11
- package/dist/device-laws.js.map +1 -1
- package/dist/lower.d.ts.map +1 -1
- package/dist/lower.js +13 -0
- package/dist/lower.js.map +1 -1
- package/dist/netlist.d.ts.map +1 -1
- package/dist/netlist.js +27 -1
- package/dist/netlist.js.map +1 -1
- package/dist/part-catalog.d.ts +19 -0
- package/dist/part-catalog.d.ts.map +1 -1
- package/dist/part-catalog.js +114 -4
- package/dist/part-catalog.js.map +1 -1
- package/dist/partition.d.ts.map +1 -1
- package/dist/partition.js +6 -0
- package/dist/partition.js.map +1 -1
- package/dist/registry-data/diode.d.ts.map +1 -1
- package/dist/registry-data/diode.js +181 -64
- package/dist/registry-data/diode.js.map +1 -1
- package/dist/registry-data/index.d.ts +2 -0
- package/dist/registry-data/index.d.ts.map +1 -1
- package/dist/registry-data/index.js +15 -3
- package/dist/registry-data/index.js.map +1 -1
- package/dist/registry-data/led.d.ts +20 -0
- package/dist/registry-data/led.d.ts.map +1 -0
- package/dist/registry-data/led.js +415 -0
- package/dist/registry-data/led.js.map +1 -0
- package/dist/registry-data/schema.d.ts +11 -3
- package/dist/registry-data/schema.d.ts.map +1 -1
- package/dist/registry-data/schema.js +20 -4
- package/dist/registry-data/schema.js.map +1 -1
- package/dist/registry-data/ujt.d.ts +3 -0
- package/dist/registry-data/ujt.d.ts.map +1 -0
- package/dist/registry-data/ujt.js +48 -0
- package/dist/registry-data/ujt.js.map +1 -0
- package/dist/registry.d.ts +32 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js.map +1 -1
- package/dist/types.d.ts +57 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,415 @@
|
|
|
1
|
+
// LED colour-default registry data: owner bench 2026-10-20 (measured IS and n;
|
|
2
|
+
// derived VT and, for the two-point colours, derived Rs -- assumed fit constants,
|
|
3
|
+
// never measurements).
|
|
4
|
+
//
|
|
5
|
+
// Keying by packet spelling (whole folded part ids packets already use):
|
|
6
|
+
// - red: "RED LED" (marshall-blues-breaker LED1, 9 V power indicator through 470 ohm),
|
|
7
|
+
// "5mm red LED" (pigtronix-philosophers-tone D13), "LED-RED" (bk-butler-tube-driver
|
|
8
|
+
// D_EFFECT_LED_RED, EFFECT 5 mm red led; marshall-guvnor-drivemaster D2/D3, `kind:
|
|
9
|
+
// diode` red clipper pair -- `Color` is read for `kind: led` only, so the id stays
|
|
10
|
+
// their only key).
|
|
11
|
+
// - green: "LED-GREEN" (bk-butler-tube-driver D_POWER_LED_GREEN, POWER 5 mm green led).
|
|
12
|
+
// - blue: reached via typed `Color` only (the one packet spelling, keeley-compressor-plus
|
|
13
|
+
// "3mm blue", states vocabulary `Color: blue`, so the id was removed as redundant).
|
|
14
|
+
//
|
|
15
|
+
// One record per closed-vocabulary colour (`red`, `yellow`, `green`, `blue`, `white`),
|
|
16
|
+
// resolved two ways through the existing diode lookup: by whole folded PartNumber for
|
|
17
|
+
// the packet spellings above, and by typed `Color` (see `LED_COLOUR_RECORD_ID`) for any
|
|
18
|
+
// other `kind: led` device that states a vocabulary colour. A registry PartNumber law
|
|
19
|
+
// always wins over colour; typed parameters declared in the document win over both.
|
|
20
|
+
// No packet spells white or yellow in a part id, so those records carry the colour
|
|
21
|
+
// word as their registry id (no packet uses it; they are reached only via `Color`).
|
|
22
|
+
//
|
|
23
|
+
// Not keyed and landed nowhere: bare "LED" (colourless), "5mm LED" (colourless),
|
|
24
|
+
// "unspecified-indicator-led (...)" (explicitly unknown part), empty PartNumber, and
|
|
25
|
+
// every manufacturer part number (LN28RP, SLP-135B, GL-32AR, ...: real parts the bench
|
|
26
|
+
// kit cannot speak for).
|
|
27
|
+
//
|
|
28
|
+
// Every record states `thermalVoltage: 0.025852` explicitly (the VT the fit was referred
|
|
29
|
+
// to; the LED class default is 0.05, with which the engine does not reproduce these Vf at
|
|
30
|
+
// all) and its own fitted `seriesResistance` (the 2.0 ohm LED default is a placeholder,
|
|
31
|
+
// not a measurement). IS depends exponentially on n: each triple ships as fitted,
|
|
32
|
+
// digits unrounded, one fit per record. White, blue and green fit both evidence
|
|
33
|
+
// files (A/B from the identified four LEDs per colour, C/D from one unidentified
|
|
34
|
+
// LED per size from the same bags); red and yellow keep the first-session two-point
|
|
35
|
+
// pair (Rs fixed at the 2.0 ohm default, valid about 1.4 to 11 mA only).
|
|
36
|
+
import { definePartData } from "./loader.js";
|
|
37
|
+
const LED_INSTRUMENT = "UNI-T UT107, DC volts. Every voltage was entered to 0.01 V, so the effective " +
|
|
38
|
+
"count is 10 mV (2 V or 20 V range not recorded)";
|
|
39
|
+
const EVIDENCE_FIRST_PATH = "packet-study/led-default/measurements/2026-10-20-led-default.json";
|
|
40
|
+
const EVIDENCE_FIRST_SHA256 = "72abc43aa3d562351212dd6045e4bbf1914cf4e660dfe0e4288644c7f1f7b37a";
|
|
41
|
+
const EVIDENCE_SECOND_PATH = "packet-study/led-default/measurements/2026-10-20-led-default-cd-points.json";
|
|
42
|
+
const EVIDENCE_SECOND_SHA256 = "d0c5560161745f40616b0f0ed7852edfe6734029bb4a3105bc4503a737b6fb41";
|
|
43
|
+
const FOUR_POINT_CONDITIONS = "USB 5 V breadboard shield 4.99 V read once; first session 2.2 kohm and 270 ohm, " +
|
|
44
|
+
"second session 20 kohm and 150 ohm, all as typed exactly nominal, probably not metered " +
|
|
45
|
+
"(kit tolerance 1 %); room 20 C; 4 LEDs per colour at A/B (2 per size, one kit, maker not " +
|
|
46
|
+
"recorded) plus one unidentified LED per size at C/D (same bags, may not be among the four)";
|
|
47
|
+
const FOUR_POINT_SOURCE_TAIL = `Evidence ${EVIDENCE_FIRST_PATH} sha256 ${EVIDENCE_FIRST_SHA256} and ` +
|
|
48
|
+
`${EVIDENCE_SECOND_PATH} sha256 ${EVIDENCE_SECOND_SHA256}, schema ` +
|
|
49
|
+
"vesseldsp.junction-default-measurement.v1 perDevice isEngine/nEngine pooled over every " +
|
|
50
|
+
"sample at the engine VT 0.025852 V.";
|
|
51
|
+
const RED_CONDITIONS = "USB 5 V breadboard shield measured 4.99 V; 2.2 kohm and 270 ohm resistors as typed, " +
|
|
52
|
+
"exactly nominal, probably not metered (kit tolerance 1 %); room 20 C; 4 red LEDs " +
|
|
53
|
+
"(2 per size, one kit, maker not recorded); anchors 1.435 mA at 1.8275 V and 11.07 mA " +
|
|
54
|
+
"at 1.9925 V (pooled means)";
|
|
55
|
+
// Assumed fit constants, never measurements (derived basis): the thermal voltage the
|
|
56
|
+
// IS and n were referred to, and the series resistance fixed for a two-point fit.
|
|
57
|
+
const VT_DERIVATION = "The engine constant 0.025852 V the IS and n fit was referred to: IS and n " +
|
|
58
|
+
"reproduce the bench Vf only at this value (the LED class default is 0.05 V). " +
|
|
59
|
+
"Assumed, not measured.";
|
|
60
|
+
const TWO_POINT_RS_DERIVATION = "Fixed at the 2.0 ohm LED class default for the two-point fit, so the stamp must " +
|
|
61
|
+
"run at 2.0 ohm. Assumed, not measured.";
|
|
62
|
+
export const ledRegistryRecords = definePartData([
|
|
63
|
+
{
|
|
64
|
+
// Red indicator default: first-session two-point pair, Rs fixed at the 2.0 ohm
|
|
65
|
+
// class default (which is then correct for it). Valid about 1.4 to 11 mA only:
|
|
66
|
+
// the marshall-blues-breaker power indicator this keys runs about 15 mA off 9 V
|
|
67
|
+
// through 470 ohm, an extrapolated use disclosed here. n 2.76 would need Rs 6.2
|
|
68
|
+
// ohm were the junction n 2, so it may carry a small version of the inflated-n
|
|
69
|
+
// structure that sank the blue/white/green pairs; unverified outside the anchors.
|
|
70
|
+
partIds: ["RED LED", "5mm red LED", "LED-RED"],
|
|
71
|
+
class: "led",
|
|
72
|
+
note: "Owner bench 2026-10-20 (measured by Joseph Cheng, the project owner), 4 samples, maker unrecorded, two currents: the pair " +
|
|
73
|
+
"(1.1110898624e-14, 2.7587062 at Rs 2.0 ohm) holds only about 1.4 to 11 mA. " +
|
|
74
|
+
"The marshall-blues-breaker RED LED indicator runs about 15 mA (9 V through " +
|
|
75
|
+
"470 ohm), above the window: an extrapolated use. n 2.76 is above a junction " +
|
|
76
|
+
"n of 2 and unverified outside the two anchors. Published-model cross-check " +
|
|
77
|
+
"(LTspice Standard.dio, third-party library, not a manufacturer model): " +
|
|
78
|
+
"Kingbright APT1608SURCK (SMD, N 2.139, RS 2) -61 mV at 1.4 mA and -93 mV at " +
|
|
79
|
+
"11 mA (model minus measured); Fairchild QTLP690C (N 1.5, RS 6) -108 mV at " +
|
|
80
|
+
"1.4 mA and -136 mV at 11 mA.",
|
|
81
|
+
params: {
|
|
82
|
+
saturationCurrent: {
|
|
83
|
+
value: 1.1110898624e-14,
|
|
84
|
+
basis: "measured",
|
|
85
|
+
source: "Owner bench 2026-10-20 (measured by Joseph Cheng, the project owner), same sitting and fit as the emissionCoefficient " +
|
|
86
|
+
"record (one two-point fit at the 2.0 ohm LED class default and VT 0.025852 V; " +
|
|
87
|
+
"IS depends exponentially on n, so both digits ship as fitted). Valid about " +
|
|
88
|
+
"1.4 to 11 mA only; unverified outside the anchors. Evidence " +
|
|
89
|
+
`${EVIDENCE_FIRST_PATH} sha256 ${EVIDENCE_FIRST_SHA256}.`,
|
|
90
|
+
measurementInstrument: LED_INSTRUMENT,
|
|
91
|
+
measurementConditions: RED_CONDITIONS,
|
|
92
|
+
measurementSampleCount: 4,
|
|
93
|
+
measurementDate: "2026-10-20",
|
|
94
|
+
measurementEvidencePath: EVIDENCE_FIRST_PATH,
|
|
95
|
+
measurementEvidenceSha256: EVIDENCE_FIRST_SHA256,
|
|
96
|
+
},
|
|
97
|
+
emissionCoefficient: {
|
|
98
|
+
value: 2.7587062,
|
|
99
|
+
basis: "measured",
|
|
100
|
+
source: "Owner bench 2026-10-20 (measured by Joseph Cheng, the project owner), red two-point pair (n 2.76 may carry inflated-n " +
|
|
101
|
+
"structure; Rs fixed at 2.0 ohm). Valid about 1.4 to 11 mA only. Evidence " +
|
|
102
|
+
`${EVIDENCE_FIRST_PATH} sha256 ${EVIDENCE_FIRST_SHA256}.`,
|
|
103
|
+
measurementInstrument: LED_INSTRUMENT,
|
|
104
|
+
measurementConditions: RED_CONDITIONS,
|
|
105
|
+
measurementSampleCount: 4,
|
|
106
|
+
measurementDate: "2026-10-20",
|
|
107
|
+
measurementEvidencePath: EVIDENCE_FIRST_PATH,
|
|
108
|
+
measurementEvidenceSha256: EVIDENCE_FIRST_SHA256,
|
|
109
|
+
},
|
|
110
|
+
thermalVoltage: {
|
|
111
|
+
value: 0.025852,
|
|
112
|
+
basis: "derived",
|
|
113
|
+
source: "The VT the red fit was referred to (the LED class default is 0.05, with " +
|
|
114
|
+
"which the engine does not reproduce these Vf). Evidence " +
|
|
115
|
+
`${EVIDENCE_FIRST_PATH} sha256 ${EVIDENCE_FIRST_SHA256}.`,
|
|
116
|
+
derivation: VT_DERIVATION,
|
|
117
|
+
},
|
|
118
|
+
seriesResistance: {
|
|
119
|
+
value: 2.0,
|
|
120
|
+
basis: "derived",
|
|
121
|
+
source: "The Rs the red fit assumed (the 2.0 ohm LED class default, fixed for the " +
|
|
122
|
+
"two-point fit, so the stamp must run at 2.0 ohm). Evidence " +
|
|
123
|
+
`${EVIDENCE_FIRST_PATH} sha256 ${EVIDENCE_FIRST_SHA256}.`,
|
|
124
|
+
derivation: TWO_POINT_RS_DERIVATION,
|
|
125
|
+
},
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
// Green indicator default: colour-level four-point effective values over 0.13 to
|
|
130
|
+
// 13 mA. MISSES the 20 mV page limit (residual 32 mV at B): green does not follow
|
|
131
|
+
// V = a + b ln I + R I within 30 mV. Per-LED #1/#2 agreement is 0 to 10 mV in both
|
|
132
|
+
// sizes, so most of the misfit is the model form, not noise; the unidentified C/D
|
|
133
|
+
// LED explains at most about a quarter of it. Sizes agree within the fit (Rs 28.8
|
|
134
|
+
// 3 mm vs 30.8 5 mm).
|
|
135
|
+
partIds: ["LED-GREEN"],
|
|
136
|
+
class: "led",
|
|
137
|
+
note: "Owner bench 2026-10-20 (measured by Joseph Cheng, the project owner), 4 + 2 samples (A/B four identified LEDs, C/D one " +
|
|
138
|
+
"unidentified LED per size from the same bags), maker unrecorded. Four-point " +
|
|
139
|
+
"effective values (5.275788e-17, 3.02001, 29.7599 ohm); residuals (model minus " +
|
|
140
|
+
"measured) -9.2 mV " +
|
|
141
|
+
"at 0.13 mA, +23.9 at 1.1 mA, -31.9 at 8 mA, +17.1 at 13 mA: green misses the " +
|
|
142
|
+
"20 mV limit (32 mV), a stated misfit of the one-diode form, not noise. No " +
|
|
143
|
+
"published model for an indicator green LED was found (manufacturer sites not " +
|
|
144
|
+
"searched).",
|
|
145
|
+
params: {
|
|
146
|
+
saturationCurrent: {
|
|
147
|
+
value: 5.275788e-17,
|
|
148
|
+
basis: "measured",
|
|
149
|
+
source: "Owner bench 2026-10-20 (measured by Joseph Cheng, the project owner) green four-point fit (V = a + n VT ln I + I Rs over " +
|
|
150
|
+
"C 0.13 mA, A 1.1 mA, B 8 mA, D 13 mA; IS depends exponentially on n, so " +
|
|
151
|
+
"all three digits ship as fitted). " + FOUR_POINT_SOURCE_TAIL,
|
|
152
|
+
measurementInstrument: LED_INSTRUMENT,
|
|
153
|
+
measurementConditions: FOUR_POINT_CONDITIONS,
|
|
154
|
+
measurementSampleCount: 6,
|
|
155
|
+
measurementDate: "2026-10-20",
|
|
156
|
+
measurementEvidencePath: EVIDENCE_FIRST_PATH,
|
|
157
|
+
measurementEvidenceSha256: EVIDENCE_FIRST_SHA256,
|
|
158
|
+
},
|
|
159
|
+
emissionCoefficient: {
|
|
160
|
+
value: 3.02001,
|
|
161
|
+
basis: "measured",
|
|
162
|
+
source: "Owner bench 2026-10-20 (measured by Joseph Cheng, the project owner) green four-point fit (n 3.02 is an effective value " +
|
|
163
|
+
"over 0.13 to 13 mA with a stated 32 mV misfit). " + FOUR_POINT_SOURCE_TAIL,
|
|
164
|
+
measurementInstrument: LED_INSTRUMENT,
|
|
165
|
+
measurementConditions: FOUR_POINT_CONDITIONS,
|
|
166
|
+
measurementSampleCount: 6,
|
|
167
|
+
measurementDate: "2026-10-20",
|
|
168
|
+
measurementEvidencePath: EVIDENCE_FIRST_PATH,
|
|
169
|
+
measurementEvidenceSha256: EVIDENCE_FIRST_SHA256,
|
|
170
|
+
},
|
|
171
|
+
thermalVoltage: {
|
|
172
|
+
value: 0.025852,
|
|
173
|
+
basis: "derived",
|
|
174
|
+
source: "The VT the green fit was referred to (the LED class default is 0.05, with " +
|
|
175
|
+
"which the engine does not reproduce these Vf). " + FOUR_POINT_SOURCE_TAIL,
|
|
176
|
+
derivation: VT_DERIVATION,
|
|
177
|
+
},
|
|
178
|
+
seriesResistance: {
|
|
179
|
+
value: 29.7599,
|
|
180
|
+
basis: "measured",
|
|
181
|
+
source: "Owner bench 2026-10-20 (measured by Joseph Cheng, the project owner) green four-point fit (Rs 29.76 ohm is why the " +
|
|
182
|
+
"first-session n read 8.0; the stamp must run at the fitted Rs, not the " +
|
|
183
|
+
"2.0 ohm class default). " + FOUR_POINT_SOURCE_TAIL,
|
|
184
|
+
measurementInstrument: LED_INSTRUMENT,
|
|
185
|
+
measurementConditions: FOUR_POINT_CONDITIONS,
|
|
186
|
+
measurementSampleCount: 6,
|
|
187
|
+
measurementDate: "2026-10-20",
|
|
188
|
+
measurementEvidencePath: EVIDENCE_FIRST_PATH,
|
|
189
|
+
measurementEvidenceSha256: EVIDENCE_FIRST_SHA256,
|
|
190
|
+
},
|
|
191
|
+
},
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
// Blue indicator default: colour-level four-point effective values over 0.13 to
|
|
195
|
+
// 13 mA, within the 20 mV page limit (residuals +6.4/-8.3/-2.5/+4.4 mV at
|
|
196
|
+
// 1/8/0.13/13 mA, model minus measured). Weaker evidence than green's "over it":
|
|
197
|
+
// the 3 mm A/B LEDs differed by up to 50 mV at 8 mA, so the unidentified C/D LED
|
|
198
|
+
// could by itself account for the 8 mV residual. Sizes: Rs 20.3 (3 mm) vs 24.1
|
|
199
|
+
// (5 mm), within the fit's resolution; the colour default pools both per the
|
|
200
|
+
// owner's by-colour rule. Reached via typed `Color` only: the one packet spelling
|
|
201
|
+
// ("3mm blue") states vocabulary `Color: blue`, so the id was removed as redundant.
|
|
202
|
+
partIds: ["blue"],
|
|
203
|
+
class: "led",
|
|
204
|
+
note: "Owner bench 2026-10-20 (measured by Joseph Cheng, the project owner), 4 + 2 samples (A/B four identified LEDs, C/D one " +
|
|
205
|
+
"unidentified LED per size from the same bags), maker unrecorded. Four-point " +
|
|
206
|
+
"effective values (8.668086e-34, 1.42282, 22.2290 ohm); residuals (model minus " +
|
|
207
|
+
"measured) +6.4 mV at 1 mA, -8.3 at 8 mA, -2.5 at 0.13 mA, +4.4 at 13 mA: " +
|
|
208
|
+
"within the 20 mV limit, but the unidentified C/D LED could by itself account " +
|
|
209
|
+
"for the residual (3 mm A/B spread reached 50 mV at 8 mA), so 'within limit' " +
|
|
210
|
+
"is weaker evidence than green's 'over it'. The keyed packet device is 3 mm; " +
|
|
211
|
+
"the record pools 3 and 5 mm per the owner's by-colour rule. Published-model " +
|
|
212
|
+
"cross-check (LTspice Standard.dio, third-party library): Microsemi UPBLED-470B " +
|
|
213
|
+
"(power LED, N 1.923, RS 32) sits +516 to +716 mV from the kit, a different " +
|
|
214
|
+
"part, not a generic blue.",
|
|
215
|
+
params: {
|
|
216
|
+
saturationCurrent: {
|
|
217
|
+
value: 8.668086e-34,
|
|
218
|
+
basis: "measured",
|
|
219
|
+
source: "Owner bench 2026-10-20 (measured by Joseph Cheng, the project owner) blue four-point fit (V = a + n VT ln I + I Rs over " +
|
|
220
|
+
"C 0.13 mA, A 1.1 mA, B 8 mA, D 13 mA; IS depends exponentially on n, so " +
|
|
221
|
+
"all three digits ship as fitted). " + FOUR_POINT_SOURCE_TAIL,
|
|
222
|
+
measurementInstrument: LED_INSTRUMENT,
|
|
223
|
+
measurementConditions: FOUR_POINT_CONDITIONS,
|
|
224
|
+
measurementSampleCount: 6,
|
|
225
|
+
measurementDate: "2026-10-20",
|
|
226
|
+
measurementEvidencePath: EVIDENCE_FIRST_PATH,
|
|
227
|
+
measurementEvidenceSha256: EVIDENCE_FIRST_SHA256,
|
|
228
|
+
},
|
|
229
|
+
emissionCoefficient: {
|
|
230
|
+
value: 1.42282,
|
|
231
|
+
basis: "measured",
|
|
232
|
+
source: "Owner bench 2026-10-20 (measured by Joseph Cheng, the project owner) blue four-point fit (effective value over 0.13 to " +
|
|
233
|
+
"13 mA). " + FOUR_POINT_SOURCE_TAIL,
|
|
234
|
+
measurementInstrument: LED_INSTRUMENT,
|
|
235
|
+
measurementConditions: FOUR_POINT_CONDITIONS,
|
|
236
|
+
measurementSampleCount: 6,
|
|
237
|
+
measurementDate: "2026-10-20",
|
|
238
|
+
measurementEvidencePath: EVIDENCE_FIRST_PATH,
|
|
239
|
+
measurementEvidenceSha256: EVIDENCE_FIRST_SHA256,
|
|
240
|
+
},
|
|
241
|
+
thermalVoltage: {
|
|
242
|
+
value: 0.025852,
|
|
243
|
+
basis: "derived",
|
|
244
|
+
source: "The VT the blue fit was referred to (the LED class default is 0.05, with " +
|
|
245
|
+
"which the engine does not reproduce these Vf). " + FOUR_POINT_SOURCE_TAIL,
|
|
246
|
+
derivation: VT_DERIVATION,
|
|
247
|
+
},
|
|
248
|
+
seriesResistance: {
|
|
249
|
+
value: 22.229,
|
|
250
|
+
basis: "measured",
|
|
251
|
+
source: "Owner bench 2026-10-20 (measured by Joseph Cheng, the project owner) blue four-point fit (Rs 22.229 ohm is why the " +
|
|
252
|
+
"first-session n read 4.4; the stamp must run at the fitted Rs, not the " +
|
|
253
|
+
"2.0 ohm class default). " + FOUR_POINT_SOURCE_TAIL,
|
|
254
|
+
measurementInstrument: LED_INSTRUMENT,
|
|
255
|
+
measurementConditions: FOUR_POINT_CONDITIONS,
|
|
256
|
+
measurementSampleCount: 6,
|
|
257
|
+
measurementDate: "2026-10-20",
|
|
258
|
+
measurementEvidencePath: EVIDENCE_FIRST_PATH,
|
|
259
|
+
measurementEvidenceSha256: EVIDENCE_FIRST_SHA256,
|
|
260
|
+
},
|
|
261
|
+
},
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
// White indicator default: colour-level four-point effective values over 0.12 to
|
|
265
|
+
// 13 mA, within the 20 mV page limit (residuals +13.9/-18.1/-5.4/+9.6 mV at
|
|
266
|
+
// 1/8/0.13/13 mA, model minus measured). Same unidentified-C/D caveat as blue, and
|
|
267
|
+
// stronger: white sizes differ by about 14 ohm of series resistance (Rs 15.7 3 mm
|
|
268
|
+
// vs 29.9 5 mm, about 160 mV at 13 mA), so the colour default pools two sizes that
|
|
269
|
+
// do not agree, per the owner's by-colour rule. Reached via typed `Color` only:
|
|
270
|
+
// no packet spells white in a part id.
|
|
271
|
+
partIds: ["white"],
|
|
272
|
+
class: "led",
|
|
273
|
+
note: "Owner bench 2026-10-20 (measured by Joseph Cheng, the project owner), 4 + 2 samples (A/B four identified LEDs, C/D one " +
|
|
274
|
+
"unidentified LED per size from the same bags), maker unrecorded. Four-point " +
|
|
275
|
+
"effective values (4.056687e-26, 1.98811, 22.5033 ohm); residuals (model minus " +
|
|
276
|
+
"measured) +13.9 mV at 1 mA, -18.1 at 8 mA, -5.4 at 0.13 mA, +9.6 at 13 mA: " +
|
|
277
|
+
"within the 20 mV limit, but the unidentified C/D LED could by itself account " +
|
|
278
|
+
"for the residual, and the 3 and 5 mm samples disagree by about 14 ohm " +
|
|
279
|
+
"(160 mV at 13 mA), so a colour-only default spans both. Published-model " +
|
|
280
|
+
"cross-check (LTspice Standard.dio, third-party library, not a manufacturer " +
|
|
281
|
+
"model): Nichia NSPW500BS (5 mm; IS 0.27n, N 6.79, RS 5.65) -264 mV at " +
|
|
282
|
+
"0.12 mA, +8 at 1.05 mA, +111 at 7.6 mA, +115 at 12.8 mA; Nichia NSCW100 " +
|
|
283
|
+
"(SMD; N 9.626, RS 8.163) -338, +94, +358, +414 mV at the same currents " +
|
|
284
|
+
"(model minus measured) -- each matches the kit at one current only, and both " +
|
|
285
|
+
"carry the same large-N structure as the rejected two-point pairs.",
|
|
286
|
+
params: {
|
|
287
|
+
saturationCurrent: {
|
|
288
|
+
value: 4.056687e-26,
|
|
289
|
+
basis: "measured",
|
|
290
|
+
source: "Owner bench 2026-10-20 (measured by Joseph Cheng, the project owner) white four-point fit (V = a + n VT ln I + I Rs over " +
|
|
291
|
+
"C 0.13 mA, A 1.1 mA, B 8 mA, D 13 mA; IS depends exponentially on n, so " +
|
|
292
|
+
"all three digits ship as fitted). " + FOUR_POINT_SOURCE_TAIL,
|
|
293
|
+
measurementInstrument: LED_INSTRUMENT,
|
|
294
|
+
measurementConditions: FOUR_POINT_CONDITIONS,
|
|
295
|
+
measurementSampleCount: 6,
|
|
296
|
+
measurementDate: "2026-10-20",
|
|
297
|
+
measurementEvidencePath: EVIDENCE_FIRST_PATH,
|
|
298
|
+
measurementEvidenceSha256: EVIDENCE_FIRST_SHA256,
|
|
299
|
+
},
|
|
300
|
+
emissionCoefficient: {
|
|
301
|
+
value: 1.98811,
|
|
302
|
+
basis: "measured",
|
|
303
|
+
source: "Owner bench 2026-10-20 (measured by Joseph Cheng, the project owner) white four-point fit (effective value over 0.12 to " +
|
|
304
|
+
"13 mA). " + FOUR_POINT_SOURCE_TAIL,
|
|
305
|
+
measurementInstrument: LED_INSTRUMENT,
|
|
306
|
+
measurementConditions: FOUR_POINT_CONDITIONS,
|
|
307
|
+
measurementSampleCount: 6,
|
|
308
|
+
measurementDate: "2026-10-20",
|
|
309
|
+
measurementEvidencePath: EVIDENCE_FIRST_PATH,
|
|
310
|
+
measurementEvidenceSha256: EVIDENCE_FIRST_SHA256,
|
|
311
|
+
},
|
|
312
|
+
thermalVoltage: {
|
|
313
|
+
value: 0.025852,
|
|
314
|
+
basis: "derived",
|
|
315
|
+
source: "The VT the white fit was referred to (the LED class default is 0.05, with " +
|
|
316
|
+
"which the engine does not reproduce these Vf). " + FOUR_POINT_SOURCE_TAIL,
|
|
317
|
+
derivation: VT_DERIVATION,
|
|
318
|
+
},
|
|
319
|
+
seriesResistance: {
|
|
320
|
+
value: 22.5033,
|
|
321
|
+
basis: "measured",
|
|
322
|
+
source: "Owner bench 2026-10-20 (measured by Joseph Cheng, the project owner) white four-point fit (Rs 22.5033 ohm is why the " +
|
|
323
|
+
"first-session n read 5.2; the stamp must run at the fitted Rs, not the " +
|
|
324
|
+
"2.0 ohm class default). " + FOUR_POINT_SOURCE_TAIL,
|
|
325
|
+
measurementInstrument: LED_INSTRUMENT,
|
|
326
|
+
measurementConditions: FOUR_POINT_CONDITIONS,
|
|
327
|
+
measurementSampleCount: 6,
|
|
328
|
+
measurementDate: "2026-10-20",
|
|
329
|
+
measurementEvidencePath: EVIDENCE_FIRST_PATH,
|
|
330
|
+
measurementEvidenceSha256: EVIDENCE_FIRST_SHA256,
|
|
331
|
+
},
|
|
332
|
+
},
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
// Yellow indicator default: first-session two-point pair, Rs fixed at the 2.0 ohm
|
|
336
|
+
// class default (which is then correct for it). Valid about 1.4 to 11 mA only;
|
|
337
|
+
// unverified outside the two anchors. Reached via typed `Color` only: no packet
|
|
338
|
+
// spells yellow in a part id. No published cross-check found (no model for an
|
|
339
|
+
// indicator yellow LED in LTspice Standard.dio; manufacturer sites not searched).
|
|
340
|
+
partIds: ["yellow"],
|
|
341
|
+
class: "led",
|
|
342
|
+
note: "Owner bench 2026-10-20 (measured by Joseph Cheng, the project owner), 4 samples, maker unrecorded, two currents: the pair " +
|
|
343
|
+
"(2.1187081810e-25, 1.4664285 at Rs 2.0 ohm) holds only about 1.4 to 11 mA. " +
|
|
344
|
+
"n 1.47 needs no series resistance, so the two-point form is consistent at the " +
|
|
345
|
+
"anchors; unverified outside them all the same.",
|
|
346
|
+
params: {
|
|
347
|
+
saturationCurrent: {
|
|
348
|
+
value: 2.1187081810e-25,
|
|
349
|
+
basis: "measured",
|
|
350
|
+
source: "Owner bench 2026-10-20 (measured by Joseph Cheng, the project owner), same sitting and fit as the emissionCoefficient " +
|
|
351
|
+
"record (one two-point fit at the 2.0 ohm LED class default and VT 0.025852 V; " +
|
|
352
|
+
"IS depends exponentially on n, so both digits ship as fitted). Valid about " +
|
|
353
|
+
"1.4 to 11 mA only; unverified outside the anchors. Evidence " +
|
|
354
|
+
`${EVIDENCE_FIRST_PATH} sha256 ${EVIDENCE_FIRST_SHA256}.`,
|
|
355
|
+
measurementInstrument: LED_INSTRUMENT,
|
|
356
|
+
measurementConditions: "USB 5 V breadboard shield measured 4.99 V; 2.2 kohm and 270 ohm resistors " +
|
|
357
|
+
"as typed, exactly nominal, probably not metered (kit tolerance 1 %); room " +
|
|
358
|
+
"20 C; 4 yellow LEDs (2 per size, one kit, maker not recorded); anchors " +
|
|
359
|
+
"1.40 mA at 1.9075 V and 11.03 mA at 2.005 V (pooled means)",
|
|
360
|
+
measurementSampleCount: 4,
|
|
361
|
+
measurementDate: "2026-10-20",
|
|
362
|
+
measurementEvidencePath: EVIDENCE_FIRST_PATH,
|
|
363
|
+
measurementEvidenceSha256: EVIDENCE_FIRST_SHA256,
|
|
364
|
+
},
|
|
365
|
+
emissionCoefficient: {
|
|
366
|
+
value: 1.4664285,
|
|
367
|
+
basis: "measured",
|
|
368
|
+
source: "Owner bench 2026-10-20 (measured by Joseph Cheng, the project owner) yellow two-point pair (n 1.47 needs no series " +
|
|
369
|
+
"resistance; Rs fixed at 2.0 ohm). Valid about 1.4 to 11 mA only. Evidence " +
|
|
370
|
+
`${EVIDENCE_FIRST_PATH} sha256 ${EVIDENCE_FIRST_SHA256}.`,
|
|
371
|
+
measurementInstrument: LED_INSTRUMENT,
|
|
372
|
+
measurementConditions: "USB 5 V breadboard shield measured 4.99 V; 2.2 kohm and 270 ohm resistors " +
|
|
373
|
+
"as typed, exactly nominal, probably not metered (kit tolerance 1 %); room " +
|
|
374
|
+
"20 C; 4 yellow LEDs (2 per size, one kit, maker not recorded); anchors " +
|
|
375
|
+
"1.40 mA at 1.9075 V and 11.03 mA at 2.005 V (pooled means)",
|
|
376
|
+
measurementSampleCount: 4,
|
|
377
|
+
measurementDate: "2026-10-20",
|
|
378
|
+
measurementEvidencePath: EVIDENCE_FIRST_PATH,
|
|
379
|
+
measurementEvidenceSha256: EVIDENCE_FIRST_SHA256,
|
|
380
|
+
},
|
|
381
|
+
thermalVoltage: {
|
|
382
|
+
value: 0.025852,
|
|
383
|
+
basis: "derived",
|
|
384
|
+
source: "The VT the yellow fit was referred to (the LED class default is 0.05, with " +
|
|
385
|
+
"which the engine does not reproduce these Vf). Evidence " +
|
|
386
|
+
`${EVIDENCE_FIRST_PATH} sha256 ${EVIDENCE_FIRST_SHA256}.`,
|
|
387
|
+
derivation: VT_DERIVATION,
|
|
388
|
+
},
|
|
389
|
+
seriesResistance: {
|
|
390
|
+
value: 2.0,
|
|
391
|
+
basis: "derived",
|
|
392
|
+
source: "The Rs the yellow fit assumed (the 2.0 ohm LED class default, fixed for the " +
|
|
393
|
+
"two-point fit, so the stamp must run at 2.0 ohm). Evidence " +
|
|
394
|
+
`${EVIDENCE_FIRST_PATH} sha256 ${EVIDENCE_FIRST_SHA256}.`,
|
|
395
|
+
derivation: TWO_POINT_RS_DERIVATION,
|
|
396
|
+
},
|
|
397
|
+
},
|
|
398
|
+
},
|
|
399
|
+
]);
|
|
400
|
+
/**
|
|
401
|
+
* The closed colour vocabulary's canonical registry id per colour: the first partId of
|
|
402
|
+
* the colour's `led` record. The diode case resolves a `kind: led` device's stated,
|
|
403
|
+
* in-vocabulary `Color` through this map (whole folded id, existing lookup) when no
|
|
404
|
+
* registry PartNumber law resolves; a registry PartNumber law always wins, and typed
|
|
405
|
+
* document parameters win over both. `white` and `yellow` are colour words no packet
|
|
406
|
+
* uses as a part id -- they are reached only via `Color`.
|
|
407
|
+
*/
|
|
408
|
+
export const LED_COLOUR_RECORD_ID = {
|
|
409
|
+
red: "RED LED",
|
|
410
|
+
yellow: "yellow",
|
|
411
|
+
green: "LED-GREEN",
|
|
412
|
+
blue: "blue",
|
|
413
|
+
white: "white",
|
|
414
|
+
};
|
|
415
|
+
//# sourceMappingURL=led.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"led.js","sourceRoot":"","sources":["../../src/registry-data/led.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ export declare const CLASS_PARAM_SCHEMAS: {
|
|
|
9
9
|
readonly opamp: readonly ["openLoopGain", "gainBandwidthHz", "outputSwingDropHighVolts", "outputSwingDropLowVolts"];
|
|
10
10
|
readonly regulator: readonly ["volts", "sourceOhms"];
|
|
11
11
|
readonly "charge-pump": readonly ["sourceOhms", "chargePumpLossVolts"];
|
|
12
|
+
readonly ujt: readonly ["intrinsicStandoffRatio", "interbaseResistanceOhms"];
|
|
12
13
|
};
|
|
13
14
|
/** The closed set of part classes the registry holds parameters for. */
|
|
14
15
|
export type PartClassName = keyof typeof CLASS_PARAM_SCHEMAS;
|
|
@@ -30,8 +31,12 @@ export declare function classParamNames(cls: PartClassName): readonly string[];
|
|
|
30
31
|
* - `jfet` / `mosfet`: thresholdVolts (pinch-off) and transconductance (gain). Geometry and
|
|
31
32
|
* gate refinements (channelLengthModulation, subthresholdVolts, gate terms) keep defaults.
|
|
32
33
|
* - `diode` / `led`: saturationCurrent (knee position) and emissionCoefficient (knee slope).
|
|
33
|
-
* thermalVoltage
|
|
34
|
-
* keeps its default.
|
|
34
|
+
* Silicon leaves thermalVoltage omitted (the engine constant), breakdownVolts 0 is an
|
|
35
|
+
* ordinary diode, seriesResistance keeps its class default (1.0 ohm diode, 2.0 ohm LED).
|
|
36
|
+
* An LED record states the VT its fit was referred to and its fitted Rs explicitly.
|
|
37
|
+
* A `custom` LED override must state the full quad: an (IS, n) measured at the engine
|
|
38
|
+
* VT silently mis-stamps when VT falls back to the 0.05 class default, and an Rs left
|
|
39
|
+
* at 2.0 ohm repeats the inflated-n failure the four-point fits exposed.
|
|
35
40
|
* - `zener`: the diode pair plus breakdownVolts -- the breakdown IS the part, and without it
|
|
36
41
|
* the law stamps an ordinary diode.
|
|
37
42
|
* - `opamp`: openLoopGain and gainBandwidthHz. The swing pair is deliberately absent: per the
|
|
@@ -39,6 +44,8 @@ export declare function classParamNames(cls: PartClassName): readonly string[];
|
|
|
39
44
|
* - `regulator`: volts -- the rail is the part; sourceOhms keeps the supply convention.
|
|
40
45
|
* - `charge-pump`: sourceOhms and chargePumpLossVolts -- both shape the derived rail, and an
|
|
41
46
|
* unknown pump has no safe default for either.
|
|
47
|
+
* - `ujt`: intrinsicStandoffRatio and interbaseResistanceOhms -- the tap fraction and the
|
|
48
|
+
* bar are the whole part model (emitter diode and modulation are law structure).
|
|
42
49
|
*/
|
|
43
50
|
export declare const REQUIRED_CLASS_PARAMS: {
|
|
44
51
|
readonly bjt: readonly ["saturationCurrent", "forwardBeta"];
|
|
@@ -46,10 +53,11 @@ export declare const REQUIRED_CLASS_PARAMS: {
|
|
|
46
53
|
readonly mosfet: readonly ["thresholdVolts", "transconductance"];
|
|
47
54
|
readonly diode: readonly ["saturationCurrent", "emissionCoefficient"];
|
|
48
55
|
readonly zener: readonly ["saturationCurrent", "emissionCoefficient", "breakdownVolts"];
|
|
49
|
-
readonly led: readonly ["saturationCurrent", "emissionCoefficient"];
|
|
56
|
+
readonly led: readonly ["saturationCurrent", "emissionCoefficient", "thermalVoltage", "seriesResistance"];
|
|
50
57
|
readonly opamp: readonly ["openLoopGain", "gainBandwidthHz"];
|
|
51
58
|
readonly regulator: readonly ["volts"];
|
|
52
59
|
readonly "charge-pump": readonly ["sourceOhms", "chargePumpLossVolts"];
|
|
60
|
+
readonly ujt: readonly ["intrinsicStandoffRatio", "interbaseResistanceOhms"];
|
|
53
61
|
};
|
|
54
62
|
/** The parameters a `custom` override must supply for a class, in schema order. */
|
|
55
63
|
export declare function requiredClassParams(cls: PartClassName): readonly string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/registry-data/schema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/registry-data/schema.ts"],"names":[],"mappings":"AAqCA,yFAAyF;AACzF,eAAO,MAAM,mBAAmB;;;;;;;;;;;CAwDtB,CAAC;AAEX,wEAAwE;AACxE,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,mBAAmB,CAAC;AAE7D,iEAAiE;AACjE,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,SAAS,MAAM,EAAE,CAErE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;CAW2B,CAAC;AAE9D,mFAAmF;AACnF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,GAAG,SAAS,MAAM,EAAE,CAEzE"}
|
|
@@ -11,7 +11,10 @@
|
|
|
11
11
|
// law's numeric fields (`gateSaturationCurrent: 0` is the MOSFET's insulated gate).
|
|
12
12
|
// - `diode` / `zener` / `led`: all three lower to the `diode` law; a zener adds a reverse
|
|
13
13
|
// knee (`breakdownVolts`), an LED adds `isLed`, and a Schottky is a diode with a low
|
|
14
|
-
// forward knee -- all fit these five numeric names.
|
|
14
|
+
// forward knee -- all fit these five numeric names. Silicon records omit
|
|
15
|
+
// `thermalVoltage` (the engine constant 0.025852 V, not a per-part figure); LED records
|
|
16
|
+
// state it explicitly, because the LED class default is 0.05 V and each LED fit was
|
|
17
|
+
// referred to 0.025852 V.
|
|
15
18
|
// - `opamp`: the `ideal-opamp` law's numeric part facts. `openLoopGain` is listed because it
|
|
16
19
|
// is a class parameter (stage 2 must allow overriding it) even though stage 1 keeps its
|
|
17
20
|
// values in `part-catalog.ts` code; `gainBandwidthHz` and the swing pair move to data now.
|
|
@@ -20,6 +23,11 @@
|
|
|
20
23
|
// - `charge-pump`: a switched-capacitor inverter section plus the entry-level loss term the
|
|
21
24
|
// `pumpDerivation` reads. `volts` is deliberately NOT a parameter: the rail is derived per
|
|
22
25
|
// circuit from the input node, and the `volts: 0` in each entry is an unused placeholder.
|
|
26
|
+
// - `ujt`: the unijunction transistor's own two facts -- the tap fraction (intrinsic
|
|
27
|
+
// standoff ratio eta) and the bar resistance (interbase resistance Rbb). The emitter
|
|
28
|
+
// junction is a silicon diode by construction (law constants, like the JFET gate's
|
|
29
|
+
// stated silicon-junction current) and the conductivity modulation is the lowering's
|
|
30
|
+
// business (it needs a hysteretic switch stamp, so neither is a per-part parameter).
|
|
23
31
|
//
|
|
24
32
|
// Structural (non-numeric) law fields -- `polarity`, `channel`, the swing `translation` and
|
|
25
33
|
// printed condition, rails, pinouts -- stay in code at stage 1: a cited value is a number,
|
|
@@ -82,6 +90,7 @@ export const CLASS_PARAM_SCHEMAS = {
|
|
|
82
90
|
],
|
|
83
91
|
regulator: ["volts", "sourceOhms"],
|
|
84
92
|
"charge-pump": ["sourceOhms", "chargePumpLossVolts"],
|
|
93
|
+
ujt: ["intrinsicStandoffRatio", "interbaseResistanceOhms"],
|
|
85
94
|
};
|
|
86
95
|
/** The accepted parameter names for a class, in schema order. */
|
|
87
96
|
export function classParamNames(cls) {
|
|
@@ -103,8 +112,12 @@ export function classParamNames(cls) {
|
|
|
103
112
|
* - `jfet` / `mosfet`: thresholdVolts (pinch-off) and transconductance (gain). Geometry and
|
|
104
113
|
* gate refinements (channelLengthModulation, subthresholdVolts, gate terms) keep defaults.
|
|
105
114
|
* - `diode` / `led`: saturationCurrent (knee position) and emissionCoefficient (knee slope).
|
|
106
|
-
* thermalVoltage
|
|
107
|
-
* keeps its default.
|
|
115
|
+
* Silicon leaves thermalVoltage omitted (the engine constant), breakdownVolts 0 is an
|
|
116
|
+
* ordinary diode, seriesResistance keeps its class default (1.0 ohm diode, 2.0 ohm LED).
|
|
117
|
+
* An LED record states the VT its fit was referred to and its fitted Rs explicitly.
|
|
118
|
+
* A `custom` LED override must state the full quad: an (IS, n) measured at the engine
|
|
119
|
+
* VT silently mis-stamps when VT falls back to the 0.05 class default, and an Rs left
|
|
120
|
+
* at 2.0 ohm repeats the inflated-n failure the four-point fits exposed.
|
|
108
121
|
* - `zener`: the diode pair plus breakdownVolts -- the breakdown IS the part, and without it
|
|
109
122
|
* the law stamps an ordinary diode.
|
|
110
123
|
* - `opamp`: openLoopGain and gainBandwidthHz. The swing pair is deliberately absent: per the
|
|
@@ -112,6 +125,8 @@ export function classParamNames(cls) {
|
|
|
112
125
|
* - `regulator`: volts -- the rail is the part; sourceOhms keeps the supply convention.
|
|
113
126
|
* - `charge-pump`: sourceOhms and chargePumpLossVolts -- both shape the derived rail, and an
|
|
114
127
|
* unknown pump has no safe default for either.
|
|
128
|
+
* - `ujt`: intrinsicStandoffRatio and interbaseResistanceOhms -- the tap fraction and the
|
|
129
|
+
* bar are the whole part model (emitter diode and modulation are law structure).
|
|
115
130
|
*/
|
|
116
131
|
export const REQUIRED_CLASS_PARAMS = {
|
|
117
132
|
bjt: ["saturationCurrent", "forwardBeta"],
|
|
@@ -119,10 +134,11 @@ export const REQUIRED_CLASS_PARAMS = {
|
|
|
119
134
|
mosfet: ["thresholdVolts", "transconductance"],
|
|
120
135
|
diode: ["saturationCurrent", "emissionCoefficient"],
|
|
121
136
|
zener: ["saturationCurrent", "emissionCoefficient", "breakdownVolts"],
|
|
122
|
-
led: ["saturationCurrent", "emissionCoefficient"],
|
|
137
|
+
led: ["saturationCurrent", "emissionCoefficient", "thermalVoltage", "seriesResistance"],
|
|
123
138
|
opamp: ["openLoopGain", "gainBandwidthHz"],
|
|
124
139
|
regulator: ["volts"],
|
|
125
140
|
"charge-pump": ["sourceOhms", "chargePumpLossVolts"],
|
|
141
|
+
ujt: ["intrinsicStandoffRatio", "interbaseResistanceOhms"],
|
|
126
142
|
};
|
|
127
143
|
/** The parameters a `custom` override must supply for a class, in schema order. */
|
|
128
144
|
export function requiredClassParams(cls) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/registry-data/schema.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,GAAG;AACH,0FAA0F;AAC1F,4FAA4F;AAC5F,wFAAwF;AACxF,yFAAyF;AACzF,2EAA2E;AAC3E,GAAG;AACH,qFAAqF;AACrF,4FAA4F;AAC5F,sFAAsF;AACtF,0FAA0F;AAC1F,uFAAuF;AACvF,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/registry-data/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ujt.d.ts","sourceRoot":"","sources":["../../src/registry-data/ujt.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9D,eAAO,MAAM,kBAAkB,EAAE,SAAS,aAAa,EA6BrD,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
// UJT registry data: intrinsic standoff ratio and interbase resistance by exact part id.
|
|
2
|
+
//
|
|
3
|
+
// The two numbers ARE the part model: eta sets the tap (RB1 = eta * Rbb, the peak-point
|
|
4
|
+
// fraction) and Rbb sets the bar. Everything else about the law is structure, not data:
|
|
5
|
+
// the emitter junction is a silicon diode by construction (the law's constants) and the
|
|
6
|
+
// conductivity modulation is the lowering's VCCS factor. So a record states exactly these
|
|
7
|
+
// two parameters, and `ujtLawEntry` (part-catalog.ts) throws on anything else shaped
|
|
8
|
+
// like a UJT record that omits one.
|
|
9
|
+
//
|
|
10
|
+
// Derivation rule (standing): a printed range becomes one value by its arithmetic
|
|
11
|
+
// midpoint (eta and Rbb are divider fractions and resistances, not gains, so the
|
|
12
|
+
// geomean-for-gains rule does not apply). A printed TYP is transcribed with its row
|
|
13
|
+
// quoted. One value per parameter, no min/typ/max.
|
|
14
|
+
//
|
|
15
|
+
// Pending: none. The 2N4871 entry below is seeded from the manufacturer datasheet
|
|
16
|
+
// (Digitron Semiconductors 2N4870, 2N4871 UNIJUNCTION TRANSISTORS, Rev. 20120705,
|
|
17
|
+
// sha256 81b46aa8ad8a271a3aca154f7129fe3e6abfc7066440d52d50a4d99ff9a17722).
|
|
18
|
+
// 2N4870 is deliberately absent: nothing in the corpus uses it, and the registry
|
|
19
|
+
// holds parts, not families.
|
|
20
|
+
import { definePartData } from "./loader.js";
|
|
21
|
+
export const ujtRegistryRecords = definePartData([
|
|
22
|
+
{
|
|
23
|
+
partIds: ["2N4871"],
|
|
24
|
+
class: "ujt",
|
|
25
|
+
params: {
|
|
26
|
+
intrinsicStandoffRatio: {
|
|
27
|
+
value: 0.775,
|
|
28
|
+
basis: "derived",
|
|
29
|
+
source: "Digitron Semiconductors 2N4870, 2N4871 UNIJUNCTION TRANSISTORS " +
|
|
30
|
+
"(Rev. 20120705) p1, ELECTRICAL CHARACTERISTICS (TA = 25 C): " +
|
|
31
|
+
"'Intrinsic standoff ratio eta (VB2B1 = 10V), 2N4871, MIN 0.70 MAX 0.85' " +
|
|
32
|
+
"(no TYP printed; Note 1: VP = eta*VB2B1 + VF, VF about 0.49V at 25 C @ IF = 10uA)",
|
|
33
|
+
derivation: "Printed 2N4871 eta range 0.70-0.85 at VB2B1 = 10 V, no TYP printed; " +
|
|
34
|
+
"arithmetic midpoint (form 2, printed range -- a divider fraction, not a gain, " +
|
|
35
|
+
"so no geomean): (0.70 + 0.85) / 2 = 0.775.",
|
|
36
|
+
},
|
|
37
|
+
interbaseResistanceOhms: {
|
|
38
|
+
value: 6000,
|
|
39
|
+
basis: "datasheet",
|
|
40
|
+
source: "Digitron Semiconductors 2N4870, 2N4871 UNIJUNCTION TRANSISTORS " +
|
|
41
|
+
"(Rev. 20120705) p1, ELECTRICAL CHARACTERISTICS (TA = 25 C): " +
|
|
42
|
+
"'Interbase resistance RBB (VB2B1 = 3.0V, IE = 0), MIN 4.0 TYP 6.0 MAX 9.1 kohm' " +
|
|
43
|
+
"(one row for both parts)",
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
]);
|
|
48
|
+
//# sourceMappingURL=ujt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ujt.js","sourceRoot":"","sources":["../../src/registry-data/ujt.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,EAAE;AACF,wFAAwF;AACxF,wFAAwF;AACxF,wFAAwF;AACxF,0FAA0F;AAC1F,qFAAqF;AACrF,oCAAoC;AACpC,EAAE;AACF,kFAAkF;AAClF,iFAAiF;AACjF,oFAAoF;AACpF,mDAAmD;AACnD,EAAE;AACF,kFAAkF;AAClF,kFAAkF;AAClF,4EAA4E;AAC5E,iFAAiF;AACjF,6BAA6B;AAE7B,OAAO,EAAE,cAAc,EAAsB,MAAM,UAAU,CAAC;AAE9D,MAAM,CAAC,MAAM,kBAAkB,GAA6B,cAAc,CAAC;IAC1E;QACC,OAAO,EAAE,CAAC,QAAQ,CAAC;QACnB,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE;YACP,sBAAsB,EAAE;gBACvB,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,SAAS;gBAChB,MAAM,EACL,iEAAiE;oBACjE,8DAA8D;oBAC9D,0EAA0E;oBAC1E,mFAAmF;gBACpF,UAAU,EACT,sEAAsE;oBACtE,gFAAgF;oBAChF,4CAA4C;aAC7C;YACD,uBAAuB,EAAE;gBACxB,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE,WAAW;gBAClB,MAAM,EACL,iEAAiE;oBACjE,8DAA8D;oBAC9D,kFAAkF;oBAClF,0BAA0B;aAC3B;SACD;KACD;CACD,CAAC,CAAC"}
|