Hello friends, I hope you all are doing great. Today, I am going to share the new Micro Linear Stepper Motor Library for Proteus V1.0. A micro linear stepper is a tiny 15 mm stepper motor whose shaft is a lead screw: as the shaft turns, a little brass slider travels along the screw. You find it in camera sliders, the sled of a DVD drive, camera lens drives, syringe pumps and small robot grippers - wherever something must move a few centimetres in very fine, repeatable steps.

Updates

Micro Linear Stepper Motor Library for Proteus

Latest version: V1.0 (November 2026, this tutorial)

Other motors: SG90 Servo · TT Gear Motor · 28BYJ-48 Stepper · NEMA 17 Stepper · MG996R Servo · N20 Encoder Motor · JGA25-370 Encoder Motor · FS90R 360 Servo · 130 DC Motor · A2212 Brushless · X27.168 Gauge · Analog Panel Meter · DC Tachogenerator · LM393 Speed Sensor · MG90S Servo · DS3218 Servo · L12 Linear Servo · JGB37-520 Motor · RS-775 Motor · JGY-370 Worm Motor · 12V Linear Actuator · Coin Vibration Motor · Mini Submersible Water Pump · 12V Peristaltic Pump · 4-Pin PC Fan · 12V Push-Pull Solenoid · NEMA 23 Stepper Motor · TYJ50 Synchronous Motor · Quartz Clock Movement · Air-Core Gauge · Electromechanical Counter · Split-Flap Display · Electric Bell · Wind Turbine · 8520 Coreless Motor · Car Wiper Motor · Car Door Lock Actuator · 12V Solenoid Water Valve · 12V Holding Electromagnet

Motor drivers: L298 · L9110S · TB6612FNG · BTS7960 · A4988 / DRV8825 · 28BYJ-48 + ULN2003 · PCA9685 Servo · Relay Module · 30A Brushless ESC · TB6600 Stepper Driver

Helping Tools

This library gives the micro linear stepper a part of its own in Proteus. Its two coils sit in your circuit with their resistance, inductance and back-EMF, so any driver runs it: our A4988 or DRV8825 set to a low current, an L9110S, a DRV8833 or an L298N at 5 V. The slider moves on your schematic, stops at its two end stops, holds its position with the power off because the screw cannot be pushed back, and loses steps when it is jammed or overloaded - like the real one. A pop-up window draws the slider and the coil currents live. The demo runs on our Arduino UNO V4.0 with our A4988.

NOTICE: a linear stepper is a stepper, a screw and a slider, and each of them has its own habits - the steps, the end stops, the screw that holds by itself. We modelled all three so the simulation behaves like the little mechanism on your bench. Our team put a lot of effort into it. Your feedback is the fuel that keeps us going, so please tell us what you think in the comments below or in the Motor Driver board of our forum. And if our free libraries help you, you can buy us a coffee. So, let's get started with the Micro Linear Stepper Motor Library for Proteus V1.0:

Figure: The Micro Linear Stepper Motor Library for Proteus: the Arduino UNO V4.0 steps our A4988, and the slider moves out at 15 mm/s with both coil LEDs lit.

What is a Micro Linear Stepper Motor?

A micro linear stepper is a small permanent-magnet stepper motor, usually 15 mm in diameter, with two coils and four wires, mounted at one end of a U-shaped steel frame. Its shaft is a long threaded rod - a lead screw - that runs the length of the frame, and a brass nut, the slider, rides on it. The frame keeps the slider from turning, so when the screw turns the slider has to move along it. The common type has an M3 x 0.5 screw: one turn moves the slider 0.5 mm.

The micro linear stepper at a glance
Micro linear stepper (the model)
Motor15 mm permanent-magnet can stepper, bipolar, two phases (coils A and B)
Step angle18 degrees - 20 full steps per turn
Coilabout 15 ohm and 6 mH - 0.33 A at 5 V
Lead screwM3 x 0.5: 0.5 mm a turn, 0.025 mm a full step, 40 full steps a millimetre
Stroke80 mm (property STROKE, 10 - 80 mm)
Thrustabout 9 N at 0.33 A
WiresA+ black, A- green, B+ red, B- blue (colours and pads vary by maker)

Fine Steps from a Coarse Motor

The little motor itself is coarse: only 20 steps a turn, against the 200 of a NEMA 17. The screw makes up for it. With 0.5 mm a turn, one full step moves the slider just 0.025 mm, and with an A4988 at 1/4 microsteps a step is 6.25 micrometres - 160 steps a millimetre. The screw is also a gearbox: it turns the motor's few millinewton-metres into a push of several newtons. That is why such a small motor can push a lens, a syringe plunger or a camera across a slider.

