• WARNING: Tube/Valve amplifiers use potentially LETHAL HIGH VOLTAGES.
    Building, troubleshooting and testing of these amplifiers should only be
    performed by someone who is thoroughly familiar with
    the safety precautions around high voltages.

Vacuum Tube SPICE Models

I create tube models of my own tubes by using a Tube tracer developed by a Dutch engineer (Ronald Dekker) and an ExtractProgram from Derk Reefman using the Tube tracer data. This results in an exact model for LTSpice and the project I want to realise. Many audiophiles have built their Tube Tracer, called uTracer, over the whole world. I give here the link to the site where you can find all info about this super device. (The uTracer, a miniature Tube Tester / Curve Tracer.).
 
So, I haven't looked around yet, so pardon my laziness, but anyone have a spice model for the KT120 from TungSol?
I haven't tested this, but here ya go...
Code:
.SUBCKT KT120   1 2 3 4 ; A G2 G1 C
* New Sensor website
* library format: LTSpice 19-Sep-2008
X1 1 2 3 4 PENTODE1 MU=9.14 EX=1.350 KG1=612.3 KG2=4500 KP=31.40 KVB=20.0 VCT=0.00 RGI=1000 CCG=29.0p CPG1=1.8p CCP=10.0p ; 
.ENDS    KT120

.SUBCKT PENTODE1 1 2 3 4 ; A G2 G1 C
RE1  7 0  1MEG    ; DUMMY SO NODE 7 HAS 2 CONNECTIONS
E1   7 0  VALUE={V(2,4)/KP*LOG(1+EXP((1/MU+V(3,4)/V(2,4))*KP))}    ; E1 BREAKS UP LONG EQUATION FOR G1.
G1   1 4  VALUE={(PWR(V(7),EX)+PWRS(V(7),EX))/KG1*ATAN(V(1,4)/KVB)}
G2   2 4  VALUE={(EXP(EX*(LOG((V(2,4)/MU)+V(3,4)))))/KG2}
* G2   2 4  VALUE={PWR(V(2,4)/MU+V(3,4),EX)/KG2}
RCP  1 4  1G      ; FOR CONVERGENCE    A  - C
C1   3 4  {CCG}   ; CATHODE-GRID 1    C  - G1
C2   1 3  {CPG1}  ; GRID 1-PLATE    G1 - A
C3   1 4  {CCP}   ; CATHODE-PLATE    A  - C
R1   3 5  {RGI}   ; FOR GRID CURRENT    G1 - 5
D3   5 4  DX      ; FOR GRID CURRENT    5  - C
.ENDS PENTODE1
If this model doesn't work for you in TINA, let me know. :)
 
Here's a triode connected KT120 I found on Tube DIY Asylum
Code:
* KT120So2k8 LTSpice model
* Modified Koren model (8 parameters): mean fit error 1.664mA
* Traced by erik 25/12/2013 using Curve Captor v0.9.1
* from sofia tracer
* kt120so2 LTSpice model
.subckt kt120so2k8 P G K
Bp P K I=(0.09616726061m)*uramp(V(P,K)*ln(1.0+(-0.1983471212)+exp((0.5067247971)+(0.5067247971)*((28.86336585)+(2.153515075m)*V(G,K))*V(G,K)/sqrt((-0.1596450898)**2+(V(P,K)-(-9.567928489))**2)))/(0.5067247971))**(1.391876027)
Cgk G K 10.2p ; 0.2p added
Cpk P K 9.3p ; 0.5p added
Cgp G P 29.5p ; 0.5p added
Rpk P K 1G ; to avoid floating nodes
d3 G K dx1
.model dx1 d(is=1n rs=2k cjo=1pf N=1.5 tt=1n)
.ends
 
I create tube models of my own tubes by using a Tube tracer developed by a Dutch engineer (Ronald Dekker) and an ExtractProgram from Derk Reefman using the Tube tracer data. This results in an exact model for LTSpice and the project I want to realise. Many audiophiles have built their Tube Tracer, called uTracer, over the whole world. I give here the link to the site where you can find all info about this super device. (The uTracer, a miniature Tube Tester / Curve Tracer.).

That looks like a fun project! thanks.
 
I haven't tested this, but here ya go...
Code:
.SUBCKT KT120   1 2 3 4 ; A G2 G1 C
* New Sensor website
* library format: LTSpice 19-Sep-2008
X1 1 2 3 4 PENTODE1 MU=9.14 EX=1.350 KG1=612.3 KG2=4500 KP=31.40 KVB=20.0 VCT=0.00 RGI=1000 CCG=29.0p CPG1=1.8p CCP=10.0p ; 
.ENDS    KT120

