Giter Club home page Giter Club logo

scopy's Introduction

Mingw build Flatpak build MacOs status Android build Ubuntu build

Scopy GitHub Release GPLv3 License

Scopy is a software oscilloscope and signal analysis toolset.

Builds

Nightly builds are available under the Continuous build tag.

Supported platforms

  • Windows (x86-64)
  • Linux flatpak (x86-64, arm32)
  • MacOs (x86-64)
  • Android (aarch64)

Complete instalation and usage instructions can be found on our Wiki page.

scopy's People

Contributors

adisuciu avatar adrian-stanea avatar alexandratrifan avatar amiclaus avatar andrei-fabian-pop avatar andrei47w avatar bindea-cristian avatar btogorean avatar claudiupop avatar commodo avatar cristi-iacob avatar cristina-suteu avatar danielguramulta avatar dnechita avatar electronpilot avatar frmdstryr avatar gotchafr avatar grigorovici-andreea avatar hansen0314 avatar ionutmuthi avatar larsclausen avatar mhennerich avatar nanoant avatar nunojsa avatar pcercuei avatar septimiusarca avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

scopy's Issues

Function Generator Initial Waveforms

The "Sine" waveform initializes as swinging between +5 V and -5 V, while the others swing between 0 V and +5 V. It would be good if all initial waveforms were the same -- swinging between +2 V and -2 V?

Default Trigger Settings

As it now stands the initial Trigger state does not produce stable triggering. Adding about 100 mV of hysteresis produces stable triggering. The initial Trigger state should produce stable triggering for the majority of input signals so the user does not have to access the advanced triggering functions when first setting up the scope for basic operation.

Volt Meter comments:

Here are a few observations on the Volt Meter tool.

  1. Not sure what "Alternative" current is. Should it say "Alternating" current?
  2. The history plot ( voltage over time ) is not a histogram. A histogram does not involve a time axis it is a probability density plot. Change histogram to history.
  3. This is a recurring issue across all tools. Screen resizing is messed up. In this tool turning on and off the history plot causes the screen to go off the right side of the screen. Can't manually resize window to get it back. Left-Right resize does not work but up-down resize does?
  4. The AC voltage does not seem to be True RMS as it does not include the DC component. You should consider adding True RMS readings.
  5. Many DMMs have a peak hold feature. You might want to consider adding this feature for both a max ( positive ) peak hold and min ( negative ) peak hold. With a button to reset the held values of course.

Oscilloscope: User selectable waveform and background colors

Moving this from a list of issues at #9 into its own issue.

Initial issue:
"Are there plans to have the waveform color changeable by the user? Also have the background be able to be black or white? I like the black background personally but for screen shots that you might want to include in a report document ( that gets printed on paper ) you might want a white background."

Item 9 From Issue #4: Tri-Wave Symmetry Adjustment

Item 9 from Issue #4

"For the Tri-wave shape, where is the symmetry adjustment? You don’t need the sawtooth wave shape if you implement symmetry for the tri-wave. 0% would be a sawtooth one way ( up? ) and 100% would be a sawtooth the other ( down? )."

Signal Generator Issues

This is a rather long list of items and they are all included here as a time savings for me. Someone may wish to separate some of them into individual issues. There may well be more coming but this is what I've uncovered so far.

In no particular order these fall into three general categories. First implemented things that don't work properly, second changes or enhancement to already implemented things, and third things that are not yet implemented that are need ( if they are not on the "to-do list").

