# SPICE Netlist Export

**URL:** <https://librepcb.discourse.group/t/spice-netlist-export/851>\
**Category:** Improvement Ideas\
**Created:** [November 29, 2024, 7:19am UTC](https://librepcb.discourse.group/t/spice-netlist-export/851 "2024-11-29T07:19:10Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![wieder](https://avatars.discourse-cdn.com/v4/letter/w/73ab20/32.png) [@wieder](https://librepcb.discourse.group/u/wieder)\
**Post date:** [November 29, 2024, 7:19am UTC](https://librepcb.discourse.group/t/spice-netlist-export/851/1 "2024-11-29T07:19:10Z")

</div>

Would it be possible to add a Spice export?  
Just a simple text file.  
This could then be read and simulated in ngSpice [ngSpice](https://ngspice.sourceforge.io/)  
Or in any other Spice program such as PSpice, LTSpice …  
In the long term, the integration of Spice could then be increased

---

<div class="post-metadata">

**Author:** ![ubruhin](https://avatars.discourse-cdn.com/v4/letter/u/c89c15/32.png) [@ubruhin](https://librepcb.discourse.group/u/ubruhin)\
**Post date:** [November 29, 2024, 10:31am UTC](https://librepcb.discourse.group/t/spice-netlist-export/851/2 "2024-11-29T10:31:27Z")

</div>

Hi @wieder,

Generally I have this feature in mind but not on the roadmap yet. However, this requires us to store SPICE models for each component in the library, thus it’s much more complex than “just a simple text file”. This takes a lot of time to implement. Without SPICE models in the library, I’d expect a netlist export cannot be exported at all – please let me know if I’m wrong.

---

<div class="post-metadata">

**Author:** ![wieder](https://avatars.discourse-cdn.com/v4/letter/w/73ab20/32.png) [@wieder](https://librepcb.discourse.group/u/wieder)\
**Post date:** [November 29, 2024, 11:22am UTC](https://librepcb.discourse.group/t/spice-netlist-export/851/3 "2024-11-29T11:22:43Z")

</div>

Spice is a very old program and you need a simulation environment like LTSpice or KiCad.  
This allows you to read in and simulate the text file.  
Spice models for individual components are not needed in LibrePCB.  
These can be added manually later and thus read into the simulation environment.  
Of course, it would be desirable to have placeholders in the components to specify the Spice models in the circuit diagram so that they appear immediately in the net list.  
The Spice models are then in the same folder as the net list, for example.

---

<div class="post-metadata">

**Author:** ![wieder](https://avatars.discourse-cdn.com/v4/letter/w/73ab20/32.png) [@wieder](https://librepcb.discourse.group/u/wieder)\
**Post date:** [November 29, 2024, 11:34am UTC](https://librepcb.discourse.group/t/spice-netlist-export/851/4 "2024-11-29T11:34:05Z")

</div>

Example of a Spice Netlist  
.INCLUDE xxx.mod are the Models

- PSpice netlist created on 19.04.2010 14:42:12 with
- EAGLE Version 5.8.0 Copyright (c) 1988-2010 CadSoft
- 
- EagleNet SpiceNode
- 
* * *
- GND 0
- GATE GATE
- IN IN
- N$1 NDLR1
- N$2 NDLR2
- N$3 NDLR3
- N$4 NDLR4
- N$5 NDLR5
- N$6 NDLR6
- N$11 NDLR11
- OUT1 OUT1
- OUT3 OUT3
- OUT4 OUT4
- OUT5 OUT5
- VCC VCC
- 

.AC DEC 10 100 10G  
.INCLUDE S:/BF992.mod  
.OP  
.INCLUDE S:/ATF34143.mod  
.INCLUDE S:/NE25139.mod  
.OP  
C1 VCC 0 1u  
C2 OUT4 OUT5 1000n  
C3 NDLR4 0 100n  
C4 0 OUT1 100p  
C7 GATE IN 1000n  
C8 NDLR1 0 100n  
C11 NDLR2 OUT3 1000n  
R1 NDLR11 NDLR1 560k  
R2 OUT1 VCC 10k  
R3 OUT4 0 100  
R5 OUT1 NDLR2 260  
R6 OUT5 0 50  
R7 NDLR6 NDLR4 560k  
R8 NDLR4 OUT3 100Meg  
R10 NDLR1 GATE 100Meg  
R12 VCC NDLR5 10  
V1 NDLR5 0 5V  
V2 NDLR11 0 -0.15V  
V3 NDLR6 0 -0.15V  
V5 IN 0 -1V AC 1mV  
X1 0 NDLR3 GATE GATE BF992  
X2 NDLR3 OUT1 0 0 BF992  
X3 VCC OUT3 OUT4 ATF34143  
.PROBE  
.END

---

<div class="post-metadata">

**Author:** ![ubruhin](https://avatars.discourse-cdn.com/v4/letter/u/c89c15/32.png) [@ubruhin](https://librepcb.discourse.group/u/ubruhin)\
**Post date:** [November 29, 2024, 2:11pm UTC](https://librepcb.discourse.group/t/spice-netlist-export/851/5 "2024-11-29T14:11:31Z")

</div>

I know SPICE, but LibrePCB can’t know what \*.mod need to be exported in the netlist if the models aren’t part of our libraries. It needs a tight integration with our library concept to make this possible.

And I don’t like half-baked solutions with exporting incomplete netlists where the user has to somehow integrate models manually. It would not follow LibrePCB’s philosophy of an intuitive, easy-to-use tool with efficient workflows.
