Actuator modules
AXA-009 — WS2812 LED strip driver PMOD module
Catalog #9 in the AruviX actuator line, level L2. One 74AHCT125 buffer gate shifts the host's 3.3 V single-wire WS2812 stream to a clean 5 V DOUT; strip power comes in on its own screw terminal.
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 | 74AHCT125 supply decoupling | GRM188R71C104KA01DMurata |
C_0603_1608Metric |
C2 |
10uF 25V X5R | Local 5 V reservoir (fitted); big bulk belongs at the strip | GRM21BR61E106KA73LMurata |
C_0805_2012Metric |
C3 |
1000uF 10V (DNP) DNP | DNP placeholder for on-module electrolytic bulk; README: fit external bulk at the strip | not selected TBD |
CP_Elec_8x10 |
J1 |
PMOD PLUG 2x6 | PMOD peripheral plug (Digilent spec 1.2) | not selected generic |
PinHeader_2x06_P2.54mm_Horizontal |
J2 |
5V IN (STRIP SUPPLY) | LED strip supply input: 1 V5_LED (5 V), 2 GND (joins PMOD GND here) | not selected Phoenix Contact |
TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_Horizontal |
J3 |
STRIP (5V/DOUT/GND) | WS2812 strip: 1 V5_LED, 2 DOUT (5 V data), 3 GND | not selected Phoenix Contact |
TerminalBlock_Phoenix_MKDS-1,5-3-5.08_1x03_P5.08mm_Horizontal |
R1 |
100R | Series damping at the strip connector (kills reflections on the strip lead) | RC0603FR-07100RLYageo Datasheet ↗ |
R_0603_1608Metric |
U1 |
74AHCT125 | Quad buffer, 3-state, TTL-threshold inputs (3.3 V -> 5 V level shift) | SN74AHCT125PWTexas Instruments Datasheet ↗ |
TSSOP-14_4.4x5mm_P0.65mm |
U1 |
74AHCT125 | Quad buffer, 3-state, TTL-threshold inputs (3.3 V -> 5 V level shift) | SN74AHCT125PWTexas Instruments Datasheet ↗ |
TSSOP-14_4.4x5mm_P0.65mm |
U1 |
74AHCT125 | Quad buffer, 3-state, TTL-threshold inputs (3.3 V -> 5 V level shift) | SN74AHCT125PWTexas Instruments Datasheet ↗ |
TSSOP-14_4.4x5mm_P0.65mm |
U1 |
74AHCT125 | Quad buffer, 3-state, TTL-threshold inputs (3.3 V -> 5 V level shift) | SN74AHCT125PWTexas Instruments Datasheet ↗ |
TSSOP-14_4.4x5mm_P0.65mm |
U1 |
74AHCT125 | Quad buffer, 3-state, TTL-threshold inputs (3.3 V -> 5 V level shift) | SN74AHCT125PWTexas Instruments Datasheet ↗ |
TSSOP-14_4.4x5mm_P0.65mm |
Signals#
Net labels used in the schematic, which are also the names the HDL top level should use.
3V3 DATA DOUT DOUT_BUF GND V5_LED
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/actuator-modules/axa-009-ws2812
Catalog #9 in the AruviX actuator line (../README.md), level L2. One 74AHCT125 buffer gate shifts the host's 3.3 V single-wire WS2812 stream to a clean 5 V DOUT; strip power comes in on its own screw terminal.
Status: schematic generated, ERC clean (0/0), netlist reviewed. PCB layout not started. Not released.
What it teaches#
The WS2812 timing lesson already name-checked in the sensor-line learning path: one wire, 800 kHz, 1.25 µs bit period, 0/1 encoded by pulse width (T0H ≈ 400 ns, T1H ≈ 800 ns, ±150 ns tolerance), >50 µs low to latch. Generate the stream in fabric with the shared ws2812_tx HDL core (../../pmod-common/hdl/) — cycle-exact timing is trivial in an FPGA and painful everywhere else.
Design#
- SN74AHCT125PW (TI, TSSOP-14). AHCT = TTL-threshold inputs (V_IH = 2.0 V), so the PMOD's 3.3 V drives it directly while VCC runs at the strip's 5 V — the proper 3.3 V→5 V shift the line rule demands (never drive a 5 V WS2812 chain from a 3.3 V pin).
- Strip power (V5_LED, 5 V) enters on the J2 screw terminal only — never through the PMOD. Budget 60 mA per pixel at full white. Grounds join on the module.
- Gate 1: ~OE to GND (always enabled), input = PMOD DATA, output through R1 100 Ω (series damping, placed at the connector) to J3 pin 2 DOUT.
- Unused gates 2–4: ~OE and inputs tied to GND — outputs actively drive low and are left open (a defined, harmless state; nothing floats).
- Strip connector J3: 1x03 screw terminal, V5_LED / DOUT / GND.
- Decoupling: 100 nF + 10 µF fitted at the buffer. C3 (1000 µF SMD electrolytic, 8×10 mm pad) is DNP — on-module bulk cannot save a long strip; fit ≥470 µF external bulk at the strip head and re-inject 5 V every ~100 pixels instead.
| PMOD pin | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Net | DATA | NC | NC | NC | GND | 3V3 | NC | NC | NC | NC | GND | 3V3 |
Regenerate#
python3 generate_design.py
Remaining for release#
- [ ] PCB layout (20 × 40 mm actuator outline), DRC, fab outputs
- [ ]
hdl/: instantiate the sharedws2812_txcore + demo pattern generator, testbench, ECP5 demo - [ ] BOM export and availability check, design-review checklist