Skip to the content
PCBKitNew board
2 layers80 × 65 mmDDSFunctionGenerator, the printed circuit board in 3D

A 6 MHz Direct Digital Synthesis (DDS) function generator, fully configurable via SCPI (Standard Commands for Programmable Instruments) protocol. Designed for precision waveform generation with flexible control through standardized commands.

Size
80 × 65 mm
Copper layers
2
Thickness
1.6 mm
Parts
156
Nets
86
Pads
461
Tracks, vias
749, 102
Pours
4
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
19 Oct 2019
Updated
7 Feb 2026

Overview

DDSFunctionGenerator is an open-source printed circuit board by RobertGawron, from the RobertGawron/DDSFunctionGenerator repository on GitHub, published under the MIT licence. It is a 2-layer board of 80 × 65 mm with 156 parts on 86 nets, routed with 749 tracks and 102 vias.

It is built around the AD8325ARU, FT200XD-R and TC1107-3.3VOA, with the DG128-5.0-02P-14-00A(H) among its other parts. Its parts include 66 capacitors, 39 resistors, 9 connectors, 8 ICs and 8 diodes. It belongs with the STM32 boards of this library.

Main components

4

README

README.md

6MHz DDS Function Generator

This project is unfinished.

Component Tests Static Code Analysis

Summary

A function generator is a laboratory instrument used to generate various electrical waveforms. This project utilizes DDS DDS (direct digital synthesis), a technique that allows the creation of arbitrary waveforms from a single base frequency.

Current Version

The current version of the PCB uses components with 0402 (or similar) footprints. Use of these components wasn’t the best choice - they're too difficult to solder, and there was no need to minimize the board size. The next version of the PCB will switch to 0805 components for easier assembly.

Photo of the assembled PCB

System Architecture

System Architecture

Tools: PlantUML

Hardware

Tools: KiCad (for PCB design).

Software

Tools:

  • Business Logic: Written in Forth, a stack-based programming language designed for embedded systems and control applications.
  • Drivers: Developed in C++17.
  • Hardware Abstraction Layer (HAL): Auto-generated using CubeMX, a tool from STMicroelectronics.

Simulation

This project includes an LCD for user interaction. To simplify the creation of the layout, a simulation environment has been developed.

This simulation combines the following:

  • UI: Built using PyQt for rendering the LCD layout and facilitating user interaction.
  • Business Logic: Reuses the core firmware logic directly from the hardware codebase.
  • HAL and Driver Mocks: Created in C++.

More Info

Enclosure

The device's enclosure is designed using OpenSCAD, a script-based 3D CAD modeler that allows precise and parametric design.

More Info

Devops

Repetitive setup tasks are best left to automation, which is why the development environment is managed with Docker. This approach eliminates the need to deal with outdated installation lists or READMEs—just run the container, and everything is ready to go.

Parts

