Skip to the content
PCBKitNew board
2 layers95.2 × 57.2 mmDomesdayDuplicator, the printed circuit board in 3D

High-speed LaserDisc RF sampler

Size
95.2 × 57.2 mm
Copper layers
2
Thickness
1.6 mm
Parts
66
Nets
91
Pads
349
Tracks, vias
766, 49
Pours
2
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
30 Oct 2017
Updated
15 Sep 2026

Overview

DomesdayDuplicator is an open-source printed circuit board by Domesday86, from the Domesday86/DomesdayDuplicator repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 95.2 × 57.2 mm with 66 parts on 91 nets, routed with 766 tracks and 49 vias.

It is built around the ADS825E, OPA690ID and LM1117-3.3. Its parts include 32 capacitors, 13 resistors, 5 ICs, 5 connectors and 3 inductors. It belongs with the radio and wireless and fPGA and programmable logic boards and the FPGA and CPLD boards of this library.

Main components

3

README

README.md

Domesday Duplicator (DdD)

The Domesday Duplicator is a LaserDisc capture focused, USB 3.0 based DAQ capable of 40 million samples per second acquisition of analogue RF data at 10-bits resolution.

Please see the Project Documentation for details of the project and for access to the project documentation. For contributing guidelines, see CONTRIBUTING.md.

Domesday Duplicator Overview

The capture application

Capture is via an easy to use GUI capture application, with real-time signal analysis — waveform, spectrum analyser and spectrogram, amplitude history and live capture statistics — so you can see the RF while it is being sampled rather than after the fact.

The capture application, showing the spectrogram view

The application also drives a Pioneer LaserDisc player over serial, runs whole-disc automatic captures, and updates the Duplicator's own firmware and gateware over USB. The Capture Application documentation covers every panel.

Installing — no compilation required

There is absolutely no need to compile anything. All end-user installs must be performed using the provided binary packages and firmware images. Building from source is a development activity only, and nothing you need as a user requires it.

The capture application

Download from the releases page and follow the installation page for your platform:

PlatformPackageInstallation
LinuxDomesdayDuplicator-<version>.flatpakLinux (Flatpak)
macOS (Apple Silicon)DomesdayDuplicator-<version>-macos-arm64.dmgmacOS (DMG)
Windows 11DomesdayDuplicator-<version>-windows-x64.msiWindows (MSI)

Every release also carries SHA256SUMS and a PROVENANCE.txt recording the commit each asset was built from. Verify your download against SHA256SUMS.

Firmware and gateware

You do not build these either. Firmware releases publish a single signed update bundle, domesday-duplicator-update-<version>.dddfw, and the capture application installs it for you: Tools → Firmware → Update firmware…. The application verifies the bundle's signature and every payload digest before it writes anything, and reports the version it reads back off the live device afterwards. See Updating your Domesday Duplicator.

A board that has never been programmed is handled the same way, with no jumper and no shell — see Bringing up a new or legacy board. Firmware releases also publish the raw images (firmware.img, the provisioning .jic and the factory .svf) for bench recovery, but the bundle is the supported route.

Every released artefact is built by CI from the tagged commit; nothing is built on a maintainer's machine or attached by hand (release pipeline).

Cloning the repository

Everything is in this one repository. There are no git submodules, so a plain clone gives you the complete project:

text
git clone https://github.com/Domesday86/DomesdayDuplicator.git

Repository layout

DirectoryContents
hardware/KiCad design for the custom DdD board, plus hardware documentation
fpga/Verilog gateware for the Terasic DE0-NANO (Cyclone IV)
fx3/firmware/Cypress FX3 USB 3.0 controller firmware
fx3/programmer/Host-side tool for programming the FX3
fx3/mkimage/fx3-mkimage, the project's own ELF-to-boot-image tool
fx3/sdk/Vendored Cypress FX3 SDK the firmware builds against
ddd-gui/Qt 6 capture application, and the Flatpak/DMG/MSI packaging under ddd-gui/packaging/
docs/Source of the project documentation website
docs-vendor/Transcribed vendor service documentation for supported players
nix/The single flake's shared helpers, default dev shell, NixOS module and whole-tree checks
tools/Repository-wide scripts, run both by hand and by the checks

Developing the project

