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

Creating real-time tools that simplify workflows. This project combines a Serial Frequency Generator and an Arduino Oscilloscope using PyQt5, ESP32, and Arduino.

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

As an embedded engineer, I enjoy creating real-time tools that simplify workflows. This project combines a Serial Frequency Generator and an Arduino Oscilloscope using PyQt5, ESP32, and Arduino, providing powerful tools for signal generation and visualization.


Project Overview

This project consists of two main applications:

1. Serial Frequency Generator

Serial Frequency Generator GUI

Screenshot of the Serial Frequency Generator application GUI.


2. Arduino Oscilloscope

Arduino Oscilloscope GUI

Screenshot of the Arduino Oscilloscope application GUI.


Hardware Setup

The hardware setup connects the ESP32 (for signal generation) and the Arduino Uno (for signal visualization) directly via jumper wires. This simple configuration bridges signal generation and analysis.

Live Hardware Setup

Live demonstration of the hardware setup for the project.


Features

Saved Data Visualization

Example of saved data visualized in the Oscilloscope GUI.


Video Demonstration

Watch both applications in action in this short demonstration:

Video Demo


Getting Started

  1. Clone the Repository:
    git clone https://github.com/salhina/serial-frequency-generator-oscilloscope.git
    cd serial-frequency-generator-oscilloscope   
    
  2. Install Dependencies
    • Python 3.8+
    • PyQt5
    • Arduino IDE
  3. Run the Applications
    • Open and run the Serial Frequency Generator application on your PC.
    • Upload the Arduino Oscilloscope firmware to your Arduino Uno.