When I connect an ESP01 WiFi module and water pump in a parallel circuit to an Arduino Uno's 5 V pin, the ESP01 stops working.

The ESP01's built-in LED starts blinking chaotically and the serial monitor outputs trash logs like these:


�D  �'�VB������P�


Note that I don't connect the ESP01 to WiFi: I just power it on and observe its behavior, so the ESP-01 shouldn't consume peak voltage and current.

  • Water pump parameters:
    Voltage: 3-5 V DC
    Current: 100-200 mA

  • ESP-01S parameters:
    Voltage: 3 V to 3.6 V
    Current: 70-170 mA

  • Arduino Uno parameters connected via USB to my laptop:
    Voltage: 5 V
    Current: 500 mA

Circuit diagram:

Circuit diagram

I know that an ESP01 shouldn't operate on 5 V and that a voltage regulator should be used, but I omitted it for test purposes and example simplicity.

  • 1
    the battery is drawn upside down ... the power supply may he getting overloaded... measure the voltage with the circuit powered on
    – jsotola
    Commented Jan 11 at 21:09
  • 4
    You omitted a voltage regulator for test purposes? The abs. max. supply voltage for the ESP-01s is 3.6 V, and I/O is 3.3 V. Using 5 V will likely kill it. Also, the water pump needs a flyback diode. It would be a good idea to supply the water pump from a separate power supply, and not from the Uno's 5 V pin.
    – ocrdu
    Commented Jan 11 at 21:21
  • 3
    You supply your ESP-01 with a more than 50% higher voltage than it was designed for and you wonder why it doesn't work?
    – StarCat
    Commented Jan 12 at 15:59
  • 2
    You shouldn't power a motor from the Arduino 5V pin. The Arduino is NOT a power supply. It can give 5V for logic circuits, but it can't supply current for a motor. You may have already damaged your board. Motors need their own power. Look at some reputable tutorials on driving motors with Arduino.
    – Delta_G
    Commented Jan 16 at 21:22
  • 2
    When the motor starts it pulls too much current and sags the voltage on your board. This causes your problem.
    – Delta_G
    Commented Jan 16 at 21:23

1 Answer 1


The abs. max. supply voltage for the ESP-01s is 3.6 V; leaving out the voltage regulator and using 5 V for its power supply will likely have killed or at least damaged it.

Also, the water pump needs a flyback diode, and it would be a good idea to supply the water pump from a separate power supply, and not from the Uno's 5 V pin; the motor's (start-up) current may be more than the Uno can handle, and the motor will introduce noise in the wrong places.

The quoted 200 mA is the running current of the pump motor; start-up current will be about equal to the stall current and much higher. This will drop the voltage and crash the ESP01.

You may want to google something like "powering water pump from arduino start up current" and read about how it should be done; you're not the first with this problem.

  • Hi, @ocrdu in my initial test I use voltage regulator to power the esp01 with 3.3V, flyback diode to handle voltage spike from the water pump, capacitors to handle changes in voltage, noise and to make the circuit more stable. Also I use transistor as a switch to turn on/off the water pump. Then the problem with the esp01 came and I found out that it's when the water pump is turned on. So I removed all other parts and for the test simplicity I left only the water pump and esp01. In both ways the result is the same and esp01 freezes and stops working when the water pump is turned on.
    – stanimirsp
    Commented Jan 12 at 20:35
  • For me it's not an option to use separate power supply to the water pump I want all to be powered from one place (Arduino Uno or li-on battery). As my understanding in parallel circuits the voltage across each of the components is the same and the total current is the sum of the currents flowing through each component. So 5V should be enough to power 3.3V eps01 and 3-5V water pump. And current should be enough too. Because Arduino Uno current is 500mA, esp01 is 170mA and the pump 200mA. Am I getting it right?
    – stanimirsp
    Commented Jan 12 at 20:35
  • 1
    What is the pump's start-up current? Does the 5 V supply drop at the moment the motor starts? Did you have a look at the 5 V supply with an oscilloscope while the motor is running?
    – ocrdu
    Commented Jan 14 at 17:19
  • 1. Start-up current is 200mA I got the pump from here. 2. Yes, usually voltage is 4.9V when I power on the pump voltage drops to 4.77V. 3. Unfortunately I don't have oscilloscope yet
    – stanimirsp
    Commented Jan 16 at 20:49
  • 1
    200 mA is the pump's running current; at the moment it starts it will pull much more than that for an instant, hence start-up current aka stall current. Did you measure this initial current and the voltage drop at the moment the pump starts? You will find this current is higher than what the Arduino can provide. In general, you should supply a motor from a separate power supply, and not from an Arduino's 5 V pin.
    – ocrdu
    Commented Jan 16 at 23:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.