Skip to main content

An Electrical Engineering calculator suite

Project description

ComponentCalc: The Electrical Engineering Calculator

Sometimes your TI-89 isn't enough, and an ideal 483.42Ω resistor doesn't exist.

I'm an Electrical Engineer who does a lot of discrete design, which means I can often have ~20 browser tabs open to resources like jansson.us, Analog Devices' dBm Calculator, TI's Designing Gain and Offset in 30s, and my company's part catalog, all just to design a simple active filter.

My goal is to consolidate and enrich these tools into a single program that, above all else, documents and simplifies some design choices like component selection, making circuit designs easy to modify in the future.
You know, for when it takes 8 weeks to get PCBAs back and you realize that an opamp doesn't actually have infinite input impedance.

Planned Features

🔵Core Features
🔷Priority Features
🔹Eventual Features
🔸Possible Features
🔻A bit down the road but I'm tempted

Organization

  • 🔵Projects: Stored as directories with human-readable-ish data
    • 🔸Power Rail Configuration: Store available power rails with tolerance, stability, and use preference.
      • 🔻Load Estimation: Use calculators and other contributions to figure out power loads.
  • 🔵(sub)Circuits: Organize your calculations within a project!
    • 🔷Reuse: Use a circuit within another circuit (subcircuits)
      • 🔻Dependent Optimization: Optimize two subcircuits to work together, accounting for factors like loading.
  • 🔵Try-Then-Commit: Tinker with any value, use it in other circuits, and then choose to change things up.

All Components:

  • 🔵Global Part Library: Save characteristics and information about parts to reuse them.
    • 🔵Internal Naming: Add aliases for parts (i.e. Company Part Numbers).
    • 🔹Double Click to Add: See a generic 1kΩ 0402? You'll probably use a lot of those, so it should be easy to add it to your custom library.
  • 🔷Project Library: See what parts you're already using in a project (and prefer them).
  • 🔻Complex Nonlinearities and Nonidealities: Amplitude dependence, bias dependence, anything that pushes math far out of the S-domain.

Basic Passive Components (RLC)

  • 🔵Standardization: Automatic respect of the E-series using eseries for any automatic calculations.
  • 🔵Tolerancing
  • 🔷Prioritization: Let's keep BOM lines down, if a part's in your project library or global library, let's see if we can make it work.
  • 🔷A sense of reality: A 1F SMD capacitor doesn't exist. This won't suggest one.
  • 🔹Parasitics: Basic user-defined RLC parasitics.
    • 🔹Estimation: Estimation of standard package (0201, 0402, ...) parasitics.

Other Component Support

  • 🔹Ferrite Beads (with parameter extraction)
  • 🔹Opamps
  • 🔻Diodes
  • 🔸Black Box Sources: VCVS, VCCS, CCVS, CCCS
  • 🔸Static Subcircuits

Actual Calculators and Utilities

  • 🔵Resistor Combination: Parallel / series to hit specific tolerance and/or power rating. Ala jansson.us
  • 🔵Capacitor Combination: Parallel / series to hit specific tolerance and/or voltage rating.
  • 🔵Inductor Combination: Parallel / series to hit specific tolerance and/or current rating.
  • 🔵Opamp Gain/Offset Circuits: I manually use TI's Designing Gain and Offset in 30s far too much (and it usually takes me more than 30s)
    • 🔷Worst-Case Analysis
  • 🔷Plot Digitizer: Ala WebPlotDigitizer, but tailored down for datasheet translation (and for sanity during development).
  • 🔷Filter Designer: Topologies TBD.
    • 🔹Worst-Case Analysis
    • 🔸Side-by-Side Comparison
  • 🔻Custom Metrics: Create your own performance criteria.

Some More Details

Calculation Methods

  • (Preferred) Analytical calculation, where reasonable, using SymPy and Lcapy
  • Light SPICE simulation using PySpice with an Ngspice backend
    • Limited to Small Signal, Noise, and maybe some AC Large Signal.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

componentcalc-0.0.0.tar.gz (8.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

componentcalc-0.0.0-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file componentcalc-0.0.0.tar.gz.

File metadata

  • Download URL: componentcalc-0.0.0.tar.gz
  • Upload date:
  • Size: 8.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.13

File hashes

Hashes for componentcalc-0.0.0.tar.gz
Algorithm Hash digest
SHA256 f44d9c987ec02085ba075e2dc1bfd42849397663f27c8978b102597d9f14f394
MD5 6f091443429e812fa113a4de8b1dd699
BLAKE2b-256 e58a2144ecec22d457e19980ffa3eb23e9de544c9231ace52536cbba7edf5912

See more details on using hashes here.

File details

Details for the file componentcalc-0.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for componentcalc-0.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9f39f9032084f8b0900eff01f3b96326ecfdfa9c873c2d8f30d372970fdfe8a7
MD5 70320a96d957de40912a3db42508d98e
BLAKE2b-256 e2b0196c3afb7d021490640ca0edc1622c5cc40e2de4e30acd523a582acbf411

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page