A digital oscilloscope from scratch

In the second major team project I did in my fourth year of engineering I was in a team tasked with building an oscilloscope for 110 USD. The scope had to have dual channels, a function generator, and the option for 8/12 bit resolution at up to 1 MSamples/Second on both channels simultaneously.

A PC was used to display the waveforms, and an LCD screen was used to control the oscilloscope. The entire project was powered over an Ethernet cable (similar to  power-over-Ethernet (P.O.E.), except we had a 24V DC power supply).

We used a Tiva TM4C1294NCPDT to interface to the hardware, control the LCD and connect to the PC.

I was responsible for writing the driver for the LCD, designing the power supply, and for the function generator (which had to produce sine, square, triangle, ramp and random noise waveforms at up to 25kHz with a voltage offset of +/-2.5V and a max peak to peak voltage of 2V).

Our project was a great success!

Here are some photos of one of our initial PCBs and the final project all assembled:

One of our prototype PCBs. We had a few issues with this board including inrush current and high frequency noise from the high gain op amps.
One of our prototype PCBs. We had a few issues with this board including inrush current and high frequency noise from the high gain op amps.
Our final PCB showing the power supply (left), function generator BNC (top), analog front end with two channels (bottom). The DIP headers used to mount the PCB on the Tiva are shown.
Our final PCB showing the power supply (left), function generator BNC (top), analog front end with two channels (bottom). The DIP headers used to mount the PCB on the Tiva are shown.
Our final product all assembled! You can see the stack includes the LCD on top, then the PCB, then the TIva and finally an acrylic panel to insulate the product.
Our final product all assembled! You can see the stack includes the LCD on top, then the PCB, then the TIva and finally an acrylic panel to insulate the product.
Another view of the product.
Another view of the product.
A side view
A side view
The LCD display (looks like something out of Art Attack). No third party libraries were used when making the LCD.
The LCD display (looks like something out of Art Attack). No third party libraries were used when making the LCD.
A screenshot of the PC Software (not written by me!), just to show that the full system works. This shows the signal read in on Channel A (green), and on Channel B (yellow) and the math channel (blue).