A Screw That Holds by Itself

A fine screw like M3 x 0.5 is self-locking: the motor can turn it to push the slider, but a force on the slider cannot turn it back. So unlike a rotary stepper, a linear stepper keeps its position with the power off. A machine can switch the driver off between moves, and the motor stays cool, without the slider drifting away.

End Stops and Homing

The slider can only travel between the two end plates of the frame. Drive it further and it stops dead against the plate, while the coils go on stepping: the motor buzzes and the extra steps are lost. Cheap devices use exactly this to find their zero - they run the slider in further than it can go, and wherever it stops is 0. A real CNC uses a limit switch; a DVD drive or a lens often just stalls against its stop. Our model has both stops and loses the steps the same way.

What's New in Micro Linear Stepper Motor Library for Proteus V1.0

  • A part of its own: wire it to any driver - our A4988 or DRV8825, an L9110S, a DRV8833 or an L298N.
  • Coils in the circuit: resistance, inductance and back-EMF of both coils, solved with the driver at every analog step.
  • A lead screw and a slider: 0.025 mm a full step, the slider moving on the schematic over an 80 mm stroke, with a mm ruler under it.
  • End stops: the slider stops at 0 mm and at the stroke, and the steps beyond are lost - homing works as on the real part.
  • A self-locking screw and a load: an axial load on the slider (property LOAD or the pop-up), a 40 N jam with a click on the slider, and a slider that stays put when released.
  • It reads its driver: full, half, wave and 1/4 - 1/32 microsteps from the coil currents, with the step rate, the direction and every lost step.
  • A pop-up window with four pages - Slider, Graphs, Event log and Check.
  • An A4 demo on our Arduino UNO V4.0 with our A4988 at 0.33 A and a potentiometer.

The Micro Linear Stepper in Proteus

Figure: The part as the library draws it, moving out at 15 mm/s: coil A green, coil B red, the slider at 48.98 mm on the ruler.

Search linear in Pick Devices; the device MICROLINSTEPTEP is in TEPMICROLIN.LIB (category Electromechanical, Stepper Motors) and its model is TEPMICROLIN.DLL. It is drawn from above: the silver 15 mm can with its end cap and the amber flex board where the four wires solder on, the zinc-plated U frame with its two end plates, the lead screw down the middle and the brass slider with its two mounting holes. The four wires - B- blue, B+ red, A+ black and A- green - run to the pins on the left.

At Run the slider slides along the screw to its simulated position, and the screw's thread moves as it turns. A small red mark on the slider reads the mm ruler under the frame. The coil LEDs A and B light green while the coil's current flows from + to - and red when it flows the other way. Under the plate the strip shows the position, the speed with its direction, the coil steps, and the OPEN PANEL button. The plate, the LEDs, the ruler and the strip are TEP additions; the real motor has none of them.

The Pins and the Properties

The four wires (find the pairs of a real motor with a multimeter: about 15 ohm within a coil)
PinWireWhat the model does with it
A+ / A-black / greencoil A: 15 ohm, 6 mH and its back-EMF in the circuit
B+ / B-red / bluecoil B: the same
Double-click the motor to change them; every run starts again from the properties
PropertyDefaultWhat it does
LOAD0an axial load on the slider in N (it pushes about 9 N at 0.33 A)
START0the slider's position at the start in mm (0 = against the motor-end stop)
STROKE80the travel in mm (10 - 80)

A Click on the Slider: a Jam

Click the slider while the simulation runs and a red stop appears against it: a 40 N jam, far more than the motor can push. Every step you send now is lost. The pop-up's toolbar also puts a steady load of 2, 5 or 8 N on the slider, so you can find out how fast your ramp can go with a real job on it.

Download Micro Linear Stepper Motor Library for Proteus

Click the button below to download Micro-Linear-Stepper-Motor-Library-for-Proteus-v1.0.zip (about 1.2 MB, without the source code of the models):

Micro Linear Stepper Motor Library for Proteus V1.0
  • README.txt: installation, the demo, the wiring, the properties, real hardware, troubleshooting and the limits.
  • Proteus Library Files: TEPMICROLIN.LIB and ArduinoV4TEP.LIB from our Arduino Library for Proteus V4.0.
  • Proteus Model Files: TEPMICROLIN.DLL and TEPARDUINO.DLL.
  • Proteus Simulation: Micro-Linear-Stepper-A4988-ArduinoUnoV4.pdsprj, Linear_Stepper_Demo.hex and copies of the two DLLs.
  • Arduino Code: Linear_Stepper_Demo.ino (no library needed).

