Turning an ordinary laptop into a full-fledged oscilloscope is a task that seems fantastic only at first glance. In fact, with the help of a sound card, a couple of resistors and the right software, you will have a tool capable of visualizing signals from 20 Hz to 20 kHz (and with tricks - even higher). The main advantage of this solution is the price is 10-20 times lower than factory devices with comparable functionality for most amateur radio tasks.

In this article we will look at three working connection diagrams (from the simplest on a 3.5 mm jack to a USB oscilloscope on STM32), let's test 5 Russian and foreign programs (including rare but powerful solutions), and we will reveal calibration secrets, which will allow your homemade device to show results with an error of no worse than ±5%. Also, let’s compare a homemade oscilloscope with budget models Rigol DS1054Z And Hantek 6022BE in real tests.

1. Operating principle: why a laptop can become an oscilloscope

It's all about sound card - it already knows how to digitize analog signals with a sampling frequency of up to 192 kHz (in professional cards - up to 384 kHz). This means that in theory you can analyze signals with frequencies up to 96 kHz (according to the Nyquist theorem). In practice, due to filters and noise, the operating range is reduced to 20-40 kHz, but this is enough for:

  • 🔊 Audio signal analysis (microphones, speakers, amplifiers)
  • 📡 Diagnostics of low-frequency circuits (power supplies, filters)
  • 🔋 Checking pulse signals (PWM, signals from sensors)
  • 🎛️ Radio transmitter settings (up to 30 MHz with frequency dividers)

The key problem is amplitude restrictions. Standard line input is designed for signals 0.5–2 V, whereas in electronics voltages are often encountered 5–12 V and above. This can be solved using voltage divider or attenuator (more about this in the section with diagrams).

⚠️ Attention: Connecting signals from above 3.5 V directly to the linear input of the sound card can damage it. Even if the laptop survives, you risk getting distorted readings due to ADC overload.

2. Three working connection schemes: from simple to professional

The choice of scheme depends on your goals and budget. We tested three options - each has its pros and cons:

Scheme Max. frequency Max. voltage Cost Assembly complexity
Direct connection (3.5 mm jack) 20 kHz 2 V 0 ₽
With voltage divider (resistors) 40 kHz 50 V 50–100 ₽ ⭐⭐
USB oscilloscope on STM32 1 MHz 100 V 500–1500 ₽ ⭐⭐⭐

Diagram 1: Direct connection (for signals up to 2 V)

The easiest way is to connect the signal source directly to the line input of the laptop via a standard 3.5 mm jack. Suitable for:

  • 🎤 Microphone and audio device checks
  • 📻 Analysis of signals from radio receivers (after the detector)
  • 🔋 Diagnostics of low-power power supplies (5 V)

Cons: no galvanic isolation (risk of damaging the laptop if you make a mistake) and low accuracy due to lack of calibration.

📊 What pattern are you planning to assemble?
  • Direct connection
  • With voltage divider
  • USB oscilloscope on STM32
  • I haven't decided yet

Circuit 2: Voltage divider (for signals up to 50 V)

A classic solution for radio amateurs. You will need two resistors (for example, 10 kOhm And 1 kOhm) and capacitor 0.1 µF for filtering high-frequency interference. Scheme:


Сигнал ——[10 кОм]——+

|

[1 кОм]

|

Земля ——[0.1 мкФ]——+

Division ratio: 11 (the voltage at the sound card input will be 11 times less than the original one). For calibration use reference source (for example, a battery 1.5 V).

☑️ What is needed to assemble the divider

Done: 0 / 5

Scheme 3: USB oscilloscope on STM32 (for advanced)

If you need higher frequencies 50 kHz, assemble a simple oscilloscope on a microcontroller STM32F103 (costs ~300 ₽). Benefits:

  • 🔝 Sampling rate up to 1 MHz
  • 🛡️ Galvanic isolation (laptop safety)
  • 📊 Built-in calibration

Circuit and firmware: project on GitHub (there is Russian documentation). For assembly you will need a soldering iron and basic skills in working with STM32CubeIDE.

3. Oscilloscope programs: review and setup

Depends on the choice of program 80% functionality your homemade oscilloscope. We tested 5 solutions - from simple to professional:

Program Russian support Max. frequency Features
Oscilloscope (by Zeal SoftStudio) ✅ Yes 48 kHz Simple interface, built-in signal generator
VisualAnalyzer ❌ No (but there are Russifiers) 192 kHz FFT support, file recording, plugins
Soundcard Oscilloscope ✅ Yes 96 kHz Standard calibration, export to CSV
Arduino Oscilloscope ✅ Yes 1 MHz (with STM32) Works with Arduino/STM32, open source
ScopeFun ❌ No 500 kHz Support for multi-channel USB oscilloscopes

