I recently found myself needing to measure a large number of circuits' frequency responses. Initially I did so manually - set a frequency on my waveform generator, measure the output amplitude on my scope - but this proved to be prohibitively slow. This project began with me writing a python program to collect data from my oscilloscope. Recently, however, I decided to fully automate the process by controlling the waveform generator as well. The script now automates every aspect of the measurement process. It sets an input waveform into the test circuit, measures the output, and features subroutines which automatically verify the integrity of the data collected and that data collection occurred after any transients have died out. The program can scan the frequency response of a circuit with 30 data points in under a minute, all while I'm away grabbing a cup of coffee. It then graphs your data and saves it in a text file for further analysis in MATLAB, Excel, etc.
Enjoy this project?