All projects

Junior Design (ECE 342) · PCB & Mixed-Signal

Dual-Channel 34 MSa/s USB Oscilloscope

A USB-powered, two-channel oscilloscope built by a team of three. I led the schematic and the 4-layer PCB layout across both revisions and designed the microcontroller block. It samples at 34 MSa/s per channel, more than 11× the previous course record of 3 MSa/s.

per channel
34 MSa/s
previous course record (3 MSa/s)
11×
PCB, BGA microcontroller
4-layer
rev-1 to rev-2 re-spin
5 days

The problem

Build a portable oscilloscope as the ECE 342 junior design project. It had to capture two independent analog channels, digitize them and stream them to a laptop. The spec required at least 200 kSa/s per channel and under 100 ms response to user input.

My part

  • Schematic and layout. I designed the full schematic and the 4-layer KiCad layout around the BGA NXP LPC4370 (138 components). Parts came from LCSC and the board was fabricated at JLCPCB.
  • Analog front end (designed by Cooper Holm; I laid it out). Photo-relay AC/DC coupling and a multiplexer that selects one of four attenuation paths (0.256× to 10×). Op-amp buffer and level-shift stages scale ±10 V inputs into the ADC’s 100–900 mV window, with overvoltage clamping and a ~10 MHz anti-aliasing filter.
  • Bring-up. Rev 1 arrived with a mirrored 100-pin microcontroller footprint and the wrong LDO. We validated the power and analog blocks on their own, and I re-spun a smaller rev-2 board within 5 days. We hand-assembled it with a solder stencil.

The LPC4370 firmware (DMA capture and USB 2.0 streaming) and the PyQt5 host app were written by my teammates.

Result

The finished instrument samples at 34 MSa/s per channel, more than 11× the previous course record and over 150× the 200 kSa/s requirement. It streams to the laptop with sub-100 ms response to controls.

What I’d improve: bandwidth. In testing, displayed amplitude began to drift once the input went above about 1 MHz, well below the ~10 MHz anti-aliasing corner. Next step: sweep gain against frequency on each attenuation range to find which stage rolls off first.

Team: Cooper Holm, Luke Neilson, Griffin Ziemer. Project showcase