Skip to the content
PCBKitNew board
4 layers68.8 × 53.6 mmPhaseLatch, the printed circuit board in 3D

20MHz bandwidth SDR IQ ADC

Size
68.8 × 53.6 mm
Copper layers
4
Thickness
1.61 mm
Parts
140
Nets
153
Pads
458
Tracks, vias
1,024, 257
Pours
3
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
16 Sep 2025
Updated
17 May 2026

Overview

PhaseLatch is an open-source printed circuit board by AndersBNielsen, from the AndersBNielsen/PhaseLatch repository on GitHub. It is a 4-layer board of 68.8 × 53.6 mm with 140 parts on 153 nets, routed with 1,024 tracks and 257 vias.

It is built around the HT9201ARSZ, SN74LVC1G132DCKR-TP and 74LVC2G74DP, with the MIC5504-3.3YM5 among its other parts. Its parts include 51 resistors, 33 capacitors, 10 connectors, 8 ICs and 7 diodes. It belongs with the radio and wireless boards of this library.

Main components

4

README

README.md

PhaseLatch

PhaseLatch – 6502-Interfaced High-Speed ADC for Experimental SDR

Blog post & video: https://abnielsen.com/2025/12/24/6502-and-a-20mhz-adc-takes-up-the-challenge/

PhaseLatch is an open-source hardware project that explores how far a classic MOS 6502-class CPU can be pushed into modern signal-processing territory. The board implements a dual-channel, 10-bit, 20 MSPS analog-to-digital converter with a straight binary parallel output, allowing the ADC to be memory-mapped directly onto a 6502 (8 bit) data bus.

Unlike typical SDR designs that rely on high-performance microcontrollers or FPGAs, PhaseLatch intentionally interfaces high-speed conversion hardware with a severely resource-constrained 8-bit CPU. This makes it a platform for experimenting with timing limits, bus contention, memory expansion, and minimalist DSP techniques such as Goertzel tone detection executed entirely on the 6502.

The board is designed as a modular Arduino-shield-style form factor and is intended to stack with the PhaseLoom IQ mixer and the 65uino 6502 system. Direct access to the CPU address, data, and control signals enables single-instruction ADC reads and deterministic sampling under software control.

PhaseLatch is not intended to achieve full theoretical ADC bandwidth on a 6502. Instead, it serves as a practical exploration of real-world limitations, architectural trade-offs, and creative signal-processing approaches on vintage computing hardware.

PhaseLatch board photo

Purchase

Interested in owning a PhaseLatch?
Buy one here.

How to Use

6502 source code still lives over on the 65uino project

The main 65uino firmware currently comes with support for the PhaseLatch built in. Time of writing, use the SDR branch.

To get the full bandwidth out of PhaseLatch, it can also be used with an FX2LP USB streaming board instead of the 65uino.

Software

The software/ folder contains the USB streamer firmware + host-side tools for getting PhaseLatch data into SDR software.

Using with an FX2LP (USB streaming)

PhaseLatch includes header footprints intended for wiring to an FX2LP dev board. The FX2LP provides USB 2.0 high‑speed bulk streaming and acts as the “bridge” from the ADC to a host PC.

At a high level the flow is:

  • FX2LP firmware streams raw samples over USB
  • host reads via libusb and converts to CF32
  • stream is written to /tmp/iq.fifo so Gqrx can open it

Start with the guide in software/README.md, then use software/examples/pipeline.sh for a one-command stream to /tmp/iq.fifo.

Getting a PCB

Production & Manufacturing

  • The jlcpcb/gerber/ folder contains all necessary files for PCB fabrication.
  • The production_files/ folder includes:
    • BOM-PhaseLatch.csv: Bill of Materials
    • CPL-PhaseLatch.csv: Component Placement List
    • GERBER-PhaseLatch.zip: Zipped Gerber files for easy upload

This project is kindly sponsored by JLCPCB. They offer cheap, professional looking PCBs and super fast delivery.

Step 1: Get the gerber file zip package from the /hardware folder

Step 2: Upload to JLCPCB https://jlcpcb.com/?from=Anders_N

Upload

Step 3: Pick your color, surface finish and order.

Select settings Save your choice

You can use these affiliate links to get a board for $2 and also get $54 worth of New User Coupons at: https://jlcpcb.com/?from=Anders_N

And in case you also want to order a 3D-printed case you can use this link. How to Get a $7 3D Printing Coupon: https://3d.jlcpcb.com/?from=Anders3DP


For more details, technical explanations, and the full story behind PhaseLoom, check out the project video and documentation. Special thanks to JLCPCB and Fnirsi for supporting the development of this project!

Parts

