Project Files of Mini Submersible Water Pump Library for Proteus V1.0 (5V, Arduino)
mini-submersible-water-pump-tep-v1-0-7086906a50bc48ff9f9e670d8908303d.zip

Mini Submersible Water Pump Library for Proteus V1.0
Mini Submersible Water Pump Library for Proteus V1.0 comes as a ZIP archive of 10 files (1.2 MB, 2.6 MB unpacked) holding Proteus library files, simulation model DLLs, a Proteus simulation, an Arduino sketch and compiled HEX firmware.
- LIBProteus library
- DLLProteus model
- DSNProteus simulation
- INOArduino sketch
- HEXHEX firmware
Description
Mini-Submersible-Water-Pump-Library-for-Proteus-v1.0.zip with the 3 - 6 V mini submersible water pump in Proteus (the flow against the lift, the tube filling and running back, a dry run, the cup filling on the sheet; TEPSUBPUMP.LIB and TEPSUBPUMP.DLL), our Arduino UNO V4.0, the A3 demo project with its sketch and a README.
File Structure
4.1 KB201.9 KB16.1 KB883.5 KB296.5 KB24.8 KB883.5 KB296.5 KB19.4 KB16.2 KBGallery12 images from the tutorialOpen the tutorial
The circuit, the board and the results as they appear in Mini Submersible Water Pump Library for Proteus V1.0 (5V, Arduino). Open an image for its full size.