Signal Generator:

  1. When you open the signal generator controls, the screen re-sizes and the bottom where you select channel 1 or 2 goes below the Task Bar and the icons can’t be seen or easily clicked on.
  2. The horizontal grid scale should automatically adjust as the frequency is changed so as to show one ( or maybe two ) cycles of the waveform.
  3. The vertical grid scale should automatically adjust as the amplitude and offset is changed so as to fit the waveform.
  4. For the sine wave shape the amplitude setting adjusts both + and – peak values however, for all the rest of the wave shapes the amplitude setting adjusts only the + peak value. All wave shapes should work the same.
  5. Scrolling the mouse wheel while hovering over the horizontal scale does something weird. Hope this is not intentional. Not sure why you need this anyway. Proper operation would be to have time “zero” always be the left edge of the grid as the scale is changed. ( or optionally have time “zero” be the center.)
  6. Under Frequency you can choose mHz ( mili-Hertz? ), Hz and KHz. Where’s the MHz ( Mega-Hertz )? Not sure you need mili-Hz but you definitely need Mega-Hz.
  7. Phase ( Delay ) should be selectable in either degrees ( phase ) or time in uS / mS ( delay ).
  8. For the Square wave shape where’s the duty-cycle ( symmetry ) adjuatment?
  9. For the Tri-wave shape, where is the symmetry adjustment? You don’t need the sawtooth wave shape if you implement symmetry for the tri-wave. 0% would be a sawtooth one way ( up? ) and 100% would be a sawtooth the other ( down? ).
  10. Sawtooth wave shape is only rising ramp? Where’s the falling ramp ( see note #9 )?
  11. Should there be a built-in stair-step function? With the number of steps adjustable?
  12. How do I set the rise / fall time of the square wave ( trapezoidal wave shape)?
  13. Should there be a built-in noise wave shape? If so what noise distribution, uniform, Gaussian, etc?
  14. There seems to be enough blank space in the configuration section ( for all but Math ) to have controls for both channels up at the same time? Saves the time clicking to switching between the two sets of controls.
  15. Need to add instructions on how to use the Math controls to the Scopy Wiki page. With examples!
  16. Need a few more math functions like random, sinc ( sin(x)/x ) ….
  17. What file formats are supported for importing waveforms? .txt, .csv, .wav etc. Also there should be a way to save a waveform calculated with the math controls to a file.
  18. Changing the controls when outputs are enabled only effect the output if you disable and then re-enable output. You can’t adjust the values on the fly?
  19. Under the constant controls, the actual output voltage is reversed, inverted. Setting to +5V outputs -5V, setting to -5V outputs +5 V and same for all the settings in between.
  20. Under the waveform controls for the square wave most amplitude / offsetting work as they should but when Amp = +5 and offset = 0 the output actually swings from 0 to -5V. Same inversion happens when Amp = +5 and offset = -5 the output actually swings form 0 to + 5V.
  21. Under the waveform controls for the sine wave you can set Amp = +5 and offset = -5 and the displayed wave goes from 0 to -10 which is not a valid range for the actual output. Same for a + offset.

Oscilloscope: Values tracking the cursor are clipped off

Moving this from a list of issues at #9 into its own issue.

Initial issue:
"The little red numbers that track the cursor are clipped off on the right side so that the vertical value has no units. Can't tell, 80 mV is displayed as 80."

General Issues

Here are a few top-line issues I have with Scopy:

  1. Need to remember / restore previous window settings, size, placement, location.
  2. Need to save and restore previous session settings on startup. This should be a high priority to implement because it is a huge time savings for both the developers and those debugging the software. This is extended to saving a given configuration to be reloaded at a future point. This is importing for testing the software quickly.
  3. Need to add an “About” page listing software rev level, firmware, hardware rev if applicable along with any other miscellaneous information. Again this should be a #1 priority to be implemented so the user can easily determine what software is running.
  4. Home page displays ADI Wiki home page. It should display the Scopy Wiki User’s Guide page. ( when it is opened to the public, hint, hint ). Also the font size is too small to read. Font size should scale when window is stretched such that Wiki text fills the page ( horizontally ).
  5. If only one board is found program should automatically connect to that one board. The software does not seem to always find the board when started. Can take many tries to get the board to appear.
  6. Is the X vs Y plotting going to be part of the O-scope or a separate instrument?

Hardware support for delayed aquisitions is needed

About:
One of many oscilloscope features is to provide the option to set the trigger position (in time). The position can be negative or positive as the starting point (position 0s) is at the middle of the screen.

Request:
Hardware support for delaying an acquisition that would otherwise start immediately, once a trigger condition has been met, with a given amount of time.

Request reason:
With the current hardware capabilities, setting a positive trigger position means to capture extra samples that are placed between the sample that meets the trigger condition and the samples that we are interested in. Simply put, if we set the trigger position to 100ms we are actually expecting a buffer of data that happened 100ms after the trigger condition has been met. The extra samples mentioned earlier correspond to the delay we want (100ms for example).
The problem is that delays can be very large (e.g. capturing at 100MSPS, time base = 1 microsecond/div and trigger position = 2s will require a buffer size around 2* 10^8 samples). Both libiio and GNURadio limit the size of buffers that Scopy can request. Additionally why transfer a huge amount of samples just to drop them afterwards since their only use was as a delay.
Currently we limit, in software, the number of extra samples to 500000 samples which limits the positive position that can be set for the trigger.

Oscilloscope Input Coupling

It would be good to have an option to have each channel of the scope and possibly the external triggers AC- or DC-coupled. This can be viewed as an enhancement.

Function Generator Output Overload, Oscilloscope Amplitude Accuracy and Offset

When the function generator output is set to 5 Vpeak (initial condition), the output exhibits phase reversal distortion -- may be related to issue #40. For function generator amplitude settings of 4.66 Vpeak, the waveform shapes observed on the Scopy oscilloscope and a lab oscilloscope look okay. The amplitude of the waveform on the Scopy oscilloscope is too large, however, and is clipped on the display. The function generator output overload condition begins to manifest itself for amplitudes greater than or equal to 4.67 Vpeak. There is also an offset that appears to be in the Scopy oscilloscope.

Color underlines

I have an observation about the orange underlines that are used in various places like indicating which channel the controls are operating on. The use of the same color, orange, as the waveform color for CH1, is confusing under the channel 2 heading label. Use the CH2 color under channel 2 heading or always use some other color not related to the channels.

Scopy Windows Installer

The Windows installer for Scopy forces a shutdown / restart without warning the user that it is about to happen. This is bad form. You need to clearly state that a re-start is needed before Scopy can be run but ask the user if it is OK to do it now or wait for them to save / close any apps that might be running first.

Power Supply Issues

Here a few issues I've come across using the Power supply controls. There may be more coming as I use the software.

Power supply:

  1. When hovering over the entry widget the mouse wheel should increment / decrement based on the position of the cursor in the entry field. I.E. if the cursor is next to the 1’s digit step by 1, if next to the 0.1’s digit step by 100mV, if next to the 0.01’s digit step by 10mV.
  2. The word in the “enable” button should change to “disable” when the supply is on as well as change color, because the function of the button has changed.

Oscilloscope: A graticule is required

Moving this from a list of issues at #9 into its own issue.

Initial issue:
"The minor tick marks are along the top, bottom, left and right sides of the grid. Since the waveform seldom if ever crosses the top or bottom edges the minor ticks should be along the center horizontal grid line where the wave will cross. For symmetry there should then also be minor ticks along the vertical center grid line. Placing ticks here makes it easier to use them to judge the waveform values ( based off the grid marks)."

Oscilloscope: Handling two sets of independent trigger controls

Moving this from a list of issues at #9 into its own issue.

Initial issue:
"Having two set of independent trigger controls for channel 1 and channel 2 is confusing. Most scopes have one set of controls and they apply to whichever channel is selected as the source."

Item 5 From Issue #4: Behavior When Mouse Wheel Scrolled Over Horizontal Scale

Item 5 from Issue #4

"Scrolling the mouse wheel while hovering over the horizontal scale does something weird. Hope this is not intentional. Not sure why you need this anyway. Proper operation would be to have time “zero” always be the left edge of the grid as the scale is changed. ( or optionally have time “zero” be the center.)"

Oscilloscope: Horizontal position controls are confusing

Moving this from a list of issues at #9 into its own issue.

Initial issue:
"The horizontal position controls are confusing. The time "zero" grid line ( not labeled, see number 1 above ) should be able to be set to any position along the grid and the trigger point is always at time "zero". Now it seems that the trigger position is always the center grid. Sliding the horizontal position indicator ( light blue line ?) will also slide the trigger point on the grid to match ( Time = "zero" )"

Data Export

Capability to export data should be added if not currently available.

Add HDL generated pattern for the Pattern Generator

In case we are streaming from the buffer a waveform with a relatively small number of samples (high frequency) and on another channel we want to have a periodic PWM-like signal at a low frequency (which would require a large number of samples), we could generate the low frequency waveform in HDL.

Resize issues

Moving this from a list of issues at #9 into its own issue.

Initial issue:
"Again this tool suffers from the same resizing issue. The widow often goes off the edge of the screen ( bottom and, or right ) and you can't get it back."

Function Generator Output Frequency Accuracy

Ken Connor noted that when he set up the function generator to generate a 1 KHz sine wave, he measured 750 Hz on the Scopy oscilloscope. I was able to duplicate this and verified that the error is in the function generator, not the oscilloscope.

Scopy Using FIR filters in AD9963

The AD9963 has built in FIR filters in the Tx path. It looks like these are being used i.e. not being by-passed in present Scopy configuration. This leads to the funny shape of a square wave as seen here:
scopy-square-wave-1

The pre-shoot before the edges comes from the impulse response of the filter.

Also I'm not entirely sure of this theory but having the filter(s) in the signal path might be the cause of the apparent phase reversal at the top and bottom of the signal range. Here is a scope shot of the same square wave at a slightly higher amplitude where the tips if the pre shoot goes over the magic amplitude value and reverses wraps around:
scopy-square-wave-2

In either case the internal filters of the AD9963 signal paths should be by-passed by default. Optionally allowing the user to use the filters could be useful but only for sinusoidal signals if you are looking at them in the time domain.

Doug

Oscilloscope: The grids don't have labels

Moving this from a list of issues at #9 into its own issue.

Initial issue:
"The grid has no labels. The horizontal axis needs time labels and the vertical axis should have color coded labels for each channel ( because position and scale might be different )."

Oscilloscope Comments:

Here are a few initial comments on the Oscilloscope tool.

  1. The grid has no labels. The horizontal axis needs time labels and the vertical axis should have color coded labels for each channel ( because position and scale might be different ).
  2. The minor tick marks are along the top, bottom, left and right sides of the grid. Since the waveform seldom if ever crosses the top or bottom edges the minor ticks should be along the center horizontal grid line where the wave will cross. For symmetry there should then also be minor ticks along the vertical center grid line. Placing ticks here makes it easier to use them to judge the waveform values ( based off the grid marks).
  3. The little red numbers that track the cursor are clipped off on the right side so that the vertical value has no units. Can't tell, 80 mV is displayed as 80.
  4. Having two set of independent trigger controls for channel 1 and channel 2 is confusing. Most scopes have one set of controls and they apply to whichever channel is selected as the source.
  5. The horizontal position controls are confusing. The time "zero" grid line ( not labeled, see number 1 above ) should be able to be set to any position along the grid and the trigger point is always at time "zero". Now it seems that the trigger position is always the center grid. Sliding the horizontal position indicator ( light blue line ?) will also slide the trigger point on the grid to match ( Time = "zero" )
  6. You might consider adding a "set trigger level to 50%" button where the trigger level for the currently selected trigger source is set to mid way between the min and max values of that waveform.
  7. Again this tool suffers from the same resizing issue. The widow often goes off the edge of the screen ( bottom and, or right ) and you can't get it back.
  8. Are there plans to have the waveform color changeable by the user? Also have the background be able to be black or white? I like the black background personally but for screen shots that you might want to include in a report document ( that gets printed on paper ) you might want a white background.

Oscilloscope: A set-trigger-level-to-50% button would be helpful

Moving this from a list of issues at #9 into its own issue.

Initial issue:
"You might consider adding a "set trigger level to 50%" button where the trigger level for the currently selected trigger source is set to mid way between the min and max values of that waveform."

Status or control buttons

Was part of #6

The word in the “enable” button should change to “disable” when the supply is on as well as change color, because the function of the button has changed.

M2K Autoset Feature

An Autoset feature, similar to what is available on benchtop scopes that automatically adjusts the settings based on the input signal, would be a good enhancement for Scopy.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.