electronics-engineering-ai999x — offline, verified electronics engineering solver with step-by-step answers

Desktop app & command line · Compute in your browser · Install (Python) · Guides · Evaluation · AI999X on Hugging Face · Website · Support: Buy Me a Coffee

License: Apache-2.0 · Author: Ibnul Jaif Farabi (creator and engineer) · Organization: AI999X · Version 1.0.0

Field: Engineering · Tasks: Question Answering, Sentence Similarity, Feature Extraction

electronics-engineering-ai999x is an offline, deterministic Python solver that answers electronics engineering questions with verified results from 92 certified capabilities, gives 561 documented answers identically on Windows and Linux, and refuses rather than guesses when an answer cannot be verified.

electronics-engineering-ai999x is a compact, deterministic electronics engineering engine for Python. It reads a question in plain English (or a typed call), picks a certified electronics engineering capability, computes the answer exactly, checks it, and returns the result with its steps, units, LaTeX and assumptions — or an honest refusal that says what is missing. It runs fully offline on any CPU, needs no GPU, no API key and no internet, and is built to give zero wrong answers: when it is not sure, it refuses instead of guessing.

Buy me a coffee License Python Offline Rust

Run it your way. electronics-engineering-ai999x comes as the AI999X desktop app and as the command-line program electronics-engineering for Windows and Linux, runs in your browser as WebAssembly, and installs as a Python package. The desktop app, the command line and the browser run the same compiled Rust program on your own device: offline, no Python needed.

Get it

Way to run it For Get it
AI999X desktop app 1.1.0 Windows, Linux — every AI999X model in one app: search, ask in words, forms, live figures, explanations, offline Windows (x86-64) · Linux (x86-64)
Command line (electronics-engineering) Windows, Linux — one program per model, offline, no Python Windows (x86-64) · Linux (x86-64)
In your browser any device — nothing to install Compute on the model page
Python Python 3.10+ pip install electronics-engineering-ai999x

Checksums: SHA256SUMS · every version: https://www.ai999x.com/downloads/desktop/latest/ · install guide: desktop & command line

Quick start

Desktop app

Download the app for your system (above), unpack it and start it; choose Electronics Engineering, type a question in words or pick a capability, fill in the form and press Compute. Figures and an explanation of the answer appear beside it.

Linux, from a terminal:

curl -LO https://www.ai999x.com/downloads/desktop/1.1.0/ai999x-1.1.0-linux-x86_64.tar.gz
curl -LO https://www.ai999x.com/downloads/desktop/1.1.0/SHA256SUMS
sha256sum -c --ignore-missing SHA256SUMS
tar xzf ai999x-1.1.0-linux-x86_64.tar.gz
./ai999x-1.1.0-linux-x86_64/ai999x

Command line

Linux:

curl -LO https://www.ai999x.com/downloads/desktop/1.1.0/ai999x-cli-1.1.0-linux-x86_64.tar.gz
curl -LO https://www.ai999x.com/downloads/desktop/1.1.0/SHA256SUMS
sha256sum -c --ignore-missing SHA256SUMS
mkdir -p ~/.local/share && tar xzf ai999x-cli-1.1.0-linux-x86_64.tar.gz -C ~/.local/share
echo 'export PATH="$HOME/.local/share/ai999x-cli-1.1.0-linux-x86_64:$PATH"' >> ~/.bashrc && source ~/.bashrc
electronics-engineering --version

Windows (PowerShell):