README
MINI SUBMERSIBLE WATER PUMP LIBRARY FOR PROTEUS - V1.0 (the 3 - 6 V DC pump that fills a tube and a cup on the sheet)
Designed by The Engineering Projects
www.TheEngineeringProjects.com
IMPORTANT LINKS
Article (read it first - pictures, step by step, every feature explained):
https://www.theengineeringprojects.com/2026/10/mini-submersible-water-pump-library-for-proteus-v1-0.html
Report a bug or suggest a feature (our forum):
https://www.theengineeringprojects.com/forum/category/motor-driver-proteus-library
The demo runs on our Arduino UNO V4.0 (included) - working LEDs, RESET and a
built-in serial monitor - its own article:
https://www.theengineeringprojects.com/2026/10/arduino-uno-library-for-proteus-v40.html
The demo's driver is our L9110S Motor Driver - a SEPARATE library, not in this
package: download and install it first - its own article:
https://www.theengineeringprojects.com/2026/10/l9110s-motor-driver-library-for-proteus-v1-0.html
Support us (the libraries are free):
https://www.theengineeringprojects.com/donate
FILE STRUCTURE
Mini-Submersible-Water-Pump-TEP-v1.0/
|-- Proteus Library Files/
| |-- ArduinoV4TEP.LIB 201.9 KB TEP Arduino boards V4.0 (UNO) -> LIBRARY
| |-- TEPSUBPUMP.LIB 16.1 KB the library -> LIBRARY folder
|-- Proteus Model Files/
| |-- TEPARDUINO.DLL 883.5 KB the Arduino board model -> MODELS folder
| |-- TEPSUBPUMP.DLL 296.5 KB the model -> MODELS folder
|-- Proteus Simulation/
| |-- Mini-Submersible-Water-Pump-L9110S-ArduinoUnoV4.pdsprj 24.8 KB the demo project
| |-- TEPARDUINO.DLL 883.5 KB copy of the board model
| |-- TEPSUBPUMP.DLL 296.5 KB copy of the model
| |-- WaterPump_Demo.hex 19.4 KB the demo firmware
|-- Arduino Code/
| |-- WaterPump_Demo/WaterPump_Demo.ino 4.1 KB the demo sketch (source of the .hex)
|-- README.txt ~17.3 KB this file
Total: 2.58 MB (unzipped). The C++ source code of the models is not included.
WHAT IS IT?
A simulation model of the mini submersible DC water pump - the small white
3 - 6 V pump of plant watering, desk fountains, aquariums, drink dispensers
and school projects. It lies in the water, a small brushed motor turns a
radial impeller, and the water leaves through the outlet nozzle into a 4.7 mm
bore tube. Our own model:
* An analog (SPICE) model between its + and - pins: the winding (8 ohm), the
back-EMF, the friction, the inertia and the impeller's load, which depends
on the lift and on the flow. Any driver works: an L9110S, a MOSFET, a
transistor, a relay, PWM or DC.
* The data of the common 3 - 6 V pump (80 - 120 L/h, a lift of 40 - 110 cm,
130 - 220 mA): at 5 V and a 30 cm lift about 5,560 RPM, 168 mA and
84.6 L/h; 104 L/h with no lift; it lifts 98 cm at most at 5 V; at 3 V
29 L/h at 30 cm and a 38 cm lift at most; at 6 V 104 L/h and 223 mA.
* The lift (property HEAD and the pop-up's lift buttons): the height from
the tank's water surface to the top of the tube. The higher it is, the
less it pumps; above its limit the water stands in the tube and nothing
comes out.
* The tube: the water climbs it first (7.8 mL for a 30 cm lift) and only
then pours - the first water about 0.4 s after a start; when the pump
stops, the tube runs back into the tank through the pump (no check valve).
* A dry run (property DRY and the pop-up's Dry button): out of the water it
spins fast (7,240 RPM at 5 V), draws only 30 mA and pumps nothing.
* The scene on the schematic: the water rises in the tube, pours from the
spout as a stream as wide as the flow, and fills the cup with the water
delivered (a 250 mL cup, emptied when full); dry, the tank is empty.
* What it tells: the flow out of the spout, the speed, the average voltage,
the current, PWM (frequency and duty), the water in the tube, the water
delivered, the priming time, the tube running back, and the warnings -
DRY RUN, OVER-VOLTAGE (more than 6.5 V average), STALLED.
The symbol shows the pump from the side, lying on the bottom of a glass tank:
the white body with its inlet slots, the black motor cap with the red + and
black - leads, the outlet nozzle and the clear tube up and over to the spout
above a glass cup, the head arrow with the lift. The plate, the tank, the
tube, the cup, the head arrow, the FLOW (blue) and DRY (red) LEDs and the
strip under the plate (L/H, RPM, MA, OPEN PANEL) are TEP additions; the real
pump has none of them.
ONE DEVICE (search "pump" in Pick Devices):
SUBPUMPTEP "Mini Submersible Water Pump V1.0" (category
Electromechanical > Pumps), model TEPSUBPUMP.DLL
The pop-up panel "TEP Mini Submersible Water Pump" opens at Run (and with
OPEN PANEL on the strip) - the look of the TEP Serial Monitor. Tabs Pump,
Graphs, Event log and Check; gear and ? icons for Settings and Help; the
palette icon switches the theme:
Pump the state in big letters (PUMPING 78 L/H AT 30 CM, FILLING THE
TUBE, CANNOT LIFT IT, DRY RUN, STOPPED - THE TUBE RUNNING BACK,
OVER-VOLTAGE, STALLED); the flow gauge (0 - 150 L/h, the data's
80 - 120 L/h marked); the live values (flow, lift, speed,
current, the average voltage, the drive: PWM Hz and duty, or
STEADY; the water delivered, the tube); the drive across + / -
over the last 5 ms with its average. The toolbar: the lift
(10, 30, 50, 80, 120 cm) and In water / Dry.
Graphs the flow, the current and the water in the tube over the last
1, 3 or 6 s. Live / Freeze.
Event log the drive (PWM / steady), every steady flow ("steady 77.7 L/h
at 30 cm, 5281 RPM, 4.68 V average, 151 mA"), the first water
at the spout, the tube running back, a column that cannot
reach the outlet, every 250 mL, the warnings; filters All /
Drive + speed / Warnings, Pause, Clear
Check Good for: a pump that does not pump, pumps too little, runs
dry or resets the Arduino - the drive, the PWM, the current
against an Arduino pin, the speed, the flow or the water, the
priming, the water delivered
Settings theme, text size, open at Run, window size
Help report a bug, suggest a feature, article, updates, donate,
forum; Copy diagnostics for a bug report
TEST STATUS
V1.0: verified in Proteus 8.5 on 29 Oct 2026 (the demo project as shipped: an
A3 sheet, an Arduino UNO V4.0 with its built-in monitor, our L9110S driver -
its pop-up version, from its own library - the pump on MOTOR A, RV1 on A0;
all pop-ups open). What the runs showed:
* The project loads and starts cleanly. RV1 at 90 %: "Pot 922: speed 89 %
(PWM 226/255 = 4.43 V average)"; the pump gets 4.17 V: 4,816 RPM,
125 mA, 65.6 L/h at 30 cm; the first water after about 0.4 s; the FLOW LED
lit, the stream pouring, the cup filling.
* "s 100" (PWM 255 = 5.00 V): the L9110S's switches leave 4.68 V at the
pump: "steady 77.7 L/h at 30 cm, 5281 RPM, 4.68 V average, 151 mA"; the
first water after 441 ms.
* "stop": the tube runs back into the tank in about 0.3 s.
* "dose 50" (2,754 ms at full speed: 440 ms to fill the tube + 2,314 ms of
flow): 50.6 mL delivered.
* The 120 cm lift button at full speed: "the water stands at 90 cm in the
tube, under the 120 cm outlet: no flow at 5884 RPM, 4.76 V".
* The Dry button: DRY RUN, 7,146 RPM, 30 mA, the DRY LED lit.
Plus automatic checks on a PC, 0 failed: 24 on the pump (5 V at 30 cm:
5,560 RPM, 168 mA, 84.6 L/h, the first water after 397 ms, the tube 7.8 mL;
the tube running back at a stop and priming again; no lift 104 L/h; a 130 cm
lift: the water stands at 98 cm; 3 V: 29 L/h, at 60 cm it stands at 38 cm;
6 V 104.5 L/h 223 mA; dry 7,240 RPM 30 mA; PWM 980 Hz found with its duty;
an averaging driver gives no false PWM; a full cup of 250 mL; 7 V:
over-voltage); 5 on the pop-up pages rendered; the demo project read back
from disk (72 checks: devices, pins, wires, labels, no wire through a part,
no crossing).
INSTALLATION (about 2 minutes)
1. Close Proteus. Extract the WHOLE ZIP to a normal folder (e.g. Desktop).
2. Copy everything in "Proteus Library Files" (TEPSUBPUMP.LIB and our Arduino
library V4.0, ArduinoV4TEP.LIB) to the LIBRARY folder of Proteus, for
example:
C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\LIBRARY
(on some PCs: C:\ProgramData\Labcenter Electronics\Proteus 8 Professional\
LIBRARY - use the folder that already holds Proteus's own .LIB files).
3. Copy TEPSUBPUMP.DLL and TEPARDUINO.DLL from "Proteus Model Files" to the
MODELS folder (...\Proteus 8 Professional\MODELS). The demo's driver is NOT
in this package: install our L9110S Motor Driver library the same way (its
own ZIP - see IMPORTANT LINKS): TEPL9110S.LIB and TEPL9110S.DLL.
4. Delete TEPSUBPUMP.IDX from the LIBRARY folder if it is there.
5. Start Proteus. In Pick Devices (P) search "pump".
RUN THE DEMO
"Proteus Simulation\Mini-Submersible-Water-Pump-L9110S-ArduinoUnoV4.pdsprj" -
keep the .hex file and the DLLs beside the project (with the L9110S library
installed).
ARD1: Arduino UNO V4.0 running WaterPump_Demo.hex, its serial monitor built
in (window "TEP Arduino UNO - ARD1").
DRV1: the L9110S driver (pop-up version, our L9110S library): A-IA on D5,
A-IB on D6, VCC on 5V, GND - by net labels; motor B unused.
M1: the pump on MOTOR A (A-OA to + red, A-OB to - black), a 30 cm lift.
RV1: a 10k potentiometer on A0: the pump speed - left = off, right = full.
1. Press Run. The monitor and the two pop-ups open (move them aside). The
water climbs the tube and pours into the cup (RV1 at 90 %).
2. Click RV1's arrows: the flow follows (too slow, and it cannot lift the
water to the outlet).
3. Type in the monitor and press Send: s 80, dose 50, stop, knob, help.
4. On the pump's pop-up: the lift buttons (10 - 120 cm) and Dry.
5. The pump's pop-up: Pump, Graphs, Event log, Check.
WIRING (the same in Proteus and on a real board)
L9110S Arduino UNO
A-IA D5 (PWM)
A-IB D6 (LOW: the pump runs one way)
VCC 5V (on a real board: a 5 V supply that can give the pump's
current, GND common with the Arduino)
GND GND
Pump L9110S MOTOR A: + (red) to A-OA, - (black) to A-OB
In the sketch (no library needed):
run: digitalWrite(IB, LOW); analogWrite(IA, speed); // 0 - 255
stop: digitalWrite(IA, LOW); digitalWrite(IB, LOW);
REAL HARDWARE:
* Never run it from an Arduino pin: about 170 mA running and about 0.5 A for
a moment at a start. Use a logic-level MOSFET (or an NPN transistor) with a
1N4007 / 1N4148 diode across the pump, a relay module, or a driver.
* Never run it dry: the water cools and lubricates it. Keep the inlet under
the surface and clear of dirt (a mesh in front of it).
* Feed it from its own 5 V supply (a USB charger, 4 x AA); a starting pump can
reset an Arduino that runs on the same weak USB port.
* A check valve in the tube keeps it full between doses, and a siphon is
avoided by ending the tube above the target's water level.
* Calibrate a timed dose: run it for 10 s into a measuring cup at your lift.
THE DEMO SKETCH ON THE SERIAL MONITOR (WaterPump_Demo V1.0, 9600 baud)
s 80 speed 80 % dose 50 pump 50 mL by time at full speed (the tube's fill time included)
stop both inputs LOW knob follow the pot again help the list
EXPECTED MONITOR OUTPUT
Mini Submersible Water Pump demo - The Engineering Projects
L9110S from 5 V: A-IA on D5 (PWM), A-IB on D6. The pot on A0 sets the pump speed.
Commands: s 80 | dose 50 | stop | knob | help
Pot 922: speed 89 % (PWM 226/255 = 4.43 V average)
speed 100 % (PWM 255/255 = 5.00 V average)
stop: IA LOW, IB LOW
dose 50 mL: 2754 ms at full speed (440 ms to fill the tube + 2314 ms of flow)
dose done
PROPERTIES (double-click the part > Edit Properties)
HEAD the lift from the water surface to the top of the tube, in cm
(default 30; it lifts about 98 cm at most at 5 V)
DRY 1 = out of the water (a dry run); 0 = in the water (default)
Every run starts again from the properties.
TROUBLESHOOTING
* The water never comes out and the pop-up says NO DRIVE: the driver's inputs
(both LOW = stop), its VCC, or the leads on the wrong outputs.
* CANNOT LIFT IT: the lift is above what the pump makes at this voltage -
more speed, or a lower outlet.
* DRY RUN: the pump is out of the water (property DRY, or the Dry button).
* A timed dose gives too little: calibrate FLOW_ML_S and PRIME_MS in the
sketch for your pump, driver, tube and lift.
* The part is not simulated: TEPSUBPUMP.DLL is missing from MODELS and from
the project folder. No driver: install our L9110S library (TEPL9110S.LIB /
.DLL). No UNO / no monitor window: TEPARDUINO.DLL, or click the UNO's USB
port.
* The pop-up does not appear: click OPEN PANEL on the strip, or turn "Open the
panel at Run" on its Settings page back on.
BUG REPORTS AND FEATURE REQUESTS
Please post them in our forum with a screenshot, the Serial Monitor text, the
simulation log and the pop-up's Copy diagnostics text:
https://www.theengineeringprojects.com/forum/category/motor-driver-proteus-library
SUPPORT US
This library is free. If it saves you time, please support our work:
https://www.theengineeringprojects.com/donate
LICENCES AND THIRD-PARTY NOTES
* The pump model (TEPSUBPUMP.DLL), the symbol and artwork and the Arduino
Library V4.0 (ArduinoV4TEP.LIB / TEPARDUINO.DLL) are made by The Engineering
Projects. The model is an independent implementation written from the
typical data of 3 - 6 V mini submersible pumps. The models use only standard
Windows libraries; no Visual C++ redistributable is needed.
The C++ source code is not included.
The demo's driver, our L9110S Motor Driver library (TEPL9110S.LIB /
TEPL9110S.DLL), is a separate download.
* The potentiometer is Proteus's own POT-HG.
* The demo's .hex is built from the demo sketch and the Arduino AVR core 1.8.6,
which includes LGPL-licensed code; its source code is available at
https://github.com/arduino/ArduinoCore-avr/tree/1.8.6
* Proteus is a product of Labcenter Electronics and is not included. Arduino is
a trademark of Arduino SA. This library is not made or endorsed by Arduino or
Labcenter.
REBUILDING THE FIRMWARE (OPTIONAL)
The HEX file is supplied; Arduino IDE is not needed to run the demo. To edit
the sketch, open Arduino Code\WaterPump_Demo\WaterPump_Demo.ino, select
Arduino Uno and use Sketch > Export Compiled Binary. The sketch needs 7,068
bytes of flash (22 % of the UNO) and 264 bytes of RAM.
MODEL SCOPE AND LIMITS
Modelled: the winding resistance, the back-EMF, the friction, the inertia,
the impeller (its head grows with the speed squared, its flow falls with the
lift, its load with the flow; 3 % of it in air), the current both ways, any
voltage either way, the tube filling and running back, the water delivered.
How it runs: the speed is an internal analog node solved together with the
driver (backward Euler, analog steps of 0.1 ms or less, so a PWM driver's
pulses are resolved); the water in the tube is stepped at every accepted
point.
Not modelled: the winding inductance, air in the pump, the water's inertia in
the tube, a tank running empty, the tube's length and bends beyond the lift,
heating and wear of a dry run, the differences between real pumps.
VERSION
TEP Mini Submersible Water Pump library V1.0 (Oct 2026). Device SUBPUMPTEP
(TEPSUBPUMP.LIB / TEPSUBPUMP.DLL). Demo sketch WaterPump_Demo V1.0. Demo
driver: L9110SADVTEP (TEP L9110S Motor Driver library V1.0, a separate
library). Demo board: ARDUINO UNO V4.0 (TEP Arduino Library V4.0) with its
built-in serial monitor.Development1 release
-
V1.0Mini Submersible Water Pump Library for Proteus V1.0this page
V1.0 is the only release in the Download Center so far. When a newer version is published, it appears above with its own download page.
Installation8 steps
From the download to a working project, in order. The steps follow what the package contains.
You will need
- Proteus Design SuiteProteus 8 or newer (Labcenter), on Windows
- Arduino IDE1.8 or 2.x, with the board of the tutorial chosen under Tools → Board
- Any archive toolWindows, macOS and Linux extract ZIP files on their own
Steps
- 1
Extract the archive
Right-click mini-submersible-water-pump-tep-v1-0-7086906a50bc48ff9f9e670d8908303d.zip and choose Extract All (or open it with 7-Zip or WinRAR) into a folder you can find again. Keep its folder structure (Mini-Submersible-Water-Pump-TEP-v1.0) as it is.
- 2
Copy the library files into Proteus
Move ArduinoV4TEP.LIB and TEPSUBPUMP.LIB and the files into the LIBRARY folder of your Proteus installation: C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\LIBRARY for Proteus 8, or the matching Proteus 7 folder. Older versions keep it under ProgramData\Labcenter Electronics. If Proteus is open, close it first.
- 3
Add the simulation model
Copy TEPARDUINO.DLL and TEPSUBPUMP.DLL into the MODELS folder next to LIBRARY, so the component can run, not only be drawn.
- 4
Restart Proteus and place the component
Start Proteus, open a schematic, press P (Pick Devices) and search for the component by the name used in the tutorial. It appears with its pins ready to wire.
- 5
Open the sketch in the Arduino IDE
Open WaterPump_Demo.ino, select your board and port under Tools, then Verify. Sketch → Export Compiled Binary writes the HEX file a simulation needs.
- 6
Load the HEX file
In Proteus double-click the microcontroller, set Program File to WaterPump_Demo.hex and run the simulation. For real hardware, flash the same file with your programmer.
- 7
Open the example simulation
Open Mini-Submersible-Water-Pump-L9110S-ArduinoUnoV4.pdsprj in Proteus to see the wiring exactly as in the tutorial. Check the controller's Program File path, then press Play.
- 8
Follow the tutorial
Mini Submersible Water Pump Library for Proteus V1.0 (5V, Arduino) explains every connection and setting in order; keep it open beside the files while you build.
FAQs9 questionsContact TEP
How do I download Mini Submersible Water Pump Library for Proteus V1.0?
Wait for the 30-second guest countdown on this page, then press the download button; the file comes straight from our storage. Members who are logged in skip the wait. If the browser opens the file instead of saving it, use its Save as option. The download link is made for you when the countdown ends and works for 15 minutes; a saved or shared link stops working, so share this page instead.
What is inside the archive?
Mini Submersible Water Pump Library for Proteus V1.0 comes as a ZIP archive of 10 files (1.2 MB, 2.6 MB unpacked) holding Proteus library files, simulation model DLLs, a Proteus simulation, an Arduino sketch and compiled HEX firmware. Open the File Structure tab for the full list of 10 files.
What should I do if the download does not start?
Check the browser's download list first; an ad blocker or a company firewall can also hold it back, so try another browser or network. If the file arrives incomplete, download it again. For an installation problem, read the Install tab or tell us in the comments with your software version and the exact error message.
Is this file free?
Yes. Every file in the TEP Download Center is free for learning, personal and student projects. If you share it, link back to this page or the tutorial so others find the latest version.
How do I check that the file arrived complete?
Compare its SHA-256 with the one on this page, 3eefc8a8c5f66a4b757d714d96377bb7b5fc066d18b5033572c18845187f3bd1. In PowerShell run Get-FileHash "mini-submersible-water-pump-tep-v1-0-7086906a50bc48ff9f9e670d8908303d.zip"; on macOS or Linux run shasum -a 256 "mini-submersible-water-pump-tep-v1-0-7086906a50bc48ff9f9e670d8908303d.zip". The same value means the file is exactly the one in our storage; a different one means the download broke off, so download it again.
Do I need WinRAR to open the ZIP file?
No. Windows, macOS and Linux open ZIP archives on their own (Extract All, or double-click). WinRAR and 7-Zip work too. Extract the whole archive before using the files.
Where do I put the LIB and IDX files?
Both files go into the LIBRARY folder of your Proteus installation (Proteus 8: C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\LIBRARY; Proteus 7 has the same folder under its own name). Restart Proteus afterwards and search for the component with P.
Which Proteus version does the library need?
The tutorial names the Proteus version the library was made and tested with. Most TEP libraries work in Proteus 7 and Proteus 8; if the component does not appear after a restart, check that both the LIB and the IDX file were copied and that Proteus was fully closed while copying.
How do I get the HEX file into the simulation?
Compile the sketch in the Arduino IDE (Sketch → Export Compiled Binary gives you the HEX next to the sketch), then in Proteus double-click the board, set Program File to that HEX and run.
Members skip the wait. Log in or join TEP.
- 0Total downloads
- 4%Popularity
- ProteusCategory
- 0Comments
- ssyedzainnasirUploaded by
- 31 Oct 2026Uploaded at
3eefc8a8c5f66a4b757d714d96377bb7b5fc066d18b5033572c18845187f3bd1

















Comments
0