156
QtyValueFootprintReferences
35100nCapacitor_SMD:C_0402_1005MetricC3, C19, C20, C26, C27, C28, C29, C30, C31, C32, C33, C34, C35, C36, C38, C41 +19
910kResistor_SMD:R_0402_1005MetricR2, R5, R13, R14, R21, R28, R29, R35, R39
753R6Resistor_SMD:R_0402_1005MetricR3, R7, R10, R15, R18, R23, R26
7DDiode_SMD:D_MiniMELFD1, D2, D3, D5, D6, D7, D8
52k2Resistor_SMD:R_0402_1005MetricR4, R12, R20, R32, R33
410nCapacitor_SMD:C_0402_1005MetricC17, C18, C39, C48
410uInductor_SMD:L_0805_2012MetricL2, L3, L7, L9
41nCapacitor_SMD:C_0402_1005MetricC21, C22, C23, C40
3100RResistor_SMD:R_0402_1005MetricR6, R8, R42
31kResistor_SMD:R_0402_1005MetricR9, R17, R25
349R9Resistor_SMD:R_0402_1005MetricR1, R30, R37
3Q_NPN_BECPackage_TO_SOT_SMD:SOT-323_SC-70Q1, Q2, Q3
3RSM850B-6112-85-1005Relay_THT:Relay_DPDT_Omron_G6K-2P-YRel1, Rel2, Rel3
3SolderJumper_2_OpenJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP1, JP2, JP3
3TestPointTestPoint:TestPoint_Pad_1.0x1.0mmTP1, TP4, TP6
20RResistor_SMD:R_0402_1005MetricR34, R36
215pCapacitor_SMD:C_0402_1005MetricC47, C56
21uInductor_SMD:L_0805_2012MetricL1, L4
21uCapacitor_SMD:C_0402_1005MetricC1, C7
2220RResistor_SMD:R_0402_1005MetricR16, R19
2220uCapacitor_SMD:CP_Elec_6.3x5.8C62, C65
227RResistor_SMD:R_0402_1005MetricR40, R41
247pCapacitor_SMD:C_0402_1005MetricC9, C42
247u/10VCapacitor_Tantalum_SMD:CP_EIA-3528-21_Kemet-BC2, C45
247u/6V3Capacitor_Tantalum_SMD:CP_EIA-3528-21_Kemet-BC37, C49
28p2Capacitor_SMD:C_0402_1005MetricC24, C25
2Conn_01x04_FemaleConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ8, J9
2Conn_CoaxialConnector_Coaxial:U.FL_Molex_MCRF_73412-0110_VerticalJ5, J6
1100nInductor_SMD:L_0805_2012MetricL6
1120RResistor_SMD:R_0402_1005MetricR31
11u8Inductor_SMD:L_0805_2012MetricL5
120MHzOscillator:Oscillator_SMD_EuroQuartz_XO53-4Pin_5.0x3.2mmY1
125R5Resistor_SMD:R_0402_1005MetricR44
1330pCapacitor_SMD:C_0603_1608MetricC15
1390pCapacitor_SMD:C_0603_1608MetricC57
1430pCapacitor_SMD:C_0603_1608MetricC13
1470pCapacitor_SMD:C_0603_1608MetricC16
1470pCapacitor_SMD:C_0402_1005MetricC4
14k7Resistor_SMD:R_0402_1005MetricR38
1560pCapacitor_SMD:C_0603_1608MetricC10
1680pCapacitor_SMD:C_0603_1608MetricC14
1750pCapacitor_SMD:C_0603_1608MetricC11
191pCapacitor_SMD:C_0603_1608MetricC12
1AD8325Package_SO:TSSOP-28_4.4x9.7mm_P0.65mmU7
1AD9832Package_SO:TSSOP-16_4.4x5mm_P0.65mmU4
1Conn_01x02_FemaleDDSFunctionGenerator:DG128-5.0-02P-14-00AJ4
1Conn_01x04_MaleConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ7
1Conn_CoaxialConnector_Coaxial:BNC_Amphenol_B6252HB-NPP3G-50_HorizontalJ1
1DG128-5.0-02P-14-00ADDSFunctionGenerator:DG128-5.0-02P-14-00AJ3
1EN11-VSB1AQ15DDSFunctionGenerator:EN11-VNB1BQ15SW1
1FT200XDPackage_DFN_QFN:DFN-10-1EP_3x3mm_P0.5mm_EP1.55x2.48mmU6
1Jumper_NC_SmallJumper:SolderJumper-2_P1.3mm_Bridged2Bar_RoundedPad1.0x1.5mmJP4
1L78L08_SOT89Package_TO_SOT_SMD:SOT-89-3U2
1L78L33_SO8Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU3
1LEDLED_SMD:LED_0402_1005MetricD4
1MCP3425A0T-ECHPackage_TO_SOT_SMD:SOT-23-6_HandsolderingU8
1MountingHole_PadMountingHole:MountingHole_2.5mm_PadH1
1STM32F030K6TxPackage_QFP:LQFP-32_7x7mm_P0.8mmU5
1TC1107-3.3VOAPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU1
1Transformer_1P_1SDDSFunctionGenerator:Transformer_B62152_8.3T1
1USB_B_MicroConnector_USB:USB_Micro-B_Molex_47346-0001J2
1XO91DDSFunctionGenerator:LF_SPXO018035X1

Questions

How big is the DDSFunctionGenerator PCB?

It measures 80 × 65 mm and has 2 copper layers, 1.6 mm thick.

What parts does the DDSFunctionGenerator use?

156 parts, built around the AD8325ARU, FT200XD-R, TC1107-3.3VOA and DG128-5.0-02P-14-00A(H). 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 DDSFunctionGenerator KiCad files?

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

Can I use the DDSFunctionGenerator design in my own project?

Its repository publishes it under the MIT 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

  • 4 layers21.6 × 48.4 mmSDWire, the printed circuit board in 3D

    SDWire

    3mdeb/sd-mux

    Control application for SD Wire imported from: https://git.tizen.org/cgit/tools/testlab/sd-mux/

    83 parts8Apache-2.0
  • 4 layers21.6 × 48.4 mmSDWire, the printed circuit board in 3D

    SDWire

    bitsy-ai/printnanny-sdwire

    A modified version of Tizen SDWire https://wiki.tizen.org/SDWire

    88 parts7Apache-2.0
  • 2 layers277.2 × 107.5 mmAlidade, the printed circuit board in 3D

    Alidade

    KeatonClark/alidade

    Split wireless keyboard using the Corne v4 layout

    212 parts1
  • 2 layers85.5 × 50 mm02-09-24 buissnes card, the printed circuit board in 3D

    02-09-24 buissnes card

    matmoj04/business-card

    PCB business card with RTC and LED 7-segment display powered by button cell battery.

    27 parts
  • 2 layers65 × 100 mmJOVE, the printed circuit board in 3D

    JOVE

    minisystem/JOVE

    Eurorack multimode filter inspired by the Roland Jupiter-6

    156 parts109
  • 2 layers85 × 56.5 mmAIOR, the printed circuit board in 3D

    AIOR

    GBert/misc

    miscellaneous stuff / unsorted

    156 parts99
  • 2 layers109 × 71 mmGamma split, the printed circuit board in 3D

    Gamma split

    ahtn/keyboard_pcb

    156 parts96
  • 2 layers313.3 × 131.6 mmKBIC65, the printed circuit board in 3D

    KBIC65

    b-karl/KBIC65

    65% keyboard PCB with ProMicro footprint. Through-hole kit design with focus on wireless.

    156 parts67MIT