Modifying Cheap PIR Motion Sensor to Work at 3.3V

This PIR motion sensor is a $2 sensor that is used to detect movement from humans or pets. You can read my previous tutorial on how to use this sensor with an Arduino.

I’m currently working on a new project and I needed to make this module operate at 3.3V. By default this module runs at 5V, but it has an on board voltage regulator that drops that voltage to 3.3V.  With a quick online search I’ve found a blog post that explains how you can bypass the voltage regulator and use this module at 3.3V, which is exactly what I needed.

Where to buy one?

You can click here to compare the PIR motion sensor (HC-SR501) at different stores and find the best price.

Before soldering

Some of these modules come with pins soldered in that top right corner, so you don’t have to solder anything. You would simply connect a jumper wire to that pin that is highlighted in red (see Figure below). With my particular sensor I had to solder a small wire.


After soldering

Here’s how it looks, now if you supply 3.3V through that red wire your module works at 3.3V.



I’ve tested this sensor with an Arduino using this code. The only difference between that previous blog post is that now I can power my module with the 3.3V pin of the Arduino!

Do you have any questions? Leave a comment down below!

Thanks for reading. If you like this post probably you might like my next ones, so please support me by subscribing my blog and my Facebook Page.

Build Web Server projects with the ESP32 and ESP8266 boards to control outputs and monitor sensors remotely. Learn HTML, CSS, JavaScript and client-server communication protocols DOWNLOAD »

Build Web Server projects with the ESP32 and ESP8266 boards to control outputs and monitor sensors remotely. Learn HTML, CSS, JavaScript and client-server communication protocols DOWNLOAD »

Enjoyed this project? Stay updated by subscribing our newsletter!

19 thoughts on “Modifying Cheap PIR Motion Sensor to Work at 3.3V”

  1. Thank you for posting this. I want to try this with my LightBlue Bean. Not sure how long the Bean’s battery will last though.

    That little square you have to solder to is pretty dang small. LOL.


  2. Ha! I was just wondering that. I was working with the Ultrasonic sensor HC-SR04 to see if it would work at 3V, but it looks like I need to order US-100. Thanks!!!

  3. Tried this with no success. The PIR keeps acting like it’s underpowered. Everything works using the 5v regulator and a USB connection. But I’m trying for a 3.7 v battery connection with no success.

    • I’ve used this method to modify more than 10 PIR motion sensors and it always worked for me…
      Not sure what’s happening with your sensor. Make sure your power source can supply enough current

  4. This is just a heads up for potential problems. I appreciate the work, and I find this to be a very neat hack.

    Note that this solution bypasses one capacitor (missing in schematic, but connected between Vin and GND of LDO), and was apparently the reason why PIR kept triggering in a circuit here.

    My setup:
    sonoff basic (with switching based PSU) -> 3.3V and GND to HC-SR501 – it kept triggering, I replaced the PIR module, same. Oscilloscope showed normal 3.3V line.
    12V wall wart + external LDO to 3.3 -> 3.3V and GND to HC-SR501 – normal triggering. Oscilloscope traces of 3.3V and OUT signals look the same as in non-working scenario above.

    I have not experimented adding an electrolytic capacitor between 3.3V and GND (which I assume should also solve my problem), instead I modified sonoff basic to get 5.0V out and connected that to Vin of PIR. This works fine.

    On another sonoff basic, HC-SR501 works fine when powered with 3.3V.

  5. I have a better idea: see that tiny diode near the VCC pin (on a rail going to LDO)? That little sh*t drops almost 0.5V on it’s own, leaving 2.8V after LDO.
    I suggest to simply add a jump wire on the diode, that should be enough to power it from a 3.3V source, at least that worked for me.

  6. Any idea if this changes the sleep/idle current of the sensor? My hc-sr501 reads a little over 60uA when idle on a 5v rail.

    Thanks for posting this, I’m running some arduinos on battery, curious if you measured the current consumption of it hooked up raw to the battery.

  7. I remove the diode from the lower left (which is there for polarity protection), as well as the LDO. I run a bare jumper wire to bridge the removed diode as well as running the jumper up to the Vout of the removed LDO. I power the PIR from a 3v3 switchmode off of a LiIon or LiFePO4 cell (also supplying an LED driver or a µC), no problems. You can drop the scavenged parts into your parts bin for some other project.

    You really want the input power to have the benefit of the capacitor in the lower right.

    All the boards I’ve dealt with have a pin header for the retrigger mode, and have used a MELF package for the diode. The LDO has been a Holtek 7133-1

  8. After I did remove & bridge the Diode the transistor for a full 3v3 PIR it was keeping triggering randomly. I shortened the 20cm cable connected between the ESP32 and the HC-Sr501 and suddenly it become stable. So I another to consider is to use a short cable!

  9. I bought the 5v SR501, wish I had instead bought the SR505.
    I initially used 3.3v from the ESP32 to power the PIR. I then discovered it takes 5v, so I gave it 5v instead — it didn’t seem to make a difference.
    Anyway, It appears to work OK, but I’m not really sure I understand the “Mode” jumper
    (Single or repeatable trigger).
    I have the delay set minimal (approx. 3s).
    There seems to be some “settling time” required after the OUT pin returns to LOW.
    When I move my hand in view of the sensor, the OUT pin (viewing the scope) goes HIGH immediately. However, if I move my hand again after only a very short time after the return to LOW, nothing happens for a few sec. (it varies maybe 3-6s), but then OUT goes HIGH again! If I wait for approx. 5-7s after OUT goes LOW and THEN wave my hand in view of the lens, OUT goes HIGH immediately. It behaves as though there is a “recovery” time associated with the transition from LOW to HIGH for delay sec. and then its ready for another transition.
    I tried moving the jumper for “repeatable” triggering, but I’m not sure what I should expect. I wasn’t able to be certain as I observed its behavior if it was doing the ‘right’ thing.


Leave a Comment

Download our Free eBooks and Resources

Get instant access to our FREE eBooks, Resources, and Exclusive Electronics Projects by entering your email address below.