Skip to main content

A fast Arduino Oscilloscope

Project description

qoscope

Qoscope is a fork of Wicope rewritten for PySide 6.3 using QML. It's a oscilloscope app with GUI that uses Arduino for signal acquisition. The app was created purely for educational purposes and for electronic enthusiasts.

The communication is realized via AVR USART. The oscilloscope is capable of acquiring up to 100 kSamples/s. I currently have a double speed asynchronous mod (U2X) set up in the firmware for my own testing and purposes. So there is a smaller error at the expense of the number of samples. To turn it off, just delete the U2X setting line in the USART initialization and change 8UL to 16UL in the baud prescaler.

Requirements

qoscope requires Python >= 3.8, and PyQt6 or PySide6.

Installation

Install qoscope with pip

  pip install qoscope

or install the latest dev version with:

  pip install git+https://github.com/sokolmarek/qoscope@main

You also need to upload the included firmware to your Arduino board using the Arduino IDE (or other software). This is the following file firmware/firmware.ino.

Usage/Examples

After uploading the firmware to the Arduino, its pins are used as follows:

  • Analog Pin 0 (PC0): Input signal
  • Digital Pin 6 (PD6): Trigger signal
  • Digital Pin 7 (PD7): Analog trigger threshold level

When using the trigger function it is necessary to have the threshold set on digital pin 7 and the signal on digital pin 6 otherwise the arduino will be blocked until it receives the trigger. An example circuit with the threshold set to 3V3 might look like this:

Appendix

If anyone wonders about the equation I used for baud prescale (to avoid rounding error) or wants useful literature for AVR and USART, for example AVR articles are a pretty good source within a few topics.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qoscope-1.0.0.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qoscope-1.0.0-py3-none-any.whl (12.1 kB view details)

Uploaded Python 3

File details

Details for the file qoscope-1.0.0.tar.gz.

File metadata

  • Download URL: qoscope-1.0.0.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.4

File hashes

Hashes for qoscope-1.0.0.tar.gz
Algorithm Hash digest
SHA256 961e952441ece6873cde62a8aa4d0fa15f92d0c7dffac64de4ab46e71031fd3b
MD5 2b7ce55e29115132a40adbc8b7df22e7
BLAKE2b-256 8ab4a66f23c3b2feb2183b70a0f67186702c4a0a84d8d749c266271c210c1f64

See more details on using hashes here.

File details

Details for the file qoscope-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: qoscope-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 12.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.4

File hashes

Hashes for qoscope-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1589d17d49de2012dae289446cff91f9e6186d42f8f3ac35cc8fe4646af32064
MD5 c2207e09968d56c356188e1b282f332a
BLAKE2b-256 c551e2c45d641fe3fc5a209d235a2109f970d34dae8bdfd5212bfd94bc7fee89

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page