An oscilloscope plots voltage against time. A multimeter gives you one number, but a scope shows you the whole signal: the ripple on a power rail, the bounce on a button, the shape of an I2C transaction that refuses to work. For most embedded debugging, a 4-channel, 70 MHz scope in the $350–$450 range is enough. This guide covers what to buy, what the controls do, and how to take your first measurements safely.
Quick Takeaways
- Best first scope for most people: a 70 MHz, 4-channel, 12-bit bench scope such as the Rigol DHO804 or Siglent SDS804X HD (about $440 list).
- Tight budget: a handheld like the FNIRSI 2C23T (10 MHz, ~$60–$100) is enough for audio, PWM, and servo signals, but not for fast digital buses.
- Bandwidth rule: pick a scope with at least 5x the frequency of the fastest signal you will measure.
- Safety first: a scope’s ground clip is tied to earth ground. Never clip it to a mains-referenced node.
Oscilloscope Buying Comparison
| Model | Bandwidth | Channels | Resolution | Sample Rate | Approx. Price | Best For |
|---|---|---|---|---|---|---|
| FNIRSI DSO152 | 200 kHz | 1 | 8-bit | 2.5 MSa/s | ~$30–$70 | Audio, PWM sanity checks |
| FNIRSI 2C23T | 10 MHz | 2 | 8-bit | 50 MSa/s | ~$60–$100 | Repair, field work |
| Rigol DHO804 | 70 MHz | 4 | 12-bit | 1.25 GSa/s | $439 list | First “real” bench scope |
| Siglent SDS804X HD | 70 MHz | 4 | 12-bit | 2 GSa/s | ~$440–$460 | Max capture depth per dollar |
| Rigol DS1054Z | 50 MHz | 4 | 8-bit | 1 GSa/s | ~$349 | Classic with huge tutorial base |
Prices move often, and street prices differ from list prices. Check current listings before you buy.
What Specs Actually Matter
Scope datasheets are dense. Five numbers decide most of your experience.
Bandwidth
Bandwidth is the frequency where the displayed amplitude drops about 3 dB. It limits how sharp your edges look. A 16 MHz Arduino clock signal contains harmonics far above 16 MHz. A 20 MHz scope will show it as a rounded blob.
Use the 5x rule. For SPI at 10 MHz, you want about 50 MHz. For I2C at 400 kHz or UART at 115200 baud, even 20 MHz is plenty. That is why a 70 MHz scope covers nearly every hobby and prototype job.
Sample Rate
Sample rate is how often the ADC takes a reading, in samples per second (Sa/s). Aim for at least 4–5x your bandwidth. Many scopes share one ADC across channels. The DHO804 delivers 1.25 GSa/s on one channel but 312.5 MSa/s per channel with all four active. That is still more than enough at 70 MHz.
Vertical Resolution
An 8-bit ADC gives 256 levels. A 12-bit ADC gives 4,096, which is 16x finer. This matters when you measure small ripple on top of a large DC level, such as 10 mV of noise on a 3.3V rail. The 12-bit generation brought this to the entry price tier.
Memory Depth
Memory depth sets how long you can capture at a high sample rate. A scope with 25 Mpts at 100 MSa/s records 250 ms of detail. A shallow-memory scope drops its sample rate on long timebases, and short glitches vanish. The SDS804X HD offers 50 Mpts, while the DHO804 offers 25 Mpts.
Channels
Two channels cover most analog work. Four channels let you watch SCL, SDA, a chip-select line, and an interrupt at the same time. If you debug microcontrollers, buy four.
Which Scope Should You Buy?
Under $100: Handheld Scopes
The FNIRSI DSO152 is a pocket scope with 200 kHz bandwidth and 2.5 MSa/s sampling. It suits audio gear, servo signals, and low-frequency PWM. The 2C23T adds a second channel, 10 MHz bandwidth, 50 MSa/s, a 10,000-count multimeter, and a DDS signal generator.
These tools teach you what a scope does. They will not show you a clean SPI edge. Treat them as a stepping stone.
$350–$460: The Sweet Spot
The Rigol DHO804 has a 7-inch capacitive touchscreen, a silent fanless design, and 12-bit resolution. It decodes I2C, SPI, and UART out of the box. It also runs from USB-C power.
The Siglent SDS804X HD matches it at roughly the same price. It samples at 2 GSa/s with 50 Mpts, so it wins the spec sheet. It has a fan you can hear in a quiet room.
The Rigol DS1054Z is an older 8-bit design. It is still a safe pick with years of community tutorials behind it.
Pick the DHO804 if you want a silent, touch-first scope. Pick the SDS804X HD if you want maximum capture depth.
Probes: The Part Everyone Forgets
Most scopes ship with 10x passive probes. Learn the 1x/10x switch on the probe body. The 10x position attenuates the signal by 10, raises input impedance to 10 MΩ, and extends bandwidth. Use 10x for almost everything. Use 1x only for tiny signals at low frequency.
Anatomy of the Front Panel
Every scope has the same four control groups.
Vertical: Volts per Division
The vertical knob sets V/div. Each grid square is one division. At 1 V/div, a 3.3V signal fills about three squares. Set the scale so the signal fills most of the screen height. This uses more of the ADC range and gives better resolution.
Horizontal: Time per Division
The horizontal knob sets s/div. At 1 ms/div, a 1 kHz square wave shows one full cycle per 10 divisions. Pick a timebase that shows two to five cycles.
Trigger: The Control Beginners Get Wrong
The trigger tells the scope when to start drawing. Without it, the waveform scrolls and jitters. Set these four options:
- Source: the channel carrying your signal.
- Type: Edge is correct 90% of the time.
- Slope: rising or falling.
- Level: a voltage between the signal’s low and high values.
Set the trigger level to the middle of your signal. If the display freezes or never updates, the level sits outside the signal’s range.
Coupling
| Mode | What It Does | Use It For |
|---|---|---|
| DC | Passes the full signal | Logic levels, DC offsets |
| AC | Blocks DC, shows only variation | Ripple on a power rail |
| GND | Disconnects input, shows 0V | Setting the baseline |
First Measurement: The Probe Compensation Signal
Every scope has a 1 kHz square wave output near the front panel. This is the safest first test.
- Connect the probe to channel 1. Set the probe switch to 10x.
- Set the channel’s probe attenuation to 10x in the menu. A mismatch gives readings that are off by a factor of 10.
- Clip the probe tip to the compensation terminal. Clip the ground lead to the adjacent ground terminal.
- Press Auto or Autoset.
- Adjust the probe’s small trimmer screw until the square wave has flat tops.
Rounded corners mean under-compensation. A spike at the leading edge means over-compensation. Do this for every probe on every channel. Redo it when you move a probe to a different channel.
Capturing a Real Signal: Arduino PWM
Use this sketch to generate a known signal you can measure.
// PWM test signal for oscilloscope practice
// Arduino Uno: pin 9 uses Timer1, default PWM ~490 Hz
const int PWM_PIN = 9; // OC1A output pin
void setup() {
pinMode(PWM_PIN, OUTPUT);
}
void loop() {
analogWrite(PWM_PIN, 64); // 64/255 = ~25% duty cycle
delay(3000);
analogWrite(PWM_PIN, 128); // ~50% duty cycle
delay(3000);
analogWrite(PWM_PIN, 192); // ~75% duty cycle
delay(3000);
}
Wiring:
- Probe tip to D9.
- Probe ground clip to GND on the Arduino header.
- Set the scope to DC coupling, 1 V/div, 500 µs/div, edge trigger, rising slope, level at 2.5V.
You should see a 5V square wave at roughly 490 Hz. Use the scope’s cursors or automatic measurements to read frequency, duty cycle, and Vpp. The duty cycle should step through 25%, 50%, and 75% every three seconds.
Real-World Workflow: Debugging an I2C Sensor
A common beginner problem is an I2C sensor that returns nothing. A scope tells you why in under a minute.
Setup:
- Channel 1 on SCL, channel 2 on SDA.
- 3.3V logic: set both channels to 1 V/div, DC coupling.
- Timebase 20 µs/div for a 100 kHz bus.
- Trigger on channel 2 (SDA), falling edge, level at 1.65V. A start condition is SDA falling while SCL is high.
What to check:
| Symptom on Screen | Likely Cause | Fix |
|---|---|---|
| Flat line at 0V | Line shorted or no pull-up | Check wiring; add 4.7 kΩ pull-ups to VCC |
| Slow, rounded rising edges | Pull-ups too weak or too much bus capacitance | Lower pull-up to 2.2 kΩ or shorten wires |
| Bus idles at 0V | Device holding the line low | Power-cycle the sensor; check for a stuck slave |
| No ACK bit after address | Wrong device address | Run an I2C scanner; check the 7-bit address |
| Clean traffic but no data | Firmware bug | Turn on the scope’s protocol decoder |
Turn on the I2C decoder in the scope’s menu. It overlays hex bytes on the waveform, so you can compare the address your code sends to the datasheet.
Common Beginner Mistakes
Floating ground clip. The ground clip must touch a real ground node. A missing or loose clip gives noisy, meaningless traces.
Wrong probe setting. If the probe is on 10x and the scope on 1x, your 5V signal reads 0.5V. Always confirm both.
Using a long ground lead at high speed. The ground lead forms an inductor. For fast edges, use the short ground spring that ships with most probes.
Measuring mains-referenced circuits. Bench scopes tie the probe ground to earth through the power cord. Clipping it to a live node creates a short through the scope. Never probe mains directly. Use an isolation transformer or a differential probe.
Ignoring aliasing. If the sample rate is too low for the timebase, the display shows a false, slower waveform. Increase the sample rate or shorten the timebase.
Safety Basics
- Keep probe ground clips off anything above a few volts relative to earth unless the circuit is isolated.
- Check your probe’s voltage rating. Most 10x passive probes are rated for 300V CAT II at the tip.
- Never defeat the third-prong ground on a bench scope.
- Power down the circuit before you move the ground clip.
FAQ
What bandwidth oscilloscope do I need for Arduino and ESP32 projects?
50–70 MHz covers almost all hobby work. I2C, UART, and PWM run far below that. SPI at 10–20 MHz needs about 70–100 MHz for clean edges.
Is a USB oscilloscope good enough for a beginner?
Yes, for audio and low-speed signals. Entry USB scopes at around 20 MHz and 1 Mpts of memory limit you on fast buses. They also need a laptop nearby. A standalone bench scope is faster to use.
What is the difference between an oscilloscope and a multimeter?
A multimeter reports an averaged value, such as a DC voltage. An oscilloscope shows how voltage changes over time. Use a multimeter to check a supply is 5V. Use a scope to see whether that 5V has ripple, spikes, or noise.
Do I need a 4-channel oscilloscope?
Not for analog work. For microcontroller debugging, four channels let you view a clock, data line, chip select, and interrupt together. If you can afford it, buy four.



