Skip to the content
2 layers55.6 × 54.8 mmSignal Generator, the printed circuit board in 3D

A square wave generator with adjustable frequency, gain, and offset control. Designed as a part of UBC's ELAB PCB design course.

Size
55.6 × 54.8 mm
Copper layers
2
Thickness
1.6 mm
Parts
72
Nets
33
Pads
151
Tracks, vias
321, 77
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
26 Sep 2026
Updated
2 Oct 2026

Overview

Signal Generator is an open-source printed circuit board by Jmanicom, from the Jmanicom/ELAB-Signal-Generator repository on GitHub, published under the CERN-OHL-S-2.0 licence. It is a 2-layer board of 55.6 × 54.8 mm with 72 parts on 33 nets, routed with 321 tracks and 77 vias.

It is built around the AD8039ARZ, LM7805MP and MAX889SESA+, with the NE555D and DMN10H700S-7 among its other parts. Its parts include 20 resistors, 19 capacitors, 4 ICs, 1 diode and 1 transistor.

Main components

5

README

README.md

ELAB-Signal-Generator

A square wave generator with adjustable frequency, gain, and offset control. Designed as a part of UBC's ELAB PCB design course.

Skills used in this project

KiCad, Analog Circuit Design, Hand Soldering, Testing/Validation


Design

The design for this signal generator is not complex, this is because it's main purpose was to provide an opportunity to design and assemble a PCB from the start to finish of the production cycle. This included schematic capture, component/footprint library creation, component layout, laying traces, and laying polygon pours. In the second stage of the course, we received our boards and components and assembled them using hand soldering, and tested them using an oscilloscope to view our signals and test the various adjustments.

Power Supply

The signal generator utilizes +/-5V rails to be able produce a maximum of a 10V peak-to-peak signal. 15V comes from a barrel jack connections from a wall adapter, which is then regulated using the LM7805 to drop to it to +5V. This rail then feeds into the MAX889 that produces the complimentary -5V rail. Output capacitors are used to help with input noise, and output voltage ripple.

Signal Amplifier

The square wave signal is generated by the NE555, that includes a frequency adjust potentiometer. This signal is then fed to the AD8039 with two amplifier stages to control gain and offset respectively. Additional bypass capacitors are placed on the op-amps power rails to help with further noise reduction and to help stabilize voltage. Finally, a 3.3V peak-limiter zener diode is placed on the output which can be engaged with the use of a jumper.

PCB Design

With this being my first attempt at PCB design, there is room for improvement with my traces decisions component placement. With this project, we were constrained on the size of board that we could use, additionally, I wanted to make a unique shape for my board that tends to be a popular shape for small desings that need to be mounted.

The large 1206 capacitors were placed on the back side of the board as they are quite bulky and left very little room for other components on the board. This board features 2-layers with ground pours on each layer, as well as stitching vias to help further with noise.

Assembly

Testing

Notes

Parts