Important: the A4988 driver of the demo is not in this package. It is our separate A4988 / DRV8825 Stepper Motor Driver Library for Proteus: download it from its own article and install its TEPSTEPPER.LIB and TEPSTEPPER.DLL first, then this library.

No Proteus yet? Read How to Download and Install Proteus 7 and 8. New to libraries? Follow How to Install a New Library in Proteus.

How to Install Micro Linear Stepper Motor Library for Proteus

  1. Close Proteus and extract the whole zip file, for example to your Desktop.
  2. Copy TEPMICROLIN.LIB and ArduinoV4TEP.LIB from Proteus Library Files into the LIBRARY folder of Proteus (usually C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\LIBRARY).
  3. Copy TEPMICROLIN.DLL and TEPARDUINO.DLL from Proteus Model Files into the MODELS folder. The two Arduino files are the ones of our Arduino Library V4.0; if you have it, they are the same.
  4. For the demo, install our A4988 / DRV8825 library the same way: TEPSTEPPER.LIB into LIBRARY and TEPSTEPPER.DLL into MODELS.
  5. Delete TEPMICROLIN.IDX from the LIBRARY folder if it is there.
  6. Start Proteus, press P and search for linear.

Tip: keep the Proteus Simulation folder together, because the project needs its .hex file and the DLLs beside it. The library is tested in Proteus 8.5; Proteus 7 is not supported.

The Demo Circuit

Figure: The demo project on its A4 sheet: ARD1, the A4988 DRV1 on +12V at 0.33 A, the linear stepper M1 holding at 32.06 mm and RV1 at 40 %.

Open Micro-Linear-Stepper-A4988-ArduinoUnoV4.pdsprj. ARD1 is an Arduino UNO V4.0 from our Arduino UNO Library for Proteus V4.0, running Linear_Stepper_Demo.hex with its serial monitor built in. DRV1 is the A4988 from our separate A4988 / DRV8825 library, in its pop-up version, on a +12V power terminal, with its VREF property at 0.18 V. M1 is the linear stepper, its coils straight on the driver's outputs. RV1 is a 10k potentiometer on A0: the slider follows it from 0 to 80 mm.

The wiring (the same in Proteus and on a real board)
A4988Arduino UNO / motorNote
STEPD3one pulse = one (micro)step
DIRD4HIGH = out, away from the motor
END8LOW = the driver on
MS1 MS2 MS3D9 D10 D11LOW HIGH LOW = 1/4 microsteps
RST, SLP5Vtied together
VDD, GND5V, GNDthe logic supply
VMOT, GND+12V, GNDthe motor supply (a 100 uF capacitor on a real board)
1A / 1BA+ / A-black / green
2A / 2BB+ / B-red / blue

Why VREF 0.18 V?

The A4988 limits the coil current to Itrip = VREF / (8 x 0.068 ohm) on most boards. The demo of our NEMA 17 runs at VREF 0.54 V, about 1 A, which would cook this little motor. At VREF 0.18 V the limit is 0.33 A per coil - the current the motor takes at 5 V. The A4988 chops its 12 V supply to hold that current, so the motor gets its full torque at speed without ever seeing more than its rating.

The Arduino Code

The demo needs no library: it makes the STEP pulses itself, with an acceleration ramp, and works in millimetres. New to Arduino? Start with Arduino Tutorial for Beginners and Introduction to Arduino UNO; our older Stepper Motor Speed Control using Arduino tutorial explains stepper speed control too. The pins and the screw come first:

const byte STEP = 3, DIR = 4, EN = 8, MS1 = 9, MS2 = 10, MS3 = 11, POT = A0;
const int FULL_PER_MM = 40;                   // 20 full steps a turn, 0.5 mm a turn
const float STROKE = 80;                      // mm

The top speed and the acceleration are in millimetres, and four helpers turn them into steps:

float topSpeed = 15, accel = 60;              // mm/s, mm/s^2
long perMm() { return (long)FULL_PER_MM * res; }
float maxSpeed() { return (homing ? min(topSpeed, 5.0f) : topSpeed) * perMm(); }
float stepsPerS2() { return accel * perMm(); }
float toMm(long p) { return (float)p / perMm(); }