Do NOT install from source unless you intend to develop the software — see Installing above for user installations.

Nix on Linux is the only supported environment

The only supported development and build environment is Nix on Linux. There is exactly one flake.nix, at the repository root, and exactly one flake.lock; every toolchain the project needs is pinned by it, and CI builds through the same flake, so a build that fails under Nix is a real failure rather than an environment quirk.

Pull requests that introduce another development or build environment will not be accepted. That includes alternative build systems, per-distribution dependency lists, and packaging intended to make a component build without Nix. If you develop on macOS or Windows, use a Linux virtual machine — that is the supported route, and it is the only one.

Building

Run any of these from anywhere in the working tree; Nix walks up to find the flake at the root, so .#ddd-gui resolves identically from ddd-gui/ and from the repository root.

ComponentBuildDevelopment shell
Capture applicationnix build .#ddd-guinix develop .#ddd-gui
FX3 firmwarenix build .#fx3-firmwarenix develop .#fx3
FX3 programmernix build .#fx3-programmernix develop .#fx3
FX3 boot-image toolnix build .#fx3-mkimagenix develop .#fx3
FPGA gatewarenix build .#bitstreamnix develop .#fpga · nix develop .#fpga-quartus
Documentation sitenix build .#docs-sitenix develop .#docs
PCB—nix develop .#hardware
text
nix develop                          # every component's tools in one shell
nix flake check                      # build everything and run the whole T1–T4 test suite

The capture application installs three binaries: ddd-gui, plus ddd-update and ddd-jtag, which drive the same engine from a shell.

Components deliberately carry no flake of their own: an earlier layout gave each one a thin flake for the cd ddd-gui && nix develop shorthand, and every one of those resolved nixos-unstable into a lock file of its own — so entering the tree through a component quietly got a different nixpkgs from the root pin. The reasoning is in the header comment of flake.nix.

Two caveats on the FPGA row. Quartus Prime Lite is unfree, x86_64-linux only and cannot be served from a binary cache, so nix build .#bitstream means a multi-gigabyte first download and is excluded from nix flake check — the per-commit tier must never require an unfree download of anyone. It is built by CI, in a workflow of its own that runs on gateware changes and from release tags, so every released bitstream is CI-built from the tagged commit. nix develop .#fpga — without -quartus — gives the free tools instead: Verilog lint, simulation and a language server, with no Quartus at all, and that covers most gateware work.

Build directories are build/ under each component and are gitignored. Never build in-tree: in the gateware's project directories in particular, Quartus rewrites the tracked .qsf on every compile.

On NixOS, device permissions come from the flake's module — set hardware.domesdayDuplicator.enable = true;, which covers the Duplicator, the FX3 and the on-board USB-Blaster together. Elsewhere, see Linux device access.

AGENTS.md records the project conventions and TESTING.md the test tiers, including the hardware-in-the-loop capture-integrity procedure that is the most important test in the project.

The Decode Family

The samples the DdD captures can be used with the whole family of decoders that make the FM RF archival workflow ready to use today.

The original design was for the wide bandwidth of LaserDisc RF — making it suitable for all of the more bandwidth restricted mediums too (that have a single stream of RF).

Please see the documentation for more details

3D Printed Case

The Domesday Duplicator also has 3D models and ready to use STL files for producing 3D printed cases, to protect from dust or line with copper tape for affordable EMI shielding for example.

Authors

Domesday Duplicator is designed and maintained by Simon Inns.

Licences

Parts