72
QtyValueFootprintReferences
1110nCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1, C2, C4, C5, C8, C9, C12, C13, C17, C18, C19
610uCapacitor_Tantalum_SMD:CP_EIA-6032-28_Kemet-C_HandSolderC3, C10, C11, C14, C15, C16
4100kPotentiometer_THT:Potentiometer_Bourns_3296W_VerticalFreq_Adj1, Gain_Adj1, Gain_Adj2, Offset_Adj1
41kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR3, R4, R5, R9
4LEDDiode_SMD:D_0805_2012Metric_Pad1.15x1.40mm_HandSolder-5V_LED1, +5V_LED1, +15V_LED1, Signal_LED1
4MountingHole_PadMountingHole:MountingHole_3.2mm_M3_DIN965_PadH1, H2, H3, H4
30RResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR13, R15, R19
310kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1, R8, R11
3150RResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR2, R16, R20
2100kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR17, R18
21RResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR6, R7
222pCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC6, C7
2LOGOLOGOG***, G***
1+15V1TestPoint:TestPoint_Loop_D2.54mm_Drill1.5mm_BeadedTP11
1+5V1TestPoint:TestPoint_Loop_D2.54mm_Drill1.5mm_BeadedTP5
1-5V1TestPoint:TestPoint_Loop_D2.54mm_Drill1.5mm_BeadedTP10
110RResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR12
125kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR10
1650RResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR14
1AD8039ARZPCM_Package_SO_AKL:SO-8_3.9x4.9mm_P1.27mmU2
1BZT52C3V3-7-FDiode_SMD:D_SOD-123D2
1Barrel_Jack_SwitchSignal-Generator_Footprints:CUI_PJ-002AJ1
1DMN10H700SPackage_TO_SOT_SMD:SOT-23Q1
1GND_1TestPoint:TestPoint_Loop_D2.54mm_Drill1.5mm_BeadedTP7
1GND_2TestPoint:TestPoint_Loop_D2.54mm_Drill1.5mm_BeadedTP6
1GND_3TestPoint:TestPoint_Loop_D2.54mm_Drill1.5mm_BeadedTP8
1GND_4TestPoint:TestPoint_Loop_D2.54mm_Drill1.5mm_BeadedTP9
1Jumper_2_BridgedConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJP1
1LM7805MPPCM_Package_TO_SOT_SMD_AKL:SOT-223-3_TabPin2U3
1MAX889SESA+Package_SO:SOIC-8_3.9x4.9mm_P1.27mmIC1
1NE555DPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU1
1Offset_Test1TestPoint:TestPoint_Loop_D2.54mm_Drill1.5mm_BeadedTP2
1Signal1TestPoint:TestPoint_Loop_D2.54mm_Drill1.5mm_BeadedTP1
1Signal_Test1TestPoint:TestPoint_Loop_D2.54mm_Drill1.5mm_BeadedTP3
1Signal_Test2TestPoint:TestPoint_Loop_D2.54mm_Drill1.5mm_BeadedTP4

Similar boards

  • 2 layers80.5 × 62 mmPCB course, the printed circuit board in 3D

    PCB course

    seankyer/QuickSig

    A signal generator circuit completed as part of a PCB course at UBC

    73 parts
  • 2 layers100 × 80 mmSteDAC, the printed circuit board in 3D

    SteDAC

    stefantquach/steDAC

    Open source audio DAC project based on the ES9038Q2M DAC from ESS. Still WIP

    164 parts2
  • 2 layers100 × 54 mmArduino Shield PoE Wifi, the printed circuit board in 3D

    Arduino Shield PoE Wifi

    muhardianab/ArduinoMega2560

    Making a new Arduino Mega 2560 Board

    86 parts
  • 2 layersPhishy WLED, the printed circuit board in 3D

    Phishy WLED

    Poisson48/Phishy_WLED

    A simple board to control

    78 parts
  • 4 layers89.8 × 59.3 mmPCB Pompe V2, the printed circuit board in 3D

    PCB Pompe V2

    AREA-Amiens/AREA.old-boards-hardware

    Hardware for AREA.old boards

    197 parts
  • 2 layers87.5 × 52.5 mmPCB Pompe V2, the printed circuit board in 3D

    PCB Pompe V2

    PCBrs/CDR-Electronique

    Carte électronique pour la Coupe de France de robotique

    142 parts
  • 4 layers128 × 184 mmCosmicpi 1.7, the printed circuit board in 3D

    Cosmicpi 1.7

    CosmicPi/CosmicPiV1.7PCB

    PCB for Version 1.7 of the Cosmic Pi Hardware. Incremental changes from V1.6. This design is licensed under the CERN OHL V1.2

    219 parts14

Questions

How big is the Signal Generator PCB?

It measures 55.6 × 54.8 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Signal Generator use?

72 parts, built around the AD8039ARZ, LM7805MP, MAX889SESA+ and NE555D. 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 Signal Generator KiCad files?

From the Jmanicom/ELAB-Signal-Generator repository on GitHub, at the commit this page was made from: the board is SCH-PCB/Signal Generator.kicad_pcb and its schematic SCH-PCB/Power_Supply.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Signal Generator design in my own project?

Its repository publishes it under the CERN-OHL-S-2.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).