Settings VisualAnalyzer (recommended for advanced users):

  1. Download the program from official website.
  2. On the menu Settings → Audio select your sound card.
  3. B Settings → Scope install:
    • 🔹 Sample Rate: 192000 Hz
    • 🔹 Buffer Size: 4096
    • 🔹 Trigger: Auto
  • To calibrate, go to Tools → Calibration and give a reference signal 1 kHz, 1 V.
  • 💡

    If in VisualAnalyzer the signal is distorted, try reducing it Buffer Size up to 1024 or disable antialiasing in the graphics settings.

    Settings Soundcard Oscilloscope (for beginners):

    This program is entirely in Russian and does not require deep knowledge. The main thing is to set it correctly division factor (if you use a voltage divider):

    1. Launch the program and go to Settings → Channel 1.
    2. In the field Division ratio enter a value (for example, 11 for a circuit with resistors 10 kOhm And 1 kOhm).
    3. Turn on Auto trigger and set the trigger level to 50%.
    ⚠️ Attention: In Soundcard Oscilloscope Low pass filter is enabled by default 20 Hz. If you are analyzing DC voltage (for example, from a battery), disable it in the settings Filters → DC Offset.

    4. Calibration: how to achieve ±5% accuracy

    Without calibration, your oscilloscope will show random values - the error can reach 30–50%. We use two-step calibration:

    1. Voltage calibration:
      • Apply a reference voltage to the input (for example, 1.5 V from battery).
      • In the program, set the scale so that the signal occupies 50% screen.
      • Record the actual value (for example, the program shows 1.38 V).
      • In the program settings, set the correction factor: 1.5 / 1.38 ≈ 1.087.
    2. Time calibration:
      • Apply a signal of known frequency (for example, 1 kHz from a generator or smartphone).
      • Measure the period of the signal on the screen (should be 1 ms).
      • If the program shows 0.95 ms, set the time correction factor: 1 / 0.95 ≈ 1.053.

    To check accuracy use test signals:

    • 🔋 Battery 1.5 V (constant voltage)
    • 📱 Signal generator on a smartphone (app Signal Generator)
    • 🔌 Mains voltage 220 V (only through divider 1:100!
    How to calibrate without a reference generator?

    If there is no signal generator, use mains voltage 220 V (50 Hz). Connect through a 1:100 divider (for example, 10 MΩ and 100 kΩ resistors) and configure the program so that the period of the sine wave is exactly 20 ms (1/50 Hz).

    5. Comparison with factory oscilloscopes: where the homemade one loses

    Even the most advanced homemade laptop-based oscilloscope will not replace a professional device in a number of tasks. We compared it with budget models Rigol DS1054Z (50 MHz, ~30,000 ₽) and Hantek 6022BE (20 MHz, ~8 000 ₽):

    Parameter Homemade (STM32) Hantek 6022BE Rigol DS1054Z
    Max. frequency 1 MHz 20 MHz 50 MHz
    ADC capacity 10–12 bits 8 bit 8 bit
    Input impedance 10 kOhm (depends on the divisor) 1 MOhm 1 MOhm
    Protocol support ❌ No ✅ I2C, SPI, UART ✅ All basic
    Price 500–1500 ₽ ~8 000 ₽ ~30 000 ₽

    Where the homemade oscilloscope fails:

    • 🔍 Low input impedance — distorts signals in high-resistance circuits.
    • 🕒 No memory — long signals cannot be recorded (maximum 1–2 seconds).
    • 📊 No automatic measurements (you have to count everything manually).

    Where the DIY oscilloscope wins:

    • 💻 Ease of analysis — data is immediately in digital form, can be exported to Excel or Matlab.
    • 🔧 Flexibility — you can modify the program to suit your needs (for example, add FFT analysis).
    • 💰 Price — 10–20 times cheaper than factory analogues.
    💡

    A homemade oscilloscope based on a laptop is optimal for tasks where a frequency of up to 1 MHz is needed and there are no requirements for high input impedance. For professional work (for example, debugging microcontrollers), it is better to buy a budget Hantek or Rigol.

    6. Practical examples: what can be diagnosed with a homemade oscilloscope

    Despite the limitations, a homemade oscilloscope solves 90% of a radio amateur's tasks. Here are real application examples:

    Example 1: Checking the power supply

    Connect the divider 1:10 to the power supply output 12 V and look at the waveform:

    • 🔹 Ripple - if the pulsation amplitude exceeds 100 mV, additional filters are needed.
    • 🔹 Noises - High frequency noise indicates problems with the capacitors.

    Example 2: Setting up the bass amplifier

    Apply a sinusoidal signal to the amplifier input 1 kHz (from a generator or smartphone) and analyze the output:

    • 🔹 Distortions - if the sine wave turns into a “saw”, the amplifier is overloaded.
    • 🔹 frequency response - check how the amplitude changes at frequencies 20 Hz, 1 kHz And 20 kHz.

    Example 3: Diagnostics of PWM signals

    For PWM analysis (for example, with Arduino) use the scheme with STM32:

    • 🔹 Measure duty cycle (ratio of pulse duration to period).
    • 🔹 Check it out signal edges - if they are too flat, buffer cascades are needed.
    💡

    To analyze PWM signals with frequencies above 50 kHz, use an external ADC (for example, ADS1115), connected to STM32. This will allow you to increase the sampling frequency to 10 MHz.

    7. Common mistakes and how to avoid them

    Even experienced radio amateurs make mistakes when assembling an oscilloscope from a laptop. Here TOP-5 problems and their solutions:

    1. The signal is distorted or clipped
      • 🔹 Reason: The input voltage is too high.
      • 🔹 Solution: Increase the division ratio or add a diode limiter (such as 1N4148).
    2. Direct component (DC) is not displayed
      • 🔹 Reason: Low pass filter is enabled in the program.
      • 🔹 Solution: Disable AC Coupling in the channel settings.
    3. Strong interference 50 Hz
      • 🔹 Reason: Poor grounding or network noise.
      • 🔹 Solution: Use a shield cable and connect the oscilloscope ground to the circuit common ground.
    4. The program stutters or slows down
      • 🔹 Reason: The buffer is too large or the sampling rate is too high.
      • 🔹 Solution: Decrease Sample Rate to 48 kHz And Buffer Size to 1024.
    5. Measurements with multimeter do not match
      • 🔹 Reason: Incorrect calibration or non-linearity of the sound card.
      • 🔹 Solution: Calibrate the oscilloscope using several points (for example, 0.5 V, 1 V, 2 V).
    ⚠️ Attention: If you connect the oscilloscope to circuits with a voltage higher 50 V, be sure to use isolation transformer or optocoupler isolation. Otherwise, you risk damaging not only the laptop, but also the signal source!

    FAQ: Answers to frequently asked questions

    🔹 Is it possible to use a microphone input instead of a line input?

    Technically yes, but the microphone input has amplifier with automatic level control (AGC), which distorts the signal. Additionally, it is usually mono, whereas line input is often stereo (two channels can be analyzed simultaneously). If there is no other option, disable AGC in the sound card settings (via Control Panel → Sound → Device Properties).

    🔹 How to measure 220 V voltage?

    Do not connect directly! Use voltage divider with a ratio of 1:100 (for example resistors 10 MOhm And 100 kOhm) and isolation transformer (For example, TP-220). An alternative is to use step down transformer (For example, 220 V → 12 V) and analyze its output with an oscilloscope.

    🔹 Why is there a square on the screen instead of a sine wave?

    This is a sign signal limitations (clipping). Possible reasons:

    1. The input voltage is too high (reduce the division ratio).
    2. The trigger level in the program is incorrectly configured (set Auto Trigger).
    3. Poor ground (check the ground connection between the oscilloscope and the signal source).
    🔹 Is it possible to analyze digital signals (I2C, SPI)?

    Theoretically yes, but in practice it is difficult because:

    • 🔹Low sampling rate (maximum 1 MHz for STM32 circuit).
    • 🔹 Lack of protocol support in programs.

    For analysis I2C/SPI better use logic analyzer (for example, based on STM32 or FPGA) or buy a budget one USB Logic Analyzer (from 500 ₽).

    🔹Which sound card to choose for maximum accuracy?

    For a homemade oscilloscope, the following are important:

    • 🔹 Sampling rate - minimum 96 kHz (better 192 kHz).
    • 🔹 ADC capacity16 bit and above.
    • 🔹 Low noise level (parameter SNR > 90 dB).

    Recommended models:

    • 💰 Budget: Behringer UCA202 (~2 000 ₽, 48 kHz/16 bit).
    • 🔝 Optimal: Focusrite Scarlett Solo (~8 000 ₽, 192 kHz/24 bit).
    • 🎛️ Professional: RME Babyface Pro (~30 000 ₽, 192 kHz/24 bit, ultra-low noise).