140
QtyValueFootprintReferences
1810kResistor_SMD:R_0402_1005MetricR4, R5, R6, R11, R12, R13, R14, R17, R18, R19, R20, R21, R22, R23, R24, R48 +2
16100nFCapacitor_SMD:C_0402_1005MetricC1, C4, C5, C6, C7, C8, C10, C13, C15, C17, C19, C21, C24, C25, C26, C27
1233Resistor_SMD:R_0402_1005MetricR29, R30, R31, R32, R33, R34, R35, R36, R37, R38, R47, R51
12SolderJumper_2_OpenJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP2, JP4, JP8, JP9, JP11, JP12, JP14, JP17, JP22, JP23, JP26, JP27
810Resistor_SMD:R_0402_1005MetricR39, R40, R41, R42, R43, R44, R45, R46
710uFCapacitor_SMD:C_0603_1608MetricC2, C9, C14, C16, C18, C22, C23
7GreenLED_SMD:LED_0805_2012MetricD1, D2, D3, D4, D5, D6, D7
6~Jumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP3, JP5, JP6, JP7, JP15, JP28
50RResistor_SMD:R_0402_1005MetricR2, R25, R26, R27, R28
41.2uHInductor_SMD:L_0603_1608MetricL1, L2, L3, L4
4330pFCapacitor_SMD:C_0402_1005MetricC29, C30, C31, C33
44k7Resistor_SMD:R_0402_1005MetricR1, R3, R49, R50
4SN74LVC1G132DCKRPackage_TO_SOT_SMD:SOT-23-5U2, U6, U7, U8
21kResistor_SMD:R_0402_1005MetricR15, R16
21uFCapacitor_SMD:C_0805_2012MetricC11, C12
247uFCapacitor_SMD:C_1206_3216MetricC3, C20
2620pFCapacitor_SMD:C_0402_1005MetricC28, C32
2Conn_02x10_Odd_EvenConnector_PinSocket_2.54mm:PinSocket_2x10_P2.54mm_VerticalP1, P2
2FerriteBead_SmallInductor_SMD:L_0603_1608MetricFB1, FB2
2Jumper_2_OpenConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJP10, JP21
2NCResistor_SMD:R_0603_1608MetricR9, R10
2Transformer_1P_SSTransformer_SMD:Transformer_MiniCircuits_AT224-1A-AltPinoutT1, T2
165uinoModule:Arduino_UNO_R3A1
174LVC2G74Package_SO:VSSOP-8_2.3x2mm_P0.5mmU3
1AddressbusConnector_PinHeader_2.54mm:PinHeader_2x06_P2.54mm_VerticalJ7
1CLK_INConnector_Coaxial:SMA_Samtec_SMA-J-P-H-ST-EM1_EdgeMountJ23
1Chip selectConnector_PinSocket_2.54mm:PinSocket_1x03_P2.54mm_VerticalJ6
1DatabusConnector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_VerticalJ5
1HT9201ARSZPackage_SO:SSOP-28_5.3x10.2mm_P0.65mmU1
1IS62C256ALPackage_SO:TSOP-I-28_11.8x8mm_P0.55mmU4
1I_INConnector_Coaxial:SMA_Samtec_SMA-J-P-H-ST-EM1_EdgeMountJ20
1Jumper_3_Bridged12Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJP19
1Jumper_3_OpenConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJP1
1MIC5504-3.3YM5Package_TO_SOT_SMD:SOT-23-5U5
1NCConnector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_VerticalJ2
1Q_INConnector_Coaxial:SMA_Samtec_SMA-J-P-H-ST-EM1_EdgeMountJ21
1SignalsConnector_PinHeader_2.54mm:PinHeader_2x02_P2.54mm_VerticalJ8

Questions

How big is the PhaseLatch PCB?

It measures 68.8 × 53.6 mm and has 4 copper layers, 1.61 mm thick.

What parts does the PhaseLatch use?

140 parts, built around the HT9201ARSZ, SN74LVC1G132DCKR-TP, 74LVC2G74DP and MIC5504-3.3YM5. 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 PhaseLatch KiCad files?

From the AndersBNielsen/PhaseLatch repository on GitHub, at the commit this page was made from: the board is PhaseLatch.kicad_pcb and its schematic PhaseLatch.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the PhaseLatch design in my own project?

Its repository states no licence, so its author keeps all rights: ask AndersBNielsen before reusing the design.

Similar boards

  • 4 layers22 × 18.5 mmAds1293 logic add, the printed circuit board in 3D

    Ads1293 logic add

    Aightech/CleverHand-hardware

    30 parts17GPL-3.0
  • 2 layers98 × 119.5 mmAtari23MTS Upgrade, the printed circuit board in 3D

    Atari23MTS Upgrade

    gianlucarenzi/AT2019

    ATARI 8-Bit Stuff XL, XE

    92 parts9
  • 4 layers44.5 × 28 mmOpenPnPVis, the printed circuit board in 3D

    OpenPnPVis

    angusgbishop/PnPCAM

    An Open Source Vision Camera designed for pick-and-place machines.

    70 parts7GPL-3.0
  • 4 layers200 × 110 mmLTDM RevC, the printed circuit board in 3D

    LTDM RevC

    aschmidt99/LTDM_Kit_RevC

    New LTDM Code that has render.cpp

    412 parts2
  • 2 layers50 × 40 mmShareusbdisk2, the printed circuit board in 3D

    Shareusbdisk2

    hnz1102/shared-usb-memory

    USB Memory with One-touch Switching Between Two Device Connections

    83 parts2
  • 2 layers98.6 × 49.8 mmSch, the printed circuit board in 3D

    Sch

    SL-RU/svelotracker

    Device for bicycle. It will show current position, track, speed, compass, direction to the destination or to start. It can save the track and etc

    106 parts1
  • 4 layers210 × 210 mmSmartSwitch, the printed circuit board in 3D

    SmartSwitch

    Joe-Purvis/UFE

    This repository consolidates multiple projects into a single monorepo for the Ultrasound Smart Switch system.

    187 parts
  • 2 layers63.5 × 112.3 mm555Trigger, the printed circuit board in 3D

    555Trigger

    ubcbraincircuits/Mesoscope-Resources

    Download Arduino IDE: Visit the official Arduino website: Arduino Software. Choose the appropriate version for your operating system (Windows, macOS, Linux), and download the installer.

    41 parts