The pot maps straight onto the stroke, 0 to 80 mm:

      target = lround(raw * STROKE / 1023.0 * perMm());

mm 40 goes to a position, kept inside the stroke:

  if (!strncmp(s, "mm", 2)) { mode = FIXED; target = lround(constrain(atof(s + 2), 0, STROKE) * perMm()); report(F("mm")); return; }

home is the interesting one. The sketch does not know where the slider really is, only where it believes it is. So it runs in by that much plus 3 mm, at a gentle 5 mm/s. If its belief is right, the slider reaches the stop 3 mm early and the rest of the move grinds against it:

    mode = FIXED; homing = true; target = position - (long)((toMm(position) + 3.0) * perMm());

When that move ends, wherever the slider stopped becomes 0:

      if (homing) { homing = false; position = target = 0; Serial.println(F("Home: this is 0 mm now")); }

The ramp is the same as in our other stepper demos - speed up by the acceleration, slow down in time to stop on the target:

  // the ramp: speed up by accel, slow down in time to stop on the target
  float a = stepsPerS2();
  if (!moving) { moving = true; speed = 0; nextStep = now; }
  float stopDist = speed * speed / (2 * a);
  if (abs(togo) <= stopDist + 1) speed = max(sqrt(max(speed * speed - 2 * a, 0.0f)), sqrt(2 * a) * 0.5f);
  else speed = min(sqrt(speed * speed + 2 * a), maxSpeed());

The HEX file is in the package. To change the sketch, open it in the Arduino IDE and export the compiled binary, as in How to get the HEX file from Arduino. It needs 10,200 bytes of flash (31 % of the UNO) and 316 bytes of RAM. For bigger projects the AccelStepper library makes the same ramp for you.

Running the Demo

Press Run. The UNO's serial monitor and the two pop-ups - the motor's and the A4988's - open over the schematic; move them aside. RV1 starts at 40 %:

Micro Linear Stepper demo - The Engineering Projects
A4988: STEP D3, DIR D4, EN D8, MS1-MS3 D9-D11 (1/4: 160 steps a mm). The slider follows the pot on A0 (0 - 80 mm).
Commands: mm 40 | s 200 | speed 15 | ms 4 | home | release | hold | knob | help
Pot 410 -> target 5130 steps (1/4) = 32.06 mm
At 32.06 mm - holding
Figure: The Slider page after the pot: HOLDING 32.06 MM, 0.33 A in the coils, 1/4 MICROSTEP, 64.1 turns of the screw.

The slider moves out to 32.06 mm and holds. The motor reads its driver from the coil currents: 1/4 MICROSTEP, and 0.33 A - the A4988's current limit. The pop-up, TEP Micro Linear Stepper, has the look of our TEP Serial Monitor Advance for Proteus and four tabs - Slider, Graphs, Event log and Check; its Slider page shows the whole stroke with the slider in red and where the coils ask it to be in orange. Type a few moves into the monitor and press Send after each:

mm 60
mm -> target 9600 steps (1/4) = 60.00 mm
At 60.00 mm - holding
speed 25
Top speed 25.0 mm/s
mm 10
mm -> target 1600 steps (1/4) = 10.00 mm
At 10.00 mm - holding
Figure: mm 60 on its way: MOVING OUT at 15 mm/s, about 600 full steps a second, the coil currents a clean sine and cosine.

On the way to 60 mm the banner reads MOVING OUT at 15 mm/s, about 600 full steps a second, and the two coil currents of the last 40 ms are a smooth sine and cosine. With speed 25 the slider comes back to 10 mm at 25 mm/s - 1010 full steps a second - and loses nothing: the A4988's 12 V chopper keeps the current up against the back-EMF.

Figure: ARD1's monitor near the end of the run: homing, mm 30, s 200 into the jam, release, hold and knob.
The commands of the demo sketch
TypeWhat it doesWhat the run showed
mm 40go to a position and staymm 60: exactly 60.00 mm
s 200200 FULL steps from here (minus goes in); 40 = 1 mms 200 in full steps: 5 mm, to 15.00 mm
speed 15the top speed in mm/s, 1 - 30speed 25: 25 mm/s with nothing lost
ms 4the microsteps: 1, 2, 4, 8 or 16ms 1: FULL STEP, square currents
homerun in past 0 mm, then call it 0the slider stops at 0 mm; 120 full steps lost
release / holdthe driver off (EN HIGH) / on again (EN LOW)RELEASED - and the slider stays put
knobfollow the pot on A0 againthe slider follows - but see the jam below
helpthe list of commands

