CodingGraphsHardwareHighlevel

How to Build a Serial Frequency Generator and Oscilloscope with PyQt5, ESP32, and Arduino

PyQt GUI: Low-Cost Oscilloscope & Signal Generator with Spectrum Analyzer | ESP32, Arduino Tutorial

How I Built a Serial Frequency Generator and Oscilloscope Application with PyQt5

As an embedded engineer, I enjoy creating real-time tools that simplify engineering workflows. This project combines a Serial Frequency Generator and an Arduino Oscilloscope, two PyQt5-based applications that work together to help engineers visualize and analyze signals.

Using an ESP32, Arduino Uno, and PyQt5, I developed an interactive and efficient setup for analog electronics engineers. Here’s a detailed breakdown of the project, along with a video demonstration.


Project Overview

The Serial Frequency Generator

This application generates signals with customizable frequency, waveform, and amplitude. Built with PyQt5, it allows the ESP32 microcontroller to output the desired signal with precision.

Key Features:

  • Control options for frequency, waveform type, and amplitude.
  • Onboard LED for visual feedback of the signal’s frequency.

Screenshot of the GUI:

Arduino Oscilloscope GUI

The Arduino Oscilloscope

The Oscilloscope application reads signals generated by the Serial Frequency Generator and displays them in real-time using PyQt5. It provides an affordable and accessible alternative to traditional oscilloscopes.

Key Features:

  • Real-time signal plotting.
  • Adjustable time base and triggering options for accurate signal analysis.

Screenshot of the GUI:

Arduino Oscilloscope GUI


How It Works

The Serial Frequency Generator application creates a signal, which is transmitted to the Arduino Uno through direct jumper wire connections. The Arduino Oscilloscope application then reads and visualizes the signal in real-time, enabling seamless interaction between hardware and software.

Hardware Details:

  • ESP32 for signal generation.
  • Arduino Uno for signal reception and plotting.
  • Direct jumper wire connections for reliable communication.

Why This Matters for Engineers

Traditional lab equipment can be expensive and bulky. This setup offers a compact, affordable solution for analog circuit testing and debugging, making it a valuable tool for engineers and students alike.


Video Demonstration

To give you a better understanding of how these applications work in real-time, here’s a video showcasing the Serial Frequency Generator and Arduino Oscilloscope in action. You’ll see how the GUIs interact with the hardware to generate and analyze signals.


Final Thoughts

This project demonstrates the power of combining software and hardware for real-time applications. It was a rewarding challenge that showcased the versatility of PyQt5 and microcontroller-based systems.

If you have any questions or ideas for improvement, feel free to share them in the comments. Follow me on LinkedIn for more embedded engineering projects!


Tags & Categories

Tags: PyQt5, Arduino, ESP32, Signal Generator, Oscilloscope, Real-time Applications

Category: Embedded Systems, Engineering Tools

Leave a Reply

Your email address will not be published. Required fields are marked *