I do many circuits design and simulations in Proteus and it is a great software but with complex circuits such as RF circuits, power electronics circuit and other high-speed switching circuits at configured at high frequency, it just crashes. Actually, I think proteus was not targeted for high frequency circuit simulation such as AM or FM circuits. For example, when I tried to simulate the AM Transmitter with Arduino and MC1496 RF Mixer circuit or the Buck Converter design with Arduino circuit, the proteus software simply crashed. The error or warning is mostly the "Timestep too small" and "GMIN stepping" errors. I tried by changing simulation setting many times but could not find optimized settings that works all the time. Now I think I have found the solutions, the right setting for high-speed switching circuit, high frequency complex circuit simulation in Proteus. So, I am writing this note as a record so that I can always come back and look at the setting it worked for me.
There are two simulation configuration setting windows, the Animation and Simulation (SPICE) shown below.
The Simulation Settings (SPICE) are the "brain" calculating the physics, but the Animation Settings are the "lens" through which you are watching. If the lens is blurry or too slow, you won't see the real behavior of circuit behavior, for example a PID loop. So, we have to adjust both the settings.
Animation Setting
On the Animation setting, look for the followings.
1. Preventing "Visual Lag"
If your Frames per Second (FPS) is set too low (e.g., 10 or 15), but your Arduino code is updating the Serial Monitor every 500ms, the numbers might appear to jump or stutter.
Recommended: Keep FPS at 20 or 25. This makes the voltage meter and Serial Monitor feel "real-time."
2. The "Timestep per Frame" vs. Real Time
If your Timestep per Frame is too large (like 50ms in certain circuit simulation), Proteus tries to "skip ahead" to keep up with real-world time. In a high-speed switching circuit:
If the "skipped" time contains a massive PWM change, the simulation might suddenly "teleport" the voltage from 4V to 8V.
The Fix: If the simulation feels "choppy," try reducing Timestep per Frame to 10m or 20m. This forces the animation to be smoother, though it might make the simulation run slower than real life (e.g., 1 second of simulation takes 2 seconds of real time).
3. Optimize the Timestep (The Most Important Part)
The "Max. SPICE Timestep" is currently at 25ms. This is way too slow for a circuit switching, for example, simulation of Arduino buck converter at ~31kHz. The simulation is likely skipping thousands of PWM cycles between calculations.
Change "Max. SPICE Timestep" to:
10u(10 microseconds) or at least 100u.Why: A high frequency signal like 31kHz PWM cycle happens every 32 microseconds. If your timestep is 25ms, the simulator is "blind" to what the MOSFET is doing most of the time.
Simulation (SPICE) setting
The simulation setting window is the "Engine Room" of the simulator. Changing these values can make the simulation much more "forgiving" so it doesn't crash when your MOSFET switches.
1. Relax the Tolerances
[RELTOL] (Relative error tolerance): Change from
0.001to0.01.Why: This allows for a 1% margin of error in calculations instead of 0.1%, which stops the simulator from panicking over tiny spikes.
[ABSTOL] (Absolute current error): Change from
1e-012to1e-006.[VNTOL] (Absolute voltage error): Change from
1e-006to1e-003.
2. Stability Boosters
[GMIN] (Minimum conductance): Change from
1e-012to1e-009.Why: This places a very high-value "invisible resistor" across every node to prevent the math from reaching "infinity" when a switch opens.
[TRANGMIN] (Minimum transient conductance): Change from
1e-009to1e-007.
3. The "Transient" Tab
However, we can fix your "Timestep too small" error right here on the screen you just shared.
Change these two values to stop the "Panic" crashes:
[TRTOL] (Truncation error over-estimation): Change from 7 to 15.
Why: This tells the simulator to be less "strict" when it sees a sudden voltage spike from your MOSFET.
[TMIN] (Minimum Analogue Timestep): Change from 1e-018 to 1e-012.
Why: This is the most important fix. Your error message said the timestep was getting too small. By setting a "floor" at $10^{-12}$, you stop the simulator from trying to calculate "impossible" numbers.
4. Boost the Iteration Limits
Go to Iteration tab and make sure GEAR method is selected as integration method. GEAR method is much better for power electronics like your Buck converter because it suppresses the "ringing" (oscillation) that usually crashes the simulator.
That is change
[ITL4] (Upper transient iteration limit): Change from 10 to 40.
Summary of the "Stable Proteus" Setup
Here is the "Golden Ratio" of settings for your project:
1. Simulation (SPICE) Settings
Access these via System -> Set Simulator Options.
| Category | Parameter | Recommended Value | Why? |
| Tolerances | RELTOL | 0.01 | Allows 1% error; prevents crashing on tiny spikes. |
| Tolerances | VNTOL | 1m | 1mV precision is plenty for a 12V system. |
| Tolerances | GMIN | 1e-9 | Prevents "infinite resistance" math errors. |
| Iteration | METHOD | GEAR | Critical. Handles switching circuits better than TRAPEZ. |
| Iteration | ITL4 | 40 | Gives the solver more "tries" to fix a complex step. |
| Transient | TRTOL | 15 | Reduces sensitivity to rapid voltage changes. |
| Transient | TMIN | 1e-12 | Prevents the "Timestep too small" panic error. |
2. Animation Settings
Access these via System -> Set Animation Options.
| Parameter | Recommended Value | Effect |
| Frames per Second | 20 | Standard "smooth" video speed for meters/Serial. |
| Timestep per Frame | 10m to 20m | Forces the solver to calculate more steps per visual frame. |
| Single Step Time | 1m | Allows you to "advance" time in 1ms increments. |
| Max. SPICE Timestep | 10u | Crucial. Must be smaller than your PWM period (32us). |
I hope this will be useful to others who want to do simulation of high speed, high frequency circuit.