Full Steps

ms 1
Microsteps 1/1: 40 steps a mm
speed 5
Top speed 5.0 mm/s
s 200
steps -> target 600 steps (1/1) = 15.00 mm
At 15.00 mm - holding
Figure: ms 1: the same page in full steps - square-wave currents, 0.23 A in each coil.

In full steps the currents are square waves, each coil at 70.7 % of the limit - 0.23 A. Each step moves the slider 0.025 mm, and 200 of them make exactly 5 mm.

Homing Against the End Stop

Now the classic trick. Back to 1/4 steps and 15 mm/s, and home:

ms 4
Microsteps 1/4: 160 steps a mm
speed 15
Top speed 15.0 mm/s
home
Homing: in by 18.00 mm at 5 mm/s - the slider stops at 0 mm, the rest grinds
Home: this is 0 mm now
Figure: Homing: the slider sits against the inner stop at 0.00 mm while the coils go on stepping.
Figure: The Slider page in the middle of the grind: AT THE INNER STOP (0.00 MM), the lost steps counting up.

The sketch believes the slider is at 15 mm and runs it in by 18 mm. After 15 mm the slider meets the motor-end plate and stops dead. For the last 3 mm the coils keep turning the field, the rotor cannot follow, and the steps are lost - 120 full steps, which is exactly 3 mm. The banner turns orange - AT THE INNER STOP - and the Event log says "END STOP: the slider is against the inner stop" and then "lost ... full steps - against the end stop". When the move ends the sketch calls the position 0 mm, and now it is right.

A Load, a Jam and an Open-Loop Stepper

Click 5 N on the pop-up's toolbar and send the slider to 30 mm. It gets there with nothing lost: at 0.33 A the motor pushes about 9 N through the screw. Then click the slider on the schematic for the 40 N jam and ask for 5 mm more:

mm 30
mm -> target 4800 steps (1/4) = 30.00 mm
At 30.00 mm - holding
s 200
steps -> target 5600 steps (1/4) = 35.00 mm
At 35.00 mm - holding
Figure: The jam: a red stop holds the slider at 30.00 mm.
Figure: JAMMED AT 30.00 MM: the 200 steps of the move are lost, 320 in all with the homing.

The sketch reports "At 35.00 mm - holding", but the slider never moved. The motor counts the slip in whole rotor poles, 4 full steps at a time - 200 lost now, 320 in all with the homing - and the log gives the reason: "the load is above the motor's thrust". A stepper without a sensor never knows.

Figure: The Check page with the jam: the lost steps and the load in red, with the cure.

The Check page lists the coils, the current against the 0.33 A rating, the drive, the rate, the lost steps, the end stops and the load - here 45 N (the 40 N jam plus the 5 N load) against the 9 N the motor can push - with tips for the A4988, the screw and homing.

Released: the Screw Holds

Free the jam, keep the 5 N load on, and type release, hold and knob:

release
Released: the driver is off (EN HIGH) - the screw holds the slider
hold
Holding: the driver is on (EN LOW)
knob
Following the pot on A0
Pot 410 -> target 5130 steps (1/4) = 32.06 mm
At 32.06 mm - holding
Figure: release with 5 N on the slider: no coil current, and the slider stays at 30.00 mm - the screw holds it.

With the driver off there is no current and no holding torque, yet the slider stays at 30.00 mm under the 5 N load: the screw cannot be pushed back. Then knob: the sketch goes to the pot's 32.06 mm in its own count, but its count is 5 mm ahead after the jam, so the slider stops at 27.06 mm - 5 mm short. A home puts it right. That is the whole story of open-loop positioning in one run.

Graphs and the Event Log

Figure: Graphs after knob: the slider (blue) moves 3 mm in, 5 mm short of where the coils ask (orange) since the jam.

Graphs draws the slider against the position the coils ask for, the speed and the coil current over the last 2, 6 or 15 seconds. After the jam the two position lines run 5 mm apart - the lost steps you can see. The Event log keeps the run: the drives, every move with its peak speed, the end stop, the lost steps with their reason, the jam, the release and the load.

Figure: The Event log, newest first: the moves, the END STOP line, the steps lost against the stop and in the jam, the release.

The A4988 Pop-Up

Figure: The pop-up of our A4988 in the same run: the 1/4 translator and the 0.33 A current limit (VREF 0.18 V).

