Documentation

Mini Submersible Water Pump 5V 120L/H with 1.5m Cable for Arduino, Raspberry Pi & ESP32 | ShillehTek Product Manual
Documentation / Mini Submersible Water Pump 5V 120L/H with 1.5m Cable for Arduino, Raspberry Pi & ESP32 | ShillehTek Product Manual

Mini Submersible Water Pump 5V 120L/H with 1.5m Cable for Arduino, Raspberry Pi & ESP32 | ShillehTek Product Manual

shillehtek

Overview

This 5V submersible pump moves up to 120 liters per hour and ships with a generous 1.5 m cable, so the pump can sit at the bottom of a tank or reservoir while your electronics stay high and dry. It is the step-up choice for automatic plant watering, pet fountains, desktop hydroponics, aquarium circulation, DIY cooling loops, and science projects driven by Arduino, ESP32, Raspberry Pi, or Pico.

Like all small brushed DC pumps, it is a two-wire device that must be switched through a MOSFET, transistor, or relay rather than a GPIO pin, and it must always run submerged — water is its lubricant and coolant. The wiring table below is the whole electrical story.

At a Glance

Voltage
5V DC
Flow Rate
Up to 120 L/H
Current
~100-200 mA
Cable
1.5 m attached
Type
Submersible only
Connection
2 wires + hose barb

Specifications

Parameter Value
Operating Voltage 5V DC (runs slower down to ~3V)
Operating Current ~100-200 mA (startup surge higher)
Rated Flow Up to 120 L/H at 5V, open outlet
Max Lift (Head) ~0.5-1 m (flow tapers toward zero at max head)
Cable Length 1.5 m, pre-attached
Motor Type Brushed DC, centrifugal impeller
Outlet Barb for common soft tubing (slip fit)
Mounting Suction-cup base (typical)
Operating Position Fully submerged — never run dry
Liquid Fresh water; not rated for potable, solvent, or salt-water duty

Wiring & Driving Guide

Red to switched +5V, black to ground — through a driver, never a bare GPIO:

Connection Goes To
Pump red (+) +5V supply rail
Pump black (−) MOSFET drain (or relay NO contact)
MOSFET source GND, shared with the microcontroller
Gate via ~220R GPIO (D9 Arduino / GP15 Pico / GPIO 15 ESP32)
Flyback diode (1N4001-1N4007) Across pump leads, cathode (stripe) to +
Warning: GPIO pins cannot supply pump current — always switch through a MOSFET, transistor, or relay, and share grounds. On Raspberry Pi, power the pump from the 5V pin or an external supply, never the 3.3V rail.
Warning: Dry running destroys the pump — the water it moves is also its bearing lubricant and cooling. Use a float switch or soil-moisture cut-off so an empty reservoir stops the pump, not the pump's lifespan.
Tip: The 1.5 m cable is the pump's best feature for tall tanks — but splices still belong outside the water, sealed with heat-shrink. If you extend the cable further, thicker wire avoids voltage drop that would slow the pump.

Code Examples

Arduino: moisture-triggered watering (sensor optional)

pump_5v_watering.ino
// 5V 120L/H pump on MOSFET, gate on D9.
// Waters when the analog moisture reading is too dry.
// No sensor? Set USE_SENSOR to false for a simple timer.

const int  PUMP_PIN   = 9;
const int  SENSOR_PIN = A0;
const bool USE_SENSOR = true;
const int  DRY_LEVEL  = 600;   // calibrate for your sensor

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

void loop() {
  bool shouldWater = true;

  if (USE_SENSOR) {
    int m = analogRead(SENSOR_PIN);
    Serial.print("Moisture: ");
    Serial.println(m);
    shouldWater = (m > DRY_LEVEL);   // higher = drier for many sensors
  }

  if (shouldWater) {
    digitalWrite(PUMP_PIN, HIGH);
    delay(4000);                     // 4 s water shot
    digitalWrite(PUMP_PIN, LOW);
  }
  delay(60000);                      // check every minute
}

Raspberry Pi (Python): relay/MOSFET control

pump_5v_pi.py
# Raspberry Pi controls the pump through a MOSFET or relay on GPIO 18.
# Pump power from the Pi's 5V pin (short runs) or an external 5V supply.

import RPi.GPIO as GPIO
import time

PUMP = 18
GPIO.setmode(GPIO.BCM)
GPIO.setup(PUMP, GPIO.OUT)

try:
    while True:
        print("Pump ON")
        GPIO.output(PUMP, GPIO.HIGH)
        time.sleep(5)          # circulate for 5 s
        print("Pump OFF")
        GPIO.output(PUMP, GPIO.LOW)
        time.sleep(55)         # rest for 55 s
except KeyboardInterrupt:
    pass
finally:
    GPIO.cleanup()

Frequently Asked Questions

What does "120 L/H" mean in practice?
Two liters per minute with a short, unrestricted outlet at 5V. Add a meter of lift, narrow tubing, or a drip head and real-world flow drops — plan watering times by measuring output in your actual setup once.
Can it run from USB power?
Yes — a 5V/1A USB adapter has ample headroom. Just keep the switching transistor between the pump and your microcontroller, and don't draw pump current through a computer's data port hub if you can avoid it.
How do I slow the flow down?
PWM the MOSFET gate (1 kHz works well) or drop the supply toward 3V. Start the pump at full power for a second before lowering the duty cycle — small centrifugal pumps stall if started too soft.
The pump hums but no water comes out. Why?
Usually an airlock or a blocked impeller. Tilt the pump underwater to burp trapped air, confirm the outlet tube isn't kinked, and rinse the impeller chamber. Check polarity too — reversed leads spin it the wrong way.
Is the whole 1.5 m cable waterproof?
The cable jacket handles submersion fine; the vulnerable points are cut ends and splices. Keep all connections above the waterline and sealed in heat-shrink, and give the cable a drip loop before it reaches the electronics.
How long will it last in continuous duty?
These brushed pumps are hobby-grade: months of continuous fountain duty is common, and intermittent watering duty lasts far longer. Clean water, full submersion, and modest voltage are what stretch the lifespan.

Related Tutorials