Sensor modules
AXS-004 — Vibration sensor PMOD module
Catalog #4 in the AruviX sensor line, level L1 (GPIO). An SW-420 spring vibration element biased by a 1 MΩ pull-up, RC-filtered, and sliced by an LMV7219 comparator against a Bourns TC33X trimmer threshold, so the host sees clean push-pull pulses per shake.
Circuit review & bench-test guide →
Components#
Every placed component, with the reason it is on the board. Extracted directly from the schematic, so this cannot drift from the design.
| Ref | Value | What it does on this board | Part number | Footprint |
|---|---|---|---|---|
C1 |
100nF 16V X7R | Comparator supply decoupling | GRM188R71C104KA01DMurata |
C_0603_1608Metric |
C2 |
100nF 16V X7R | RC filter capacitor (with R2), ~1 ms time constant | GRM188R71C104KA01DMurata |
C_0603_1608Metric |
J1 |
PMOD PLUG 2x6 | PMOD peripheral plug (Digilent spec 1.2) | not selected generic |
PinHeader_2x06_P2.54mm_Horizontal |
J2 |
SW-420 ELEMENT | SW-420 spring vibration element soldered across two THT pads (non-polarized) | not selected generic |
PinHeader_1x02_P2.54mm_Vertical |
R1 |
1M | Element bias pull-up: node sits high, dips while the spring contact closes | RC0603FR-071MLYageo Datasheet ↗ |
R_0603_1608Metric |
R2 |
10k | RC filter series element (with C2) smoothing contact chatter | RC0603FR-0710KLYageo Datasheet ↗ |
R_0603_1608Metric |
R3 |
100R | Series protection on the module-driven VIB line | RC0603FR-07100RLYageo Datasheet ↗ |
R_0603_1608Metric |
RV1 |
10k TRIM | Threshold-set trimmer, 10k, Bourns TC33X | TC33X-2-103EBourns Datasheet ↗ |
Potentiometer_Bourns_TC33X_Vertical |
U1 |
LMV7219M5 | 7 ns push-pull comparator, 2.7-5 V, SOT-23-5 | LMV7219M5XTexas Instruments Datasheet ↗ |
SOT-23-5 |
Signals#
Net labels used in the schematic, which are also the names the HDL top level should use.
3V3 GND VIB VIB_CMP VIB_ELEM VIB_FILT VIB_TH
Production status#
| Schematic ERC | 0 violations |
|---|---|
| PCB layout | complete |
| DRC | 0 violations |
| Fab package | exported (24 gerbers + drill + CPL + BOM) |
| Fabricated | no — design stage only |
Source: boards/sensor-modules/axs-004-vibration
Catalog #4 in the AruviX sensor line (../README.md), level L1 (GPIO). An SW-420 spring vibration element biased by a 1 MΩ pull-up, RC-filtered, and sliced by an LMV7219 comparator against a Bourns TC33X trimmer threshold, so the host sees clean push-pull pulses per shake.
Status: schematic generated, ERC clean (0/0), netlist reviewed. PCB layout not started. Not released.
What it teaches#
Turning a noisy mechanical contact into countable events: pulse counting, integration over a time window to grade shake intensity, and (with RV1) what an analog threshold does to event rate.
Design#
- The bare SW-420 spring element solders across a generic 1×02 THT pad pair (J2,
PinHeader_1x02footprint used as plain pads; element is non-polarized, MPN TBD). - 1 MΩ pull-up biases the element node high; the spring contact pulls it toward GND while vibrating. A 10 kΩ / 100 nF RC (~1 ms) smooths chatter.
- LMV7219M5 (SOT-23-5, push-pull): +in = filtered node, −in = RV1 wiper (TC33X-2-103E, 10 k trimmer across 3V3–GND). Output pulses low on vibration and passes a 100 Ω series resistor to PMOD pin 1 (VIB).
- The spec's alternative LM393 was skipped: the stock symbol is multi-unit (the shared generator emits unit 1 only) and its open-drain output would need another pull-up. The single, push-pull LMV7219 was the spec's preferred option.
- 100 nF comparator decoupling.
| PMOD pin | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Net | VIB | NC | NC | NC | GND | 3V3 | NC | NC | NC | NC | GND | 3V3 |
Regenerate#
python3 generate_design.py
Remaining for release#
- [ ] PCB layout (20 × 25 mm outline), DRC, fab outputs
- [ ]
hdl/: pulse counter + leaky integrator, testbench, ECP5 demo - [ ] BOM export, pin the SW-420 element source, design-review checklist