STEP 1 / 6ESP + IOT

DIY ESP32 Oscilloscope

Every electronics expert has to have a test device called an oscilloscope in their toolbox. It can be used to view and analyze a variety of signals, and it is typically presented in the f…

DIY ESP32 Oscilloscope - source illustration from page 1355
PROJECT#485
TRACKIoT
PARTS03
STAGES06
STEP 1 / 6 · Overview

Know the mission before touching a wire.

Understand what you are making, prepare the right tools, and make the workbench safe.

01

Project details

DIY ESP32 Oscilloscope is a iot project. Every electronics expert has to have a test device called an oscilloscope in their toolbox. It can be used to view and analyze a variety of signals, and it is typically presented in the f…

Source pages
1355-1363
Named parts
3
Build goal
Working, tested prototype
02

Tools you need

  • Digital multimeter
  • Wire stripper and side cutters
  • Soldering iron with a fine tip
  • Current-limited bench supply
  • Computer with a data-capable USB cable

Use eye protection, good lighting, and a clean insulated surface throughout the build.

03

Safety precautions

  • Disconnect every power source before changing a connection.
  • Check component polarity, pinout, and supply voltage twice.
  • Use a current limit for the first power-up.
  • Keep liquids, loose metal, and uninsulated wires away from the bench.
Ready to continue?
STEP 2 / 6 · Parts library

Gather, identify, and understand every part.

Use the standardized inventory, then open What's this? to learn each part's role, advantages, limitations, handling, and specifications.

NAMED PROJECT INVENTORY3 PART LINES
PARTTYPEQTYREADY
MESP32MODULE1
What's this?Image, role, pros, cons, handling & specifications
DIY ESP32 Oscilloscope - source illustration from page 1355MODULE LEARNING VIEW

ESP32

A programmable controller that reads inputs, makes decisions, and drives the project's outputs.

What it does here

It is the control centre and must use the documented board, pin map, supply, and logic level.

Buy / compare this part

Advantages

  • Reprogrammable and reusable
  • Large learning ecosystem
  • Complex behaviour remains changeable

Limitations

  • GPIO voltage and current are limited
  • Some pins affect boot or communication
  • Loads normally need a driver

Handling

  • Disconnect power before rewiring
  • Avoid static discharge
  • Never power motors, relays, or pumps directly from GPIO

Specifications to verify

  • Use the exact model, value, package, and rating listed for ESP32; similar-looking parts are not always interchangeable.
  • Confirm operating voltage, logic level, pinout, memory, USB interface, and maximum GPIO current.
PMAXIMUMPART1
What's this?Image, role, pros, cons, handling & specifications
DIY ESP32 Oscilloscope - source illustration from page 1355PART LEARNING VIEW

MAXIMUM

A named project component whose exact role is defined by the source circuit and build guide.

What it does here

It performs a documented electrical, control, interface, or construction function in this project.

Buy / compare this part

Advantages

  • Selected for this project
  • Can be checked independently
  • Supports modular troubleshooting

Limitations

  • Substitutes may differ
  • Generic names can hide variants
  • Pinouts and ratings vary

Handling

  • Compare the received part with the source
  • Keep it labelled
  • Do not force connectors or adjusters

Specifications to verify

  • Use the exact model, value, package, and rating listed for MAXIMUM; similar-looking parts are not always interchangeable.
  • Confirm dimensions, ratings, connection method, polarity, and environmental limits.
MESP32-BASED - controller board / ICMODULE1
What's this?Image, role, pros, cons, handling & specifications
DIY ESP32 Oscilloscope - source illustration from page 1355MODULE LEARNING VIEW

ESP32-BASED - controller board / IC

A programmable controller that reads inputs, makes decisions, and drives the project's outputs.

What it does here

It is the control centre and must use the documented board, pin map, supply, and logic level.

Buy / compare this part

Advantages

  • Reprogrammable and reusable
  • Large learning ecosystem
  • Complex behaviour remains changeable

Limitations

  • GPIO voltage and current are limited
  • Some pins affect boot or communication
  • Loads normally need a driver

Handling

  • Disconnect power before rewiring
  • Avoid static discharge
  • Never power motors, relays, or pumps directly from GPIO

Specifications to verify

  • Use the exact model, value, package, and rating listed for ESP32-BASED - controller board / IC; similar-looking parts are not always interchangeable.
  • Confirm operating voltage, logic level, pinout, memory, USB interface, and maximum GPIO current.
Ready to continue?
STEP 4 / 6 · Source code

Confirm the hardware-only control path.

This project does not include firmware in the source. The circuit itself provides the required behaviour.

01

How to connect

  1. Match every controller label to the circuit view and source pin map.
  2. Join grounds before signal wires when separate low-voltage supplies are used.
  3. Keep motors, relays, pumps, and other loads on a suitable driver and external supply.