The A4988's own window shows the other side: its translator at 1/4, the step count, the 0.33 A current limit from VREF 0.18 V and the coil current vector. For the A4988 the linear stepper is just a load on its outputs, as a real motor is for a real driver.

How the Model Works

Each coil is in the circuit as its backward-Euler companion over the analog step - a conductance and a source - so the driver and the coil are solved together. The rotor follows the solved currents in 10 us slices: the torque of the two coils on 5 pole pairs, the detent torque, the inertia of the rotor and the screw, the friction and the load. The screw turns the rotor angle into the slider's position, 0.5 mm a turn; at a stop the rotor stops dead. The axial load reaches the rotor through the screw as a friction-like torque - it resists the motion and never drives it, which is what self-locking means. When the rotor falls behind the field by more than a pole it slips, and the step is lost.

We checked the model on a PC with 33 automatic tests: 80 microsteps at 1/4 move exactly 0.5 mm, 200 full steps and 400 half steps 5 mm, homing from 2 mm by 5 mm leaves the slider at 0 with 120 full steps lost, a 5 N load moves and a 40 N jam holds, a released slider stays under 8 N, ramped moves up to 25 mm/s lose nothing, 50 mm/s from rest with no ramp loses steps, and a 5 V H-bridge in full steps moves it too. The demo project is read back from disk with 114 checks of its parts, pins and wires.

This is our first linear stepper. For bigger moves our NEMA 17 Stepper Motor Library for Proteus and NEMA 23 Stepper Motor Library for Proteus turn screws and belts of real machines, and our 12V Linear Actuator Library for Proteus is the DC-motor way to push in a straight line.

Troubleshooting

  • The slider never moves and the pop-up says RELEASED: no coil current - the driver is off (EN HIGH, SLP or RST LOW), VMOT is missing or the current limit is 0.
  • It only buzzes: the coils are mixed up - one coil's two wires belong on 1A / 1B and the other's on 2A / 2B.
  • It moves the wrong way: swap the two wires of ONE coil, or invert DIR in the sketch.
  • It ends short (LOSING STEPS): too fast, no ramp, too little current or too much load - or it reached an end stop.
  • The positions drift after a jam or a stall: run home again.
  • No driver in Pick Devices: install our A4988 / DRV8825 library (TEPSTEPPER.LIB / TEPSTEPPER.DLL).
  • No slider, no UNO or no monitor: TEPMICROLIN.DLL or TEPARDUINO.DLL is missing from MODELS and the project folder; a closed monitor opens again with a click on the UNO's USB port.

Things to Know Before Using a Real Micro Linear Stepper

  • Set the current limit first: VREF 0.18 V on most A4988 boards is 0.33 A per coil. These small motors overheat at the 1 A an A4988 is often set to.
  • Never connect or disconnect the motor while VMOT is on: the voltage spike destroys the driver.
  • A capacitor on VMOT: 100 uF across VMOT and GND, close to the driver.
  • 5 V drivers work too: an L9110S, a DRV8833 or an L298N at 5 V runs it in full steps - the coil's 15 ohm limits the current.
  • Rest between moves: the screw holds the slider, so EN HIGH between moves keeps the motor cool.
  • Find the coils: colours and pads vary - about 15 ohm within a coil, open between them.

Limitations of the Simulation

  • Not modelled: the screw's backlash, the slider bouncing at a stop, heating, the resonances of a real mechanism, a load that pushes the slider (it only resists), and the differences between real motors.
  • The plate, the coil LEDs, the ruler, the strip and the jam are TEP additions.
  • The model is our own, written from the typical data of 15 mm micro linear steppers with an M3 x 0.5 screw; this library is not made or endorsed by any motor maker, Arduino or Labcenter.
  • Licences: the demo HEX contains the Arduino AVR core 1.8.6 (LGPL); the sketch is included and the README gives the source link. The potentiometer is Proteus's own; the A4988 driver is our separate library.
  • Tested in Proteus 8.5 in October 2026 with the demo as shipped: the knob, mm 60, speed 25 with mm 10, full steps, home, the 5 N load, the jam, release, hold, knob, all four pages of the pop-up and the A4988's pop-up. Proteus 7 is not supported.

So, that was all about the Micro Linear Stepper Motor Library for Proteus V1.0. I hope it helps you try your camera slider, syringe pump or lens drive in the simulation first - the fine steps, the end stops, the homing and the screw that holds by itself. If you have any questions, ask in the comments and I will help you out. Till the next tutorial, take care and have fun!