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 »

Recommended Resources

Build a Home Automation System from Scratch » With Raspberry Pi, ESP8266, Arduino, and Node-RED.

Home Automation using ESP8266 eBook and video course » Build IoT and home automation projects.

Arduino Step-by-Step Projects » Build 25 Arduino projects with our course, even with no prior experience!

What to Read Next…

Enjoyed this project? Stay updated by subscribing our newsletter!

16 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!


Leave a Reply to Domen Puncer Kugler Cancel reply

Download our Free eBooks and Resources

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