Skip to the content
2 layers70 × 90 mmAd3-feature module, the printed circuit board in 3D

Ad3-feature module

MadsRudolph/ad3-test-rig

CNC-friendly Analog Discovery 3 test rig with a plug-in experiment board, printable enclosure and assembly guide

Size
70 × 90 mm
Copper layers
2
Thickness
1.6 mm
Parts
29
Nets
42
Pads
120
Tracks, vias
88, 0
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
6 Sep 2026
Updated
6 Sep 2026

Overview

Ad3-feature module is an open-source printed circuit board by MadsRudolph, from the MadsRudolph/ad3-test-rig repository on GitHub. It is a 2-layer board of 70 × 90 mm with 29 parts on 42 nets, routed with 88 tracks and 0 vias.

Its parts include 11 connectors, 9 resistors, 2 diodes, 2 switches and 1 capacitor.

README

README.md

AD3 modular test rig

Passive, single-sided 100 × 100 mm baseboard for an Analog Discovery 3 flywire cable, a 170-point breadboard or the included 70 × 90 mm plug-in feature module. Nine populated baseboard footprints plus two removable source shunts; every purchased PCB component is matched to data/dtu_component_shop.csv in data/bom.csv or module/bom.csv.

Assembly renders

AD3 test rig with the plug-in feature module and printed enclosure

The plug-in configuration adds a low-pass filter, attenuator, selectable loopback paths, signal terminals, two buttons and two LEDs. Remove the breadboard before fitting the module. See the module assembly and test guide for wiring, soldering and AD3 commissioning.

Close-up of the plug-in feature module and its components

The module uses a printed support and taller storage cover. Download the Blender assembly, support STL and tall cover STL.

Original AD3 baseboard with the 170-point breadboard and enclosure

The original breadboard configuration remains available. These are design renders with illustrative component bodies; physical hardware and first-print fit have not yet been verified.

Open hardware/ad3-test-rig.kicad_pro in KiCad 10. Start the showcase with python serve.py, then visit http://localhost:8081.

  • hardware/: schematic, routed board, project-local footprint library and rules.
  • hardware/production/: unmirrored B.Cu Gerber, outline, silkscreen and drill data.
  • enclosure/: Blender source, editable scene, base/cover STLs and assembly GLB.
  • website/: local showcase, interactive pinout, model inspection and assembly checklist.
  • bench/: commissioning procedure and opt-in WaveForms SDK loopback test.
  • tests/: generated electrical, inventory and mechanical reports.

Design decisions

J1/J2 are male 15-pin banks for the individual female flywires. J3/J4 are matching female sockets, 60 mm between bank centre lines, for patching or a future module. Pins 1–15 run toward increasing PCB Y. All four grounds are common. CH1− and CH2− remain independent differential inputs. The AD3's positive and negative supplies pass straight to J3/J4 pin 4.

J5 is bench input (+, GND, −), J6 is selected-power screw terminal and J7 a selected-power module socket. JP1/JP2 choose AD3 (1–2), bench (2–3), or disconnected (no shunt). The selected rails do not replace raw supplies on J3/J4. A future module can ignore bank pin 4 and use J7 if it needs selected power. A module and the breadboard may occupy the same central space; remove the breadboard before fitting a full-width module. The optional feature module is now included in module/: a separate 70 × 90 mm KiCad project with analog experiments, buttons, LEDs, a printed support and taller cover. See module instructions.

Fabrication and fit

B.Cu tracks are 1.0 mm wide; global copper clearance is 0.85 mm. Header pads were narrowed to 1.6 mm with 1.0 mm drills: their 2.54 mm pitch leaves 0.94 mm copper clearance. All joints are soldered from the bottom; no vias, top tracks, plated-through connectivity or wire bridges. Through-hole pads appear on both KiCad copper layers, but only bottom copper is fabricated. No mask is needed. If the blank has copper on both sides, remove the unused top copper rather than leaving it shorting the component leads.

The 100 × 100 mm finished outline assumes stock large enough for fixturing and an outline cut; a blank exactly that size cannot provide sacrificial edge stock. CAM must use the actual tool and machine settings. A nominal 0.8 mm cutter has only 0.05 mm total margin against the 0.85 mm rule. Verify tool runout and a small milling coupon before the board. Gerbers are not machine-ready motion programs; perform the bottom-view mirroring once in CAM/fixturing, not in these files.

The shop CSV names generic parts, not manufacturers or exact mechanical sizes. Assumptions to check before milling: headers 2.54 mm pitch; terminal blocks 5.08 mm pitch with pin/housing geometry fitting the vendored Phoenix-style footprint. No claim of measured fit or actual shelf quantity is made. The breadboard, existing AD3 cable, patch wires, PCB blank and print filament are user-selected equipment/fabrication supplies; the breadboard is not listed in the CSV. No extra purchased fasteners are needed.

Enclosure

