PC-based Oscilloscope Using ArduinoOscilloscopes are a significant instrument for electronics hobbyists and professionals to verify that their designs would work as anticipated. PC based Oscilloscope score over standalone oscilloscopes because of their compact measurement, low value and talent to do offline analysis.

Proper right here we describe how one could make your particular person oscilloscope at a very low value using your PC and an Arduino board as a result of the {{hardware}} for signal acquisition. It is best to make the most of this oscilloscope to grab frequency indicators as a lot as 5kHz. The Arduino board, the middle of the oscilloscope, reads the values from its inbuilt analogue-to-digital converter (ADC) and pushes these to the PC by the use of USB port. Now we have now provided proper right here an Arduino sketch, which you will compile and cargo on to the Arduino. You moreover wish to put in an executable file or utility in your Residence home windows PC. This utility works as a result of the front-end to plot enter indicators as waveforms in your laptop computer show display screen.

The Arduino board consists of Atmel’s AVR microcontroller, which could possibly be 8-, 16- or 32-bit based mostly totally on the sort of the board. For this enterprise, it’s best to make the most of any variant of the Arduino as {{hardware}}. The AVR microcontroller has an inbuilt ADC. Throughout the enterprise, we use pin A0 to grab the enter signal. The captured enter signal is fed to UART by the use of UART-USB converter inside the Arduino to the PC. A digital COM port is created by Residence home windows every time the Arduino connects to the PC. A Residence windows-based utility developed using NI LabWindows opens up the digital COM port and begins plotting indicators visually using Graph libraries.

The sampling tempo of the oscilloscope is restricted by the baud charge of the UART. The Arduino sketch is coded to study the ADC using ISR, and the UART baud charge is configured at 115200, which sends data at 85µs intervals. This offers an environment friendly sampling charge of 12kSa/s.


The PC scope set-up is form of straightforward and simple as confirmed in Fig. 1. The Arduino board connects to your laptop computer laptop or PC by the use of the USB cable. Any exterior power present for the board should not be required as a result of the board is powered by the USB solely. Be part of switching diodes (D1 and D2) as enter security circuit to pin A0 of the Arduino’s ADC. You need Arduino sketch (pcscope.ino) and PC software program program or executable file (PCScope.exe) with a goal to make use of this circuit. Arrange PCScope.exe program (developed by author) in your Residence home windows PC and open the equipment. Subsequent, open the Arduino sketch from Arduino IDE and compile the sketch. Be part of the Arduino board to the PC and flash the sketch into the microcontroller on the Arduino board.

Circuit of the PC-based oscilloscope using Arduino
Fig. 1: Circuit of the PC-based oscilloscope using Arduino

The ADC of Arduino can measure voltages as a lot as 5V. So it is advisable in order so as to add a small security circuit to limit the enter voltage to 5V and clamp the detrimental voltage. A low-power, fast-switching diode like 1N4148 may be utilized to protect the enter pin. Be part of a 10-kilo-ohm resistor in assortment with the enter. It will work as a gift limiter in case the enter goes previous 5V. Additional voltage dividers may be utilized in case you may measure voltages elevated than 5V.

Software program program

Arduino sketch. The sampling charge of this PC scope utility is restricted by the pace at which the knowledge is shipped to the PC. Baud charge of 115000 affords time interval of spherical 85 µs. It is rather essential get the ADC indicators lots sooner than this time to get reliable data plotting. The sketch reads pin A0 of Board1 and sends to UART at 115200 baud charge. At this tempo, bytes of the enter are pushed at time intervals of spherical 85µs.

By default, the ADC configuration of the Arduino affords samples every 116µs. So proper right here the ADC is configured with additional strains of code to get samples faster than 85µs by setting the prescaler to 16. With this, you get ADC conversion every 20µs, which is method faster than the UART data swap charge.

Acquire source code

PC software program program. As acknowledged earlier, the front-end PC software program program for signal acquisition and processing is developed using NI LabWindows. The serial port data is captured by Arduino at frequent time intervals and plotted as a graph on the show display screen using the Plot function library. The present components alongside X-axis are calculated based mostly totally on the user-defined time scale. The Y-axis range is about using the voltage alternative administration.

Message on the screen when the PC-based scope is run for the first time
Fig. 2: Message on the show display screen when the PC-based scope is run for the first time


After placing within the PC scope utility, click on on ‘Connect’ button in your PC show display screen to attach with the Arduino board (Fig. 2). When the board will get linked to your PC, you are going to get a affirmation message for Three seconds as confirmed in Fig. 3.

Message after the hardware successfully connects to the PC
Fig. 3: Message after the {{hardware}} effectively connects to the PC

Feed any squarewave enter of as a lot as 5kHz at CON1. The software program program ought to plot its output waveform in your PC. Sq. and triangular output waveforms of 525Hz and 530Hz captured on the show display screen all through testing are confirmed in Figs 4 and 5, respectively. Equally, you can feed rectangular or pulse inputs (nonetheless not sine waves) to get output waveforms.

Test signal of 525Hz square waveform captured on the screen
Fig. 4: Check out signal of 525Hz sq. waveform captured on the show display screen
Test signal of 530Hz triangular waveform captured on the screen
Fig. 5: Check out signal of 530Hz triangular waveform captured on the show display screen

Leave a Reply

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