If you’ve ever wanted a light to switch on when you walk into a room — without pressing anything — you’ve already encountered the job a PIR (passive infrared) sensor does. “Passive infrared” means the sensor doesn’t emit anything; it just listens for the infrared heat radiation that warm bodies like humans or animals give off. When something warm moves through its field of view, the sensor trips an output signal. That signal can trigger a relay, wake a microcontroller, fire an alarm, or do pretty much anything else your circuit needs. Two modules dominate the maker and prototyping space at under $2 per unit: the HC-SR501 and the AM312. Both are finished breakout boards — meaning the PIR detector element, the signal-conditioning IC, and passive components are already soldered together and ready to wire. This guide explains how each one actually works, where the tradeoffs live, and which pack to buy depending on your project.
How These Two Modules Differ at the Spec Level
The HC-SR501 and AM312 look similar in listings but serve genuinely different use cases. Understanding the differences at the datasheet level will save you a rev spin.
HC-SR501 — The Adjustable Workhorse
The HC-SR501 is a larger module (approximately 32 mm × 24 mm) built around the BISS0001 PIR signal processor IC. Its defining feature is two on-board potentiometers — one for sensitivity (detection distance) and one for time delay (how long the output stays HIGH after a trigger). Those trimmers are why this module remains the default recommendation in virtually every Raspberry Pi and Arduino starter curriculum.
Key published specs (per manufacturer datasheets and corroborated by the Adafruit PIR Motion Sensor Product Guide):
| Parameter | HC-SR501 |
|---|---|
| Supply voltage | 4.5 V – 20 V DC |
| Output voltage (HIGH) | 3.3 V |
| Quiescent current | ~65 µA |
| Detection range | 3 m – 7 m (adjustable) |
| Detection angle | ~110° cone |
| Time delay | 0.3 s – 200 s (adjustable) |
| Trigger modes | Single (H) / Repeatable (L) — jumper selectable |
| Dimensions | ~32 mm × 24 mm |
The wide supply range (4.5–20 V) matters in battery or automotive prototypes where rail voltage isn’t clean. The 3.3 V output HIGH means you can drive an Arduino or Raspberry Pi GPIO pin directly without a voltage divider — that’s baked into the BISS0001’s output stage design.
AM312 — Minimal Footprint, Fixed Settings
The AM312 is a miniaturized module (roughly 10 mm × 23 mm, including the lens cap) built around the BISS0001’s smaller sibling or equivalent signal-conditioning ICs depending on the production run. There are no potentiometers and no jumper. Sensitivity and time delay are fixed at the IC level.
Key published specs (cross-referenced against module datasheets from multiple distributors):
| Parameter | AM312 |
|---|---|
| Supply voltage | 2.7 V – 12 V DC |
| Output voltage (HIGH) | ~3.3 V |
| Quiescent current | ~8 µA |
| Detection range | ~3 m (fixed) |
| Detection angle | ~100° cone |
| Time delay | ~2 s (fixed) |
| Trigger modes | Single trigger only |
| Dimensions | ~10 mm × 23 mm |
That 8 µA quiescent current is the headline number. The SparkFun Electronics PIR Motion Sensor Hookup Guide notes that ultra-low-power PIR modules like the AM312 are purpose-built for coin cell or energy-harvesting scenarios where a 65 µA idle draw from an HC-SR501 would drain a CR2032 in days instead of months. Sensors Magazine’s editorial coverage of PIR selection criteria confirms that quiescent current dominates battery life calculations far more than peak trigger current, because the sensor spends the vast majority of its life in idle, not triggered.
Trigger Modes: Why the H/L Jumper on the HC-SR501 Matters
This is the setting most beginners get wrong, and it’s worth explicit treatment.
The HC-SR501 has a three-pin jumper block that selects between two trigger modes:
H mode (Repeatable Trigger): While motion continues to be detected, the output stays HIGH. Every new detection event restarts the time-delay countdown. This is what you almost always want for lighting control or occupancy-based logic — the output stays active as long as someone is in the room.
L mode (Single Trigger): The output goes HIGH once, holds for the set delay period, then goes LOW regardless of whether motion is still detected. It will not re-trigger until the output has gone LOW and a short inhibit window (~3 seconds by default) has passed.
The Adafruit PIR Motion Sensor Product Guide is explicit on this: if you’re using an HC-SR501 to gate a relay or keep an MCU awake during occupancy, ship with the jumper in H position. L mode is useful for counting events (detecting that someone passed a doorway once) but creates a frustrating user experience if someone is standing still in a room and the lights cut out.
The AM312 has no jumper — it operates in single-trigger mode with a fixed ~2 s delay. For most wearable or portable applications where you just need to detect “did something move?” and wake up a processor, that’s fine. For room-level occupancy logic, it’s a constraint worth knowing before you commit to a design.
Sensitivity Trim: Setting the HC-SR501 for Your Space
The sensitivity potentiometer on the HC-SR501 adjusts the detection threshold of the BISS0001 IC, which effectively changes the detection distance — not the angle. Full counterclockwise typically gives you around 3 m range; full clockwise pushes toward 7 m. Parallax Inc.’s application notes for their equivalent PIR module recommend starting at the midpoint and dialing back if you’re seeing false triggers from HVAC vents or reflective surfaces near the sensor.
Common false-trigger causes and mitigations:
- HVAC airflow: Moving warm air can cause low-level pyroelectric fluctuations. Lower the sensitivity trim and/or re-aim the sensor away from duct registers.
- Sunlight through windows: Direct sun moving across the floor as clouds shift creates thermal gradients. Mask the lens with electrical tape to narrow the field of view or reposition the module.
- Microwave or RF interference: Cheap HC-SR501 clones with poor PCB layout can be susceptible to RF noise coupling into the signal pin. The Panasonic EKMC/EKMB series datasheet specifically recommends keeping PIR signal traces short and away from switching power supply traces — the same principle applies here.
- Initialization window: Both modules need approximately 30–60 seconds after power-up to stabilize. During this window they will produce spurious HIGH pulses. Design your firmware to ignore the first minute of operation after cold boot.
By the Numbers
A quick battery-life comparison for a 1,000 mAh LiPo cell running a PIR module in idle (no motion):
| Module | Idle current | Theoretical idle runtime |
|---|---|---|
| HC-SR501 | 65 µA | ~640 days |
| AM312 | 8 µA | ~5,200 days |
In practice, your MCU will dominate the current budget by orders of magnitude — but if you’re pairing the sensor with a deep-sleep microcontroller that draws 2–10 µA in sleep mode (STM32L or ATtiny in power-down mode, for example), the AM312’s idle current stops being negligible compared to the MCU and the HC-SR501’s starts becoming the dominant drain in the system.
Which Pack to Buy: Decision Framework
Here’s the honest tradeoff summary before the product tier markers.
Choose the HC-SR501 if:
- You need adjustable range or time delay during prototyping or field installation
- You’re building room-level occupancy logic and need H-mode repeatable triggering
- Supply voltage is 5 V or higher (Arduino Uno, standard breadboard power)
- You’re building a first project and want the ability to tune behavior without firmware changes
Choose the AM312 if:
- You’re on a 3.3 V system and want to avoid level-shifting concerns (2.7 V minimum supply)
- Battery life or quiescent current is a real constraint
- PCB real estate is tight — the AM312’s ~10 mm body fits boards where the HC-SR501 won’t
- Your time delay requirement is close to 2 s and you don’t need it to be adjustable
Mixed-project packs: If you’re ordering for a lab drawer or classroom, a value pack that includes both variants gives you flexibility. Reviewers on Digi-Key consistently note that the HC-SR501 is the module they reach for first, but the AM312 earns its keep once they move from breadboard to a final PCB design.
Recommended Packs
Note: The following are affiliate links — we earn a small commission if you purchase through them, at no additional cost to you. Recommendations are based on published specs and aggregated buyer reviews, not in-house testing.
For a 10-pack of HC-SR501 modules, suitable for prototyping, classroom use, or keeping spares on hand:
For a 5-pack of AM312 mini PIR modules, suitable for battery-powered or space-constrained designs:
For a mixed-format assortment pack (both HC-SR501 and AM312), useful for lab drawers:
Wiring Essentials and a Note on Clone Quality
Both modules follow the same three-pin output convention: VCC, GND, OUT. The HC-SR501 labels these clearly on the PCB silkscreen. On the AM312, pin order may vary by manufacturer lot — confirm against the module’s datasheet before soldering. Across aggregated buyer reviews, the most common beginner mistake is swapping VCC and GND on the AM312 due to its compact, unlabeled footprint.
Clone quality variance is real. The HC-SR501 market is flooded with second-source boards using BISS0001 equivalents or outright clones of that IC. Adafruit’s PIR product guide notes that the quality of the PIR detector element (the actual pyroelectric crystal) varies significantly between manufacturers, affecting sensitivity stability and noise floor. If you’re seeing erratic behavior on a cheap clone — particularly very short spurious pulses — the element quality is usually the culprit, not your firmware. Spending an extra dollar per unit on a recognized brand (Adafruit’s own PIR breakout, or modules from distributors like SparkFun that spec their source) typically eliminates this.
If X, Then Y — Your Decision Rule
- If you’re on a 5 V Arduino breadboard and want to tune behavior without touching code: HC-SR501, H mode, midpoint trimmers to start.
- If you’re on a 3.3 V MCU in sleep mode and care about battery life: AM312, no level shifter needed, budget 8 µA idle into your power budget.
- If you’re not sure: buy a 10-pack of HC-SR501. The adjustability means you can solve problems in hardware that would otherwise require a firmware spin.
- If you’re moving to a production PCB and have locked down your delay and range requirements: re-evaluate with the AM312 for footprint and power savings — fixed settings become a feature, not a limitation, once your parameters are known.