PETG suggested for the four flexible retention fingers; 0.2 mm layers, at least 3 perimeters. Base 112 × 112 × 14 mm; cover 117.6 × 117.6 × 34.4 mm. STLs are millimetres and already oriented with their solid floor/roof on the build plate. Verify slicer dimensions. The PCB rests at Z=8.4 mm, leaving 6 mm above the inside floor for solder tails. Trim tails below 3 mm. A front-wall notch clears the bench terminal wiring. Four 2.8 mm printed locating pins enter the 3.2 mm PCB holes; snap fingers retain the edges with 0.4 mm nominal clearance above a 1.6 mm board. Cover is for storage with all cables removed. First-print mechanical fit remains untested; tune clip and cover clearances to your printer. The Blender component bodies and breadboard are illustrative, not manufacturer-certified CAD models.

Rebuilding

Python 3.14 with KiCad's pcbnew and sexpdata, KiCad 10, Blender 5.2 and numpy for bench analysis were used. scripts/build.py uses the local schematic drawing toolkit at /home/mads/Projects/claude-skills/kicad-schematic/scripts; set that path in the script on another machine. Generated KiCad files are standalone and do not need the toolkit to open or edit. Run scripts/build.py only to regenerate from its design specification; it overwrites generated hardware files. After hand edits in KiCad, export and validate without regenerating. python scripts/export.py refreshes ERC/DRC, schematic PDF and fabrication exports after edits. python tests/verify.py verifies inventory, pinout, copper-layer constraints, print meshes and loopback fault rejection. scripts/geometry.py refreshes layout data for blender -b --python enclosure/build_enclosure.py.

Pinout and instrument reference: Digilent AD3 guide. The included pinout image comes from the installed Digilent WaveForms documentation. Stock footprints derive from KiCad libraries (CC-BY-SA 4.0 with library exception).

Optional feature module

The baseboard schematic, copper and outline are unchanged. The new module replaces the breadboard while fitted, retains all AD3 signals on top sockets, and provides patchable filter/attenuator/loopback and digital test sections. Its purchased components also match the original shop CSV, with exact category matching for ambiguous part names. Use the dark-mode showcase for module placement, resistor colour codes and jumper states. Module hardware and first-print fit remain unverified; digital and analog commissioning instructions and SDK scripts are in module/.

Parts

29
QtyValueFootprintReferences
51kModule:resistorR1, R6, R7, R9, R10
310kModule:resistorR4, R5, R8
23V3 BTN LEDModule:female3J9, J10
2ACTIVE LOWModule:buttonSW1, SW2
2BYPASSModule:male2JP1, JP3
2GREENModule:ledD1, D2
2SHUNT ENABLEModule:male2JP2, JP4
1100kModule:resistorR3
1100nModule:capacitorC1
1ATTEN IN OUT GNDModule:term3J6
1ATTEN PATCHModule:female3J8
1BASE A / UNDERSIDEModule:male15J1
1BASE B / UNDERSIDEModule:male15J2
1EXTERNAL 3.3 V ONLYModule:female2J11
1FILTER IN OUT GNDModule:term3J5
1FILTER PATCHModule:female3J7
1PATCH AModule:female15J3
1PATCH BModule:female15J4

More from MadsRudolph/ad3-test-rig

1
  • 2 layers100 × 100 mmAd3-test rig, the printed circuit board in 3D

    Ad3-test rig

    MadsRudolph/ad3-test-rig

    CNC-friendly Analog Discovery 3 test rig with a plug-in experiment board, printable enclosure and assembly guide

    13 parts

Similar boards

  • 2 layers52.3 × 10.5 mmStackLink, the printed circuit board in 3D

    StackLink

    gusmanb/logicanalyzer

    24 channel, 100Msps logic analyzer hardware and software

    29 parts5.1kGPL-3.0
  • 2 layers56 × 20 mmHallEffectXY Endstop, the printed circuit board in 3D

    HallEffectXY Endstop

    VoronDesign/Voron-Hardware

    Cool Hardware designed by the Voron Design group

    29 parts1.1kGPL-3.0
  • 2 layers50 × 23.2 mmAnalog, the printed circuit board in 3D

    Analog

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    29 parts1kGPL-3.0
  • 2 layers16.8 × 13.6 mmE Fidget Lite, the printed circuit board in 3D

    E Fidget Lite

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    29 parts915
  • 2 layers85 × 12.5 mmTERES PCB3-TOUCH BTN Rev.A, the printed circuit board in 3D

    TERES PCB3-TOUCH BTN Rev.A

    OLIMEX/DIY-LAPTOP

    Do It Yourself Open Source Hardware and Software Modular Hacker's Friendly Laptop

    29 parts578Apache-2.0
  • 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 layers80 × 55 mmGB CARTPP XC, the printed circuit board in 3D

    GB CARTPP XC

    Gekkio/gb-hardware

    Game Boy -related custom hardware by gekkio

    29 parts379CC-BY-4.0
  • 2 layers55 × 58 mmProto ads bee mcu board, the printed circuit board in 3D

    Proto ads bee mcu board

    PantsForBirds/adsbee

    Open Source Embedded ADS-B Receiver

    29 parts344GPL-3.0

Questions

How big is the Ad3-feature module PCB?

It measures 70 × 90 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Ad3-feature module use?

29 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 Ad3-feature module KiCad files?

From the MadsRudolph/ad3-test-rig repository on GitHub, at the commit this page was made from: the board is module/hardware/ad3-feature-module.kicad_pcb and its schematic hardware/ad3-test-rig.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Ad3-feature module design in my own project?

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