Common mistakes

Reversed VCC/GND, board-label versus GPIO-number confusion, missing common ground, and charge-only USB cables.

Troubleshoot

Disconnect loads, continuity-test one path at a time, then test with a current limit.

02

Software preparation

No IDE, board package, library, or firmware upload is required for this project.

If you add a programmable controller as an extension, document its pin map separately.

03

How to upload code

The original design is implemented entirely in hardware, so proceed after verifying the circuit and supply.

Ready to continue?
STEP 5 / 6 · Build

Assemble, deploy, test, and troubleshoot.

Use the complete source notes in build order, then pass the final checks before calling the project finished.

ASSEMBLY

Build in functional stages

  • Power and regulation
  • Controller or processing stage
  • Inputs and sensors
  • Outputs and loads
  • Enclosure and strain relief
TEST

Power up safely

  • Inspect unpowered continuity first
  • Apply the lowest safe current limit
  • Measure supply rails before signals
  • Add one load at a time
  • Record expected and actual results
TROUBLESHOOT

Work from simple to complex

  • Confirm power, ground, polarity, and orientation
  • Compare each pin with the source
  • Test inputs separately from outputs
  • Replace only one variable at a time
  • Power off before every correction
PROJECT-SPECIFIC BUILD NOTES

Follow the documented instructions.

These notes come from this project's source and remain in their original order.

01

Project overview

Project build note

Every electronics expert has to have a test device called an oscilloscope in their toolbox. It can be used to view and analyze a variety of signals, and it is typically presented in the form of a two-dimensional plot in which one or more signals are plotted against time. In the process of designing and debugging electrical devices, they are utilized to view and compare waveforms, as well as determine the voltage levels, frequency, noise, and other properties of signals that are applied at the device's input as it varies over time. Because of this, oscilloscopes are a very useful instrument that should be kept on the workbench of each electronics expert or maker. Oscilloscopes, on the other hand, may be rather expensive, with entry-level models ranging anywhere from $500 to $2,000 in price. Because of their tens of thousands of dollar price tags, more complex oscilloscopes are out of reach for consumers with more fundamental needs. But what if we were able to design one that was simpler, smaller, and less expensive to produce? This is the question that prompted us to start working on this project today. ESP32 Oscilloscope Features

Single-channel 1 million samples per second, 50 thousand at 16 bits per buffer (50ms of data at 1Msps) Scale from 10 microseconds per division to five milliseconds per division @ 1 msps In 1X mode, the maximum VPP is 3.3 volts, while in 10X mode, it is 33 volts. Control that is both quick and responsive, employing tactile switches. Frequency calculations (20hz min due to buffer size) Simple mean filter ON/OFF Maximum, minimum, typical, and highest point Peak voltage The difference in time and voltage Analog, Digital/Data Mode Single TRIGGER AUTOSCALE Components Required to build ESP32-based Oscilloscope 1.69-inch, 240x280 Rounded Corner TFT display included with the ESP32 Devkit (ST7789s) Switches that can be felt. SHDT and SPDT switches 100K resistor 10K resistor 100nF capacitor Clad in copper or perforated board Soldering tools ESP32 Oscilloscope Circuit Diagram The data acquisition is controlled by an ESP32, which is employed in this application. When it comes to storing and manipulating the signals, we will

be using the I2S buffer that is built right in. In this example, the 38-Pin variation is used, however other types of development modules might be used instead. We are utilizing a 1.69-inch TFT display module as our means of display. The resolution of this device is 240 by 280 pixels. The display controller that we will be using is a ST7789S, and the SPI communication protocol will be used to control it. The module also has a slot for an SD card, however we haven't utilized it yet. In a future version, we might make use of this for waveform capturing or other applications along those lines. The keypad is a pretty straightforward device. For this particular reason, tactile switches that include pullup resistors are utilized. To identify each individual key press, we are making use of the hardware interrupt. This will provide us with a keypad that is incredibly responsive.

The analog input part is a rather straightforward component. It is made comprised of two SPDT switches, one for selecting the range, and another for selecting the AC/DC coupling. A voltage divider that can be used to feed signals with a peak voltage greater than 3.3V has been introduced by our team as part of the range selection process. This divider can be used to feed the signals. Signal will be converted to a 10:1 ratio after passing through the voltage divider. Arduino Code for Oscilloscope Download the complete source code from the GitHub repository hosted on the Circuit Digest website. You will also find an archive with the name TFT eSPI within the GitHub repository. In order to successfully drive the display, this modified library is required. It should be extracted into the

