It is a simple digital oscilloscope.
Demo video: https://www.youtube.com/watch?v=dBCC96FcziM
- 100Hz sampling rate.
- 0 ~ +5V (According to power supply) ADC input voltage.
- 1 ~ 6/8 ADC channels which is defined in Makefile.
- 6-channel 10-bit ADC in ATMega328P PDIP Package.
- 8-channel 10-bit ADC in ATMega328P TQFP and QFN/MLF package.
- ATMega328P datasheet.
You can have it from the GitHub: https://github.com/starnight/Simple-Oscilloscope
Or, clone the project from GitHub.
git clone https://github.com/starnight/Simple-Oscilloscope.git
- firmware: The firmware of Simple Oscilloscope.
- console: The program draws the signals' wave on the computer screen.
- circuit: Ones can build the circuit according to the schematic.
- git
- avr-gcc
- avrdude
- python3
- pyserial (python library)
- crcmod (python library)
- matplotlib (python library)
- Have the project by downloading from web site or git cloning.
- Build the circuit according to the schematic in the circuit directory.
- Buid the firmware and flash it into MCU ATMega328.
- Make sure there are avr-gcc and avrdude in the build environment.
- Change to the firmware directory.
- Ones must edit the Makefile according to the development environment. For example, set AVRDUDE_PROGRAMMER in Makefile according to the ISP tool.
- Have the dependent library by
make dep
. - Compile the firmware by
make
. - Connect the programmer and program the MCU by
make program
. - Disconnect the programmer.
- Connect the MCU and computer with the serial port and then power on.
- Excute the main.py with paython3 in console directory.
- Make sure the serial port is connected between MCU and computer.
- Check the serial port device name / path list in the system.
- Change to the console directory.
- Edit the serial port parameter going to be opened in main.py.
- Excute
python3 main.py
or./main.py
.
Simple Oscilloscope's code and circuit uses the BSD license, see our 'LICENSE.md' file.