Skip to the content
2 layers103 × 95 mmDSO, the printed circuit board in 3D

A custom Multi-Channel Digital Storage Oscilloscope (DSO) designed using the STM32F103C8T6 microcontroller. This project combines a custom analog front-end, trigger circuitry, anti-alias filtering, multi-channel…

Size
103 × 95 mm
Copper layers
2
Thickness
1.6 mm
Parts
94
Nets
119
Pads
402
Tracks, vias
467, 144
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
14 Jul 2026
Updated
6 Oct 2026

Overview

DSO is an open-source printed circuit board by Aryan-Kodan, from the Aryan-Kodan/Two_Channel_DSO repository on GitHub. It is a 2-layer board of 103 × 95 mm with 94 parts on 119 nets, routed with 467 tracks and 144 vias.

It is built around the LM358, LMV393 and 74HC4051, with the BAT54S and SMAJ24CA among its other parts. Its parts include 35 resistors, 33 capacitors, 17 ICs, 4 diodes and 3 connectors. It belongs with the STM32 boards of this library.

Main components

5

README

README.md

Multi-Channel Digital Storage Oscilloscope (DSO)

A custom Multi-Channel Digital Storage Oscilloscope (DSO) designed using the STM32F103C8T6 microcontroller. This project combines a custom analog front-end, trigger circuitry, anti-alias filtering, multi-channel acquisition architecture, and a TFT display into a compact oscilloscope platform.

The analog signal conditioning was designed and verified in LTspice, while the complete hardware was developed in KiCad, including schematic capture, PCB layout, and 3D visualization.


Features

  • Multi-channel analog acquisition architecture
  • Custom analog front-end
  • Input over-voltage protection
  • Adjustable gain stage
  • DC offset stage
  • Hardware trigger comparator
  • RC anti-alias filter
  • STM32F103 ADC interface
  • TFT display interface
  • SWD programming and debugging
  • Two-layer PCB
  • LTspice verified analog stages

Hardware Specifications

ParameterSpecification
MCUSTM32F103C8T6
ADC12-bit Internal ADC
ChannelsMulti-Channel Architecture
Input ProtectionTVS + Schottky Clamp
TriggerHardware Comparator
Anti-Alias FilterRC Low Pass
DisplayEA_eDIPTFT32-A TFT
InterfaceI²C
PCB2-Layer

Repository Structure

text
Multi-Channel-DSO/
│
├── BOM/
│   └── DSO.xlsx
│
├── images/
│   ├── KiCad/
│   │   ├── PCB.png
│   │   ├── PCB_3D.png
│   │   ├── PCB_3D_through.png
│   │   ├── Schematic.png
│   ├── LTspice/
│   │   ├── Final_output.png
│   │   ├── Input_waveform.png
│   │   ├── Gain_waveform.png
│   │   ├── offset_waveform.png
│   │   └── Spice_Schematic.png
│
├── KiCad/
│   ├── DSO.kicad_pro
│   ├── DSO.kicad_sch
│   └── DSO.kicad_pcb
│
├── LTspice/

System Architecture

text
                Analog Input
                     │
                     ▼
             Input Protection
          (TVS + Clamp Diodes)
                     │
                     ▼
             Buffer Amplifier
                     │
                     ▼
           Programmable Gain Stage
                     │
                     ▼
              DC Offset Stage
                     │
                     ▼
           Trigger Comparator
                     │
                     ├────────► STM32 Trigger Input
                     │
                     ▼
            RC Anti-Alias Filter
                     │
                     ▼

Analog Signal Chain

The complete analog front-end consists of:

  • Input protection
  • Voltage scaling
  • Buffer amplifier
  • Gain amplifier
  • DC offset stage
  • Trigger comparator
  • RC anti-alias filter
  • ADC interface

The design conditions incoming analog signals into the STM32 ADC input range while maintaining waveform integrity.


LTspice Simulation

The complete analog signal chain was verified before PCB implementation.

Simulation stages include:

  • Input waveform
  • Gain stage response
  • Offset stage response
  • Final conditioned output
  • Complete analog schematic

PCB Design

The PCB was designed using KiCad with emphasis on:

  • Compact component placement
  • Analog and digital section separation
  • Ground plane implementation
  • Short analog signal routing
  • Decoupling capacitor placement
  • SWD programming interface
  • TFT display interface

Development Workflow

  • Analog front-end design
  • LTspice verification
  • Schematic capture
  • PCB layout
  • 3D PCB visualization
  • BOM generation
  • Embedded firmware development (in progress)
  • Hardware validation (planned)

Software Used

  • KiCad 9
  • LTspice
  • Git
  • GitHub

