Project Members

Mike Schoonover, hardware & software
Zenaido Delgado, UT alpha testing
Trey Brown, technical
Daryl Bolen, controls
Rick Girndt, ultrasonic
Curt Irvin, hardware & software
Fiona Zhang, software
You (yes, you!)

Contributing Companies



Java Source Code
Rabbit Source Code
DSP Source Code

Technical Reference

Eagle Board Layout Tutorial and Project Design Guidelines

ICAP/4 RX Tutorial



Issue List

Things we are working on adding or fixing!

click here

Meta Data

Quips, Quotes, & Definitions









A tutorial and FAQ for Intusoft's electronic simulation software.

ICAP/4 RX 8.8.9 Build 1726

ICAP was used to simulate the circuits for the Capulin Project.  Unfortunately, ICAP is not user friendly and the help and manuals are not very helpful.  This is especially true for the process of creating components.

Admittedly, our version was over 6 years old - hopefully the latest version is better.

General Tips

Selecting Components

To select components, you must first choose the "Normal" mode by clicking on the arrow icon in the vertical toolbar at the top right edge of the worksheet screen.  See Figure 1

Figure 1

When selecting components, click on them and hold the mouse button down for a second - there is a slight delay before the component will be selected.

If you select components while holding the shift key, previously selected components will stay selected.  If you move or delete any selected component of the group, the entire group will be affected.  To clear the selection, click on a blank spot on the worksheet before selecting a new component with shift-select.

Panning & Grouping

To pan, left click on a blank area and drag.  Creating a selection triangle is a bit tricky - the mouse must be moving BEFORE you left click to specify the corner of a selection rectangle.  If the mouse is not moving before the click, the pan function will be initiated instead.

Split Worksheet View

You can split the worksheet into two screens so that you can see two different areas at once.  Just above the "Normal" arrow icon in the vertical toolbar at the top right edge of the worksheet screen is a small gray bar.  Click on the bar and drag it down to create a split pane view of the worksheet.  To return to a single pane, click on the divider between the two panes and drag it all the way to the top of the window and release.


You can click on the "Wire/Bus Tool" icon as shown in Figure 1 to switch to the wire and bus placing mode (or press the "W" key).

Click on the "Probe" icon and then click on any component after running a simulation to see the voltages, currents, and other parameters for the component.  You must leave the simulation window open while doing this.

Using IntuScope

Open the oscilloscope (Actions/Scope), switch back to the schematic, then use the "Probe" function with shift-click and the waveform being probed will be sent to the scope.  The waveform will be sent to the currently opened window, adding to any waveform already in that window - this usually causes odd scaling to accommodate multiple waveforms on a single chart.  To display in different windows, shift-click to probe, switch to the scope, click "New/Graph", switch back the to schematic and shift-click on a new node.  The second waveform will be sent to the new graph.  Use "Window/Tile Horizontally" to arrange the graphs.

Displaying Operating Point Voltages

To display the voltages at each node, click on the "Show OP Values" icon after running a simulation.  This icon is in the tool bar at the top of the main ICAP window.  After running a simulation, always click the "Refresh OP Values" icon in the same toolbar.

Simulation Settings

Before running a simulation, you must setup a simulation by clicking on the "Simulation Setup" icon in the top toolbar.  Use the following tests:

Operating Point: Calculates voltages, currents, etc. as a static system.

AC Analysis: Simulates a range of frequencies.  At least one voltage source must have an AC component - see the help file.

DC Sweep: Simulates a range of voltages or currents.  You specify two sources which will be which will be swept across the specified range.

Transient: Use to simulate the circuit without sweeping frequencies, voltages, or currents.  Use this to view outputs on a simulate scope when feeding signals into the inputs with voltage/current sources.  This is most like viewing a real world circuit with an oscilloscope.

Problems with Long File Names

Do not use a filename with more than 32 characters.  Filenames longer than this will generate a "No Circuit to Simulate" error.  This may have been fixed in later versions.

Extremely long filenames will crash ICAP when the simulator is started.  A warning message "RCP Server Unavailable" will be displayed when an attempt is made to close or restart the program.

Use Windows task manager to delete the "Snet5.exe" process before attempting to restart ICAP after such a crash.

Simulation Warnings Regarding Diodes

For resistors, capacitors, and other generic components, you can choose them from the top menu via Parts/Passive (or Active)/Resistor (et al.).

The diode selected using this method does not have enough information filled in to be simulated and will generate an error.  Select a diode by using Parts/Parts Browser, then searching for something like "1n914" using the "Find"  button.

The simulator often generates a warning for diodes:

Warning: d2: breakdown current increased to 2.45838e-006 to resolve incompatibility with specified saturation current

This usually doesn't cause a problem, but can be avoided by editing the diode's model and setting the IBV parameter to a slightly larger value than that listed in the warning message.  For some reason, setting it to the exact amount does not always work - perhaps due to rounding errors.  For the above value, set IBV to 2.45839e-006 to prevent the warning.  The part models seem to be inaccurate for some reason.

Example Using AC Analysis and IntuScope

The simulator displays simple graphs of the test points in the circuit.  The IntuScope allows detailed calculations.  This example covers several key points for using the scope.

Create the following low pass filter circuit:

For V2, set AC property to 1, the value typically used for AC analysis.  R2 is 1 ohm, C2 is 1 Farad. 

The cutoff frequency (-3 dB) for a 1 ohm / 1 Farad filter is 1 radian/sec.  Note that this is NOT 1 hertz:

1 Hertz = 1 cycle/sec
1 cycle = 2pi radians
1 Hertz = 2pi radians/sec
1 radian/sec ~ 1/2pi ~ 0.159154 Hertz

Open the "Simulation Setup" window by icon, menu, or ctrl-E.  Click on "AC Analysis".

Set "No. of Points" to 1000, select "Decade", set starting frequency to .001, and ending frequency to 100.  Note that you cannot set either frequency to 0 even though it is useful to analyze a signal down to DC, so choose a very small number like .001 to approximate 0 Hertz (DC).

Start the simulator (Actions/Simulate), then  switch back to the ICAP window.  Open the scope (Actions/Scope), then  switch back to the ICAP window.  Choose the "Probe" tool.

Shift-click on test point Y2 to send the waveform to the scope.  Switch to the scope, maximize the main scope window then maximize the graph.

In the text box just below the lower left corner of the graph, enter "-3".  Click the "Y<-1" to move the #1 cursor to the -3dB point on the graph.

Note that the "X:" entry for cursor #1 will display "158.777", which is very close to the Hertz calculated above for 1 radian/sec.  Adjusting the starting simulation frequency and frequency step will result in an even more accurate value as the accuracy depends on how close a frequency step falls near to 0.159154 Hertz (1 radian/sec).

Note:  It is often useful to unlink the scaling of two waveforms displayed on the same graph.  Use "Scaling/Auto Scale & Unlink/All Traces (x&y)" or other option as desired.

Component Models

When a component is placed in the schematic, its model is copied from the library to the netlist.  If its properties are changed on the schematic, a modified copy of the model will be stored in the netlist.

If the component's model in the library is modified, such as by using the "Edit Model" button on the "Part Browser" window (Parts/Parts Browser), the change will not affect components already on the schematic unless the "Update Cache" button on the same window is subsequently clicked.  The user can select which components to update.

Note that when a component's properties in the library model are modified, it is not necessary to rebuild the library database with MakeDB.

Editing & Creating Component Models

Working with component models is explained in the WkwModels.pdf help file.  This can be opened by using "Start/All Programs/ICAP_4Rx/Working With Models".

In version "8.8.9 Build 1726", this manual states that the default diode model is located in the device.lib file, but it seems to be in the diode.lib file instead.

There are two ways to create a diode model - creating a detailed model from test data/datasheet or by supplying the VMAX (max voltage), IMAX (max current), and Trr (switching speed) to a macro which will roughly approximate the values to be used for the model.

Note that the macro creates a model that looks like the detailed model - it uses the three supplied values to calculate reasonable numbers.

The detailed model (and the model created by the macro) don't specify VMAX and IMAX - the simulator uses the other supplied values to calculate those.  The macro uses VMAX and IMAX to create the other values, but then VMAX and IMAX are not actually used in the final model - it is up to the simulator to reverse the calculations to arrive at the VMAX and IMAX values.

Obviously, the IBR value supplied in the detailed models provided in the libraries are not acceptable to the simulator - perhaps due to using older part libraries with a newer program version.

Detailed Model
*SRC=1N914;DN914;Diodes;Switching;100V 75mA
.MODEL DN914 D (IS=4.77E-10 N=1.59 BV=133.3 IBV=1.00E-07
+ RS=6.01E-01 CJO=4.00E-12 VJ=.75 M=.333 TT=5.76E-09)
* Unitrode 100 Volt 0.08 Amp 4.00 ns Si Switching Diode 07-01-1990


Generic Model Macro
*SRC=DIODE;DIODE;Generic Models;Diode;Rectifier
.SUBCKT DIODE 1 2 {VMAX=??? TRR=??? =???}
*Parameters: Vmax Maximum Voltage in Volts, Trr Reverse Recovery Time in Seconds
* Imax maximum current in Amps
D1 1 2 DIODE
+ BV={1.5*VMAX} IBV=1UA N=2 RS={.075/IMAX})


