← AXO-004

Circuit review & bench-test guide

AXO-004 — MAX7219 8×8 LED matrix PMOD module

Design-stage — board not yet fabricated

Document purpose#

Component-level explanation and bench-test plan for axo-004-matrix, from generate_design.py, the module README.md, and the MAX7219 and SN74AHCT125 datasheets. Never fabricated; values are verification targets. This board runs the MAX7219 from an external 5 V rail and level-shifts the SPI lines — a mixed-voltage board, so read the sequencing notes.

1. What the board does#

Drives a common 8×8 LED matrix through a MAX7219 display driver over SPI. The MAX7219 is a 5 V part; its 3.3 V logic threshold (VIH ≈ 3.5 V at 5 V supply) is above the FPGA's 3.3 V output, so DIN/CLK/LOAD are level-shifted 3.3→5 V by a 74AHCT125.

PMOD J1  MOSI/SCK/CS ─> U2 74AHCT125 (3.3->5V, VCC=5V) ─> U1 MAX7219 DIN/CLK/LOAD
EXT 5V J3 ─> U1 V+, U2 VCC ; U1 ISET (R1) sets segment current
U1 SEG/DIG ─> J4/J5 matrix socket

2. Safety and scope boundaries#

4. Interfaces#

4a. PLUG-IN VERIFICATION#

8×8 matrices come as 1088AS (common-cathode-row) and 788BS (transposed) with differing pinouts. The MAX7219 SEG/DIG mapping assumes one. Before power: buzz the matrix package against J4/J5, confirm which pins are the driver's DIG (digit/row cathodes) vs SEG (segment anodes); if it's the transposed part the image is rotated/mirrored — remap in firmware, don't force it.

5. Component-by-component review#

6. Datasheet summary (MAX7219)#

74AHCT125: VCC 4.5–5.5 V, TTL inputs (VIH 2 V), so 3.3 V drives it cleanly.

7. Expected values before bench testing#

8. Manual review checklist#

9. Ordered bench-test procedure#

A. Unpowered: buzz level-shifter path (host→U2→U1), R1 value, matrix pinout; confirm 3V3 and 5V rails are separate and unshorted.

B. Rail sequence: apply 3.3 V first (U2 inputs now defined), then 5 V into J3 (≤500 mA). Confirm U2 outputs idle correctly.

C. Level-shift scope: scope a U2 input (3.3 V) and its output (5 V) while the host toggles CLK; confirm clean 0–5 V output edges.

D. Driver bring-up: send Shutdown=0x01, then Display Test=0x01 → whole matrix lights. Read supply current; confirm bounded by ISET.

E. Pattern: Display Test off; ScanLimit=7, Decode=0x00 (no BCD), write rows 0x01..0x08 with a known bitmap; confirm the image and orientation (remap if 788BS).

F. Intensity sweep: write Intensity 0x00→0x0F; confirm PWM brightness steps.

10. Troubleshooting map#

11. Bench record template#

Board: axo-004  Matrix P/N:____  Orientation identified: [ ]
U2 output swing: __ V   Display-test full-lit current: ____ mA
Pattern correct: [ ]   Intensity steps OK: [ ]
Notes:

12. Review conclusion#

The design's real content is the mixed-voltage handling: an AHCT shifter is mandatory because the MAX7219's 5 V VIH exceeds a 3.3 V drive. Verify the shifter swing and the rail sequence first; everything after is MAX7219 register bring-up. Confirm the matrix variant before trusting the image.