Electronics -- USB Live Oscilloscope
A little 10MS/s USB-2.0 ("high speed") oscilloscope with two 8 bit sampling inputs. Each of these can be used either as analog input with an 8 bit AD converter (oscilloscope mode) or as 8 distinct digital inputs (logic state analyzer).
The design goal was to build a fairly simple device which allows
to digitize signals with frequencies ranging from
DC to around 1MHz with very long sampling buffer (i.e. millions
This image shows the USB Live Oscilloscope: The bottom-most layer is the USB-FX2 board, on top there are two 8bit input boards next to each other (left: digital, right: analog) and in between, there's the "glue board" which does little more than connecting the parts. The clock generator is sticked on the bottom to the glue board and cannot be seen on this image.
The USB Live Oscilloscope consists of the following parts:
Writing software which sends and receives data over the USB is not really hard these days but writing something which is capable of receiving data at a constant rate of 20MByte/s is not so easy since you have to use asynchronous IO and a dedicated data transfer thread.
The complete source code of my software including the firmware for the USB-FX2 board (and the clock generator) is available on the software page.