Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[feature] Netlist input/output #124

Open
aakatz3 opened this issue Jul 24, 2020 · 4 comments
Open

[feature] Netlist input/output #124

aakatz3 opened this issue Jul 24, 2020 · 4 comments

Comments

@aakatz3
Copy link
Contributor

aakatz3 commented Jul 24, 2020

It would be nice to have an output and/or input for some form of EDA type netlist, whether in SPICE type format, Protel/Altium format, Kicad format, eagle format, etc.

If people want this feature, I can investigate to see which format is the best.

@formatc1702
Copy link
Collaborator

formatc1702 commented Jul 24, 2020

I hadn't thought of any EDA tool integration (could you describe a specific usecase for this?) but a sort of netlist output has been on my mind.

Simply a table of signals within the harness, and a listing of which wires and connector pins are carrying this signal, would be quite useful when the wiring diagram gets a bit more complex and individual wires harder to follow.

Example output shown as YAML for readability>

netlist:
  GND:
    - X1: [1, 3]
    - W1: [1, s]
    - X2: [1]
  VCC:
    - X1: [2]
    - W1: [2]
    - X2: [2]

This would obviously be separate from any pin labels (classic example: RX/TX crossover would cause issues), so signal names would have to be defined elsewhere. I guess we'd need an expert on graph theory to follow a signal thats labeled once (e.g. on any random connector's pin) along all wires, loops, etc. and make sure there are no "shorts" between differently labeled nets/signals.

I'm not sure how a netlist input would work?

@formatc1702 formatc1702 changed the title [proposed feature] Netlist input/output [feature] Netlist input/output Jul 24, 2020
@aakatz3
Copy link
Contributor Author

aakatz3 commented Jul 24, 2020

If you draw schematics for connectors in something like altium or kicad, and wish to migrate or better visualize them in wireviz, you may export a netlist:

There are an absolute buttload of formats, but essentially, netlist import would allow wireviz to be able to import and export from schematics from eda tools, or at least spice or tinycad schematics.

Ideally, Wireviz would be able to generate its own format of YML file from the netlist to allow for all of the options it supports to be used.

On another note: while I love your YAML styled netlist, sadly no existing tool can take that as either an input or generate it as an output, though it is somewhat close to existing ones!

@stevegt
Copy link
Contributor

stevegt commented Oct 4, 2020

The PySpice netlist parser might be worth experimenting with: https://github.com/FabriceSalvaire/PySpice/blob/319d300fb5f18fc4800d4282c39b2e348d167695/PySpice/Spice/Parser.py#L772

@martinrieder
Copy link

martinrieder commented Jun 22, 2024

Some more possibilities here:

  • tscircuit/kicad-mod-converter
    This module converts kicad files into a tscircuit soup json, an easy-to-use JSON format for electronics.
  • jdthorpe/kicad-module-parser
    Convert your Kicad board and module files to JSON or YAML and use your favorite tools to work with your Kicad board and module file data!
  • CatoLynx/kicad-mod2openpnp
    Python tool to convert KiCad (.kicad_mod) footprint pad definitions to OpenPnP package XML
  • benwaeseperlman/KiCad-Converters
    Converters from the LTspice .asy symbol file format to KiCad Libraries and from the FreePCB .fpl footprint file format to KiCad .pretty folders and .KiCad_mod files

Intro on the KiCAD S-Expression Format

PS: Using this method would also allow defining some pinout diagrams as requested in #27.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants