For installer downloads and source code, please visit our GitHub Pages site:
BodePlotter
You can also browse the latest releases on GitHub:
Releases
f1 = 1 / (2 * π * R1 * C1)
Given:
R1 = 1.46 [kΩ] = 1460 [Ω]
C1 = 105.89 [nF] = 105.89 × 10^-9 [F]
f1 = 1 / (2 * π * 1460 * 105.89 × 10^-9) ≈ 1029.5 [Hz]
f2 = 1 / (2 * π * R2 * C2)
Given:
R2 = 2.93 [kΩ] = 2930 [Ω]
C2 = 1.02 [nF] = 1.02 × 10^-9 [F]
f2 = 1 / (2 * π * 2930 * 1.02 × 10^-9) ≈ 53.254 [kHz]
The circuit was simulated using TINA-TIV9 software. Below is the visual representation of the circuit setup:
The simulation provided the following results, showcasing the circuit’s behavior:
The Bode plots were generated using the OWON HDS320S oscilloscope in conjunction with the Bode-Plots Python application:
Watch the HDS320S Magnitude/Phase Bode Plotter window and MatPlotLib windows Video
bodeplots
) or from the menu.--base-port
.--base-port
option is not specified, local ports 5001, 5002, and 5003 will be used to communicate with the Matplotlib windows.usage: bodeplots [-h] [--plot-type {XY,MP,FFT,BODEPLOTTER}]
[--start-decade START_DECADE]
[--stop-decade STOP_DECADE]
[--points-per-decade POINTS_PER_DECADE]
[--base-port BASE_PORT]
BodePlots Application
options:
-h, --help show this help message and exit
--plot-type {XY,MP,FFT,BODEPLOTTER}
Select the type of plot to display. Options: XY, MP, FFT, or BODEPLOTTER.
--start-decade START_DECADE
Specify the starting decade for data processing.
--stop-decade STOP_DECADE
Specify the ending decade for data processing.
--points-per-decade POINTS_PER_DECADE
Specify the number of points per decade for the plot.
--base-port BASE_PORT
Specify the first IP port for communication; subsequent ports (+1, +2) will be used automatically.
Download and Install Zadig
Download zadig-2.9.exe to install the drivers for the OWON HDS320S.
Allow Device Changes
When prompted, allow Zadig to change Windows 11 device settings by clicking the Yes button.
Allow Updates
When prompted, allow Zadig to check for updates by clicking the Yes button.
Detect USB Device
Ensure your HDS320S is plugged in and powered on. Zadig should detect the USB device otherwise select from list.
Detect USB Device
Correctly selected USB device will have USB ID 5345 1234.
Select the Correct Driver
In the driver details, rename the device to OWON HDS320S. Then, use the drop-down arrow to select libusb-win32 (v1.4.0.0).
Install the Driver
Click the Install Driver button and wait for the installation to complete.
Successful Installation
Zadig should report that the driver was installed successfully.
sudo apt install ./bodeplots_0.0.2-1~linuxmint-xia_amd64.deb
sudo apt purge bodeplots
mkdir BodePlotter-ScopeFFT
mv ~/Downloads/bodeplots-source-code.tgz BodePlotter-ScopeFFT
cd BodePlotter-ScopeFFT
apt update
sudo apt install python3-virtualenv git
virtualenv bodeplotter -p python
source bodeplotter/bin/activate
pip install --upgrade pip
pip install briefcase numpy dearpygui matplotlib pyusb scipy screeninfo PyQt5
tar zpxvf bodeplots-source-code.tgz
cd bodeplots
rm -rf build/bodeplots
briefcase create
briefcase update -r
briefcase build
briefcase package
Package file location: dist/bodeplots_0.0.2-1~linuxmint-xia_amd64.deb
.
mkdir C:\BodePlotter-ScopeFFT
cd C:\BodePlotter-ScopeFFT
python # or https://www.python.org/downloads/release/python-3132/
# https://www.python.org/ftp/python/3.13.2/python-3.13.2-amd64.exe
python -m venv bodeplotter
.\bodeplotter\Scripts\activate
python.exe -m pip install --upgrade pip
pip install briefcase numpy dearpygui matplotlib pyusb scipy screeninfo PyQt5
cd C:\BodePlotter-ScopeFFT
.\bodeplotter\Scripts\activate
cd .\bodeplots
briefcase create windows app
briefcase update -r
briefcase update
briefcase build -v
briefcase run -u
briefcase package windows
dist\Bode-Plots-0.0.2.msi
.PhaseDiffProcessor
may exhibit sign inconsistencies due to timing mismatches between channels.
initial_evaluation_count
is set to 5 and threshold
is set to 15 (± degrees).DearPyGui Maximize Button
The maximize button in DearPyGui does not function correctly due to fixed window size constraints.
explorer %TEMP%
explorer $env:TEMP
briefcase.exe
logging can cause Matplotlib to fail due to I/O handling issues. This happens because the Briefcase logging wrapper does not support handling multiple instances, and using Matplotlib within threads can make DearPyGui unstable.console_app
flag in pyproject.toml
to open a blank console appears to disable logging, mitigating these issues.
The advantage of the console is you can do ctrl+c to close all Bode-Plots windows. Recommend Stop first for active measurements or Play back.
If you would like to hid the console recommend making a bode-plots.vbs.
If issues running with Invalid character use Notepad++, go to Encoding -> Convert to ANSI and then save the file.
Set WshSell = CreateObject("WScript.Shell")
WshSell.Run "cmd /c bodeplots.exe", 0, True
Set WshSell = Nothing
Without the console_app
flag to get Matplotlib windows to open. (Allow spawned instances or more than on cocurrent instance.)
cd C:\BodePlotter-ScopeFFT
.\bodeplotter\Scripts\activate
briefcase.exe -v
cd "$HOME\AppData\Local\Programs\Bode Plotter\Bode-Plots"
.\Bode-Plots.exe