Breadboard simulator

Virtual breadboard equipped with an oscilloscope and signal generator to simulate simple analogue circuits.

Usage

The package comes with two programs: RLC demo and Breadboard simulator.

RLC demo

This is an interactive plot of the resonance curve of an RLC circuit. You can adjust the sliders to update the plots.

Resonance curve and phase plot in RLC demo

Breadboard simulator

This program has 4 windows: breadboard, oscilloscope, signal generator and multimeter.

When starting the application, please enter your student number in the breadboard window. This is necessary, because there are various random elements in the simulation, such as exact values of circuit components within tolerance and others, but we need to ensure that the devices work consistently between your takes. To achieve this, your student number is used to seed the pseudo-random generators. This way, values appear random, but are deterministic and reproducible. Because of this, you are also expected to get sightly different results as your peers.

Breadboard

You can setup your circuit in this window by connecting circuit elements with virtual wires. There are two types of wires: simple jump wires and coax cables with BNC connectors (marked with a thicker line). To connect two components, first highlight one terminal of the first one (a blue or purple dot will appear), then double click on it, this will select the terminal. Do the same with the other component. To unselect a terminal, click on empty space. To disconnect two components, double click on one end of the wire.

You can connect blue dots with jump wires and purple dots with coax cables.

When using jump wires, at least one end should be plugged into the breadboard. You have the breadboard for a reason, don't try connecting things in thin air. The terminal and bus strips are connected inside the breadboard in the conventional way.

You can rotate and remove circuit components by right clicking on them. You can add new components by clicking the buttons below the breadboard area, where you can also set their value and tolerance. The real value of these components will be a random number within the tolerance specified. Although there's no LCR meter built-in (yet), you can come up with clever ways of measuring the real values with the tools provided.

The breadboard window is basically a Chromium window, so like on any webpage, you can hold the Ctrl key and use the mouse wheel to zoom in, in case the graphics appear too small for you.

Signal generator

The signal generator is based on ISO-TECH GFG 2004 with similar characteristics. You can set the frequency, amplitude, DC offset and waveform of your signal. Currently, only the BNC output labelled OUTPUT is active, the others are not functional.

Oscilloscope
The oscilloscope displaying two sinusoidal signals

The oscilloscope can display two channels and has an EXT input for trigger. It mimics a standard digital oscilloscope: you can set scale divisions, offsets, set a trigger and switch to XY mode.

When pressing the Run button, the program will simulate the circuit based on how you wired it up in the Breadboard window. The simulation is usually finished much faster than a second, but you might experience some delay between pressing the button and seeing the signal on the scope. While the oscilloscope is running, you cannot change the circuit – the breadboard window becomes inactive. To change the circuit, you need to stop the oscilloscope first. You can however change the settings of the oscilloscope and the signal generator while the oscilloscope is running, but in these cases the software runs the simulation again, so you'll need to wait some fraction of a second again.

When you set the signal generator to a low frequency compared to the time division of the oscilloscope, you might experience discontinuities in the signal. This is expected behaviour that is due to resource limitations: you are trying to run a long simulation on high resolution, so to avoid wasting memory and CPU time, the simulation is stopped before a whole period would be complete. There are clever ways to come around this problem, that might be implemented in a future release.

You can export the signal currently visible on the screen into a CSV file that can be used for further analysis in your software of choice: Matlab, R, Python, Mathematica or even Excel.

The oscilloscope has 12 bit vertical resolution and 8000 datapoints/frame.

Multimeter

Currently, you can only use the multimeter as a true RMS meter, the ammeter functionality is not yet implemented.

The characteristics of the multimeter are based on Fluke 117 True RMS Multimeter. The AC voltmeter operates in range 45Hz – 1kHz.

If you change the circuit, you need to press Run on the oscilloscope to update the multimeter's reading.

Support

The simulator was written by Balázs Dura-Kovács, who provides strictly technical support on the following address: laaau.rkd1@..ckbcc-al.o6svuusza. Bug reports should also be sent here.

Video tutorial

License

This program is free software (free as in freedom), released under GPLv3 which guarantees you the following freedoms[1]:

To keep this piece of software free, upon redistributing, you must also choose a free software licence compatible with GPLv3.

Binaries

Pre-compiled binaries are available for GNU/Linux (AppImage), Microsoft Windows and macOS X. Only 64 bit systems are supported.

GNU/Linux

Windows

First, please install vc_redist.x64.exe provided by Microsoft. Then extract the zip file and run RLCquick.exe or RLCsim.exe

MacOS X

Note that due to a bug in one of the libraries, on macOS the simulation can only be run on the same thread as the GUI, so you should expect the interface to freeze while running the simulation.

If you cannot launch the images because of an "unverified developer" warning, please follow these instructions.

Why are the downloads so huge?

Good question. Short answer: for your convenience. To minimise the extra dependencies you need to install to run the simulator, most required libraries have been included.

sha256 checksums

f56d54c12c7124efab1b0d20af43540afe2f2a5fbc11c83249413176b49fe53b  breadboard_v1_0_2-x86_64.AppImage
1858985a84a4eff6dddfd304fc2f853708e5dde25f6c07a262fb9ca254ac6a28  RLCdemo_v1_0_0-x86_64.AppImage
f3d527ede63e4b01a3ed3df0568d6d4fff99b0a82997ba3727d9700ac495dd4c  rlc_win64_v1_0_2.zip
3bafa7e95de4fcee5fe9afcfc6ee236384100be1b192a4672dcedab0ba914d87  RLCsim_v1_0_2.dmg
13acdcde48746d70c615959459693c9f22fc5ea4402a03a8066be2a799421fa9  RLCdemo_v1_0_0.dmg
3ae8b127737608df81a18d808e4a3d964a51e43ed3aaa84723c0a147246709eb  v1_0_2_source.zip

Changelog

v1.0.2
v1.0.1
v1.0.0

Source

The source code of the breadboard simulator can be downloaded here:

Compiling

To compile the code you will need the following dependencies:

Qt framework + Qt creator. Be sure to download the following components: Qt Charts, Qt WebEngine. If you are on Windows, you'll also need Microsoft Visual C++ (MSVC).

ngspice. This is the circuit simulation library that we use. It's available in most GNU/Linux distributions, but you might want to compile it for yourself, or download recent dlls for Windows.

Free software libraries used in this project

[1]: Brett Smith: A Quick Guide to GPLv3