Simple DSO software based on standard Arduino boards, a HC-05 and the BlueDisplay library.
GPL-3.0 License
This DSO needs only a standard Arduino-Uno or Arduino-Nano, a HC-05 Bluetooth module or a micro USB OTG cable / adapter, a few resistors and capacitators and this software.
Simple DSO with no attenuator on breadboard | DSO Chart screen |
---|---|
The application is also available as an example of the Arduino BlueDisplay library - use File -> Examples -> Examples from Custom Libraries. You can load the library with Tools -> Manage Libraries... or Ctrl+Shift+I. Use "BlueDisplay" as filter string.
150 kSamples per second with good quality.
300 kSamples per second with acceptable quality because of internal ADC limitations.
Full touch screen control of all parameters.
AC Measurement supported by using (passive) external attenuator circuit (see below).
Automatic trigger level, range and offset selection.
Manual trigger level and range select.
Trigger delay.
External trigger.
1120 byte data buffer - 3.5 times display size.
Display of min, max, average and peak to peak values.
Display of period and frequency.
3 different types of external attenuator, detected by software.
Using 1.1 volt internal reference. 5 V (VCC) is also selectable and is useful if no attenuator is attached.
Integrated frequency generator using 16 bit Timer1. Frequency from 119 mHz (8.388 second) to 8 MHz
Integrated PWM Waveform generator for sinus, triangle and sawtooth using 16 bit Timer1. Frequency from 1.9 mHz to 7.8 kHz
Optional for Bluetooth connection 6. HC-05 Bluetooth module 7. Schottky diode e.g. BAT42
The DSO software has 4 pages.
DSO Chart analyze screen | DSO Chart analyze screen with long info |
---|---|
Here you see the current data. This page has two modes, the acquisition (measurement running) and the analyze (data stored) mode. The horizontal violet line is the trigger level line and the two light green lines in analyze mode are the maximum and minimum level lines. On this page you can:
First line
Second line
DSO settings menu | DSO frequency / waveform generator menu |
---|---|
On this page you have all buttons to modify the DSO acquisition mode, to select the different ADC channels and for page navigation above the last button row the minimum stack size, the supply voltage and the internal chip temperature is shown. The stack size is required for testing different buffer size values during development and the temperature may be quite inaccurate.
History -> red history off, green history on, i.e. old chart data is not deleted, it stays as a light green trace. This button is also available (invisible) at the chart page.
Slope - Slope A -> trigger on ascending slope, Slope D -> trigger on descending slope.
Back -> Back to chart page.
Trigger delay -> Trigger delay can be numerical specified from 4 µs to 64.000.000 µs (64 seconds, if you really want). Microseconds resolution is used for values below 64.000.
Trigger - the trigger value can be set on the chart page by touching the light violet vertical bar in the 4. left grid.
Input selector
Frequency Generator -> go to frequency generator page.
Range - There a 3 ranges, 0-2.5 , 0-5 and 0-10 volt
Offset
DC / AC
Reference voltage
Short touch switches info output, long touch shows active GUI elements.
Maximum values | Minimum values |
---|---|
SINE: clip to minimum 8 samples per period => 128 µs / 7812.5 Hz | 7,421 mHz |
SAWTOOTH: clip to minimum 16 samples per period => 256 µs / 3906.25 Hz | 3.725 mHz |
TRIANGLE: clip to minimum 32 samples per period => 512 µs / 1953.125 Hz | 1.866 mHz |
Do not run DSO acquisition and non square wave waveform generation at the same time. Because of the interrupts at 62 kHz rate, DSO is almost not usable during non square wave waveform generation and waveform frequency is not stable and decreased, since not all TIMER1 OVERFLOW interrupts are handled.
DSO start screen | DSO at work |
---|---|
DSO chart screen | DSO chart screen with long info |
The captured signal was generated with a STM32F303 DAC and the DSO input range was chosen to see the LSB of the 10 bit ADC conversion.
All ranges including the 1 ms range (up to 30 kSamples per second / 26 µs conversion time) have almost perfect linearity. | In the 50 µs to 10 µs ranges with 300 kSamples per second (3 µs conversion time) the linearity is only acceptable. |
---|---|
First small linearity issues can be seen in the 496 µs range with 60 kSamples per second (13 µs conversion time). | And in the 101 µs range with 150 kSamples per second (6.5 µs conversion time). |
SIMPLE 1 RANGE VERSION | 3 RANGE VERSION |
---|---|