library folder for Arduino. In the event that the TFT eSPI library has already been installed, you will need to uninstall it before extracting the new version. When it is finished, go to the board manager and choose the esp32 option. After that, you need to compile the code and then upload it. Our do-it-yourself oscilloscope is now operational and ready for usage. The Oscilloscope can be powered by using the Micro USB port that is located at the bottom. This connector is used exclusively for supplying electricity. 485. DIY ESP32 Oscilloscope Every electronics expert has to have a test device called an oscilloscope in their toolbox. It can be used to view and analyze a variety of signals, and it is typically presented in the form of a two-dimensional plot in which one or more signals are plotted against time. In the process of designing and debugging electrical devices, they are utilized to view and compare waveforms, as well as determine the voltage levels, frequency, noise, and other properties of signals that are applied at the device's input as it varies over time. Because of this, oscilloscopes are a very useful instrument that should be kept on the workbench of each electronics expert or maker.

Oscilloscopes, on the other hand, may be rather expensive, with entry-level models ranging anywhere from $500 to $2,000 in price. In addition, more sophisticated oscilloscopes might cost a few thousand dollars, putting them out of reach for consumers with less sophisticated needs. But what if we were able to design one that was simpler, smaller, and less expensive to produce? This is the question that prompted us to start working on this project today. ESP32 Oscilloscope Features Single-channel 1 million samples per second, 50 thousand at 16 bits per buffer (50ms of data at 1Msps) Scale from 10 microseconds per division to five milliseconds per division @ 1 msps Maximum VPP 3.3V in 1X and 33V in 10X mode Control that is both quick and responsive, employing tactile switches.

Frequency calculations (20hz min due to buffer size) Simple mean filter ON/OFF Max, min, average and Peak-Peak voltage The difference in time and voltage Analog, Digital/Data Mode Single TRIGGER AUTOSCALE Components Required to build ESP32-based Oscilloscope 1.69-inch, 240x280 Rounded Corner TFT display included with the ESP32 Devkit (ST7789s) Switches that can be felt. SHDT and SPDT switches 100K resistor 10K resistor 100nF capacitor Clad in copper or perforated board Soldering tools ESP32 Oscilloscope Circuit Diagram The full circuit diagram for the ESP32-based oscilloscope may be seen in the next page. The data acquisition is controlled by an ESP32, which is employed in this application. When it comes to storing and manipulating the signals, we will be using the I2S buffer that is built right in. In this example, the 38-Pin variation is used, however other types of development modules might be used instead. The data acquisition is controlled by an ESP32, which is employed in this application. When it comes to storing and manipulating the signals, we will be using the I2S buffer that is built right in. In this example, the 38-Pin variation is used, however other types of development modules might be used instead. We are utilizing a 1.69-inch TFT display module as our means

of display. The resolution of this device is 240 by 280 pixels. The display controller that we will be using is a ST7789S, and the SPI communication protocol will be used to control it. The module also has a slot for an SD card; however, we haven't utilized it yet. In a future version, we might make use of this for waveform capturing or other applications along those lines. The keypad is a pretty straightforward device. For this particular reason, tactile switches that include pullup resistors are utilized. To identify each individual key press, we are making use of the hardware interrupt. This will provide us with a keypad that is incredibly responsive. You are able to acquire knowledge regarding the ESP32 Interrupts that we discussed previously.

The analog input part is a rather straightforward component. It is made comprised of two SPDT switches, one for selecting the range, and another for selecting the AC/DC coupling. A voltage divider that can be used to feed signals with a peak voltage greater than 3.3V has been introduced by our team as part of the range selection process. This divider can be used to feed the signals. Signal will be converted to a 10:1 ratio after passing through the voltage divider. Arduino Code for Oscilloscope You can obtain the whole source code by following the link provided at the bottom of this page, which leads to the Circuit Digest GitHub repository. You will also find an archive with the name TFT eSPI within the GitHub repository. In order to successfully drive the display, this modified library is required. It should be extracted into the library folder for Arduino. In the event that the TFT eSPI library has already been installed, you will need to uninstall it before extracting the new version. When it is finished, go to the board manager and choose the esp32 option. After that, you need to compile the code and then upload it. Our do-it-yourself oscilloscope is now operational and ready for usage. The Oscilloscope can be powered by using the Micro USB port that is located at the bottom. This connector is used exclusively for supplying electricity.

Ready to continue?
PROJECT ACHIEVED

You built DIY ESP32 Oscilloscope.

You followed the full workflow from understanding the mission to testing the finished project. That is a real engineering achievement - well done.

Smart Wi-Fi Video Doorbell using ESP32 and Camera project thumbnail featuring ESP32-CAM, FTDI Programming Board, V AC to 5V DC Converter
NEXT IOT ADVENTURE

Smart Wi-Fi Video Doorbell using ESP32 and Camera

Ready to reuse what you learned in another project from the same track?

Start this project
Browse all 500 projects