66
QtyValueFootprintReferences
16100nFCapacitors_SMD:C_0805C301, C303, C305, C307, C309, C311, C313, C314, C316, C317, C318, C401, C402, C408, C502, C504
92.2uF TantCapacitors_Tantalum_SMD:CP_Tantalum_Case-A_EIA-3216-18_ReflowC302, C304, C306, C308, C310, C312, C315, C319, C409
41KResistors_SMD:R_0805R301, R402, R403, R407
210uF TANTCapacitors_Tantalum_SMD:CP_Tantalum_Case-B_EIA-3528-21_ReflowC501, C503
247RResistors_SMD:R_0805R410, R411
274LVTH541_PWRHousings_SSOP:TSSOP-20_4.4x6.5mm_Pitch0.65mmU302, U303
2LOGOLogo:CC LicenceG***, G***
2LOGOLogo:DdD_logo_squareG***, G***
1100RResistors_SMD:R_0805R404
1100pFCapacitors_SMD:C_0805C406
1100uHInductors:Inductor_Bourns-SRU8043L501
11K2Resistors_SMD:R_0805R302
11K5Resistors_SMD:R_0805R406
1200RResistors_SMD:R_0805R405
1270pFCapacitors_SMD:C_0805C407
1330pFCapacitors_SMD:C_0805C403
133pFCapacitors_SMD:C_0805C404
1470pFCapacitors_SMD:C_0805C405
1560RResistors_SMD:R_0805R409
1560nHInductors_SMD:L_0805L402
156RResistors_SMD:R_0805R401
1680RResistors_SMD:R_0805R408
1680nHInductors_SMD:L_0805L401
1ADS825Housings_SSOP:SSOP-28_5.3x10.2mm_Pitch0.65mmU301
1BNC_RosenbergerBNC_Rosenberger:BNC SocketJ401
1DE0-Nano_GPIO0Socket_Strips:Socket_Strip_Straight_2x20_Pitch2.54mmJ102
1DE0-Nano_GPIO1Socket_Strips:Socket_Strip_Straight_2x20_Pitch2.54mmJ101
1GPIFII_J6Pin_Headers:Pin_Header_Straight_2x20_Pitch2.54mmJ202
1GPIFII_J7Pin_Headers:Pin_Header_Straight_2x20_Pitch2.54mmJ201
1Gain SelectButtons_Switches_SMD:SW_DIP_x4_W7.62mm_Slide_Copal_CHS-BSW401
1LM1117-3.3TO_SOT_Packages_SMD:SOT-223-3_TabPin2U501
1LOGOLogo:DdD_logoG***
1LOGOLogo:dd86 logoG***
1LOGOLogo:oshw logoG***
1OPA690Housings_SOIC:SOIC-8_3.9x4.9mm_Pitch1.27mmU401

Questions

How big is the DomesdayDuplicator PCB?

It measures 95.2 × 57.2 mm and has 2 copper layers, 1.6 mm thick.

What parts does the DomesdayDuplicator use?

66 parts, built around the ADS825E, OPA690ID and LM1117-3.3. 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 DomesdayDuplicator KiCad files?

From the Domesday86/DomesdayDuplicator repository on GitHub, at the commit this page was made from: the board is hardware/pcb/Domesday Duplicator.kicad_pcb and its schematic hardware/pcb/ADC.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the DomesdayDuplicator design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers33.7 × 97.8 mmHAN ESP TSS721, the printed circuit board in 3D

    HAN ESP TSS721

    UtilitechAS/amsreader-firmware

    ESP8266 and ESP32 compatible firmware to read, interpret and publish data to MQTT from smart electrical meters, both DLMS and DSMR is supported

    29 parts470
  • 2 layers52.5 × 36.6 mmESP8266-WebRadio, the printed circuit board in 3D

    ESP8266-WebRadio

    karawin/Ka-Radio

    A wifi webradio with only low cost boards ESP8266 and VS1053 by Jp Cocatrix

    52 parts453
  • 2 layers189.5 × 204.9 mmSmartSpin2k Panelized, the printed circuit board in 3D

    SmartSpin2k Panelized

    doudar/SmartSpin2k

    Transform your spin bike into a Smart Trainer!

    749 parts292GPL-2.0
  • 4 layers121.9 × 109.2 mmPlinkyblack hwmidi jacks, the printed circuit board in 3D

    Plinkyblack hwmidi jacks

    plinkysynth/plinky_public

    a public release of the plinky sw and hw

    300 parts227
  • 4 layers113.5 × 105.5 mmMultistepper, the printed circuit board in 3D

    Multistepper

    eddyem/stm32samples

    Code samples and ready projects based on bare-metal STM32

    243 parts208
  • 2 layers275 × 103 mmKeebee, the printed circuit board in 3D

    Keebee

    blakesmith/embedded

    Blake's embedded projects

    159 parts167
  • 2 layers43 × 34.3 mmEspway, the printed circuit board in 3D

    Espway

    espway/espway

    Segway-like robot implemented on ESP8266

    37 parts122LGPL-3.0