STEP 1 / 6ELECTRONICS

PC-based Oscilloscope Using Arduino

Electronics hobbyists and professionals need oscilloscopes to make sure that their designs will work as planned. PC-based oscilloscopes are better than oscilloscopes that stand on their o…

Circuit Atlas themed schematic for PC-based Oscilloscope Using Arduino
PROJECT#098
TRACKElectronics
PARTS02
STAGES06
STEP 1 / 6 · Overview

Know the mission before touching a wire.

Understand what you are making, prepare the right tools, and make the workbench safe.

01

Project details

PC-based Oscilloscope Using Arduino is a electronics project. Electronics hobbyists and professionals need oscilloscopes to make sure that their designs will work as planned. PC-based oscilloscopes are better than oscilloscopes that stand on their o…

Source pages
189-192
Named parts
2
Build goal
Working, tested prototype
02

Tools you need

  • Digital multimeter
  • Wire stripper and side cutters
  • Soldering iron with a fine tip
  • Current-limited bench supply

Use eye protection, good lighting, and a clean insulated surface throughout the build.

03

Safety precautions

  • Disconnect every power source before changing a connection.
  • Check component polarity, pinout, and supply voltage twice.
  • Use a current limit for the first power-up.
  • Keep liquids, loose metal, and uninsulated wires away from the bench.
Ready to continue?
STEP 2 / 6 · Parts library

Gather, identify, and understand every part.

Use the standardized inventory, then open What's this? to learn each part's role, advantages, limitations, handling, and specifications.

NAMED PROJECT INVENTORY2 PART LINES
PARTTYPEQTYREADY
PNEGATIVEPART1
What's this?Image, role, pros, cons, handling & specifications
Circuit Atlas themed schematic for PC-based Oscilloscope Using ArduinoPART LEARNING VIEW

NEGATIVE

A named project component whose exact role is defined by the source circuit and build guide.

What it does here

It performs a documented electrical, control, interface, or construction function in this project.

Buy / compare this part

Advantages

  • Selected for this project
  • Can be checked independently
  • Supports modular troubleshooting

Limitations

  • Substitutes may differ
  • Generic names can hide variants
  • Pinouts and ratings vary

Handling

  • Compare the received part with the source
  • Keep it labelled
  • Do not force connectors or adjusters

Specifications to verify

  • Use the exact model, value, package, and rating listed for NEGATIVE; similar-looking parts are not always interchangeable.
  • Confirm dimensions, ratings, connection method, polarity, and environmental limits.
P1N4148PASSIVE1
What's this?Image, role, pros, cons, handling & specifications
1N4148 switching diodePASSIVE LEARNING VIEW

1N4148

A passive component sets current, voltage, timing, filtering, or signal behaviour without adding gain.

What it does here

Its exact value and tolerance determine how the surrounding stage behaves.

Buy / compare this part

Advantages

  • Simple and dependable
  • Low cost
  • Easy to measure before installation

Limitations

  • A wrong value can stop or damage the circuit
  • Ratings must not be exceeded
  • Polarized parts require correct orientation

Handling

  • Measure unclear values
  • Observe capacitor polarity
  • Avoid overheating leads while soldering

Specifications to verify

  • Use the exact model, value, package, and rating listed for 1N4148; similar-looking parts are not always interchangeable.
  • Confirm value, tolerance, power or voltage rating, polarity, and package size.
Ready to continue?
STEP 4 / 6 · Source code

Confirm the hardware-only control path.

This project does not include firmware in the source. The circuit itself provides the required behaviour.

01

How to connect

  1. Match every controller label to the circuit view and source pin map.
  2. Join grounds before signal wires when separate low-voltage supplies are used.
  3. Keep motors, relays, pumps, and other loads on a suitable driver and external supply.

Common mistakes

Reversed VCC/GND, board-label versus GPIO-number confusion, missing common ground, and charge-only USB cables.

Troubleshoot

Disconnect loads, continuity-test one path at a time, then test with a current limit.

02

Software preparation

No IDE, board package, library, or firmware upload is required for this project.

If you add a programmable controller as an extension, document its pin map separately.

03

How to upload code

The original design is implemented entirely in hardware, so proceed after verifying the circuit and supply.

Ready to continue?
STEP 5 / 6 · Build

Assemble, deploy, test, and troubleshoot.

Use the complete source notes in build order, then pass the final checks before calling the project finished.

ASSEMBLY

Build in functional stages

  • Power and regulation
  • Controller or processing stage
  • Inputs and sensors
  • Outputs and loads
  • Enclosure and strain relief
TEST

Power up safely

  • Inspect unpowered continuity first
  • Apply the lowest safe current limit
  • Measure supply rails before signals
  • Add one load at a time
  • Record expected and actual results
TROUBLESHOOT