.SUBCKT PENTODE1 1 2 3 4 ; A G2 G1 C
RE1  7 0  1MEG    ; DUMMY SO NODE 7 HAS 2 CONNECTIONS
E1   7 0  VALUE={V(2,4)/KP*LOG(1+EXP((1/MU+V(3,4)/V(2,4))*KP))}    ; E1 BREAKS UP LONG EQUATION FOR G1.
G1   1 4  VALUE={(PWR(V(7),EX)+PWRS(V(7),EX))/KG1*ATAN(V(1,4)/KVB)}
G2   2 4  VALUE={(EXP(EX*(LOG((V(2,4)/MU)+V(3,4)))))/KG2}
* G2   2 4  VALUE={PWR(V(2,4)/MU+V(3,4),EX)/KG2}
RCP  1 4  1G      ; FOR CONVERGENCE    A  - C
C1   3 4  {CCG}   ; CATHODE-GRID 1    C  - G1
C2   1 3  {CPG1}  ; GRID 1-PLATE    G1 - A
C3   1 4  {CCP}   ; CATHODE-PLATE    A  - C
R1   3 5  {RGI}   ; FOR GRID CURRENT    G1 - 5
D3   5 4  DX      ; FOR GRID CURRENT    5  - C
.ENDS PENTODE1
If this model doesn't work for you in TINA, let me know. :)

Thanks, but no, it doesn't compile or what ever macros do to become something useful in Tina. I think Tina only recognizes "P" for plate, for one thing. I don't have any information about Tina's macro language so I'm completely clueless except for banging my head against the wall.
 
I made "P" and "K" consistent throughout and it still doesn't work:

.SUBCKT KT120 1 2 3 4 ; P G2 G1 K
* New Sensor website
* library format: LTSpice 19-Sep-2008
X1 1 2 3 4 PENTODE1 MU=9.14 EX=1.350 KG1=612.3 KG2=4500 KP=31.40 KVB=20.0 VCT=0.00 RGI=1000 CCG=29.0p CPG1=1.8p CCP=10.0p ;
.ENDS KT120

.SUBCKT PENTODE1 1 2 3 4 ; P G2 G1 K
RE1 7 0 1MEG ; DUMMY SO NODE 7 HAS 2 CONNECTIONS
E1 7 0 VALUE={V(2,4)/KP*LOG(1+EXP((1/MU+V(3,4)/V(2,4))*KP))} ; E1 BREAKS UP LONG EQUATION FOR G1.
G1 1 4 VALUE={(PWR(V(7),EX)+PWRS(V(7),EX))/KG1*ATAN(V(1,4)/KVB)}
G2 2 4 VALUE={(EXP(EX*(LOG((V(2,4)/MU)+V(3,4)))))/KG2}
* G2 2 4 VALUE={PWR(V(2,4)/MU+V(3,4),EX)/KG2}
RCP 1 4 1G ; FOR CONVERGENCE A - C
C1 3 4 {CKG} ; CATHODE-GRID 1 C - G1
C2 1 3 {CPG1} ; GRID 1-PLATE G1 - A
C3 1 4 {CKP} ; CATHODE-PLATE A - C
R1 3 5 {RGI} ; FOR GRID CURRENT G1 - 5
D3 5 4 DX ; FOR GRID CURRENT 5 - C
.ENDS PENTODE1

It shows up in Tina as some kind of weird thing that I don't recognize.
 
Administrator
Joined 2004
Paid Member
I create tube models of my own tubes by using a Tube tracer developed by a Dutch engineer (Ronald Dekker) and an ExtractProgram from Derk Reefman using the Tube tracer data. This results in an exact model for LTSpice and the project I want to realise. Many audiophiles have built their Tube Tracer, called uTracer, over the whole world. I give here the link to the site where you can find all info about this super device. (The uTracer, a miniature Tube Tester / Curve Tracer.).

Well known here, several of us have one. I find mine extremely useful, can't imagine a more useful tool for characterizing tubes and also creating models for spice.
I have not yet tried Derk's algorithms, but plan to relatively soon when I return from phono pre-amp design hell.. :D
 
I made "P" and "K" consistent throughout and it still doesn't work:

It shows up in Tina as some kind of weird thing that I don't recognize.

