Sensor modules
AXS-030 — Piezo contact mic PMOD module
Catalog #30 in the AruviX sensor line, level L4 (streaming acquisition). A piezo disc (contact mic) on a 2-pin header, conditioned into an ADS7042 12-bit 1 MSPS SPI ADC.
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 | AVDD/DVDD high-frequency decoupling | GRM188R71C104KA01DMurata |
C_0603_1608Metric |
C2 |
1uF 10V X7R | AVDD/DVDD bulk decoupling | GRM188R71A105KA61DMurata |
C_0603_1608Metric |
D1 |
BAT54S | Schottky clamp of the piezo node to the rails | BAT54S,215Nexperia Datasheet ↗ |
SOT-23 |
J1 |
PMOD PLUG 2x6 | PMOD peripheral plug (Digilent spec 1.2) | not selected generic |
PinHeader_2x06_P2.54mm_Horizontal |
J2 |
PIEZO DISC | Piezo contact-mic disc terminal: 1 = signal, 2 = GND (disc brass) | not selected generic |
PinHeader_1x02_P2.54mm_Vertical |
R1 |
1M | References the piezo charge source to mid-rail | RC0603FR-071MLYageo Datasheet ↗ |
R_0603_1608Metric |
R2 |
1M | Mid-rail divider, upper leg | RC0603FR-071MLYageo Datasheet ↗ |
R_0603_1608Metric |
R3 |
1M | Mid-rail divider, lower leg | RC0603FR-071MLYageo Datasheet ↗ |
R_0603_1608Metric |
R4 |
100R | Series protection on the ADC-driven data line | RC0603FR-07100RLYageo Datasheet ↗ |
R_0603_1608Metric |
R5 |
10k | ~CS idle pull-up so the output stays released until the host selects it | RC0603FR-0710KLYageo Datasheet ↗ |
R_0603_1608Metric |
U1 |
ADS7042 | 12-bit 1 MSPS SAR ADC, SPI-compatible cs-framed interface | ADS7042IDCURTexas Instruments Datasheet ↗ |
VSSOP-8_2.3x2mm_P0.5mm |
Signals#
Net labels used in the schematic, which are also the names the HDL top level should use.
3V3 ADC_SDO CS_N GND MISO PIEZO SCK VMID
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-030-piezo
Catalog #30 in the AruviX sensor line (../README.md), level L4 (streaming acquisition). A piezo disc (contact mic) on a 2-pin header, conditioned into an ADS7042 12-bit 1 MSPS SPI ADC.
Status: schematic generated, ERC clean (0/0), netlist reviewed. PCB layout not started. Not released.
What it teaches#
Streaming acquisition: the ADS7042 has no registers at all — every ~CS-framed 16-clock burst returns one 12-bit sample, so the fabric side is a free-running sampler FSM feeding a FIFO. Then DSP-in-fabric: envelope detection (rectify + leaky integrator), knock detection, and trigger thresholds on the sample stream.
Design#
- Piezo disc attaches via J2 (1×2 header, value "PIEZO DISC", MPN TBD — any 20–35 mm brass piezo disc works).
- The disc is a charge source: 1 MΩ (R1) references it to a 2 × 1 MΩ mid-rail divider (R2/R3) so both swing polarities digitize around mid-scale.
- BAT54S series pair clamps the node to GND/3V3 — a hard knock can generate tens of volts open-circuit.
- ADS7042IDCUR (VSSOP-8), AVDD = DVDD = 3V3 (AVDD is also the reference), 100 nF + 1 µF decoupling. AINM to GND (single-ended).
- cs-framed read-only interface: no MOSI, PMOD pin 2 left NC. SDO passes a 100 Ω series resistor; ~CS has a 10 k pull-up so the output stays released until the host drives it.
| PMOD pin | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Net | ~CS | NC | MISO | SCK | GND | 3V3 | NC | NC | NC | NC | GND | 3V3 |
Regenerate#
python3 generate_design.py
Remaining for release#
- [ ] PCB layout, DRC, fab outputs
- [ ]
hdl/: ADS7042 sampler FSM, FIFO, envelope detector, ECP5 demo - [ ] BOM export and availability check, design-review checklist