Circuit review & bench-test guide
AXS-003 — PIR motion sensor carrier PMOD module
Document purpose#
This document explains the axs-003-pir PMOD carrier at component level and turns the design evidence into a practical manual-review and bench-test plan. It is based on the implemented schematic generator (generate_design.py), the module README, the sensor-line conventions in ../README.md, and the verified Pmod-spec notes in ../../pmod-common/PMOD-SPEC-NOTES.md.
This board is a schematic-complete prototype. It has NOT been laid out, fabricated, assembled, or bench-verified. Repository status: schematic generated, ERC clean (0 errors / 0 warnings), netlist reviewed; PCB layout not started. Every value below is a design target to verify on a first article, not proof that a board works. In addition, this is a CARRIER: the sensing element itself lives on a third-party plug-in breakout whose exact behavior (regulator, pinout, timing) varies by vendor and is outside this board's design authority.
1. What the board does#
The carrier hosts a 3.3 V mini PIR (passive-infrared) motion breakout of the AS312/AM312 class in a 1×3 socket, conditions its digital OUT line (100 Ω series protection), decouples its supply (100 nF + 10 µF), and presents one active-high, self-timed motion line on PMOD Type 1 pin 1.
The intelligence is on the plug-in: the AS312 integrates the pyroelectric element, a digital signal chain (ADC, band-pass filter, event logic), and a "Schmidt REL" output that holds high for roughly two seconds per detection. The carrier deliberately adds nothing else — the lesson is a slow, level-type, self-timed GPIO input.
Functional block diagram#
3V3 (PMOD pins 6/12)
│
├────────────┬──────────────┐
│ │ │
C1 100nF C2 10uF J2 pin 1 (VCC)
│ │ │
GND GND ┌────┴─────────────┐
│ plug-in PIR │
│ breakout │
│ (AS312/AM312 │
│ class, 3.3 V) │
└────┬────────┬────┘
│ │
J2 pin 2 (OUT) J2 pin 3 (GND)
│ │
PIR_OUT ── R1 100R GND
│
PIR (PMOD pin 1, active high,
holds ~2 s per detection)
2. Safety and scope boundaries#
- 3.3 V logic only; no hazardous voltages. Risks are to hardware.
- Power only from a Digilent-compatible 3.3 V PMOD host (AruviX ECP5 rev-A or equivalent) or a bench 3.3 V current-limited supply (≤20 mA limit is ample).
- Do not exceed 3.3 V nominal / 3.6 V absolute. The AS312's absolute maximum supply is 3.6 V per its manual. Classic HC-SR501 boards are 5 V parts and MUST NOT be plugged into J2.
- Verify the breakout's pinout before insertion. J2 assumes VCC / OUT / GND top-to-bottom (AS312/AM312 style). Vendors vary; a reversed module applies 3.3 V to OUT and drives VCC from the carrier's signal line. Check against the J2 silkscreen and the breakout's own marking every time — this is the single most likely way to destroy a plug-in.
- PIR sensors respond to heat contrast, drafts, and sunlight. Bench results are environment-dependent; control airflow and line of sight during characterization, and never treat a bench pass as a security-grade detection guarantee.
- A working bench result is not EMC, ESD, or environmental qualification.
3. Theory of operation and signal sequence#
- On power-up, C2 (bulk) and C1 (high-frequency) hold the socket rail quiet. Pyroelectric front ends are extremely high-impedance and ripple-sensitive; supply noise appears as false motion.
- The plug-in's pyro element sees a change in incident long-wave IR (5.5 µm long-pass window per the AS312 manual) when a warm body moves across detection zones. The AS312's internal chain (two-way differential input, ADC, 0.44–7 Hz band-pass, event logic) decides "motion".
- On detection, the breakout drives OUT high. The AS312 holds it high for an on-time of ~2.3 s (typical, fixed, not adjustable) and then applies a lock/blocking time of ~2.3 s (typical) during which new events are suppressed.
- The carrier passes OUT through R1 (100 Ω) to PMOD pin 1. The host sees an active-high, self-timed level — no debouncing needed; the exercises are level- versus edge-sensitive capture and hold-time measurement.
- After first power-up the analog front end must settle before output is trustworthy (warm-up). The AS312 manual publishes no warm-up figure; tens of seconds is the community-reported class for AS312/AM312 breakouts. Treat it as an unverified target and characterize it (9.C).
4. Interfaces#
PMOD Type 1 (GPIO) per Digilent Pmod Interface Specification 1.2.0; pin-1 orientation as verified in ../../pmod-common/PMOD-SPEC-NOTES.md.
| PMOD pin | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Net | PIR | NC | NC | NC | GND | 3V3 | NC | NC | NC | NC | GND | 3V3 |
| Carrier interface | Pins/signals | Intended use |
|---|---|---|
| J2 pin 1 | 3V3 | Plug-in VCC |
| J2 pin 2 | PIR_OUT | Plug-in digital OUT (active high) |
| J2 pin 3 | GND | Plug-in ground |
PIR is module-driven, active HIGH, idle low — note this is the opposite idle polarity from AXS-002/AXS-004. There are no dedicated test points; useful probe nodes are J2 pin 2 (PIR_OUT before R1), PMOD pin 1 (after R1), and the C1/C2 pads for the rail.
5. Component-by-component review#
| Ref. | Part / datasheet summary | Function and why needed | If absent/open | If shorted, wrong, or misassembled |
|---|---|---|---|---|
| J1 | 12-pin right-angle PMOD plug, 2×6, 2.54 mm | Sole power and signal interface | No function | Misaligned mating can short 3V3 to a signal; mirrored pin 1 reverses power |
| J2 | 1×3 pin socket, 2.54 mm (MPN TBD) | Hosts the plug-in PIR breakout; makes the sensor replaceable and keeps 5 V-only breakouts physically obvious misfits (they still fit mechanically — hence the silkscreen warning) | No sensor; PIR line floats low-ish through the breakout's absence (host sees an undriven line through R1 — actually floating: see review note below) | Reversed breakout insertion powers the sensor backwards; wrong-pinout vendor module cross-wires VCC/OUT |
| Plug-in (not a carrier refdes) | AS312, Senba "Pyroelectric Infrared Radial Sensor" manual — element + DSP + REL output in one TO-can on a vendor breakout | The actual motion detector | — | Its behavior (regulator or none, exact hold time, retrigger policy) is vendor-specific; characterize per unit |
| R1 | 100 Ω (Yageo RC0603FR-07100RL) | Series protection on the module-driven PIR line per the sensor-line design rule; limits contention current if the host pin is misconfigured as an output | Host miswiring can source unlimited contention current into the breakout's output stage | Open leaves PMOD pin 1 floating while J2 pin 2 toggles fine — probe both sides |
| C1 | 100 nF 16 V X7R (Murata GRM188R71C104KA01D) | High-frequency decoupling at the socket | HF supply noise couples into the pyro front end → false triggers | Short kills the rail; verify not cracked after socket insertion cycles |
| C2 | 10 µF 10 V X5R (Murata GRM21BR61A106KE19L) | Bulk reservoir at the socket — the schematic note is explicit: "pyro front ends hate supply ripple" | Rail dips when the host wiring is thin/long → false triggers or resets | Wrong polarity is impossible (ceramic); a cracked 0805 can go resistive and heat |
| #FLG01, #FLG02 | Power flags (3V3, GND) | ERC bookkeeping only | ERC errors | No physical part |
Review note (design observation, not a defect): with the socket EMPTY, the PIR net has no pull resistor and floats. If the teaching host treats "module inserted but socket empty" as a case, the HDL should enable the FPGA's internal pull-down, or a future revision could add a 100 kΩ pull-down on PIR_OUT.
6. Datasheet summary and design interpretation#
| Device | Key manufacturer facts (from the fetched document) | Board-specific interpretation |
|---|---|---|
AS312 (Senba sensor manual, 5 pages, fetched via the MySensors mirror; no datasheet URL is embedded in generate_design.py — the carrier's socket is part-agnostic) | Supply 2.7–3.3 V operating, 3.6 V abs max; working current 12–20 µA (15 µA typ); output "Schmidt REL": IOL ≥10 mA at VOL<1 V, IOH up to −10 mA at VOH>(VDD−1 V) — i.e., actively driven both ways, ~±10 mA capable; on-time TOH 2.3 s typ, lock (blocking) time TOL 2.3 s typ, both fixed ("not adjustable"); band-pass 0.44 Hz–7 Hz; 64 kHz on-chip oscillator; sensitivity 120 µA-class VSENS, not adjustable; TO-can pinout 1=VSS, 2=ONTIME, 3=VDD, 4=REL; working temp −20 to +85 °C; detection ~12 m max in the polar plots, ~100° cone class | 3.3 V PMOD supply sits at the top of the operating range — fine, but leaves no headroom; a host rail at 3.45 V would exceed recommended operating (though not abs max). The strong ±10 mA REL drive means R1's 100 Ω costs at most ~0.1 V at logic loads — negligible. The fixed 2.3 s / 2.3 s on/lock times are for the BARE AS312; vendor breakouts may deviate. The manual specifies NO warm-up/stabilization time — the "tens of seconds" figure used in this guide is community-reported for AS312/AM312 breakouts and is UNVERIFIED; measuring it is test 9.C. The manual also does not state whether the output retriggers (extends) under continuous motion — measuring that is test 9.E |
7. Expected values before bench testing#
All values are design targets on an unbuilt board hosting an assumed AS312-class breakout; the plug-in dominates every figure.
| Quantity | Design target / expected range | What to measure |
|---|---|---|
| Idle PIR level | Low, <1 V (AS312 VOL spec point) | DMM/scope on PMOD pin 1 |
| Asserted PIR level | High, >VDD−1 V ≈ >2.3 V; realistically near 3.3 V at logic loads | Same |
| Supply current, quiescent | Bare AS312: 12–20 µA; breakout may add regulator/LED overhead — expect <1 mA, flag anything above ~5 mA | µA/mA DMM in series with 3V3 |
| Output hold time per event | ~2.3 s typ (fixed) for a bare AS312; vendor breakouts vary | Scope/logic analyzer, single event |
| Blocking (lock) time after release | ~2.3 s typ (fixed) | Scope, two spaced events |
| Warm-up until stable | Tens of seconds class — UNVERIFIED, not in the manual; measure it | Test 9.C logging |
| False triggers, settled, no motion, still air | Target: none over 10 minutes | Test 9.D soak |
| Detection range/angle | Manual polar plots show up to ~12 m, ~100° cone with the vendor lens — treat as upper bound | Walk test 9.F |
| R1 drop at logic load | <10 mV into a CMOS input | Differential across R1 |
8. Manual schematic and assembly review checklist#
- Confirm J1 pin-1 orientation against the Pmod-spec recipe before layout sign-off.
- Confirm J2 silkscreen will carry explicit VCC/OUT/GND labels and the "3.3 V modules only — check pinout" warning from the schematic note.
- Verify C1 and C2 land next to J2 pin 1 in layout (the whole point is ripple suppression AT the socket).
- Measure R1 (100 Ω) and confirm C1/C2 values before first power.
- Pin the actual plug-in breakout model, photograph its pinout, and record it with the board — the carrier BOM's "PlugIn" field is informational only (MPN TBD in the schematic).
- Verify the breakout is a 3.3 V type with NO 5 V-only regulator input requirement (HC-SR501-class boards excluded).
- Confirm silkscreen carries module name, Type 1 badge, pin-1 marker.
9. Ordered bench-test procedure#
Test context: either an AruviX ECP5 rev-A / Digilent-compatible 3.3 V PMOD socket, or a bench 3.3 V current-limited supply (≤20 mA) on pins 6/12 (3V3) and 5/11 (GND), plus DMM, oscilloscope or logic analyzer (events are seconds long — a logic analyzer with deep memory or slow scope timebase is the right tool). The PIR environment matters: a still-air room, no direct sunlight or HVAC draft on the sensor, and a way to introduce controlled motion (your hand at a measured distance). Stop at the first abnormal result; record everything per the template.
A. Unpowered inspection and resistance tests#
- Visual inspection: J2 orientation and silkscreen, R1/C1/C2 values, solder quality, J1 pin-1 marking. Socket EMPTY.
- Measure 3V3-to-GND resistance (expect high; C2 charging transient aside), PIR-to-3V3 and PIR-to-GND (both open with the socket empty — the net floats, see the section 5 review note).
- Inspect the plug-in breakout separately: identify VCC/OUT/GND from its silkscreen and, if visible, trace them to the AS312 can (1=VSS, 2=ONTIME, 3=VDD, 4=REL per the manual). Do not trust the carrier assumption blindly.
B. First power-up, empty socket, then insertion#
- Power the empty carrier at 3.3 V, current-limited. Expect essentially zero current (<0.1 mA). Confirm 3.3 V across the C1/C2 pads.
- Power down. Insert the breakout, aligning VCC/OUT/GND with the J2 silkscreen. Photograph the insertion.
- Power up. Expect quiescent current in the tens-of-µA to <1 mA range depending on the breakout. Investigate anything above ~5 mA immediately (suspect reversed insertion — power down first, then check).
C. Warm-up time characterization#
The manual publishes no warm-up figure; this test produces the number.
- Ensure the sensor has been unpowered for ≥2 minutes, room still, no motion in the field of view. Start a logic-analyzer capture on PIR (or scope roll mode, ≥5 min window) BEFORE applying power.
- Apply power and keep the field of view static (leave the room or shield the sensor with a cardboard tube pointed at a blank wall).
- Record every PIR assertion during the first 5 minutes. Typical AS312/AM312-class behavior is one or more spurious assertions in the first tens of seconds, then silence. The warm-up time is the timestamp of the LAST spurious assertion; repeat the whole test 3 times (with ≥2 min unpowered rest) and take the worst case.
- Report the measured figure against the "tens of seconds" community expectation; this becomes the module README's documented settling spec, and the HDL demo should mask PIR for that period after configuration.
D. Settled false-trigger soak#
- After warm-up, keep the scene static for 10 minutes. Target: zero assertions. Any repeating assertions point at supply ripple (probe 3V3 at C2 with AC coupling, mV scale), drafts, or a heat source (monitor, soldering iron) drifting in view.
E. Hold time and retrigger behavior#
- Single event. Trigger one motion event (one hand wave at ~1 m), then freeze. Measure the PIR high time. Expect the ~2.3 s class for a bare AS312; record the actual value over 5 trials.
- Blocking time. After PIR falls, immediately wave again and measure how long motion is ignored before a new assertion is possible (expected ~2.3 s class lock time). Repeat 5 times.
- Retrigger during hold (single vs repeatable trigger). Wave continuously starting before an assertion and continuing well past 2.3 s. Record whether PIR (a) drops after the fixed hold regardless of ongoing motion (single/non-retriggering), or (b) stays high as long as motion continues (repeatable/retriggering), or (c) drops briefly and re-asserts after the lock time (pulse-train behavior). The AS312 manual does not specify this; the answer is a property of the chip+breakout combination and must be documented per plug-in model.
- Capture one annotated logic-analyzer trace showing: assertion, hold, release, lock window, re-assertion. This is the module's teaching artifact for level- vs edge-sensitive capture.
F. Detection envelope (informative)#
- Walk tests at 1/3/5 m, on-axis and at ±45°: record hit/miss per approach. The manual's ~12 m / ~100° plots are for its reference lens; small breakout lenses do markedly worse. This is characterization, not pass/fail.
G. Supply-sensitivity check (bench supply only)#
- At 3.0, 3.15, and 3.3 V: repeat one warm-up + one hold-time measurement. Do not exceed 3.3 V nominal (3.6 V abs max, no margin).
- Optionally superimpose ~50 mV of ripple (function generator through the supply's modulation input, 1–10 Hz — inside the sensor's pass band) and confirm whether false triggers appear; this validates why C1/C2 exist.
10. Troubleshooting map#
| Symptom | First measurements | Likely areas |
|---|---|---|
| No current, no output ever | 3.3 V at C1/C2 pads, J1 alignment | No power, J1 misalignment |
| High current at insertion | Power down; breakout orientation vs silkscreen | Reversed/wrong-pinout breakout |
| PIR never asserts | J2 pin 2 directly, then PMOD pin 1 | Wrong breakout pinout (OUT not on pin 2), R1 open, dead plug-in |
| PIR asserts at J2 but not at host | Both sides of R1 | R1 open, PMOD pin damage |
| Constant retriggering forever | AC-coupled 3V3 at C2; airflow/heat sources; warm-up not elapsed | Supply ripple (C1/C2 missing/cracked), draft/sun on sensor, insufficient warm-up |
| PIR stuck high | Static scene, cover sensor with opaque cup for 30 s | Continuous motion/heat in view, damaged breakout output |
| Hold time far from ~2.3 s | Repeat 9.E.1 with logic analyzer | Non-AS312 plug-in (different controller), vendor timing variant — document, not necessarily a fault |
| Erratic on ECP5 host but clean on bench supply | Rail at C2 under host power, cable length | Host 3V3 droop/ripple through PMOD wiring |
11. Bench record template#
| Field | Record |
|---|---|
| Board revision / serial | |
| Plug-in breakout model, photo, pinout verification | |
| Host or supply used; current-limit setting | |
| DMM/scope/logic-analyzer IDs and calibration | |
| Ambient temp, airflow, lighting conditions | |
| Quiescent current (empty socket / with plug-in) | |
| Warm-up time, 3 trials, worst case | |
| 10-min settled false-trigger count | |
| Hold time ×5 (values) | |
| Blocking time ×5 (values) | |
| Retrigger behavior classification (single/repeatable/pulse-train) + trace | |
| Detection envelope notes | |
| Supply-sensitivity / ripple-injection result | |
| Deviations, photos, raw-file paths | |
| Reviewer / date / disposition |
12. Review conclusion#
The carrier is deliberately minimal and is correct for its role: one series-protected signal path, generous socket decoupling justified by the pyro front end's ripple sensitivity, and a Type 1 pin map with the right active-high documentation. The real risk lives on the plug-in: J2's assumed VCC/OUT/GND order is a convention, not a guarantee, and the guide therefore makes pinout verification a mandatory pre-power step. Key open items: (1) no warm-up figure exists in the AS312 manual — the bench procedure, not the datasheet, must produce the documented settling time; (2) retrigger policy is likewise unspecified and must be characterized per breakout model; (3) an empty socket leaves the PIR net floating — acceptable if the HDL enables a pull, worth a pull-down in a future rev; (4) 3.3 V sits at the top of the AS312's recommended range with only 0.3 V to absolute maximum — check the host rail's tolerance; and (5) the board remains a paper design with no layout or first-article evidence.