Future Improvements

  • Dual simultaneous ADC acquisition
  • External high-speed ADC
  • DMA circular buffer implementation
  • Auto trigger mode
  • Single-shot trigger
  • FFT spectrum analyzer
  • USB waveform streaming
  • SD card waveform storage
  • Automatic measurements
  • Cursor functions
  • Frequency and duty-cycle measurement
  • Rotary encoder user interface

Author

Aryan Kodan

Electronics Engineering | Embedded Systems | PCB Design | Analog Circuit Design | VLSI

GitHub: https://github.com/Aryan-Kodan


License

This project is released under the MIT License.

Parts

94
QtyValueFootprintReferences
28100nCapacitor_SMD:C_0805_2012MetricC10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C21, C22, C23, C24, C25, C26 +12
2010kResistor_SMD:R_0805_2012MetricR4, R10, R11, R12, R15, R19, R20, R22, R23, R24, R25, R26, R27, R30, R32, R33 +4
12LM358Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19
51nCapacitor_SMD:C_0805_2012MetricC1, C2, C36, C37, C39
3100Resistor_SMD:R_0805_2012MetricR1, R16, R31
21.6kResistor_SMD:R_0805_2012MetricR13, R28
2100kResistor_SMD:R_0805_2012MetricR3, R18
215kResistor_SMD:R_0805_2012MetricR6, R21
24.7kResistor_SMD:R_0805_2012MetricR34, R35
247Resistor_SMD:R_0805_2012MetricR14, R29
2900kResistor_SMD:R_0805_2012MetricR2, R17
2BAT54SPackage_TO_SOT_SMD:SOT-23D2, D4
2Conn_CoaxialConnector_Coaxial:BNC_Amphenol_031-6575_HorizontalJ1, J2
2LMV393Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU2, U3
2R_PotentiometerPotentiometer_SMD:Potentiometer_Bourns_3214W_VerticalRV1, RV2
2SMAJ24CADiode_SMD:D_SMAD1, D3
174HC4051Package_SO:TSSOP-16-1EP_4.4x5mm_P0.65mmU1
1Conn_ST_STDC14Connector_PinHeader_1.27mm:PinHeader_2x07_P1.27mm_VerticalJ3
1EA_eDIPTFT32-ADisplay:EA_eDIPTFT32-XXXU20
1STM32F103C8TxPackage_QFP:LQFP-48_7x7mm_P0.5mmU7

Similar boards

  • 6 layers158 × 174 mmTritonECU Main, the printed circuit board in 3D

    TritonECU Main

    alpauna/TritonECU

    ESP32-S3 engine control unit — fuel injection, ignition timing, wideband O2 (CJ125/LSU 4.9), dashboard, and MQTT telemetry

    457 parts10
  • 4 layers187 × 352.1 mmPower board, the printed circuit board in 3D

    Power board

    FilipNorlin/Split_Rail_Power_supply

    346 parts
  • 2 layers388 × 444 mmPanel, the printed circuit board in 3D

    Panel

    koson/e-Power-PCBs

    This repository contains all e-Power PCB projects

    2,744 parts
  • 4 layers100 × 80 mmSTest, the printed circuit board in 3D

    STest

    Aryan-Kodan/STM32_Oscillator

    Features: - Input protection stage - TVS surge suppression - Analog signal conditioning - Amplification - Level shifting - Anti-alias filtering - STM32 ADC acquisition - TFT waveform display

    34 parts
  • 2 layers105 × 79 mmWaveform gen, the printed circuit board in 3D

    Waveform gen

    Aryan-Kodan/Function_generator

    A custom function generator designed using STM32F103, KiCad, and LTspice. The project implements a complete analog signal conditioning chain with adjustable gain, DC offset control, output buffering, and protection…

    29 parts
  • 2 layers132 × 59 mmWLC TX15W C1 V1.1, the printed circuit board in 3D

    WLC TX15W C1 V1.1

    dvhai08/WLC_TX15W_C1

    Wireless Charging (WLC) MP A11 Power Transmitter

    127 parts
  • 2 layers100 × 47.5 mmController, the printed circuit board in 3D

    Controller

    DLaxV-Community-Projects-Hub/Open-Shot-Clock

    Build your own DIY Shot Clock

    175 parts5CERN-OHL-P-2.0
  • 2 layers89 × 55.5 mmMintypcb, the printed circuit board in 3D

    Mintypcb

    jackw01/pi-tin

    Open source raspberry pi handheld retro gaming console

    129 parts75CERN-OHL-W-2.0

Questions

How big is the DSO PCB?

It measures 103 × 95 mm and has 2 copper layers, 1.6 mm thick.

What parts does the DSO use?

94 parts, built around the LM358, LMV393, 74HC4051 and BAT54S. 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 DSO KiCad files?

From the Aryan-Kodan/Two_Channel_DSO repository on GitHub, at the commit this page was made from: the board is KiCad/DSO.kicad_pcb and its schematic KiCad/DSO.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the DSO design in my own project?

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