I have some recent experiences in running spice simulations directly from eeschema, that I thought are worthwhile to share. Before I had just played a bit with the new simulation interface, but this time I decided to use it in a real situation.
I took me quite some time, I must admit, to get the simulation to be reliable. I had a number of problems that puzzled me for a hours before I realized that the change in my workflow has a number of consequences I did not anticipate. I used to use LTspice, but that meant I had to draw the schematic twice: Once in LTspice to simulate, and once in KiCAD to do the rest.
Let me begin by stating that I like the tools/simulate feature. A lot. It is currently in the nightlies only, but I very much hope it will be included in the next stable release of KiCAD.
There is potential to save a considerable amount of time if I can use the schematic I am working on for the simulation directly and play with variations as I go along. There already was the possibility to use ngspice with .cir files generated by eeschema, but it is a bit cumbersome and less intuitive.
So what happened?
When I drew my schematic in LTspice, I implicitly left out the parts that were not of interest to the simulation, like connectors and heatsinks, for instance. I did not realize I did, but I did to save time in LTspice.
Obviously, when you are working on something that has to be built, you want connectors, heatsinks and what not, to be included in your schematic.
As a consquence of the changed workflow, I had components in my schematic that ngspice knows nothing about. At first I did not notice the errors ngspice reported, because they scrolled out of my screen too quickly. The simulation results, however, were bizarre.
Ngspice was trying to convince me I had 131kA (yes, kilo Amperes) running as the base current in a transistor, coming from nowhere. I could not find the source of so much current in the rest of my schematic, until I noticed I had a connector on that same net. Failing a spice model for the connector, ngspice apparently assumed the connector had the capability to deliver kA’s of current through one poor little transistor.
My fault entirely. I had not realized that I needed to disable certain parts from being included in the simulation. You can do that in the new interface, but you have to think of it. In hindsight it is obvious.
I hope sharing my experience will save you a couple of hours of wondering what the heck is going on