I/O modules
AXO-013 — analog joystick carrier PMOD module
Catalog #13 in the AruviX output line, level L3. Socketed carrier for the common 5-pin XY thumbstick breakout (KY-023 class): the SKRH/COM-09032-class stick itself has no stock KiCad footprint (documented deferral), so the breakout plugs in.
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 |
10nF 50V X7R | X-axis RC shunt: fc = 1/(2*pi*1k*10nF) ~ 16 kHz | GRM188R71H103KA01DMurata |
C_0603_1608Metric |
C2 |
10nF 50V X7R | Y-axis RC shunt: fc = 1/(2*pi*1k*10nF) ~ 16 kHz | GRM188R71H103KA01DMurata |
C_0603_1608Metric |
C3 |
100nF 16V X7R | MCP3202 VDD/VREF decoupling | GRM188R71C104KA01DMurata |
C_0603_1608Metric |
C4 |
1uF 10V X7R | Supply bulk decoupling at the socket | GRM188R71A105KA61DMurata |
C_0603_1608Metric |
J1 |
PMOD PLUG 2x6 | PMOD peripheral plug (Digilent spec 1.2) | not selected generic |
PinHeader_2x06_P2.54mm_Horizontal |
J2 |
JOYSTICK SOCKET (1x5) | Socket for the common 5-pin XY thumbstick breakout | not selected generic |
PinSocket_1x05_P2.54mm_Vertical |
R1 |
1k | X-axis RC series element (anti-alias + SAR source impedance) | RC0603FR-071KLYageo Datasheet ↗ |
R_0603_1608Metric |
R2 |
1k | Y-axis RC series element (anti-alias + SAR source impedance) | RC0603FR-071KLYageo Datasheet ↗ |
R_0603_1608Metric |
R3 |
10k | Stick-click pull-up (switch closes to GND; idle high) | RC0603FR-0710KLYageo Datasheet ↗ |
R_0603_1608Metric |
R4 |
100R | Series protection on the module-driven button line | RC0603FR-07100RLYageo Datasheet ↗ |
R_0603_1608Metric |
R5 |
100R | Series protection on the ADC-driven DOUT line | RC0603FR-07100RLYageo Datasheet ↗ |
R_0603_1608Metric |
R6 |
10k | ~CS idle pull-up so an unconfigured host cannot start a conversion | RC0603FR-0710KLYageo Datasheet ↗ |
R_0603_1608Metric |
U1 |
MCP3202 | Dual-channel 12-bit SPI SAR ADC, 100 ksps | MCP3202-BI/SNMicrochip Datasheet ↗ |
SOIC-8_3.9x4.9mm_P1.27mm |
Signals#
Net labels used in the schematic, which are also the names the HDL top level should use.
3V3 ADC_DOUT CS_N GND JOY_SW JOY_X JOY_Y MISO MOSI SCK SW_RAW VRX_W VRY_W
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/io-modules/axo-013-joystick
Catalog #13 in the AruviX output line (../README.md), level L3. Socketed carrier for the common 5-pin XY thumbstick breakout (KY-023 class): the SKRH/COM-09032-class stick itself has no stock KiCad footprint (documented deferral in ../README.md), so the breakout plugs in.
Status: schematic generated, ERC clean (0/0), netlist reviewed. PCB layout not started. Not released.
What it teaches#
Reading two analog axes plus a button over one PMOD: SPI ADC transactions, dead-zone/centering math in fabric, then Pong with the VGA module (axo-007) or robot teleop with the actuator line.
Design#
- ADC:
Analog_ADC:MCP3202— verified in stock, so the single dual-channel option is used and the catalog's 2× ADS7042 fallback is not needed. MCP3202-BI/SN (SOIC-8): dual-channel 12-bit SAR, 100 ksps, has DIN (MOSI) ✓. VREF = VDD = 3V3, matching the stick's rail-to-rail wipers. CH0 = X, CH1 = Y. - J2 = 1×05 pin socket, typical order
1 VCC 2 GND 3 VRx 4 VRy 5 SW. ORDER-CHECK WARNING (on the schematic too): clones occasionally swap VRx/VRy or VCC/GND — verify your breakout's silkscreen before plugging in. - RC per axis: 1 k + 10 nF (fc = 1/(2π·1k·10nF) ≈ 16 kHz): wiper-scratch low-pass and SAR charge reservoir at a source impedance the MCP3202 tolerates.
- SW (stick click, closes to GND): 10 k pull-up, then — as a module-driven line — 100 Ω series to PMOD pin 8.
- 10 k
~CSidle pull-up, 100 Ω on the ADC-driven DOUT→MISO line, 100 nF + 1 µF decoupling.
PMOD pin map (Type 2A SPI)#
| PMOD pin | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Net | CS_N | MOSI | MISO | SCK | GND | 3V3 | NC | JOY_SW | NC | NC | GND | 3V3 |
Regenerate#
python3 generate_design.py
Remaining for release#
- [ ] PCB layout (breakout socket clear of the PMOD clip zone), DRC, fab outputs
- [ ]
hdl/: SPI master + MCP3202 read core, dead-zone demo - [ ] BOM export and availability check, design-review checklist