analogdevicesinc / scopy Goto Github PK
View Code? Open in Web Editor NEWA software oscilloscope and signal analysis toolset
Home Page: http://wiki.analog.com/scopy
License: GNU General Public License v3.0
A software oscilloscope and signal analysis toolset
Home Page: http://wiki.analog.com/scopy
License: GNU General Public License v3.0
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.
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.
Clicking around on the vertical or horizontal axis sometimes makes the waveform disappear.
Would it make sense to put in a "reset" button to restore to the default 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.
Item 6 from Issue #4
"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."
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.
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" )"
The time/division and amplitude/division "knobs" do not show up in the box on the right.
Here are a few observations on the Volt Meter tool.
Item 17 from Issue #4
"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."
Item 16 from Issue #4
"Need a few more math functions like random, sinc ( sin(x)/x ) …."
Item 3 from Issue #4
"The vertical grid scale should automatically adjust as the amplitude and offset is changed so as to fit the waveform."
Item 14 from Issue #4
"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."
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.
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:
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:
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
Item 19 from Issue #4
"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."
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."
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."
For a future enhancement, it would be good to be able to turn the displayed knobs in addition to the up/down controls and direct entry.
Item 18 from Issue #4
"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?"
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 )."
Item 7 from Issue #4
"Phase ( Delay ) should be selectable in either degrees ( phase ) or time in uS / mS ( delay )."
Here are a few initial comments on the Oscilloscope tool.
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:
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? )."
Capability to export data should be added if not currently available.
Item 2 from Issue #4
"The horizontal grid scale should automatically adjust as the frequency is changed so as to show one ( or maybe two ) cycles of the waveform."
Item 1 from Issue #4
"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."
Item 20 from Issue #4
"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."
Here are a few top-line issues I have with Scopy:
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."
Item 8 from Issue #4
"For the Square wave shape where’s the duty-cycle ( symmetry ) adjuatment?"
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.
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."
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.
Item 12 from Issue #4
"How do I set the rise / fall time of the square wave ( trapezoidal wave shape)?"
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:
Item 13 from Issue #4
"Should there be a built-in noise wave shape? If so what noise distribution, uniform, Gaussian, etc?"
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."
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)."
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?
Item 15 from Issue #4
"Need to add instructions on how to use the Math controls to the Scopy Wiki page. With examples!"
Item 21 from Issue #4
"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."
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.
Item 11 of Issue #4
"Should there be a built-in stair-step function? With the number of steps adjustable?"
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.)"
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.
Item 4 from Issue #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."
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.