Work from simple to complex

  • Confirm power, ground, polarity, and orientation
  • Compare each pin with the source
  • Test inputs separately from outputs
  • Replace only one variable at a time
  • Power off before every correction
PROJECT-SPECIFIC BUILD NOTES

Follow the documented instructions.

These notes come from this project's source and remain in their original order.

01

Project overview

Project build note

Electronics hobbyists and professionals need oscilloscopes to make sure that their designs will work as planned. PC-based oscilloscopes are better than oscilloscopes that stand on their own because they are small, cheap, and can do offline analysis. Fig. 1: Circuit of the PC-based oscilloscope using Arduino Here, we'll show you how to make your own oscilloscope for a very low price by using your PC and an Arduino board as the signal-grabbing hardware. This

oscilloscope can pick up signals with a frequency of up to 5kHz. The heart of the oscilloscope is the Arduino board, which reads the values from its built-in analog-to- digital converter (ADC) and sends them to the PC through the USB port. Here is an Arduino sketch that you can compile and then load straight onto the Arduino. You also need to install an executable file or application on your Windows PC. This application acts as the front end and shows waveforms of the input signals on your computer screen. The Arduino board has an Atmel AVR microcontroller, which, depending on the type of board, can have 8, 16, or 32 bits. You can use any version of the Arduino for this project. The ADC is built into the AVR microcontroller. For the project, we use pin A0 to get the signal from the input. The Arduino's UART-USB converter sends the captured input signal to the PC's UART. When the Arduino connects to the PC, Windows makes a virtual COM port. A Windows app made with NI LabWindows opens the virtual COM port and starts plotting signals visually with Graph libraries. The UART's baud rate limits how fast the oscilloscope can sample. The Arduino sketch is written so that it uses ISR to read the ADC. The UART baud rate is set to 115200, which sends data every 85s. This means that the actual sampling rate is 12kSa/s.

02

Setting up a PC scope is easy and straight-forward, as shown in Fig. 1. The USB cable

Project build note

is used to connect the Arduino board to your laptop or PC. The board doesn't need any other power source because it gets its power from the USB. Connect the switching diodes (D1 and D2) to pin A0 of the Arduino's ADC as an input protection circuit. To use this circuit, you need the Arduino sketch (pcscope.ino) and the PC software or executable file (PCScope.exe). Install the PCScope.exe program (which the author made) on your Windows PC and run it. Then, in Arduino IDE, open the Arduino sketch and compile it. Connect the Arduino board to the computer and flash the sketch into the Arduino board's microcontroller. Arduino's ADC can measure voltages as high as 5V. So it is best to add a small protection circuit to limit the input voltage to 5V and clamp the negative voltage. To

protect the input pin, a low-power, fast-switching diode like 1N4148 can be used. Connect a 10-kilohm resistor between the input and the output. If the input goes above 5V, it will work as a current limiter. If you need to measure voltages that are higher than 5V, you can use more voltage dividers. Software Arduino sketch. The rate at which data is sent to the PC limits the sampling rate of this PC scope application. With a Baud rate of 115000, the time between each bit is about 85 s. To plot reliable data, it is important to get the ADC signals a long time before this time. The sketch reads pin A0 on Board1 and sends it to UART at 115200 baud rate. At this speed, bytes of the input are pushed at time intervals of around 85µs. The Arduino's ADC is set up so that samples are taken every 116s by default. So here the ADC is configured with additional lines of code to get samples faster than 85µs by setting the prescaler to 16. With this, you get an ADC conversion every 20s, which is much faster than the UART data transfer rate. Software for PC. As was already said, NI LabWindows is used to make the front-end PC software for signal acquisition and processing. Arduino takes data from the serial port at regular intervals and shows it on the screen as a graph using the Plot function library. The display points along X-axis are calculated based on the user-defined time scale. The voltage selection control is used to set the range of the Y-axis.

03

Testing

Project build note

Fig. 2: Message after the hardware successfully connects to the PC After installing the PC scope application, click the "Connect" button on your PC screen to connect to the Arduino board. When the board gets connected to your PC, you will get a confirmation message for three seconds as shown in Fig. 2. Square waves up to 5kHz can be fed in at CON1. The software must be able to show the waveform of its output on your PC. During testing, the screen showed square and triangular waveforms of 525Hz and 530Hz. In the same way, you can get waveforms out of rectangular or pulse inputs, but not sine waves.

Ready to continue?
PROJECT ACHIEVED

You built PC-based Oscilloscope Using Arduino.

You followed the full workflow from understanding the mission to testing the finished project. That is a real engineering achievement - well done.

Turn Your Old Inverter into an Emergency Power System project thumbnail featuring Existing inverter, Inverter battery, Mains-sensing changeover relay
NEXT ELECTRONICS ADVENTURE

Turn Your Old Inverter into an Emergency Power System

Ready to reuse what you learned in another project from the same track?

Start this project
Browse all 500 projects