

A2ext dvi
General purpose Apple II Extension Card using RP2350B
- Size
- 45 × 45 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 13
- Nets
- 32
- Pads
- 65
- Tracks, vias
- 174, 0
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 17 Sep 2026
- Updated
- 12 Oct 2026
Overview
A2ext dvi is an open-source printed circuit board by iolo, from the iolo/a2ext repository on GitHub. It is a 2-layer board of 45 × 45 mm with 13 parts on 32 nets, routed with 174 tracks and 0 vias.
Its parts include 8 resistors, 2 connectors and 1 capacitor.
README
hw/a2ext-dvi/README.mda2ext-dvi
Revision 0.3 uses A4 landscape with enlarged text: 1.524 mm pin names, wire labels and values, 1.27 mm pin numbers, and 1.778 mm references/notes. The revised layout preserves all electrical connections.
Passive DVI video daughterboard using an HDMI Type A connector and the PRD's 270 ohm series resistor network. Open the KiCad 10 project; symbols are local. The SH pin represents all four plated shell contacts. The physical PCB selects Kycon KDMIX-SL1-NS-WS-B15 for PCB-P2-THT. All 19 signal contacts and four shell tabs are through-hole. This upright right-angle port exits the right board edge; its approximately 16.4 mm body height and panel opening require a new fit check. The PCB-P1 Molex connector cannot fit this revision.
The 45 x 45 mm two-layer board uses axial 1/4 W DIN0207 270 ohm resistors
(7.62 mm formed pitch), a 5.0 mm pitch radial ceramic capacitor,
and a bottom-mounted 2x10 female socket at J1. H1/H2 are 2.7 mm spacer holes
aligned with the carrier. Resistor-to-HDMI pairs use a single layer per pair
without vias: D0/D1 on F.Cu and D2/clock on B.Cu. Output tuning keeps
intra-pair trace-length difference below 0.020 mm. Full routed lengths are in
validation/summary.json; the carrier and IDC-to-resistor segments are not
pair-length tuned. Controlled impedance and physical signal quality are unqualified.
See fabrication notes, Gerbers and drills,
top, bottom, and
assembly plots. DRC, ERC, and schematic parity
reports in validation/ have zero findings.
No SMD assembly or solder stencil is required. All four shell tabs require
plated slots; retain both drill files when ordering.
tmds-routing.json preserves the reviewed pair tracks during regeneration;
the placement generator locks them before routing the other nets.
| Lane | Positive GPIO / IDC | Negative GPIO / IDC | HDMI contacts |
|---|---|---|---|
| D0 | 36 / 4 | 37 / 5 | 7 / 9 |
| D1 | 38 / 6 | 39 / 7 | 4 / 6 |
| D2 | 40 / 8 | 41 / 9 | 1 / 3 |
| Clock | 42 / 10 | 43 / 11 | 10 / 12 |
Each conductor has a 270 ohm, 1% resistor. Shields, pin 17, shell, and both IDC ground contacts share GND. Pin 18 receives the carrier's fused +5V_DB supply; there is no additional series diode drop on this board. C1 decouples that rail. UART, RUN, 3.3 V power, GPIO35/44-47, DDC, HPD, CEC, and utility are unused.
The bundled libdvi program uses the lower GPIO for the positive conductor when
invert_diffpairs=false. Use PIO1 base 16 and 64-bit mask helpers. Its clock
generator uses the shared PWM slice for even/odd GPIO42/43. This is the
reference's resistor-driven signaling approach, not a claim of HDMI compliance.
Initially use direct carrier mating. No ribbon cable length is qualified. Validate a fixed 640x480 timing mode, pair polarity, eye/edge quality, connector +5 V, and lock on multiple monitors with a real board. No EDID negotiation or hotplug handling is implemented by this schematic. Carrier power comes from the slot input (or an off-host fixture at that input); USB is data only.
Validation so far: ERC and named-net export checks. Firmware and physical TMDS tests are pending. From the repository root:
python3 tools/schematics.py dvi
python3 tools/check_schematics.py a2ext-dviReferences: ref/A2DVI v5.x hardware and
ref/A2DVI-Firmware/libraries/libdvi/dvi_serialiser.{c,pio}.
Parts
13| Qty | Value | Footprint | References |
|---|---|---|---|
| 8 | 270R 1% | A2Ext:R_Axial_7.62 | R1, R2, R3, R4, R5, R6, R7, R8 |
| 2 | MountingHole_2.7mm_M2.5 | MountingHole_2.7mm_M2.5 | H1, H2 |
| 1 | 100nF | A2Ext:C_Radial_5 | C1 |
| 1 | Carrier IDC20 | A2Ext:Socket20 | J1 |
| 1 | HDMI Type A THT | A2Ext:HDMI_Kycon_THT | J2 |
Questions
How big is the A2ext dvi PCB?
It measures 45 × 45 mm and has 2 copper layers, 1.6 mm thick.
What parts does the A2ext dvi use?
13 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the A2ext dvi KiCad files?
From the iolo/a2ext repository on GitHub, at the commit this page was made from: the board is hw/a2ext-dvi/a2ext-dvi.kicad_pcb and its schematic hw/a2ext-carrier/a2ext-carrier.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the A2ext dvi design in my own project?
Its repository states no licence, so its author keeps all rights: ask iolo before reusing the design.
More from iolo/a2ext
2- 2 layers45 × 45 mm

- 2 layers99.7 × 78.7 mm

Similar boards
- 2 layers40 × 20 mm

- 2 layers74.9 × 49.5 mm

- 2 layers35 × 29 mm

MagSpoofTC
samyk/magspoof
A portable device that can spoof/emulate any magnetic stripe, credit card or hotel card "wirelessly", even on standard magstripe (non-NFC/RFID) readers.
13 parts4.2k - 2 layers20.6 × 23.6 mm

AO-03 signal amplifier
fossasia/pslab-scripts
Pocket Science Lab - Scripts for Sensor Experiments
13 parts1.6kApache-2.0 - 2 layers47 × 35.6 mm

- 2 layers95 × 95 mm

Cube batteryboard
willem-pennings/balancing-cube
A cube that balances itself in a corner or edge using reaction wheels
13 parts1.1kGPL-3.0 - 2 layers15.2 × 20.3 mm

Pt100stick
VoronDesign/Voron-Hardware
Cool Hardware designed by the Voron Design group
13 parts1.1kGPL-3.0 - 2 layers53.9 × 23.2 mm

Buffer
hoglet67/RGBtoHDMI
Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI
13 parts1kGPL-3.0