I am trying to use the Eagle-LTSpice "Integration" to simulate a circuit, and this obviously means adding models for most components not made by LTC.
However the process is far from obvious, with too many arbitrary failure modes to get things working. Problems encountered so far:
- There is no proper documentation except some incomplete notes at the top of the ULP source code.
- ULP script wrongly assumes that the custom (project-specific) Eagle .lbr files reside in the Eagle program directory (it was fixed in one part of the script, but not another). So I have had to put a copy in a subdir under the Eagle builtin libraries dir and keep them in sync manually.
- ULP script requires extra annotations on every library symbol used, these are missing in the libraries included with Eagle and/or available from Element14, so I have to copy all used components to my own library and edit them one by one, even for trivial stuff such as resistors.
- The handling of multi-pin signals (as found on some components) is inconsistent with normal Eagle practice, preventing treating them as single pins in LTSpice.
- Components with 0 pins (such as alignment marks) cause silly errors, I had to edit the if statements in the ULP to not complain specifically about the case of 0 pins == 0 pins.
- The ULP command to generate an LTSpice symbol for a single Eagle symbol prompts to ask if I want to export for the entire library in a way that exposes an Eagle bug where one choice is selected as default, but another is highlighted and will be executed by pressing Enter.
- LTSpice related attributes/properties set in the Eagle schematic are not passed to LTSpice requiring the creation of custom Eagle components just to specify value variants.
- LTSpice only settings such as the simulation command and the studied signals are not preserved when changing things in Eagle and reexporting.
- It is very unclear how to specify where LTSpice should look for the relevant .sub or .lib file and how to specify the relevant component from that file.
- It is very unclear which LTSpice syntactic sugar should be added to an LTSpice circuit used as a model for an Eagle component.
- It is very uncleer which LTSpice syntactic sugar should be added to an LTSpice .sub or .lib to reference a lower level .sub or .lib for inner components (case in point: Eagle component is a single die with multiple basic components such as dual transistors with a common pin).
- Eagle is blocked in the ULP until LTSpice is closed.
- Every step of trying to fix things is made extra frustrating by the multiple manual steps needed to close LTSpice, change some syntax in the Eagle library, copy those changes to the wrong directory, "update" them into the schematic, rerun the various export steps, reenter the simulation command in LTSpice, only to be greated with a nonsensical error message caused by something undocumented not matching up between the various files.
So does anyone have a complete recipe, or should I just give up using this crap and manually recreate my entire schematic in LTSpice?