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…

Know the mission before touching a wire.
Understand what you are making, prepare the right tools, and make the workbench safe.
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
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.
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.
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.
What's this?Image, role, pros, cons, handling & specifications

NEGATIVE
A named project component whose exact role is defined by the source circuit and build guide.
What it does hereIt 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.
What's this?Image, role, pros, cons, handling & specifications
PASSIVE LEARNING VIEW1N4148
A passive component sets current, voltage, timing, filtering, or signal behaviour without adding gain.
What it does hereIts 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.
Connect one verified path at a time.
Explore the named components and standardized signal flow, then use Source Check to verify exact physical pins, values, and topology before applying power.
Trace this circuit.
PC-based Oscilloscope Using Arduino: interactive parts, standardized terminals, responsive anchored wires, student explanations, and the original circuit reference in one shared system.
Trace before wiring
Follow power, ground, inputs, processing, and outputs in that order. Never guess a pin from package shape alone.
Connect with power off
Make short, labelled connections and share a common ground only where the schematic requires it.
Inspect every joint
Check continuity, polarity, adjacent shorts, and loose connections before the first power-up.
Open all source diagrams and build views 2 visuals


Confirm the hardware-only control path.
This project does not include firmware in the source. The circuit itself provides the required behaviour.
How to connect
- Match every controller label to the circuit view and source pin map.
- Join grounds before signal wires when separate low-voltage supplies are used.
- 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.
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.
How to upload code
The original design is implemented entirely in hardware, so proceed after verifying the circuit and supply.
Assemble, deploy, test, and troubleshoot.
Use the complete source notes in build order, then pass the final checks before calling the project finished.
Build in functional stages
- Power and regulation
- Controller or processing stage
- Inputs and sensors
- Outputs and loads
- Enclosure and strain relief
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
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
Follow the documented instructions.
These notes come from this project's source and remain in their original order.
Project overview
Project build noteElectronics 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.
Setting up a PC scope is easy and straight-forward, as shown in Fig. 1. The USB cable
Project build noteis 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.
Testing
Project build noteFig. 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.
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.
Browse all 500 projects