This tutorial will guide you through the basics of using an oscilloscope, it is meant for someone with very little or no experience with electronics or oscilloscopes.  There are many types of oscilloscopes out there, and each is a little different, so I'm going to focus on the essential components that are found in all oscilloscopes and are the most useful when getting started.

Oscilloscopes are useful for looking at very fast changes in voltage over time, things that we could not measure with a multimeter.  Usually when you make a measurement with an oscilloscope, you will see a line that stretches from one side of the screen to the other; this line is actually a graph of voltage vs time (fig 2), where voltage is measured along the y axis and time along the x.

Oscilloscopes come in two varieties: analog and digital(I'll be using a digital scope in this tutorial).  The controls on both types are basically the same; be aware that the digital scopes may hide some of there controls in a menu on the LCD display instead of using knob or button.

Step 1: Controls Overview

All oscilloscopes have some basic controls in common, be sure you can identify these controls on your oscilloscope:

- at least one input where an oscilloscope probe (also called a coaxial cable) can be attached (be sure you have one of these cables)
- screen with a grid overlay- this grid is useful when you want to make measurements using the scope
- volts/div- this control lets you change how many volts are represented by each vertical increment of grid overlay on the screen.  Basically, it allows you to zoom in and out along the y axis.
- time/div- this control lets you change how much time is represented by each horizontal increment of the grid overlay on the screen.  It allows you to zoom in and out along the x axis.
- vertical position/offset- lets you move up and down in the y direction
- horizontal position/offset- move left and right
- trigger level- this is a tool that allows you to stabilize your waveform on the screen, I'll get into the details later on in this tutorial

See the images above for examples.

Step 2: Setup

Turn on your oscilloscope.  If nothing is plugged into the oscilloscope you should to see a flat line, this means that the voltage of the input is not changing over time.  If you see a line that is not flat, try disconnecting the probe from the oscilloscope.  If the screen is blank try the following (remember all oscilloscopes are a little different, don't worry about pressing buttons if you're not sure, you won't break anything):

- my oscilloscope is a dual channel scope which means it has two inputs.  As shown in figure 2, pressing the "channel 1" button causes that input to display on the screen in yellow.  Pressing it again will cause it to disappear.  Pressing channel 2 will display that input in blue.  Your oscilloscope may only have one input (no channel buttons), or it may have more than 2.  Analog scopes will not display separate channels as different colors, it's all green.
- you may be zoomed in tight on some blank space, try turning the volts/div knob counterclockwise to zoom out, also try turning the vertical position control until you get a flat line centered in your screen.
- make sure you scope is not in x y mode

Use the volts/div and vertical position controls to center your horizontal line in the screen and set the volts/div to ~1V and time/div to ~1ms to start.

Step 3: Connect to Oscillating Signal

For this next step you will need a steady signal of constant frequency.  If you have a waveform generator you can use that, set it to a pulse or aquare wave with 2.5V amplitude at 500Hz.  If you don't have a waveform generator, consider one of the following options:

arduino- if you have an arduino handy, load the code below onto it, it will generate a square wave from digital pin 8 that oscillates between 0 and 5V with frequency = 500Hz (I chose this option)

555 timer- wire up a 555 timer to pulse at ~500Hz

Plug your coaxial cable into the oscilloscope.  Connect the center (axial) portion of the cable to the signal, and the side (usually an alligator clip) to ground.

Set the oscilloscope to AC coupling for now (I'll explain a little bit more about this at the end of the tutorial)

Step 4: Set Trigger

Once you connect to your signal, you should see the flat line turn into a waveform of some kind.  Adjust your time/div so that you can see separation between the oscillations, adjust the volts/div and vertical position so that the waveform oscillates within the limits of the screen.  Your wave may be hard to see and appear somewhat unstable, as shown in figure 2.  If it is not, turn the trigger level dial until this happens (if your oscilloscope has more that one channel, make sure the trigger is set to the appropriate channel, on my scope this can be set by pushing the trigger menu button and following the directions on the lcd menu, look for the words "trigger source").

While turning the trigger level dial, you'll see a trigger level indicator move up and down the screen (the small yellow triangle on the right side of the screen in the images above).  Notice that when the trigger level exceeds the height of the waveform, the signal becomes unstable.  The trigger level is essentially a voltage level that your oscilloscope compares the incoming signal with, which allows it to stabilize a repeating waveshape or capture voltage spikes on the screen.  Triggering can get fairly complex, there are occasions when people use external trigger sources and specify special trigger modes.  However, for most applications you will find that this is not necessary, and simply setting the trigger level to some voltage within the bounds of your incoming signal will suffice.

Before continuing on the to next step, set your trigger level to the center of the screen as shown in fig 3.

Step 5: Scale

Adjust volts/div, time/div, and vertical position until you frame the wave on the oscilloscope screen as shown in the first image above.

I used the following parameters (for the incoming arduino signal)
Volts/div = 1V
time/div = 1ms
adjust vertical position until wave oscillates around the center of the screen

Play around with these three controls so you get a sense of how they work.  The images above also provide some more detail.

Also try adjusting the horizontal position so you get an idea of how that works.

If you are having major problems finding your wave or centering it on the screen, ask yourself the following:
-are you in AC coupling mode?
-is the probe connected the to the oscilloscope?
-is the probe grounded (is the side alligator clip attached to ground)?
-is the wave generator/arduino/555 timer on?
-are you looking at the correct channel?

Some things to try:
-zoom all the way out along the y axis- set volts/div to its max value
-set vertical position to zero
-toggle the channel

Step 6: Measure Amplitude

The amplitude of the wave is the difference between the height of the peaks of a wave and the wave's equilibrium (the value which the wave is oscillating around).  In this case I've centered the wave to oscillate around the center horizontal grid line.  The distance between this equilibrium line and either the high or low peak of the wave is 2.5 vertical grid divisions (see the red arrows).  Since volts/div is set to 1V, 2.5 grid divisions equals 2.5V, so the amplitude of the wave is 2.5V.

This makes sense, since I know that in the arduino code (my input in this case) I set pin 8 to oscillate between 0 and 5V.  This oscillation has a midpoint(equilibrium) of 2.5V and an amplitude of 2.5.

Step 7: Measure Frequency

The frequency of a wave is the number of times per second that a wave repeats its shape.  We cannot directly measure the frequency on the oscilloscope, but we can measure a closely related parameter called period; the period of a wave is the amount of time it takes to complete one full cycle.

As indicated in the image above, one cycle is completed in 2 horizontal grid divisions.  As indicated int he bottom of the screen, I've set time/div to 1ms, so 2 divisions equlas 2ms (0.002 seconds).

Using the relationship frequency = 1/period, I calculated the period of the signal to be 500cycles/second (or 500Hz). 

Step 8: Advanced Oscilloscope: AC/DC/Ground Coupling

You may have noticed the AC and DC coupling option on your oscilloscope by now.  Generally you will use AC coupling when you are looking at an AC signal and DC coupling for DC signals. 

AC coupling removes the DC component of your signal so that it is oscillating around zero.  For many oscilloscopes this is advantageous because it allows you to zoom in tighter on the waveform so you can measure small AC disturbances.  If you do not care about measuring the DC offset of a signal, and only want to see the AC component, use AC coupling.  If you would like to look at both the AC and DC components of a waveform, or are only interested in the DC component, use DC coupling.

Your oscilloscope may also give you the option of coupling to ground.  Switching to ground coupling will give you a flat line that represents the position of 0 volts.  Use the vertical position control to line this up with one of the grid lines- this will be your ground marker.  You can toggle back to your signal by putting it in DC mode to get a sense of it's distance from ground (you may need to mess with volt/div to get your signal to stay in frame).  Switching over to AC mode will remove the DC component of your signal and show oscillations around the ground marker.

In the images above I used all three coupling modes to measure a pulse-like signal oscillating between 0 and 5V.  I first put the ocilloscope in ground coupling mode to line up ground with the center line on the scope.  By switching back to DC coupling(fig 3) you can see my signal oscillating between 0-5V (each vertical division represents 2V).  In AC coupling mode (fig 5) the DC offset of ~2.5V is removed and the signal is oscillating around ground with an amplitude of 2.5V

Step 9: Advanced Oscilloscope: Dual Channel Measurements

If your oscilloscope has multiple channels, you can look at multiple inputs at the same time.  This is especially useful for looking at changes in a signal as it moves through your circuit.

I set up a pulse-like waveform and put it through a simple voltage follower/buffer circuit to measure the slew rate of an op amp.  Ideally, a wave going through a voltage follower should not change at all.  I measured the incoming wave on channel 1 (yellow) and the output on channel 2 (blue).  As you can see in fig 1, the waves are approximately on top of each other.  Zooming in my time/div (fig 2), you can see the the signal output has a slight lag of about half a division.  Each division represents 25us, so that's a lag of about 12us.

Some other examples of uses for dual channel measurements that come to mind include:

measuring the response time of a sensor- compare a pulse signal to the signal out from the sensor
measure phase changes
analyzing at the effects of a filter

Step 10: Advanced Oscilloscope: X-Y Mode

In the introduction I mentioned that usually oscilloscope curves show the relationship between voltage and time.  There are occasions where it is useful to compare the voltage of one signal verses another.  This is especially useful for plotting I-V curves for diodes and other components.

Figure 2 shows an x-y plot of the two channels depicted in fig 3.  Channel 1 (yellow in fig 3) is plotted along the x axis and channel 2 (blue in fig 3) is plotted along the y axis.
<p>Excellent tutorial and intro. Thank you</p>
<p>When I input two channels on the oscilloscope one of them is unstable , how to adjust the trigger to stabalize both channels inputs ?????</p>
<p>Hi,</p><p>Of course you have figured that out by now. For newcomers; this is happening because the trigger is correctly applied to one channel not the other. To apply trigger on the other channel, select the trigger menu (this is usually a dedicated button near the trigger control knob of your scope). Now you will see a new menu pop up. In the menu there is an option to select &quot;source&quot; you can change the channel to trigger here. Change it to select the unstable channel and now adjust the trigger.</p><p>Thanks</p>
<p>Hi, </p><p>Could you help me understand the following:</p><p>It says AC coupling removes the DC component but the scope still shows there is a 5V peak to peak. Is the output signal from arduino pin an AC or DC signal/current?</p><p>Thanks.</p>
<p>The output from an Arduino pin is DC. Pure DC wouldn't be all that helpful, so you start toggling the output every now and then and this gives you <strong>pulsating DC</strong>.</p><p>When not specified otherwise, most hobbyists automatically think <strong>voltage</strong>, when thinking about AC vs DC, but if you realize, that it means <strong>Alternating Current</strong> and <strong>Direct Current</strong>, perhaps it gets easier to grasp.</p><p>Alternating Current means, that the current changes direction, at the frequency in question, while a pulsating Direct Current only goes in one direction, although in pulses, like if you do Morse code with an old (incandescent) flashlight, the current goes into the bulb and stops going into the bulb - pulsating DC (however slow). Connecting the same bulb to AC (via e.g. a mains transformer suitable for the bulb), will have the current go back and forth through the bulb.</p><p>An example of where you would remove the DC could be, when you have a low amplitude AC superimposed on a much higher DC voltage, say you have a 10mV AC signal riding on a 12V supply (whether it be some noise or a legit signal) and you want to inspect the AC - while you could offset some 'scopes for 12V, the DC could be higher than the 'scope is able to offset (there's other reasons too, but lets keep to that), so, you &quot;AC couple&quot; the input (by a capacitor) and blocks static DC. If the DC was pulsating as well, you wouldn't be able to suppress it and it would be hard to inspect the AC, as with a 12V signal on an 8-bit 'scope, each bit represent more than 46mV (techniques to enhance the resolution do exists, but is way outside the scope of this example). Now if your smallest quantum is 46mV, the 10mV that you want to inspect is about a quarter of the LSB and as such has vanished as far as the 'scope is able to show. Switch to AC coupling and you can crank up the sensitivity/vertical resolution until the signal fills the vertical axis, or you hit the limit of that particular 'scope.</p>
<p>Thanks Omnivent.</p><p>Appreciate you taking time to respond to my question.</p><p>You are right that I think mostly of voltage when talking about AC or DC. </p><p>Best regards,</p>
<p>Thanks! Your instructions were really clear. I bought a used analog oscilliscope and the main concepts transfer well.</p>
<p>love it</p>
Very good tutorial, in deed!!!!
<p>Thank You!</p>
<p>very wellcome, next step: https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/?lang=es, but great tutorial once again!!!!</p>
<p>Thank you for taking the time to write this up and post it for others to learn</p>
wow this is a great tut! here in india still oscilloscope is a costly instrument! <br>i bought one in chor bazar for 700/- inrs a redicullously cheap price!but i had to buy test prod for 600/- inrs. as i started using scope within few months i got payback and now i have four channel digital one ! thanks for this great help!!!
Amanda, Great tutorial. There are a couple things I'd like to point out to you that probably won't affect the casual consumer, but should still be noted nonetheless. The signal generated by the Arduino sketch will be ever so slightly less than 500hz, and also probably won't be a perfect square wave. It's close, but not exact. Firstly, the delay function is known to be inaccurate. To be spot on the sketch ought to use interrupts to toggle the voltage on the pin. Secondly, the code should use a state variable that toggles each iteration through the loop, and set the pin to that value each time through, rather that explicitly setting high and low. The number of TOTAL instructions to set either high or low should be identical. This is to avoid any minor timing variance introduced by the overhead of calling the loop function each time, which will only happen before the first of the two digitalWrite calls, thus producing a slightly less than square wave -- i.e. the signal will be low slightly longer for however long it takes to exit the loop function and re-enter it again. In practice this is probably only a few clock cycles, but it is still a real consideration, and over enough time will cumulatively cause a signal expected to be at 500Hz to eventually slip out of sync. Overall, it would be better to use a timer interrupt to generate the wave. These are HIGHLY accurate. I use them all the time for both audio and video sync with AVR chips. If you'd like a more thorough code example of how to do this I'd be happy to provide one. Example: volatile bool bState = true; const int iPinOut = 7; // arbitrary choice void InterruptHandler { digitalWrite(iPinOut, bState); bState = !bState; } Or something like that... (obviously I didn't provide the interrupt initialization.) Hopefully this makes what I am saying clearer.
thanks for that info!
Minor correction to my last comment. The wave is still square, as the voltage change is still (more or less) immediate. What's affected is the resultant frequency and duty cycle. Sorry for the misstatement.
I like this free oscilloscope tutorial. I bought one from www.ciebookstore.com but I like the digital coverage in this one! Thanks.
What about mentioning the easyest signal-source for testing? About every Scope offers a Test-Signal, in the Pictures you see it next to the USB port...
Another suggestion for those wanting an oscilloscope. Once you've read up on them via things like this instructable, you should haunt a few ham radio swapfests. They can be found under the &quot;Hamfest&quot; link on the ARRL web site. You can find scopes that are perfectly usable for under $50 (I bought one for $25 in August). While there you may also find a lot of discrete components, and other items that you can scavenge parts from.
I'm glad you've written an introduction to oscilloscopes, they have always been a mystery to me and your instructions are very clear! I can't wait to put your instructable into action! I have a question though, could you recommend an oscilloscope to buy which will do all the functions you describe and doesn't cost the earth?
I would go for the Rigol DS1052E if you want a good cheap scope, I got one a few months ago and so far its turned out to be an amazing scope for the price.
Excellent! Thank you!
I have a <a href="http://www.conrad.nl/ce/nl/product/122464/Jubileumaanbieding-VOLTCRAFT-DSO-3062C-2-kanaals-oscilloscoop-digitale-geheugenoscilloscoop-Bandbreedte-60-MHz-incl/SHOP_AREA_17625" rel="nofollow">Voltcraft DSO-3062C</a> and it works really good. It did cost 299euro which in not very cheap but very good value for money.
thanks for the comment! Unfortunately I'm not really that familiar with the oscilloscope market, but yes they tend to be pretty expensive. I imagine that you could find a used analog scope at a university/goodwill/freecycle since a lot of people are switching over to digital scopes. Definitely look for something with two channels (dual channel), other than that, everything I mentioned in this tutorial is pretty standard.
I also found this: <br> <br>https://www.instructables.com/id/DPScope-Build-Your-Own-USBPC-Based-Oscilloscope/
i got one .. assembly was very straight-forward .. <br />and it works fine .. <br /> <br />attaches to pc via USB .. it's software runs fine, too, on this XP Pro lappie ... I'd recommend it to anyone who can handle a small solderiron.. <br /> <br />
Try Jameco Electronics, they have a range of entry level to intermediate lavel scopes. There's a hend-held one on their home page right now for just $189 and they have USB ones too. You don't say what your needs are though? <br>These cheap ones are pretty limited in their frequency range.
Nice introduction to oscilloscopes. As for buying one, I wanted to add that probably the least expensive method would be to get a USB adapter that can help you get the oscilloscope display onto a PC. Something like this one: <br> <br>http://www.virtualvillage.com/pc-based-oscilloscope-2-channel-digital-storage-001482-009.html?utm_source=googlebase&amp;utm_medium=shcomp&amp;utm_campaign=google_shopping_feed <br> <br>I haven't used one myself yet but know of others who have used such a device for amateur projects.

About This Instructable




Bio: I'm a grad student at the Center for Bits and Atoms at MIT Media Lab. Before that I worked at Instructables, writing code for ... More »
More by amandaghassaei:OTCA Metapixel - Conway's Game of Life "9 Degrees of Freedom" IMU Twitter Controlled Pet Feeder 
Add instructable to: