Documentation

Mini Submersible Water Pump 3-5V for Arduino, Raspberry Pi & ESP32 | ShillehTek Product Manual
Documentation / Mini Submersible Water Pump 3-5V for Arduino, Raspberry Pi & ESP32 | ShillehTek Product Manual

Mini Submersible Water Pump 3-5V for Arduino, Raspberry Pi & ESP32 | ShillehTek Product Manual

shillehtek

Overview

This mini submersible pump moves water on a 3-5V supply, making it one of the easiest ways to add liquid handling to a microcontroller project. Drop it in the reservoir (it must run submerged), give it power through a small transistor, MOSFET, or relay, and it pushes water through a slip-on hose — perfect for automatic plant watering, desktop fountains, aquarium top-offs, cooling demos, and classroom STEM builds with Arduino, ESP32, Raspberry Pi, or Pico.

Electrically it is a simple two-wire brushed DC motor, which is exactly why it should not hang directly off a GPIO pin: it draws far more current than a pin can source and kicks back voltage spikes like any motor. The wiring guide below shows the safe one-transistor hookup that works on every platform.

At a Glance

Voltage
3-5V DC
Current
~100-200 mA
Flow Rate
Up to ~100-120 L/H
Lift (Head)
~0.4-1.1 m
Type
Submersible only
Connection
2 wires + hose barb

Specifications

Parameter Value
Operating Voltage 3-5V DC
Operating Current ~100-200 mA (higher at startup)
Flow Rate ~80-120 L/H at 5V (lower at 3V)
Max Lift (Head) ~0.4-1.1 m depending on voltage
Motor Type Brushed DC, centrifugal impeller
Mounting Suction cups on base (typical)
Outlet Barb for common soft tubing (slip fit)
Operating Position Fully submerged — never run dry
Liquid Fresh water (not rated for potable use, solvents, or salt water)

Wiring & Driving Guide

Two wires: red to switched positive, black (or blue) to ground. Switch the positive side with a small MOSFET or NPN transistor and add a flyback diode across the pump leads:

Connection Goes To
Pump red (+) 5V supply (or 3.3V for slower flow)
Pump black (−) MOSFET drain / transistor collector
MOSFET source / transistor emitter GND, shared with the microcontroller
Gate (220R) / Base (1k) GPIO pin (e.g. D9 on Arduino, GP15 on Pico)
Flyback diode (1N4001-1N4007) Across pump leads, cathode (stripe) to +
Warning: Do not drive the pump straight from a GPIO pin — its running and startup current exceeds pin limits on every platform. On a Raspberry Pi, also avoid the 3.3V rail; use the 5V rail or an external supply through a transistor or relay HAT.
Warning: Never run the pump dry. Water is the lubricant and coolant; even a minute of dry running wears the impeller shaft rapidly. Mount it fully underwater and stop pumping before the reservoir empties.
Tip: Keep the pump's wire-exit end above the waterline unless yours is fully potted, and seal splices with heat-shrink well away from the water. A soil-moisture or float sensor makes a great automatic cut-off.

Code Examples

Arduino: timed watering pulse

pump_watering.ino
// Mini pump on a MOSFET/transistor, control pin D9.
// Runs the pump 3 s every 30 s - adjust for your plant.

const int PUMP_PIN = 9;

void setup() {
  pinMode(PUMP_PIN, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  Serial.println("Pump ON");
  digitalWrite(PUMP_PIN, HIGH);
  delay(3000);                    // pump for 3 seconds

  Serial.println("Pump OFF");
  digitalWrite(PUMP_PIN, LOW);
  delay(27000);                   // wait 27 seconds
}

Pico / ESP32 (MicroPython): PWM flow control

pump_pwm.py
# Vary pump speed with PWM through the MOSFET.
# Gate on GP15 (Pico) / GPIO 15 (ESP32).

from machine import Pin, PWM
import time

pump = PWM(Pin(15))
pump.freq(1000)

def set_flow(percent):
    pump.duty_u16(int(65535 * percent / 100))

# Gentle start, full flow, then stop
set_flow(50)
time.sleep(2)
set_flow(100)
time.sleep(5)
set_flow(0)
print("Done")

Frequently Asked Questions

Can I connect the pump directly to an Arduino pin?
No. It draws 100-200 mA (more at startup) versus the ~20-40 mA a pin can safely supply. Use a transistor, MOSFET, or relay — the one-transistor circuit above costs under a dollar.
How high can it push water?
Rated head is roughly 0.4-1.1 m depending on supply voltage. Flow falls as you approach max head, so for a drip line a meter up, expect a trickle — fine for watering, not for a fountain jet.
Why did my pump get quiet and weak after a few weeks?
Usually debris in the impeller or mineral buildup — pop off the front cover and rinse. Running dry or pumping gritty water are the other usual suspects; add a coarse filter or keep the intake off the tank floor.
Is it safe for my fish tank or drinking water?
It's designed for hobby fresh-water use; it is not certified food-safe and not built for salt water. For aquariums, many makers use it in sumps and top-off duty — inspect it regularly and keep the wiring dry.
Can I control flow rate?
Yes — PWM through the MOSFET (see the MicroPython example) or a lower supply voltage both work. Below ~40-50% duty the motor may stall, so give it a full-power kick-start before dropping to low speeds.
Does polarity matter?
Yes — red to positive. Reversed, the impeller spins backward: it may buzz and move little or no water, and prolonged reverse running isn't good for it. Nothing dramatic happens, but the pump won't pump.

Related Tutorials