The following excerpt of the research results shows a selection of devices that are micro-controller based and provide at least the firmware, or the hardware, as open-source. A summary of the specifications of the most interesting solutions are shown in table 1.
The exemplary devices vary widely regarding the offered performance, number of channels and additional features not specifically listed in the table like for example digital inputs or analog output signals.
The "XMEGA Xminilab" shown in figure 1 offers reasonable performance in terms of resolution and sampling rate. It also provides two input channels combined with additional digital input and it has an integrated display.
The downsides of this board are that its specification states just 200kHz of analog input bandwidth, a rather small sample buffer of 256 samples per channel and a maximum sampling rate of 2MS/s. These specs are well below the anticipated performance.
The DPScope II features two input channels with selectable AC or DC coupling. It outputs the measured signal through an USB connection to the PC.
This device also provides a two channel signal generator using the same connectors as the scope.
The following picture, seen in Figure 2, shows the product in its casing.
Schematics can be downloaded from the project website, the software however is closed source. The DPScope II is available for purchase for 69€.
The DPScope II is powered by a dsPIC micro-controller sampling the input signal with its internal ADC. For generating signals, this device uses an external MCP4822 DAC connected via the Serial Peripheral Interface (SPI) interface. Data transmission is done by a virtual serial connection provided by a FTDI chip, transmitting data at 1 Mbaud.
The PC application of the DPScope II features a simple to use user interface, categorized in a waveform display on the left side and some controls on the right side of the window. Figure 3 shows the graphical user interface of the product displaying a demo signal.
Due to the fact that the DPScope PC software is only available for the Windows operating system, this device does not comply with the cross platform goals of the OpenLab project.
The DPScope II features a input bandwidth of about 2.5 MHz and a resolution of 8 bits. The integrated ADC is sampling at 2MSa/s in single shot and 50MSa/s in repetitive mode. The input voltage can range from -20V up to +20V. This can be 10 times higher using a 1:10 probe. The signal generator is able to output waves at 3Vpp max with a bandwidth of 300Hz to 3MHz.
The NXP Labtool uses a high performance micro-controller that integrates a triple core consisting of ARM Cortex-M (8) processors which are one Cortex-M4 and two Cortex-M0 processors capable of running at up to 204MHz. Additionally it integrates multiple internal ADCs of which the fastest provides up to 80MS/s. The device itself is shown in figure 4.
To complete the overall package an internal DMA unit has been integrated as well, that could be used to transfer the sample results to the internal memory without intervention of any of the processors. But these features come at a price. The "NXP Labtool" costs around 99€ which is at the anticipated price boundary. The hardware-design files of the NXP Labtool (schematics, layout, gerber files,…) are not open-source. Only the source code of the PC application as well as the firmware of the micro-controller are publicly accessible.
Using a standard LC-display, this micro-controller based oscilloscope can be used as a stand-alone solution. Designed by a hobbyist, this device just gives an idea of how basic signal acquisition can be done. Figure 5 shows the AVR oscilloscope measuring a 1kHz sine-wave.
A total of 5 push buttons are used to interact with the graphical user interface for changing the x and y scaling.
The AVR oscilloscope is powered by a ATMEGA32 micro-controller which handles data acquisition and communicates with a KS0108 controller based graphical LCD. A simple analog circuit is used to measure signals outside of the ADC input range. The operating voltage of the circuit is 12V DC, which is provided by a standard power supply. Additional supply voltages are generated by using Z-diodes and voltage regulators. Figure 6 shows an image of the schematics.
According to the developer of this device, the AVR oscilloscope is capable of measuring sinusoidal signals up to a maximum frequency of about 1kHz. For square signals the AVR oscilloscope is able to display waveforms with a maximum frequency of 7.7kHz. The reason for this limitations might be the lack of a hardware-based trigger. The whole trigger logic of this device is done in software. In terms of voltage it can handle -25V to +25V signals using a 1:10 probe.
This project is considered as a proof-of-concept and should act as a simple example for analog data logging using a Raspberry Pi in combination with a XMOS startKIT.
This kit is a educational development platform which is priced at £12 (~ 14,10€). The XMOS startKIT connects via SPI to the Raspberry Pi and is responsible for the data acquisition.
The whole setup is shown in figure 7.
Marked by two circles are the connections for the analog signal (on the very left side) and the SPI interface in the middle of the image.
The data acquisition is done by a 4-channel ADC which is built-in into the XMOS core of the development platform. It features a maximum sample rate of 1MSp/s and a resolution of 12 bit. Due to the lack of proper analog circuitry on the development platform the maximum voltage range is limited to the max specifications of the ADC.
The software running on the XMOS-cores is divided in three major parts. The first one called "spi_process" is used to handle data flow between the development board and a Raspberry Pi. The second software part "app" is responsible for changing oscilloscope relevant parameters like the trigger level and slope. The last one called "adc_task" configures and reads data from the built-in ADC.
A Raspberry Pi on the other side processes the sample data and provides the information for the client by hosting a web server. A client is able to connect via a standard web browser in order to display the waveform.
This configuration is illustrated in figure 8.
In this example the XMOS measures a triangle waveform and triggers on rising-edge. The GUI is kept very simple and supports only basic settings.
This chapter is primarily based on the master thesis "Development of a low-cost micro-controller based oscilloscope including equivalent time sampling" by Ing. Harald Schloffer, MSc, November 2016
Schloffer Harald: Development of a low-cost micro-controller based oscilloscope including equivalent time sampling, University of Applied Sciences FH Technikum Wien, 2016
Gabotronics: XMEGA Xminilab [Online] xminilab product page
Maichen Wolfgang : DPScope II webpage [Online] DPScope II product page
Microchip: dsPIC33FJ16GS502-50I - product page [Online] dsPIC33FJ16GS502-50I - product page.
Microchip: MCP4822 - product page [Online] MCP4822 - product page.
Future Technology Devices International: FTDI - main webpage [Online] FTDI - main webpage.
Maichen Wolfgang: Graphical User Interface - DPscope II [Online] DPScope II product page
ARM: Cortex-M Series Family [Online] Cortex-M Series Family - product page
Embedded Artists: Labtool - product page [Online] Labtool - product page
Vassilis Serasidis: Low Speed AVR oscilloscope [Online] Low Speed AVR oscilloscope project page
element14 community: XMOS and Raspberry Pi Oscilloscope XAE 1000 [Online] XMOS and Raspberry Pi Oscilloscope XAE 1000 - project page