Detailed Model Created by a Macro

Macro Call in the Netlist:
(assumes editing the netlist via text editor - not sure how to do this in the schematic editor)

X1 5 6 DIODE {IMAX=1 TRR=3.5U VMAX=35}


D1 1 2 DIODE
.MODEL DIODE D(CJO=30.000P IS=5.0000N TT=5.0400U
+ BV=52.500 IBV=1UA N=2 RS=75.000M)

Creating a New Model Library

If it is absolutely necessary to create a new diode model, the macro can be first used to calculate the basic values.  The values can then be tweaked to force the model to match test data or the datasheet.

The component models are stored in text files (*.lib) in C:\spice8rx\pr

ICAP provides a text editor for editing the library files.  It is a good idea to create a new library to hold custom parts.  A simple way to do this, using a diode as an example, is the following:

Choose "Parts/Parts Browser" from the ICAP main  menu.

Browse or use the "Find" button to find a part similar to the one you wish to create.  For example, click the "Find" button and enter "1n914" and click "Find Next".  The "1n914" part will be highlighted.

Click the "Edit Model" button to open the editor, which is called "IsEd".  A small window will be displayed showing "Found *SRC=1N914;DN914".  This is not really a warning, click on the "OK" button to dismiss the window.

Choose "File/New" from the IsEd main  menu to create a new blank file.  Save this to the "C:\spice8rx\pr" folder with an appropriate name such as "My Parts.lib".

Warning:  If the editor has previously been used to edit other types of files, the default save location may not be "C:\spice8rx\pr" - be sure to browse to this folder before saving your file.

Copy the following from the "DIODE.LIB" file to the new file:

*SRC=1N914;DN914;Diodes;Switching;100V 75mA
.MODEL DN914 D (IS=4.77E-10 N=1.59 BV=133.3 IBV=1.00E-07
+ RS=6.01E-01 CJO=4.00E-12 VJ=.75 M=.333 TT=5.76E-09)
* Unitrode 100 Volt 0.08 Amp 4.00 ns Si Switching Diode 07-01-1990

Warning:  The asterisks in the first column seem to specify a comment to be ignored by the Spice language, but the ICAP program uses certain comments for information.  Thus you cannot simply comment out all the lines above to keep the example in your new file.  The *SRC line will still be detected and processed by ICAP and duplicate warnings/errors will be generated because the 1N914 will be both the "DIODE.LIB"  file and the new "My Parts.LIB".

Close the "DIODE.LIB" file without saving any changes.

As a test, change the information in the new library as shown in red:

*SRC=1N914z;DN914z;Diodes;Switching;100V 75mA
.MODEL DN914z D (IS=4.77E-10 N=1.59 BV=133.3 IBV=1.00E-07
+ RS=6.01E-01 CJO=4.00E-12 VJ=.75 M=.333 TT=5.76E-09)
* Unitrode 100 Volt 0.08 Amp 4.00 ns Si Switching Diode 07-01-1990

Save the file and start the database compiler by using "Start/All Programs/ICAP_4Rx/MakeDB".  Set "Compile Options" to "Both" and click "Compile".

Examine the output for errors and fix any problems.

In ICAP, browse for your new part "1n914z", place it on the schematic, and verity its properties.  You should now be able to rename and use the diode and tweak it's properties in the text file.  You can also add more parts to the library.

Creating a Diode Model

Near the bottom of the "DIODE.LIB" file is the macro for creating a new diode from VMAX (maximum reverse voltage), TRR (reverse recovery time), and IMAX (maximum forward current):

*SRC=DIODE;DIODE;Generic Models;Diode;Rectifier
.SUBCKT DIODE 1 2 {VMAX=??? TRR=??? IMAX=???}
*Parameters: Vmax Maximum Voltage in Volts, Trr Reverse Recovery Time in Seconds
* Imax maximum current in Amps
D1 1 2 DIODE
+ BV={1.5*VMAX} IBV=1UA N=2 RS={.075/IMAX})

Calling this macro in a net list is explained in the manual accessed by "Start/All Programs/ICAP_4Rx/Working With Models".

For a diode with a max forward voltage of 0.42V, max forward current of 100mA, and a reverse recovery time of 1 nanosecond, the following line would be added to the net list:

X1 5 6 DIODE {IMAX=.1 TRR=0.000000001 VMAX=.42}

This creates a rough estimate for the diode.  For better accuracy, you create a new diode model from scratch and fill in all the values from test data or the data sheets - not an easy task.