Sorry about that. This one works in TINA.
Code:
* KT120 Pentode
* New Sensor website
* library format: LTSpice 19-Sep-2008
* Connections:
*               Plate
*               | Screen
*               | | Grid
*               | | | Cathode
*               | | | |
.SUBCKT KT120   1 2 3 4
+ PARAMS: MU=9.14 EX=1.350 KG1=612.3 KG2=4500 KP=31.40 KVB=20.0
+ VCT=0.00 RGI=1000 CCG=29.0p CPG1=1.8p CCP=10.0p
RE1  7 0  1MEG    ; DUMMY SO NODE 7 HAS 2 CONNECTIONS
E1   7 0  VALUE={V(2,4)/KP*LOG(1+EXP((1/MU+V(3,4)/V(2,4))*KP))} ; E1 BREAKS UP LONG EQUATION FOR G1.
G1   1 4  VALUE={(PWR(V(7),EX)+PWRS(V(7),EX))/KG1*ATAN(V(1,4)/KVB)}
G2   2 4  VALUE={(EXP(EX*(LOG((V(2,4)/MU)+V(3,4)))))/KG2}
* G2   2 4  VALUE={PWR(V(2,4)/MU+V(3,4),EX)/KG2}
RCP  1 4  1G      ; FOR CONVERGENCE    A  - C
C1   3 4  {CCG}   ; CATHODE-GRID 1    C  - G1
C2   1 3  {CPG1}  ; GRID 1-PLATE    G1 - A
C3   1 4  {CCP}   ; CATHODE-PLATE    A  - C
R1   3 5  {RGI}   ; FOR GRID CURRENT    G1 - 5
D3   5 4  DX      ; FOR GRID CURRENT    5  - C
.MODEL DX D(IS=1N RS=1 CJO=10PF TT=1N)
.ENDS KT120
 
Ex-Moderator
Joined 2011
Someone is looking for a pentode model for type 32 over at yahoo groups, could one of the uTracer users be kind enough to trace one and generate a model for him? He is particular interested in the low plate voltage region, so none of the tools like Ayumi, PaintModelTool works...

An externally hosted image should be here but it was not working when we last tested it.
 
Last edited:
Ex-Moderator
Joined 2011
As usual, I use the Ayumi model, here is the comparison with the Philips datasheet:

An externally hosted image should be here but it was not working when we last tested it.


Here is the model:
Code:
*
*
* Generic triode model: ECC88
* Copyright 2003--2008 by Ayumi Nakabayashi, All rights reserved.
* Version 3.10, Generated on Sat Mar  8 22:42:43 2008
*             Plate
*             | Grid
*             | | Cathode
*             | | |
.SUBCKT ECC88 A G K
BGG   GG   0 V=V(G,K)+0.34001426
BM1   M1   0 V=(0.009343174*(URAMP(V(A,K))+1e-10))**-0.49661195
BM2   M2   0 V=(0.75127268*(URAMP(V(GG)+URAMP(V(A,K))/26.621288)+1e-10))**1.9966119
BP    P    0 V=0.007130155*(URAMP(V(GG)+URAMP(V(A,K))/35.434921)+1e-10)**1.5
BIK   IK   0 V=U(V(GG))*V(P)+(1-U(V(GG)))*0.0041180199*V(M1)*V(M2)
BIG   IG   0 V=0.0035650775*URAMP(V(G,K))**1.5*(URAMP(V(G,K))/(URAMP(V(A,K))+URAMP(V(G,K)))*1.2+0.4)
BIAK  A    K I=URAMP(V(IK,IG)-URAMP(V(IK,IG)-(0.0038690245*URAMP(V(A,K))**1.5)))+1e-10*V(A,K)
BIGK  G    K I=V(IG)
* CAPS
CGA   G    A 1.4p
CGK   G    K 3.3p
CAK   A    K 1.8p
.ENDS
 
Last edited:
As usual, I use the Ayumi model, here is the comparison with the Philips datasheet:

An externally hosted image should be here but it was not working when we last tested it.


Here is the model:
Code:
*
* Generic triode model: ECC33
* Copyright 2003--2008 by Ayumi Nakabayashi, All rights reserved.
* Version 3.10, Generated on Sat Mar  8 22:42:38 2008
*             Plate
*             | Grid
*             | | Cathode
*             | | |
.SUBCKT ECC33 A G K
BGG   GG   0 V=V(G,K)+0.39854224
BM1   M1   0 V=(0.00456874*(URAMP(V(A,K))+1e-10))**-0.2251333
BM2   M2   0 V=(0.86949802*(URAMP(V(GG)+URAMP(V(A,K))/28.564106)+1e-10))**1.7251333
BP    P    0 V=0.001087821*(URAMP(V(GG)+URAMP(V(A,K))/32.85126)+1e-10)**1.5
BIK   IK   0 V=U(V(GG))*V(P)+(1-U(V(GG)))*0.00070978374*V(M1)*V(M2)
BIG   IG   0 V=0.00054391049*URAMP(V(G,K))**1.5*(URAMP(V(G,K))/(URAMP(V(A,K))+URAMP(V(G,K)))*1.2+0.4)
BIAK  A    K I=URAMP(V(IK,IG)-URAMP(V(IK,IG)-(0.00059395688*URAMP(V(A,K))**1.5)))+1e-10*V(A,K)
BIGK  G    K I=V(IG)
* CAPS
CGA   G    A 2.5p
CGK   G    K 3.5p
CAK   A    K 1.5p
.ENDS

Your model is for the ECC33. I didn't think this was equivalent to the ECC88 (6DJ8/6922).