Sensor modules
AXS-038 — TTP223 capacitive-touch PMOD module
Catalog #38 in the AruviX sensor line, level L1 (single GPIO). The TTP223 has no stock KiCad symbol, so the generator embeds a custom symbol block (SOT-23-6 pin table from the Tontek datasheet) and emits a project-local AruviX_AXS.kicad_sym + sym-lib-table, following the pattern.
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 | U1 VDD decoupling | GRM188R71C104KA01DMurata |
C_0603_1608Metric |
C2 |
10pF C0G (DNP) DNP | Sensitivity trim capacitor, 0-50 pF range; fit/adjust to tune (larger C = less sensitive) | GRM1885C1H100JA01DMurata |
C_0603_1608Metric |
J1 |
PMOD PLUG 2x6 | PMOD peripheral plug (Digilent spec 1.2) | not selected generic |
PinHeader_2x06_P2.54mm_Horizontal |
J2 |
TOUCH PAD | Touch-electrode attachment point (wire, foil, or PCB pad) | not selected generic |
PinHeader_1x01_P2.54mm_Vertical |
JP1 |
AHLB MODE | Open (default) = output active-high; bridge to 3V3 = active-low | — | SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mm |
JP2 |
TOG MODE | Open (default) = momentary output; bridge to 3V3 = toggle (latch) mode | — | SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mm |
R1 |
100R | Series protection on the sensor-driven output line | RC0603FR-07100RLYageo Datasheet ↗ |
R_0603_1608Metric |
U1 |
TTP223-BA6 | Single-key capacitive touch detector, SOT-23-6 | TTP223-BA6Tontek Datasheet ↗ |
SOT-23-6 |
Signals#
Net labels used in the schematic, which are also the names the HDL top level should use.
3V3 AHLB GND TOG TOUCH TOUCH_PAD TOUCH_Q
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-038-touch
Catalog #38 in the AruviX sensor line (../README.md), level L1 (single GPIO). The TTP223 has no stock KiCad symbol, so the generator embeds a custom symbol block (SOT-23-6 pin table from the Tontek datasheet) and emits a project-local AruviX_AXS.kicad_sym + sym-lib-table, following the boards/usb-c-pd-trigger pattern.
Status: schematic generated, ERC clean (0/0), netlist reviewed. PCB layout not started. Not released.
What it teaches#
The simplest sensor in the line: one debounced GPIO level. The FPGA lesson is input synchronizers (2-FF), debouncing, edge detection, and toggle logic — and, on the hardware side, what a capacitive electrode is.
Design#
- Tontek TTP223-BA6, SOT-23-6. Pin table: 1 Q, 2 VSS, 3 I (sense), 4 AHLB, 5 VDD, 6 TOG.
- Sense electrode: J2, a 1×1 pin-header pad (
PinHeader_1x01) as the wire/foil attachment point on netTOUCH_PAD, wired to pin 3. - Sensitivity: C2 10 pF C0G, DNP, from
TOUCH_PADto GND. The TTP223 accepts 0–50 pF; fit/adjust to desensitize a large or cabled electrode (larger C = less sensitive). - Mode straps: AHLB and TOG have internal pull-downs and sample at power-on. JP1/JP2 are open solder jumpers to 3V3:
- both open (default) = momentary, active-high output;
- bridge JP1 (AHLB=1) = active-low output;
- bridge JP2 (TOG=1) = toggle/latch mode.
- Q passes a 100 Ω series resistor (R1) to PMOD pin 1 as
TOUCH.
| PMOD pin | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Net | TOUCH | NC | NC | NC | GND | 3V3 | NC | NC | NC | NC | GND | 3V3 |
Regenerate#
python3 generate_design.py # also rewrites AruviX_AXS.kicad_sym + sym-lib-table
reports/erc.rpt is the last kicad-cli ERC run.
Remaining for release#
- [ ] Decide the shipped electrode (on-board copper pour pad vs. J2 wire) at layout; keep the sense trace short and away from the PMOD bus
- [ ] PCB layout, DRC, fab outputs
- [ ]
hdl/: synchronizer/debounce/edge-detect core, testbench, ECP5 demo - [ ] BOM export and availability check, design-review checklist