Note: The above procedure does not work very well with ICAP.  ICAP uses the schematic file (*.dwg) for input and does not read in the netlist text file.  In fact, it overwrites the netlist file with data from the schematic whenever the simulator is started.  Short of invoking the simulator manually with the text netlist file, there is no obvious way to edit the netlist file and use it in the ICAP environment.

As noted above, calling the macro from the netlist is not very useful when you are using schematic entry in ICAP.  It is easier to create a diode model from scratch by manually performing the same calculations that the macro would use.  This also allows the tweaking of certain values which is not plausible when inserting the macro call as described above.

Looking at the macro or the explanation in the manual, it can be determined that the following equations are used:

CJO = 30P * IMAX    (30P = 30 * 1e-12 = 0.00000000003)
IS = 5N * IMAX         (5N = 5 * 1E-9 = 0.000000005)
TT = 1.44 * TRR
BV = 1.5 * VMAX
IBV = 1UA               (1U = 1 * 1E-6 = 0.000001) ["A" for Amps can be dropped]
N = 2
M = .5
VJ = 1
RS = .075 / IMAX

click here for definitions of the suffixes above

For the Panasonic MA27D29 Schottky Barrier Diode with a max forward voltage of 0.42V, max forward current of 100mA, and a reverse recovery time of 1 nanosecond, the following model would be added to the new library:

*SRC=MA27D29;DMA27D29;Diodes;Schottky;30V 100mA
.MODEL DMA27D29 D (CJO=3P IS=1.3E-04 TT=1.44N BV=45 IBV=0.226182
+ N=2 M=.5 VJ=1 RS=.75 EG=.69 XTI=2.0)
* Panasonic MA27D29 30 Volt 100mA Si Schottky Diode
IS and IBV have been adjusted from the calculated values as explained below.

Note that the "A" for Amps suffix on IBV can be dropped.  This is true for all units suffixes such as "F" for Farads, etc.

The datasheet specifies that the voltage drop at 100mA should be 0.42V.  Using a series resistor to establish a 100mA forward current, the simulated circuit showed a significantly higher voltage drop.  As explained above, the manual stated that IS would normally be much higher for a Schottky diode.  Using this hint, IS was adjusted upwards until the voltage drop met the real world spec. 

See Crash on Invalid Diode Parameters if the simulator crashes after adjusting IS.

As described in a previous section, the simulator warned that it was adjusting IBV upwards to match the change to IS.  After finding a satisfactory IS value, the IBV value was adjusted to eliminate the warning.  As noted previously, IBV had to be increased just slightly above the level specified in the simulator warning: the simulator adjusted to IBV=0.226181 while the model had to be set to IBV=0.226182 to avoid the warning.

Unit Suffix Abbreviations

The following abbreviations are used by Spice4:

G = 1E9
MEG = 1E6
K = 1E3
M = 1E-3
U = 1E-6
N = 1E-9
P = 1E-12
F = 1E-15

Multiply the appropriate value above with the number before the prefix to arrive at the final value:

5K = 5 * 1000 = 5000

3P = 3 * 0.000000000001 = 0.000000000003

Defaults of TSTEP and TSTOP

To create a sine wave generator, pulse generator, or similar, place a voltage source using "Parts/V" or by pressing the "V" key.  Double click on the source, click on "none" by the "Tran Generators" entry, then click on the "Enter" button that appears. ("Tran" stands for "transient")  Several options will appear in a window for creating transient waveforms.

The help files show that certain values left unfilled will default to TSTOP or TSTEP.  These are not constants which can be adjusted, rather they are the values you later enter for the "Data Step Time" (TSTEP) and "Total Analysis Time" (TSTOP) for the "Transient Analysis" window from the "Simulation Setup" window.  By using these values for defaults, the simulator assures that the analysis time length and sample resolution will be proper to display the waveform.

However, the frequency and/or period of the waveform will now change depending upon the simulation parameters so it is probably best not to leave values as default.  After specifying explicit frequency and/or period values for a waveform, make sure TSTEP is small enough to get several samples within the smallest pulse or cycle.

Simulator Crashes

Sometimes the simulator window will flash briefly and then disappear with no message.  It seems to crash when certain values are calculated - perhaps due to a divide by zero error or similar.

Crash on Invalid Diode Parameters

One example of this is when IS is edited for a diode to increase the simulated forward voltage.  A forward biased diode such as this might not cause an error, but the reverse diode may cause a crash when the voltage across it reaches the point where the forward biased diode would be at maximum forward current.

Adjusting IS slightly may fix this problem.


back to main project page