$F = "ai999x-cli-1.1.0-windows-x86_64.zip"
Invoke-WebRequest "https://www.ai999x.com/downloads/desktop/1.1.0/$F" -OutFile $F
Invoke-WebRequest "https://www.ai999x.com/downloads/desktop/1.1.0/SHA256SUMS" -OutFile SHA256SUMS
(Get-FileHash $F -Algorithm SHA256).Hash.ToLower() -eq ((Select-String -SimpleMatch $F SHA256SUMS).Line -split ' ')[0]
Expand-Archive $F -DestinationPath "$env:LOCALAPPDATA\AI999X" -Force
$D = "$env:LOCALAPPDATA\AI999X\ai999x-cli-1.1.0-windows-x86_64"; $env:Path += ";$D"
[Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", "User") + ";$D", "User")
electronics-engineering --version

Every command below was run as shown; the text under it is what the program printed.

What a capability needs — The equation or method, every input and output with its SI unit. Read this before solve: it tells you the input names.

$ electronics-engineering info elx_bjt_voltage_divider_bias
BJT voltage-divider bias: exact Q-point
  VTH = VCC R2/(R1 + R2); RTH = R1 || R2; IB = (VTH - VBE)/(RTH + (beta + 1) RE); VCE = VCC - IC RC - IE RE
  in   VCC      supply voltage [V]
  in   R1       upper divider resistor (supply to base) [ohm]
  in   R2       lower divider resistor (base to ground) [ohm]
  in   RC       collector resistor [ohm]
  in   RE       emitter resistor [ohm]
  in   beta     current gain [1]
  in   VBE      base-emitter voltage [V]
  out  VTH      Thevenin voltage of the divider [V]
  out  RTH      Thevenin resistance of the divider [ohm]
  out  IB       base current [A]
  out  IC       collector current [A]
  out  IE       emitter current [A]
  out  VB       base voltage [V]
  out  VE       emitter voltage [V]
  out  VC       collector voltage [V]
  out  VCE      collector-emitter voltage [V]

Solve — Inputs as name=value, each with any unit of the right kind. The answer lists every output, the method used, each input converted to SI, and the conditions the answer assumes.

$ electronics-engineering solve elx_bjt_voltage_divider_bias "VCC=12 V" "R1=47 kohm" "R2=10 kohm" "RC=2.2 kohm" "RE=470 ohm" beta=150.0 "VBE=0.7 V"
VTH = 2.105263158 V
RTH = 8245.614035 ohm
IB = 1.773972436e-05 A
IC = 0.002660958654 A
IE = 0.002678698378 A
VB = 1.958988238 V
VE = 1.258988238 V
VC = 6.145890962 V
VCE = 4.886902724 V
  by: BJT voltage-divider bias: exact Q-point  (VTH = VCC R2/(R1 + R2); RTH = R1 || R2; IB = (VTH - VBE)/(RTH + (beta + 1) RE); VCE = VCC - IC RC - IE RE)
  VCC = 12 V
  R1 = 47000 ohm
  R2 = 10000 ohm
  RC = 2200 ohm
  RE = 470 ohm
  beta = 150
  VBE = 0.7 V
  assumes: VTH > VBE; active region: VCE >= 0.2 V

Many questions at once — One JSON request per line in, one JSON answer per line out, in order: for scripts, notebooks and agents (the program starts once). In PowerShell: Get-Content cases.jsonl | electronics-engineering batch

cases.jsonl:

{"key": "elx_bjt_voltage_divider_bias", "inputs": {"VCC": "12 V", "R1": "47 kohm", "R2": "10 kohm", "RC": "2.2 kohm", "RE": "470 ohm", "beta": 150.0, "VBE": "0.7 V"}}
{"key": "elx_sallen_key_lowpass", "inputs": {"R1": "10 kohm", "R2": "10 kohm", "C1": "20 nF", "C2": "10 nF", "K": 1.0}}
$ electronics-engineering batch < cases.jsonl
{"outcome":"SOLVED","message":"","value":0.00266095865382,"unit":"A","solved_for":"IC","si":[["VCC",12.0],["R1",47000.0],["R2",10000.0],["RC",2200.0],["RE",470.0],["beta",150.0],["VBE",0.7]],"values":[["VTH",2.10526315789,"V"],["RTH",8245.61403509,"ohm"],["IB",0.0000177397243588,"A"],["IC",0.00266095865382,"A"],["IE",0.00267869837818,"A"],["VB",1.95898823774,"V"],["VE",1.25898823774,"V"],["VC",6.1458909616,"V"],["VCE",4.88690272386,"V"]],"target":"IC","phrase":"Thevenin voltage of the divider","assumptions":["VTH > VBE","active region: VCE >= 0.2 V"],"name":"BJT voltage-divider bias: exact Q-point","equation":"VTH = VCC R2/(R1 + R2); RTH = R1 || R2; IB = (VTH - VBE)/(RTH + (beta + 1) RE); VCE = VCC - IC RC - IE RE"}
{"outcome":"SOLVED","message":"","value":0.707106781187,"unit":"","solved_for":"Q","si":[["R1",10000.0],["R2",10000.0],["C1",2e-8],["C2",1e-8],["K",1.0]],"values":[["f0",1125.3953952,"Hz"],["Q",0.707106781187,""],["H0",1.0,""],["peak_gain",0.707106781187,""]],"target":"Q","phrase":"natural frequency","assumptions":["stable: R1 C2 + R2 C2 + R1 C1 (1 - K) > 0","ideal amplifier"],"name":"Sallen-Key low-pass filter: f0, Q and gain","equation":"w0 = 1/sqrt(R1 R2 C1 C2); Q = sqrt(R1 R2 C1 C2)/(R1 C2 + R2 C2 + R1 C1 (1 - K))"}

In your browser

Open Electronics Engineering on ai999x.com, choose a capability and press Compute: the model runs on your own device as WebAssembly; nothing is sent anywhere. Change any input (any unit of the right kind) and the answer, its explanation and the figures follow.

In your own page: electronics_engineering_ai999x.wasm and the loader ax-wasm.js (https://www.ai999x.com/compute/rust/ax-wasm.js).

Python

pip install electronics-engineering-ai999x

Worked examples in every form

The same worked example from the command line, from Python and in the browser. Each command-line output is what the program printed.

Butterworth filter: Q of each second-order section

The quality factors of the cascaded second-order sections of an n-th order Butterworth filter (all at the cutoff frequency), and whether a first-order section is needed.

Command line:

$ electronics-engineering solve elx_butterworth_section_q n=4
Q_max = 1.306562965
Q = [0.541196100146,1.30656296488]
sections = 2
first_order = 0
  by: Butterworth filter: Q of each second-order section  (Q_k = 1/(2 sin((2k - 1) pi/(2n))), k = 1 .. floor(n/2))
  assumes: 2 <= n <= 20

Python:

import electronics_engineering_ai999x as m

a = m.solve("elx_butterworth_section_q", n="4")
print(a.values or (a.value, a.unit))

Browser: open this capability on the model page and press Compute in your browser.

Butterworth or Chebyshev low-pass filter order

The minimum order of a Butterworth or Chebyshev type I low-pass filter meeting a passband edge with at most Ap dB attenuation and a stopband edge with at least As dB.

Command line:

$ electronics-engineering solve elx_filter_order ftype=Butterworth "fp=1000 Hz" "fs=2500 Hz" Ap=1 As=40
n = 6
  by: Butterworth or Chebyshev low-pass filter order  (Butterworth: n >= log10(D)/(2 log10(fs/fp)); Chebyshev: n >= acosh(sqrt D)/acosh(fs/fp), D = (10^(As/10) - 1)/(10^(Ap/10) - 1))
  fp = 1000 Hz
  fs = 2500 Hz
  Ap = 1
  As = 40
  ftype = Butterworth
  assumes: fs > fp; As > Ap > 0

Python:

import electronics_engineering_ai999x as m

a = m.solve("elx_filter_order", ftype="Butterworth", fp="1000 Hz", fs="2500 Hz", Ap="1", As="40")
print(a.values or (a.value, a.unit))

Browser: open this capability on the model page and press Compute in your browser.

Chebyshev type I filter: section Q and frequencies

The quality factors and natural frequencies (relative to the passband edge) of the second-order sections of an n-th order Chebyshev type I low-pass filter with a given passband ripple, and the real pole of an odd order.

Command line:

$ electronics-engineering solve elx_chebyshev_sections n=4 ripple=0.5
Q_max = 2.940554174
Q = [0.705110236803,2.94055417439]
f0_ratio = [0.59700239512,1.03127040148]
sections = 2
real_pole = 0
  by: Chebyshev type I filter: section Q and frequencies  (eps = sqrt(10^(r/10) - 1); a = asinh(1/eps)/n; poles -sinh a sin th_k + j cosh a cos th_k; Q = |p|/(2 |Re p|))
  ripple = 0.5
  assumes: 2 <= n <= 16; 0.001 dB <= ripple <= 6 dB

Python:

import electronics_engineering_ai999x as m

a = m.solve("elx_chebyshev_sections", n="4", ripple="0.5")
print(a.values or (a.value, a.unit))

Browser: open this capability on the model page and press Compute in your browser.

Equal-component Sallen-Key low-pass design

The resistor value and amplifier gain of an equal-component (R1 = R2 = R, C1 = C2 = C) Sallen-Key low-pass filter for a cutoff frequency and Q, with the non-inverting gain ratio Rf/Rg = K - 1.

Command line:

$ electronics-engineering solve elx_sallen_key_equal_component_design "fc=1000 Hz" Q=0.7071 "C=10 nF"
R = 15915.49431 ohm
K = 1.585772875
Rf_over_Rg = 0.5857728751
  by: Equal-component Sallen-Key low-pass design  (R = 1/(2 pi fc C); K = 3 - 1/Q; Rf/Rg = K - 1)
  fc = 1000 Hz
  Q = 0.7071
  C = 1e-08 F
  assumes: 0.5 <= Q <= 20

Python:

import electronics_engineering_ai999x as m

a = m.solve("elx_sallen_key_equal_component_design", fc="1000 Hz", Q="0.7071", C="10 nF")
print(a.values or (a.value, a.unit))

Browser: open this capability on the model page and press Compute in your browser.

Documentation

Highlights

  • Verified, not generated. Every answer is computed by a certified electronics engineering capability and checked (substituted back, dimension-checked or compared with an independent computation) before it is returned.
  • Zero wrong answers by design. Seven explicit outcomes — SOLVED, NEEDS_INPUT, AMBIGUOUS, INVALID_INPUT, OUT_OF_SCOPE, UNRECOGNIZED_FORMAT, INTERNAL_ERROR — never a silent guess. Every one of its 561 documented answers is reproduced exactly on every tested platform.
  • Plain-English questions and a guaranteed typed interface. ask() reads documented question forms; solve(capability_id, **inputs) always solves a supported task with valid inputs.
  • Explains itself. Steps, formulas in LaTeX, units, assumptions and the model used, ready for notebooks, tutoring apps and homework checkers.
  • Native and in the browser. Every capability also computes natively in Rust: the desktop app and the electronics-engineering command line for Windows and Linux, and WebAssembly on the model page — no Python, no network.
  • Small and portable. Pure Python (sympy, mpmath); identical answers on Windows and Linux (Python 3.10, 3.11, 3.12, 3.13, 3.14).
  • Coverage: semiconductors, diode and transistor circuits, amplifiers, active filters, oscillators, data converters, timing and power supplies.

Model overview

Property Value
Package electronics-engineering-ai999x 1.0.0 (import electronics_engineering_ai999x)
Type Deterministic neuro-symbolic electronics engineering engine (rule-based reading + certified symbolic capabilities)
Capabilities 92 certified procedures
Knowledge pack version 1.0.0
Golden answers 561 documented answers, identical on every tested platform
Platforms tested Windows (Python 3.13), Linux x86-64 (Python 3.10, 3.11, 3.12, 3.13, 3.14)
Runtime CPU only, offline; no GPU, no network, no API key
License Apache-2.0
Creator / engineer Ibnul Jaif Farabi
Organization AI999X

Python quick start

pip install electronics-engineering-ai999x
# or straight from this repository:
pip install https://huggingface.co/AI999X/electronics-engineering-ai999x/resolve/main/dist/electronics_engineering_ai999x-1.0.0-py3-none-any.whl
import electronics_engineering_ai999x as electronics_engineering

electronics_engineering.ask("BJT voltage-divider bias: VCC = 12 V, R1 = 47 kohm, R2 = 10 kohm, RC = 2.2 kohm, RE = 470 ohm, beta = 150, VBE = 0.7 V").show()
# -> SOLVED — VTH = 2.10526, RTH = 8245.61, IB = 1.77397e-05, IC = 0.00266096  (elx_bjt_voltage_divider_bias)
electronics_engineering.ask("Sallen-Key low-pass filter: R1 = 10 kohm, R2 = 10 kohm, C1 = 20 nF, C2 = 10 nF, K = 1").show()
# -> SOLVED — f0 = 1125.4, Q = 0.707107, H0 = 1, peak_gain = 0.707107  (elx_sallen_key_lowpass)
electronics_engineering.solve("elx_common_emitter_amplifier", IC=0.001, beta=100.0, VT=0.025, RC=5000.0, RL=10000.0, RE1=0.0, RB=20000.0, Rsig=1000.0).show()
# -> SOLVED — gm = 0.04, r_pi = 2500, Av = -133.333, Rin = 2222.22  (elx_common_emitter_amplifier)
electronics_engineering.ask("555 astable: RA = 1 kohm, RB = 10 kohm, C = 10 uF").show()
# -> SOLVED — t_high = 0.0762462, t_low = 0.0693147, T = 0.145561, f = 6.86998  (elx_555_astable)
electronics_engineering.ask("Diode operating point: VS = 5 V, R = 1 kohm, Is = 1e-14 A, n = 1, T = 300 K").show()
# -> SOLVED — ID = 0.00430746, VD = 0.692544, P_D = 0.0029831  (elx_diode_operating_point)
electronics_engineering.ask("Who created you?").message
# -> electronics-engineering-ai999x was created and engineered by Ibnul Jaif Farabi at AI999X.

The Python package also installs a Python command, electronics-engineering-ai999x "<question>"; for the native program use electronics-engineering (above). The outputs above were produced by running this exact code on electronics-engineering-ai999x 1.0.0.

How every answer is verified

  1. Reading — the question is turned into typed quantities (value, unit, kind, role) and one asked quantity; every stated number must be used or the question is refused.
  2. Planning — only certified capabilities may answer; a capability applies only under the conditions the wording states (for example a pendulum, a liquid at rest, boiling).
  3. Computing — exact symbolic or high-precision numeric evaluation.
  4. Checking — dimensions, substitution back into the defining equation, and agreement between independent readings; any disagreement becomes a refusal, never a number.

Capabilities are certified before they ship: each must reproduce hand-worked reference cases, reject a deliberately wrong variant (a control), and leave every benchmark answer unchanged.

Python worked examples, with their steps

Each question was put to electronics-engineering-ai999x; the answer is the one it returned, with the steps it took.

BJT voltage-divider bias: exact Q-point · BJT

BJT voltage-divider bias: VCC = 12 V, R1 = 47 kohm, R2 = 10 kohm, RC = 2.2 kohm, RE = 470 ohm, beta = 150, VBE = 0.7 V

→ VTH = 2.105263158 V, RTH = 8245.614035 ohm, IB = 1.773972436e-05 A, IC = 0.002660958654 A, IE = 0.002678698378 A, VB = 1.958988238 V, VE = 1.258988238 V, VC = 6.145890962 V, VCE = 4.886902724 V

Steps
  • BJT voltage-divider bias: exact Q-point: VCC = 12 V, R1 = 47 kohm, R2 = 10 kohm, RC = 2.2 kohm, RE = 470 ohm, beta = 150, VBE = 0.7 V → VTH = 2.105263158 V, RTH = 8245.614035 ohm, IB = 1.773972436e-05 A, IC = 0.002660958654 A, IE = 0.002678698378 A, VB = 1.958988238 V, VE = 1.258988238 V, VC = 6.145890962 V, VCE = 4.886902724 V

Sallen-Key low-pass filter: f0, Q and gain · Active filters

Sallen-Key low-pass filter: R1 = 10 kohm, R2 = 10 kohm, C1 = 20 nF, C2 = 10 nF, K = 1

→ f0 = 1125.395395 Hz, Q = 0.7071067812, H0 = 1, peak_gain = 0.7071067812

Steps
  • Sallen-Key low-pass filter: f0, Q and gain: R1 = 10 kohm, R2 = 10 kohm, C1 = 20 nF, C2 = 10 nF, K = 1 → f0 = 1125.395395 Hz, Q = 0.7071067812, H0 = 1, peak_gain = 0.7071067812

Common-emitter amplifier: gain, input and output resistance · BJT

m.solve("elx_common_emitter_amplifier", IC=0.001, beta=100.0, VT=0.025, RC=5000.0, RL=10000.0, RE1=0.0, RB=20000.0, Rsig=1000.0)

→ gm = 0.04 S, r_pi = 2500 ohm, Av = -133.3333333, Rin = 2222.222222 ohm, Rout = 5000 ohm, Gv = -91.95402299

Steps
  • Common-emitter amplifier: gain, input and output resistance: IC = 0.001 A, beta = 100, VT = 0.025 V, RC = 5000 ohm, RL = 10000 ohm, RE1 = 0 ohm, RB = 20000 ohm, Rsig = 1000 ohm → gm = 0.04 S, r_pi = 2500 ohm, Av = -133.3333333, Rin = 2222.222222 ohm, Rout = 5000 ohm, Gv = -91.95402299

555 timer astable: frequency and duty cycle · Oscillators

555 astable: RA = 1 kohm, RB = 10 kohm, C = 10 uF

→ t_high = 0.07624618986 s, t_low = 0.06931471806 s, T = 0.1455609079 s, f = 6.869976385 Hz, duty = 0.5238095238

Steps
  • 555 timer astable: frequency and duty cycle: RA = 1 kohm, RB = 10 kohm, C = 10 uF → t_high = 0.07624618986 s, t_low = 0.06931471806 s, T = 0.1455609079 s, f = 6.869976385 Hz, duty = 0.5238095238 Hz

Operating point of a diode in series with a resistor (exact) · Diodes

Diode operating point: VS = 5 V, R = 1 kohm, Is = 1e-14 A, n = 1, T = 300 K

→ ID = 0.004307456373 A, VD = 0.6925436275 V, P_D = 0.002983101461 W

Steps
  • Operating point of a diode in series with a resistor (exact): VS = 5 V, R = 1 kohm, Is = 1e-14 A, n = 1, T = 300 K → ID = 0.004307456373 A, VD = 0.6925436275 V, P_D = 0.002983101461 W

CMOS gate propagation delay (switch-resistor model) · CMOS

CMOS propagation delay: Rn = 10000 ohm, Rp = 20000 ohm, CL = 100 fF

→ tpHL = 6.931471806e-10 s, tpLH = 1.386294361e-09 s, tp = 1.039720771e-09 s

Steps
  • CMOS gate propagation delay (switch-resistor model): Rn = 10000 ohm, Rp = 20000 ohm, CL = 100 fF → tpHL = 6.931471806e-10 s, tpLH = 1.386294361e-09 s, tp = 1.039720771e-09 s

Figures

Every point was computed by electronics-engineering-ai999x.

Sallen-Key low-pass filter: f0, Q and gain

Sallen-Key low-pass filter: f0, Q and gain — computed by electronics-engineering-ai999x

Q (quality factor) against R1 (first series resistor), with C1 = 2.00e-8 F, C2 = 1.00e-8 F, K = 1, R2 = 10000 ohm. 31 points computed by electronics-engineering-ai999x; marked: R1 = 10000, Q = 0.707107.

ADC output code, LSB and quantisation error

ADC output code, LSB and quantisation error — computed by electronics-engineering-ai999x

code (output code (decimal)) against Vin (analog input), with Vref = 5 V, n = 8. 31 points computed by electronics-engineering-ai999x; marked: Vin = 3.2, code = 163.

Operating point of a diode in series with a resistor (exact)

Operating point of a diode in series with a resistor (exact) — computed by electronics-engineering-ai999x

ID (diode current) against VS (source voltage), with Is = 1.00e-14 A, R = 1000 ohm, T = 300 K, n = 1. 31 points computed by electronics-engineering-ai999x; marked: VS = 5, ID = 0.00430746 A.

555 timer astable: frequency and duty cycle

555 timer astable: frequency and duty cycle — computed by electronics-engineering-ai999x

f (frequency) against RA (resistor from Vcc to the discharge pin), with C = 1.00e-5 F, RB = 10000 ohm. 31 points computed by electronics-engineering-ai999x; marked: RA = 1000, f = 6.86998 Hz.

Capabilities

92 certified procedures. A few of them:

  • Procedures: 555 timer astable: frequency and duty cycle; 555 timer monostable pulse width; ADC output code, LSB and quantisation error; ADC quantisation SNR with oversampling; Adjustable three-terminal regulator output voltage; BJT beta cutoff and transition frequency fT; BJT cascode: output resistance, transconductance and gain; BJT collector-feedback bias: Q-point; BJT current mirror with finite beta; BJT differential pair: differential and common-mode gain, CMRR; BJT dual-supply emitter bias: Q-point; BJT fixed (base-resistor) bias: Q-point; BJT small-signal (hybrid-pi) parameters; BJT terminal currents from beta; BJT voltage-divider bias: exact Q-point; Binary-weighted resistor DAC; Built-in potential of a pn junction; Butterworth filter: Q of each second-order section; Butterworth or Chebyshev low-pass filter order; CMOS dynamic (switching) power; CMOS gate propagation delay (switch-resistor model); CMOS inverter switching threshold VM; Capacitor-input filter: ripple voltage and DC output; Chebyshev type I filter: section Q and frequencies …

electronics_engineering_ai999x.templates() lists every question form ask() reads; the capability guide (PDF, every example executed) is included in this repository.

All 92 formulas

Show every formula, by topic

BJT / DC bias

BJT collector-feedback bias: Q-point

IB=VCC−VBERF+(β+1)(RC+RE) I_B = \frac{V_{CC} - V_{BE}}{R_F + (\beta+1)(R_C + R_E)}

BJT dual-supply emitter bias: Q-point

IE=VEE−VBERE+RB/(β+1) I_E = \frac{V_{EE} - V_{BE}}{R_E + R_B/(\beta+1)}

BJT fixed (base-resistor) bias: Q-point

IB=VCC−VBERB,VCE=VCC−βIBRC I_B = \frac{V_{CC} - V_{BE}}{R_B},\quad V_{CE} = V_{CC} - \beta I_BR_C

BJT voltage-divider bias: exact Q-point

IB=VTH−VBERTH+(β+1)RE I_B = \frac{V_{TH} - V_{BE}}{R_{TH} + (\beta+1)R_E}

BJT / amplifiers

BJT cascode: output resistance, transconductance and gain

Rout=ro+(1+gmro)(ro∥rπ),Av=−Gm(Rout∥RL) R_{out} = r_o + (1 + g_mr_o)(r_o\parallel r_\pi),\quad A_v = -G_m(R_{out}\parallel R_L)

Common-base amplifier

Av=gm(RC∥RL),Rin=RE∥re A_v = g_m(R_C\parallel R_L),\quad R_{in} = R_E\parallel r_e

Common-collector (emitter-follower) amplifier

Av=(β+1)RE′rπ+(β+1)RE′,Rout=RE∥rπ+Rsig∥RBβ+1 A_v = \frac{(\beta+1)R_E'}{r_\pi + (\beta+1)R_E'},\quad R_{out} = R_E\parallel\frac{r_\pi + R_{sig}\parallel R_B}{\beta+1}

Common-emitter amplifier: gain, input and output resistance

Av=−β (RC∥RL)rπ+(β+1)RE1 A_v = -\frac{\beta\,(R_C\parallel R_L)}{r_\pi + (\beta+1)R_{E1}}

BJT / current relations

BJT terminal currents from beta

IC=βIB,IE=(β+1)IB,α=ββ+1 I_C = \beta I_B,\quad I_E = (\beta+1)I_B,\quad \alpha = \frac{\beta}{\beta+1}

BJT / current sources

BJT current mirror with finite beta

Iout=ββ+2Iref I_{out} = \frac{\beta}{\beta+2}I_{ref}

Wilson current mirror output current

Iout=Iref(1−2β2+2β+2) I_{out} = I_{ref}\left(1 - \frac{2}{\beta^2 + 2\beta + 2}\right)

BJT / differential amplifiers

BJT differential pair: differential and common-mode gain, CMRR

Acm=−gmRC1+2REE(β+1)/rπ,CMRR=1+2REE(β+1)/rπ2 A_{cm} = -\frac{g_mR_C}{1 + 2R_{EE}(\beta+1)/r_\pi},\quad \text{CMRR} = \frac{1 + 2R_{EE}(\beta+1)/r_\pi}{2}

BJT / frequency response

BJT beta cutoff and transition frequency fT

fT=gm2π(Cπ+Cμ),fβ=fTβ f_T = \frac{g_m}{2\pi(C_\pi + C_\mu)},\quad f_\beta = \frac{f_T}{\beta}

Common-emitter high-frequency cutoff: Miller effect and open-circuit time constants

CM=Cμ(1+gmRL′),τoc=CπRπ′+Cμ(Rπ′+RL′+gmRπ′RL′) C_M = C_\mu(1 + g_mR_L'),\quad \tau_{oc} = C_\pi R_\pi' + C_\mu\left(R_\pi' + R_L' + g_mR_\pi'R_L'\right)

Common-emitter low-frequency cutoff by short-circuit time constants

fL≈∑i12πRiCi f_L \approx \sum_i \frac{1}{2\pi R_iC_i}

BJT / small-signal model

BJT small-signal (hybrid-pi) parameters

gm=ICVT,rπ=βgm,re=αgm,ro=VAIC g_m = \frac{I_C}{V_T},\quad r_\pi = \frac{\beta}{g_m},\quad r_e = \frac{\alpha}{g_m},\quad r_o = \frac{V_A}{I_C}

CMOS / inverter

CMOS inverter switching threshold VM

VM=Vtn+r (VDD−∣Vtp∣)1+r,r=kp/kn V_M = \frac{V_{tn} + r\,(V_{DD} - \vert V_{tp}\vert )}{1 + r},\quad r = \sqrt{k_p/k_n}

CMOS / timing

CMOS gate propagation delay (switch-resistor model)

tpHL=ln⁡2 RnCL,tpLH=ln⁡2 RpCL t_{pHL} = \ln 2\,R_nC_L,\quad t_{pLH} = \ln 2\,R_pC_L

MOSFET / DC bias

MOSFET voltage-divider bias with source resistor: Q-point

VOV=2(VG−Vt)1+1+2knRS(VG−Vt),ID=12knVOV2 V_{OV} = \frac{2(V_G - V_t)}{1 + \sqrt{1 + 2k_nR_S(V_G - V_t)}},\quad I_D = \tfrac{1}{2}k_nV_{OV}^2

MOSFET / amplifiers

Common-source amplifier with source degeneration and ro

Av=−gmroRD′RD′+ro+RS(1+gmro) A_v = -\frac{g_mr_oR_D'}{R_D' + r_o + R_S(1 + g_mr_o)}

Source follower (common drain)

Av=gmR1+gmR,Rout=RS∥ro∥1gm A_v = \frac{g_mR}{1 + g_mR},\quad R_{out} = R_S\parallel r_o\parallel\frac{1}{g_m}

MOSFET / drain current

MOSFET drain current (cutoff, triode, saturation)

ID={kn(VOVVDS−12VDS2)VDS<VOV12knVOV2(1+λVDS)VDS≥VOV I_D = \begin{cases} k_n\left(V_{OV}V_{DS} - \tfrac{1}{2}V_{DS}^2\right) & V_{DS} < V_{OV}\\ \tfrac{1}{2}k_nV_{OV}^2(1+\lambda V_{DS}) & V_{DS}\ge V_{OV}\end{cases}

MOSFET / small-signal model

MOSFET small-signal gm, ro and intrinsic gain

gm=2knID=2IDVOV,ro=1λID g_m = \sqrt{2k_nI_D} = \frac{2I_D}{V_{OV}},\quad r_o = \frac{1}{\lambda I_D}

MOSFET / threshold voltage

MOSFET threshold voltage with body effect

Vt=Vt0+γ(2ϕF+VSB−2ϕF) V_t = V_{t0} + \gamma\left(\sqrt{2\phi_F + V_{SB}} - \sqrt{2\phi_F}\right)

Active filters / Sallen-Key

Equal-component Sallen-Key low-pass design

R=12πfcC,K=3−1Q R = \frac{1}{2\pi f_cC},\quad K = 3 - \frac{1}{Q}

Sallen-Key high-pass filter: f0, Q and gain

Q=R1R2C1C2R1(C1+C2)+R2C2(1−K) Q = \frac{\sqrt{R_1R_2C_1C_2}}{R_1(C_1+C_2) + R_2C_2(1-K)}

Sallen-Key low-pass filter: f0, Q and gain

ω0=1R1R2C1C2,Q=R1R2C1C2R1C2+R2C2+R1C1(1−K) \omega_0 = \frac{1}{\sqrt{R_1R_2C_1C_2}},\quad Q = \frac{\sqrt{R_1R_2C_1C_2}}{R_1C_2 + R_2C_2 + R_1C_1(1-K)}

Active filters / approximations

Butterworth filter: Q of each second-order section

Qk=12sin⁡((2k−1)π2n) Q_k = \frac{1}{2\sin\left(\frac{(2k-1)\pi}{2n}\right)}

Butterworth or Chebyshev low-pass filter order

n≥log⁡10D2log⁡10(fs/fp),n≥cosh⁡−1Dcosh⁡−1(fs/fp) n \ge \frac{\log_{10}D}{2\log_{10}(f_s/f_p)},\quad n \ge \frac{\cosh^{-1}\sqrt{D}}{\cosh^{-1}(f_s/f_p)}

Chebyshev type I filter: section Q and frequencies

pk=−sinh⁡asin⁡θk+jcosh⁡acos⁡θk, a=1nsinh⁡−11ε, Qk=∣pk∣2∣ℜpk∣ p_k = -\sinh a\sin\theta_k + j\cosh a\cos\theta_k,\ a = \frac{1}{n}\sinh^{-1}\frac{1}{\varepsilon},\ Q_k = \frac{\vert p_k\vert }{2\vert \Re p_k\vert }

Active filters / first order

First-order active low-pass filter (inverting)

H(jω)=−Rf/R11+jωRfC,fc=12πRfC H(j\omega) = -\frac{R_f/R_1}{1 + j\omega R_fC},\quad f_c = \frac{1}{2\pi R_fC}

Active filters / multiple feedback

Multiple-feedback (MFB) band-pass filter

ω0=R1+R2R1R2R3C1C2,Q=ω0C1C2R3C1+C2 \omega_0 = \sqrt{\frac{R_1+R_2}{R_1R_2R_3C_1C_2}},\quad Q = \frac{\omega_0C_1C_2R_3}{C_1+C_2}

Multiple-feedback (MFB) low-pass filter

Q=R2R3C1C2C2(R2+R3+R2R3/R1),H0=−R2R1 Q = \frac{\sqrt{R_2R_3C_1C_2}}{C_2\left(R_2 + R_3 + R_2R_3/R_1\right)},\quad H_0 = -\frac{R_2}{R_1}

Data converters / ADC

ADC output code, LSB and quantisation error

D=⌊VinVref2n⌋,LSB=Vref2n D = \left\lfloor \frac{V_{in}}{V_{ref}}2^n\right\rfloor,\quad \text{LSB} = \frac{V_{ref}}{2^n}

ADC quantisation SNR with oversampling

SNR=6.02 n+1.76+10log⁡10OSR dB \text{SNR} = 6.02\,n + 1.76 + 10\log_{10}\text{OSR}\ \text{dB}

Dual-slope integrating ADC

T2=T1VinVref,N2=N1VinVref T_2 = T_1\frac{V_{in}}{V_{ref}},\quad N_2 = N_1\frac{V_{in}}{V_{ref}}

Effective number of bits (ENOB) from SINAD

ENOB=SINAD−1.766.02 \text{ENOB} = \frac{\text{SINAD} - 1.76}{6.02}

Successive-approximation (SAR) ADC conversion

bk=[Vin≥VDAC(Dk+2k)] b_k = \left[V_{in} \ge V_{DAC}(D_{k} + 2^k)\right]

Data converters / DAC

Binary-weighted resistor DAC

Vout=−VrefRfR∑k=0n−1bk2k=−VrefRfRD2n−1 V_{out} = -V_{ref}\frac{R_f}{R}\sum_{k=0}^{n-1}\frac{b_k}{2^k} = -V_{ref}\frac{R_f}{R}\frac{D}{2^{n-1}}

DAC output voltage (R-2R or any binary DAC)

Vout=VrefD2n V_{out} = V_{ref}\frac{D}{2^n}

Data converters / sampling

SNR limit from sampling-clock (aperture) jitter

SNRj=−20log⁡10(2πftj) \text{SNR}_j = -20\log_{10}(2\pi f t_j)

Sample-and-hold droop

dVdt=IleakC \frac{dV}{dt} = \frac{I_{leak}}{C}

Diodes / LEDs

LED series (current-limiting) resistor

R=VS−nVFIF R = \frac{V_S - nV_F}{I_F}

Diodes / Shockley equation

Diode current from the Shockley equation

ID=IS(eVD/nVT−1) I_D = I_S\left(e^{V_D/nV_T} - 1\right)

Diode voltage for a given current

VD=nVTln⁡(1+IDIS) V_D = nV_T\ln\left(1 + \frac{I_D}{I_S}\right)

Diodes / Zener regulators

Zener regulator design: series resistor and Zener rating

RS=Vin,min−VZIZ,min+IL,max R_S = \frac{V_{in,min} - V_Z}{I_{Z,min} + I_{L,max}}

Zener shunt regulator: load voltage and currents

IZ=Vin−VZRS−VZRL I_Z = \frac{V_{in} - V_Z}{R_S} - \frac{V_Z}{R_L}

Diodes / operating point

Operating point of a diode in series with a resistor (exact)

VS=IDR+nVTln⁡(1+IDIS) V_S = I_DR + nV_T\ln\left(1 + \frac{I_D}{I_S}\right)

Diodes / rectifier filters

Capacitor-input filter: ripple voltage and DC output

Vr=VpfrRLC,Vdc=Vp−Vr2 V_r = \frac{V_p}{f_rR_LC},\quad V_{dc} = V_p - \frac{V_r}{2}

Diodes / rectifiers

Rectifier output: average, RMS, ripple factor and PIV

Vdc=k2π[2Vmcos⁡θ1−V(π−2θ1)], θ1=arcsin⁡VVm V_{dc} = \frac{k}{2\pi}\left[2V_m\cos\theta_1 - V(\pi - 2\theta_1)\right],\ \theta_1 = \arcsin\frac{V}{V_m}

Op-amps / basic amplifiers

Inverting op-amp amplifier

Vout=−RfRinVin V_{out} = -\frac{R_f}{R_{in}}V_{in}

Inverting summing amplifier

Vout=−Rf∑iViRi V_{out} = -R_f\sum_i\frac{V_i}{R_i}

Non-inverting op-amp amplifier

Vout=(1+RfRg)Vin V_{out} = \left(1 + \frac{R_f}{R_g}\right)V_{in}

Op-amps / comparators

Inverting Schmitt trigger thresholds

VTH,TL=VsatR1+VrefRfR1+Rf V_{TH,TL} = \frac{V_{sat}R_1 + V_{ref}R_f}{R_1 + R_f}

Op-amps / difference amplifiers

Op-amp difference amplifier (with resistor mismatch)

Vout=R4R3+R4(1+R2R1)V2−R2R1V1 V_{out} = \frac{R_4}{R_3+R_4}\left(1+\frac{R_2}{R_1}\right)V_2 - \frac{R_2}{R_1}V_1

Three-op-amp instrumentation amplifier

Vout=(1+2R1RG)R3R2(V2−V1) V_{out} = \left(1 + \frac{2R_1}{R_G}\right)\frac{R_3}{R_2}(V_2 - V_1)

Op-amps / feedback

Negative feedback: closed-loop gain and bandwidth extension

Af=A1+Aβ,fH,f=fH(1+Aβ) A_f = \frac{A}{1 + A\beta},\quad f_{H,f} = f_H(1 + A\beta)

Op-amps / frequency limits

Closed-loop bandwidth from the gain-bandwidth product

f3dB=GBW1+Rf/R1 f_{3dB} = \frac{\text{GBW}}{1 + R_f/R_1}

Slew-rate limit: full-power bandwidth

fmax=SR2πVp f_{max} = \frac{SR}{2\pi V_p}

Op-amps / integrator and differentiator

Op-amp differentiator: gain and output amplitude

∣H(jω)∣=ωRC \vert H(j\omega)\vert = \omega RC

Op-amp integrator: output ramp and unity-gain frequency

Vout(t)=V0−1RC∫0tVin dt V_{out}(t) = V_0 - \frac{1}{RC}\int_0^t V_{in}\,dt

Op-amps / non-ideal

Inverting amplifier with finite open-loop gain

G=−Rf/R11+1+Rf/R1A0 G = \frac{-R_f/R_1}{1 + \dfrac{1 + R_f/R_1}{A_0}}

Op-amp output offset from input offset voltage and bias currents

Vout=(Vos−IB+Rp)(1+RfR1)+IB−Rf V_{out} = \left(V_{os} - I_{B+}R_p\right)\left(1 + \frac{R_f}{R_1}\right) + I_{B-}R_f

Op-amps / stability

Phase margin of a two-pole amplifier with feedback

PM=180∘−arctan⁡fcf1−arctan⁡fcf2 PM = 180^\circ - \arctan\frac{f_c}{f_1} - \arctan\frac{f_c}{f_2}

Oscillators / 555 timer

555 timer astable: frequency and duty cycle

tH=ln⁡2 (RA+RB)C,tL=ln⁡2 RBC,f=1ln⁡2 (RA+2RB)C t_H = \ln 2\,(R_A + R_B)C,\quad t_L = \ln 2\,R_BC,\quad f = \frac{1}{\ln 2\,(R_A + 2R_B)C}

555 timer monostable pulse width

T=ln⁡3 RC≈1.1 RC T = \ln 3\,RC \approx 1.1\,RC

Oscillators / LC

Colpitts oscillator frequency and feedback ratio

f0=12πL C1C2C1+C2,Amin=C2C1 f_0 = \frac{1}{2\pi\sqrt{L\,\frac{C_1C_2}{C_1+C_2}}},\quad A_{min} = \frac{C_2}{C_1}

Hartley oscillator frequency

f0=12π(L1+L2+2M)C f_0 = \frac{1}{2\pi\sqrt{(L_1 + L_2 + 2M)C}}

Oscillators / RC

RC phase-shift oscillator frequency and gain

f0=12π6 RC,∣A∣≥29 f_0 = \frac{1}{2\pi\sqrt{6}\,RC},\quad \vert A\vert \ge 29

Wien-bridge oscillator frequency and required gain

f0=12πR1R2C1C2,A=1+R1R2+C2C1 f_0 = \frac{1}{2\pi\sqrt{R_1R_2C_1C_2}},\quad A = 1 + \frac{R_1}{R_2} + \frac{C_2}{C_1}

Oscillators / crystal

Quartz crystal: series and parallel resonance, Q

fs=12πLmCm,fp=fs1+CmC0 f_s = \frac{1}{2\pi\sqrt{L_mC_m}},\quad f_p = f_s\sqrt{1 + \frac{C_m}{C_0}}

Oscillators / phase-locked loops

Type-2 PLL with active PI loop filter: natural frequency and damping

ωn=KdKoτ1,ζ=τ2ωn2 \omega_n = \sqrt{\frac{K_dK_o}{\tau_1}},\quad \zeta = \frac{\tau_2\omega_n}{2}

Oscillators / relaxation

Op-amp relaxation (astable) oscillator

T=2RCln⁡1+β1−β,β=R1R1+R2 T = 2RC\ln\frac{1+\beta}{1-\beta},\quad \beta = \frac{R_1}{R_1+R_2}

Power supplies / linear regulators

Adjustable three-terminal regulator output voltage

Vout=Vref(1+R2R1)+IadjR2 V_{out} = V_{ref}\left(1 + \frac{R_2}{R_1}\right) + I_{adj}R_2

Linear regulator dissipation and efficiency

PD=(Vin−Vout)IL+VinIq,η=VoutILVin(IL+Iq) P_D = (V_{in} - V_{out})I_L + V_{in}I_q,\quad \eta = \frac{V_{out}I_L}{V_{in}(I_L + I_q)}

Zener-referenced series-pass (emitter-follower) regulator

Vout=VZ−VBE,IZ=Vin−VZRS−ILβ+1 V_{out} = V_Z - V_{BE},\quad I_Z = \frac{V_{in} - V_Z}{R_S} - \frac{I_L}{\beta+1}

Power supplies / thermal design

Heat-sink thermal path: junction, case and sink temperatures

Tj=Ta+P (θjc+θcs+θsa) T_j = T_a + P\,(\theta_{jc} + \theta_{cs} + \theta_{sa})

Required heat-sink thermal resistance

θsa≤Tj,max−TaP−θjc−θcs \theta_{sa} \le \frac{T_{j,max} - T_a}{P} - \theta_{jc} - \theta_{cs}

Semiconductors / carrier statistics

Electron and hole concentrations of doped (compensated) material

n=ND−NA2+(ND−NA2)2+ni2,p=ni2n n = \frac{N_D - N_A}{2} + \sqrt{\left(\frac{N_D - N_A}{2}\right)^2 + n_i^2},\quad p = \frac{n_i^2}{n}

Intrinsic carrier concentration

ni=NcNv e−Eg/2kT,Nc,v(T)=Nc,v(300)(T300)3/2 n_i = \sqrt{N_cN_v}\,e^{-E_g/2kT},\quad N_{c,v}(T) = N_{c,v}(300)\left(\tfrac{T}{300}\right)^{3/2}

Semiconductors / conduction

Conductivity and resistivity of a semiconductor

σ=q (nμn+pμp),ρ=1/σ \sigma = q\,(n\mu_n + p\mu_p),\quad \rho = 1/\sigma

Semiconductors / diffusion

Einstein relation and diffusion length

D=μkTq,L=Dτ D = \mu\frac{kT}{q},\quad L = \sqrt{D\tau}

Semiconductors / drift

Drift velocity and drift current in a semiconductor bar

J=q n μ E,E=V/L J = q\,n\,\mu\,E,\quad E = V/L

Semiconductors / pn junction

Built-in potential of a pn junction

Vbi=kTqln⁡NANDni2 V_{bi} = \frac{kT}{q}\ln\frac{N_AN_D}{n_i^2}

Depletion width, field and capacitance of an abrupt pn junction

W=2ε(Vbi+VR)q(1NA+1ND) W = \sqrt{\frac{2\varepsilon(V_{bi}+V_R)}{q}\left(\frac{1}{N_A}+\frac{1}{N_D}\right)}

Junction (depletion) capacitance versus bias

Cj=Cj0(1+VR/Vbi)m C_j = \frac{C_{j0}}{\left(1 + V_R/V_{bi}\right)^{m}}

Semiconductors / thermal voltage

Thermal voltage kT/q

VT=kTq V_T = \frac{kT}{q}

Timing / RC

RC delay, 10-90 % rise time and bandwidth

tr=ln⁡9 RC≈2.2RC,trf3dB≈0.35 t_r = \ln 9\,RC \approx 2.2RC,\quad t_rf_{3dB} \approx 0.35

Timing / interconnect

Elmore delay of an RC ladder (interconnect)

τD=∑iCi∑j≤iRj \tau_D = \sum_i C_i\sum_{j\le i}R_j

Timing / power

CMOS dynamic (switching) power

Pdyn=α C VDD2f P_{dyn} = \alpha\,C\,V_{DD}^2f

Timing / synchronous logic

Flip-flop setup and hold slack, maximum clock frequency

T≥tcq+tpd+tsu−tskew,tccq+tcd≥th+tskew T \ge t_{cq} + t_{pd} + t_{su} - t_{skew},\quad t_{ccq} + t_{cd} \ge t_h + t_{skew}

Synchronizer metastability MTBF

MTBF=etr/τT0fclkfdata \text{MTBF} = \frac{e^{t_r/\tau}}{T_0f_{clk}f_{data}}

Out of scope

  • Open-ended explanation, essay writing or tutoring dialogue: it is a solver, not a chatbot.
  • Questions outside its certified electronics engineering capabilities, and any question whose stated numbers it cannot all use — it refuses with the reason instead.
  • High-stakes engineering, medical or legal decisions without independent review.

Limitations

  • It answers what its certified capabilities cover (semiconductors, diode and transistor circuits, amplifiers, active filters, oscillators, data converters, timing and power supplies); anything else is refused with a reason.
  • ask() reads documented question forms and common phrasings; unusual wording may be refused — use solve() for guaranteed results.
  • Results are as correct as the certified relations and their stated conditions; a certified relation is a checked model, not a claim about every physical situation.

Citation

@software{electronics_engineering_ai999x_1_0_0,
  title  = {electronics-engineering-ai999x: an offline, verified electronics engineering solver},
  author = {Farabi, Ibnul Jaif}, organization = {AI999X},
  year   = {2026}, version = {1.0.0},
  url    = {https://huggingface.co/AI999X/electronics-engineering-ai999x}
}

Contact

Questions, bug reports and requests: open a discussion on https://huggingface.co/AI999X/electronics-engineering-ai999x/discussions or visit https://ai999x.com.

Support the project

electronics-engineering-ai999x is free and open source. If it helps you, you can support further development on Buy Me a Coffee.

Created and engineered by Ibnul Jaif Farabi · AI999X · ai999x.com

Downloads last month
-
Safetensors
Model size
4.72M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Evaluation results

  • identical on every platform on Golden answers (561 documented questions, Windows + Linux Python 3.10-3.14)
    self-reported
    1.000