← AXS-003

Circuit review & bench-test guide

AXS-003 — PIR motion sensor carrier PMOD module

Design-stage — board not yet fabricated

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. Theory of operation and signal sequence#

  1. 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.
  2. 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".
  3. 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.
  4. 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.
  5. 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 pin123456789101112
NetPIRNCNCNCGND3V3NCNCNCNCGND3V3
Carrier interfacePins/signalsIntended use
J2 pin 13V3Plug-in VCC
J2 pin 2PIR_OUTPlug-in digital OUT (active high)
J2 pin 3GNDPlug-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 summaryFunction and why neededIf absent/openIf shorted, wrong, or misassembled
J112-pin right-angle PMOD plug, 2×6, 2.54 mmSole power and signal interfaceNo functionMisaligned mating can short 3V3 to a signal; mirrored pin 1 reverses power
J21×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 breakoutThe actual motion detectorIts behavior (regulator or none, exact hold time, retrigger policy) is vendor-specific; characterize per unit
R1100 Ω (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 outputHost miswiring can source unlimited contention current into the breakout's output stageOpen leaves PMOD pin 1 floating while J2 pin 2 toggles fine — probe both sides
C1100 nF 16 V X7R (Murata GRM188R71C104KA01D)High-frequency decoupling at the socketHF supply noise couples into the pyro front end → false triggersShort kills the rail; verify not cracked after socket insertion cycles
C210 µ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 resetsWrong polarity is impossible (ceramic); a cracked 0805 can go resistive and heat
#FLG01, #FLG02Power flags (3V3, GND)ERC bookkeeping onlyERC errorsNo 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#

DeviceKey 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 class3.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.

QuantityDesign target / expected rangeWhat to measure
Idle PIR levelLow, <1 V (AS312 VOL spec point)DMM/scope on PMOD pin 1
Asserted PIR levelHigh, >VDD−1 V ≈ >2.3 V; realistically near 3.3 V at logic loadsSame
Supply current, quiescentBare 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 varyScope/logic analyzer, single event
Blocking (lock) time after release~2.3 s typ (fixed)Scope, two spaced events
Warm-up until stableTens of seconds class — UNVERIFIED, not in the manual; measure itTest 9.C logging
False triggers, settled, no motion, still airTarget: none over 10 minutesTest 9.D soak
Detection range/angleManual polar plots show up to ~12 m, ~100° cone with the vendor lens — treat as upper boundWalk test 9.F
R1 drop at logic load<10 mV into a CMOS inputDifferential across R1

8. Manual schematic and assembly review checklist#

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#

  1. Visual inspection: J2 orientation and silkscreen, R1/C1/C2 values, solder quality, J1 pin-1 marking. Socket EMPTY.
  2. 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).
  3. 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#

  1. 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.
  2. Power down. Insert the breakout, aligning VCC/OUT/GND with the J2 silkscreen. Photograph the insertion.
  3. 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.

  1. 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.
  2. 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).
  3. 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.
  4. 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#

  1. 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#

  1. 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.
  2. 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.
  3. 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.
  4. 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)#

  1. 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)#

  1. 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).
  2. 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#

SymptomFirst measurementsLikely areas
No current, no output ever3.3 V at C1/C2 pads, J1 alignmentNo power, J1 misalignment
High current at insertionPower down; breakout orientation vs silkscreenReversed/wrong-pinout breakout
PIR never assertsJ2 pin 2 directly, then PMOD pin 1Wrong breakout pinout (OUT not on pin 2), R1 open, dead plug-in
PIR asserts at J2 but not at hostBoth sides of R1R1 open, PMOD pin damage
Constant retriggering foreverAC-coupled 3V3 at C2; airflow/heat sources; warm-up not elapsedSupply ripple (C1/C2 missing/cracked), draft/sun on sensor, insufficient warm-up
PIR stuck highStatic scene, cover sensor with opaque cup for 30 sContinuous motion/heat in view, damaged breakout output
Hold time far from ~2.3 sRepeat 9.E.1 with logic analyzerNon-AS312 plug-in (different controller), vendor timing variant — document, not necessarily a fault
Erratic on ECP5 host but clean on bench supplyRail at C2 under host power, cable lengthHost 3V3 droop/ripple through PMOD wiring

11. Bench record template#

FieldRecord
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.