lepton-eda / lepton-eda

GPL Electronic Design Automation
https://lepton-eda.github.io
GNU General Public License v2.0
205 stars 37 forks source link

Q: Is this Functional Electronic Computer-Aided Design (fECAD) solution? (Basically OpenSCAD for electronics?) #930

Open Kreyren opened 2 years ago

Kreyren commented 2 years ago

For context.. found this project on GNU Guile website which alleges that it's using GNU Guile, but trying the software and looking at examples i have no idea what it is and how to use it while i am actively looking for a solution that i would describe as "OpenSCAD for electronical design" meaning that i expect to write a code for the solution to return a schematics and gerber files for fabrication (fECAD).

Can lepton-eda be used this way?

vzh commented 2 years ago

Lepton is a fork of gEDA/gaf, the part delivering mostly schematic capture and netlisting to various formats, including those for PCB creation and simulation (see gEDA in wikipedia). For creation of PCB and gerber files, other tools are used, such as pcb or pcb-rnd in combination with gerbv. Lepton is an only part heavily based on Guile. While you can use various forms of automation, I'm not sure it is comparable with OpenSCAD, though :-) You have to try it to understand what it is like. As for PCB and gerber tools, you can use scripts in various languages in some of them, too, e.g. in pcb-rnd, though you would better see their docs, I don't know much of this.

antonysigma commented 1 year ago

The gEDA follows the UNIX software design philosophy, that is:

  1. Build one app to do one and only one job;
  2. Optimize the app to do it well;
  3. Write the output to plaintext format, so it can be ingested by another app.

So, unlike KiCAD or other monolithic EDA designer, we start the project by drawing custom schematic symbols with a conversion script. The output symbol *.sym is then imported into the schematic editor gschem.exe to draw a circuit diagram (*.sch). Another app gnetlist.exe converts your drawing (*.sch) into the netlist file *.net, followed by PCB manual/auto routing in the pcb.exe app. The PCB design is often exported as the Gerber file.

As you can see, the gEDA is pretty much a set of text conversion apps, daisy chained together (sym -(geshem.exe)-> sch -(gnetlist.exe)-> net -(pcb.exe)-> pcb -(pcb.exe)-> gerber). I don't see any other modern EDA suite following the similar UNIX approach. Feel free to correct me.

Here's one real world example; I designed the PCB from scratch using the gEDA design suite. https://github.com/antonysigma/piezo-stage-pid-board/tree/master/schematic

@Kreyren , does it match your definition of "functional programming EDA"?