Labnation Smartscope: User Manual
Labnation Smartscope: User Manual
Labnation Smartscope: User Manual
LabNation SmartScope
User Manual
V1.1.6
2017/09/19
2017/03/04 - Pages have been updated to reflect new features in SmartScope app v0.12.0.0
Es una edición editada del Manual del Usuario en HTML que se encuentra en la WEB del fabricante del SmartScope.
LabNation SmartScope User Manual v1.1.6 2-94 19.09.2017
SmartScope User Manual
Main Page
Contents
• 1 Demonstration mode
• 2 Installing the software and connecting the SmartScope
• 3 SmartScope User Manual
• 4 In case of a crash: please send in the CrashReport!
• 5 Hardware
• 6 General
• 7 Sources
• 8 Other
Demonstration mode
All of our software installations contain a demonstration mode, which is automatically activated in case no
SmartScope is connected. This allows everyone to evaluate the software. Simply grab our installer from our
download page and give it a spin!
For Android phones and tablet we have implemented an Audio Scope, which allows you to test our software on real-
world signals.
Hardware
• Hardware specs
• ADC resolution - voltage dividing/multiplying stage
• Using the micro USB connector
• Connectors pinout
• Probe calibration
General
• Changelog
• Suggestion box
• Host system requirements
• User Support Forum
• Lab-Nation main page
Sources
• Sources
Other
• Sandbox
2. Administration elevation: we've fully automated the process of driver installation for you, and as with
any driver installation this requires administrator rights.
Hence, click OK to proceed.
2. Next, simply start the SmartScope application through any of these means:
o Find the SmartScope icon on your desktop and give it a double-click
o Hit the Start button on your keyboard, type "SmartScope" and hit enter
o Browse to C:\Program Files (x86)\LabNation\SmartScope and double-click on the SmartScope.exe
file
Trivial suggestions
• Make sure you're using the miniB port as shown in the image above, and not the microB port on the side
• Try out whether another USB cable might help
• Try out different USB ports on the PC
• Try out with a different PC/host
Compatibility
In 2016, it is quite fair to assume any new Android phone/tablet is supporting USB On-The-Go. Nevertheless, on the
following page you can find more information to figure out whether the SmartScope will work on your device.
• Is my Android device compatible?
x1 x10
Impedance 1 MΩ // 100pF 10 MΩ // 20pF
Bandwidth 6 MHz 30 MHz
Max. Voltage Range ±30 V ±300 V
Max. Amplitude 40Vpp 400Vpp
Voltage Resolution (V/AdcUnit) 2 mV 20 mV
Max. Voltage Resolution: This is the minimal voltage difference that the ADC of the scope can measure (with the
volts/div in the lowest ranges of course). Here 1x probe is better because due to the probe attenuation you'll have 1/10
of the resolution. But of course this will only be true in the lowest ranges, once you get to 500mv/div you'll have the
same resolution using 1x or 10X probe.
So, long story short, a 10x probe will be better in all cases except two:
• When you want to measure small signals (under 2Vpp) with more resolution than 20mV.
• When you are measuring signals of 1Mhz or lower and you want to filter out high frequency noise (over
6Mhz).
1 SmartScope Controls
https://youtu.be/feGdiQOJWHI
2 Acquisition Overview
https://youtu.be/7oYi9yIijAc
2.1 (partial) transcript
The system measurement box shows the length of the acquisition buffer as well as the sample rate. Right now that is
2.62ms and 100MHz. Given the memory of 4M samples, we can acquire up to 40ms without subsampling (4M
samples / 100M samples per second). However this is not enabled by default as it would slow down the data refresh
rate. By default the acquisition buffer is twice the size of what you see on the grid. I open the acquisition overview
buffer by pressing V. The viewport is moved around by dragging the highlighted part. Moving the trigger is done by
dragging the shaded part...
4 Acquisition modes
https://youtu.be/WKrIH7zo8M0
Contents
• 1 Selecting the Oscilloscope mode o 5.2 Changing between rising/falling/any edge
• 2 Oscilloscope main screen o 5.3 Changing the trigger voltage
• 3 Visualizing the signal
o 5.4 Changing the type of triggering
o 3.1 Selecting the active wave 5.4.1 Auto mode
o 3.2 Voltage scaling 5.4.2 Normal mode
o 3.3 Timebase scaling 5.4.3 Single mode
o 3.4 Panning 5.4.4 Rolling mode
o 3.5 0-panning • 6 Cursors
• 4 AC and DC coupling • 7 Measurements
• 5 Triggering
o 5.1 Changing trigger channel
1 Selecting the Oscilloscope mode
By default, upon startup the SmartScope app will be in Analog mode. Whenever you are in a different mode, and want
to return to the oscilloscope mode, simply select it at the top of the main menu:
The grid in the background can help you determine the voltage level or amplitude of your signal. The grid is split in 10
divisions, and the voltage of each division is displayed in the Voltage division indicators, on the bottom-right of the
screen. Notice that each signal can have a different scaling factor, and such there is one indicator for each wave. The
image below shows how touch-based voltage zooming on the green wave can be done:
Additionally, the voltage can also be adjusted using the picking wheels at the bottom-right of the screen. To do so,
simply drag them up or down as shown in the image below.
The grid can help you determine the timebase of your signal as well. The grid is split in 10 horizontal divisions, and the
timespan of each division is displayed in the Timebase indicators, on the bottom-right of the screen. Notice that each
signal can have a different scaling factor, and such there is one indicator for each wave.
The image below shows how timebase zooming on the green wave can be done:
Additionally, the timebase can also be adjusted using the picking wheel at the bottom-right of the screen. To do so,
simply drag it up or down as shown in the image below:
Using touch/mouse, you can drag either the wave (notice the faintly colored background behind the wave: this
indicates the sensitive area!), its 0-level indicator or the horizontal trigger indicator. Dragging the indicator has the
benefit that they auto-snap to the grid divisions.
Dragging will also occur when, while pinching, you move both fingers in the same direction.
3.5 0-panning
When using touch, you’ll often want to set the timebase or voltage offset to 0. This can be done accurately in these
ways:
• By double-tapping the 0-level indicator, or double-tapping the horizontal trigger indicator
• By dragging the indicators, they will auto-snap to all grid divisions, including the 0-levels
4 AC and DC coupling
By default, each analog channel is set to DC coupling. This means that the voltages displayed will be the true,
absolute voltages. Eg: a wave between 0V and 5V will be displayed as a wave between 0V and 5V. Alternatively, you
can choose the set a channel to AC coupling. Doing so will cause the wave to be displayed, centered around 0V. Eg:
the same wave between 0V and 5V will be displayed between -2.5V and 2.5V. This mode is quite often useful, eg in
case you want to visualize a transient signal of low amplitude superposed on a large voltage. Eg: a 0.1V noise wave
on top of a 12V power supply.
You can switch between DC and AC coupling, simply by clicking/tapping the wave indicator, and selecting the desired
coupling mode. This is shown in the images below:
• In case of sporadic signals: the SmartScope will wait until an edge was detected, and then display that capture. Otherwise,
the SmartScope would be capturing patches of data at random, and there would be a chance you would miss the section
of interest.
The SmartScope supports simple edge-based triggering (rising/falling/any edge), but also more advanced triggering
methods, see Advanced triggering options. This section will focus on basic triggering.
A rising edge is detected whenever the input signal transitions from below the trigger voltage to above the trigger
voltage. This trigger voltage can be set as well (see Changing the Trigger Voltage, below).
All trigger settings can be set through the Trigger context menu, invoked by tapping on the Trigger voltage indicator or
Trigger timebase indicator, as shown below:
In Auto mode, every time a trigger is detected, the waveform is acquired, transferred to the host and visualized.
Whenever the trigger is lost (eg: when the input signal is removed, or when the signal changes so no more crossings
with the trigger level occur), the SmartScope sends any acquired waveform to the host for visualization
5.4.2 Normal mode
In Normal mode, every time a trigger is detected, the waveform is acquired, transferred to the host and visualized,
much like Auto mode. However, in case no trigger is detected, no new data is transferred nor visualized, keeping the
last triggered waveform on the screen.
5.4.3 Single mode
Single mode puts the SmartScope in waiting mode until a trigger is detected. In such case, the waveform is acquired
and visualized, after which the SmartScope puts itself in Stopped mode. Single mode is useful in case you want to
visualize the very first occurrence of a trigger, or in case you want to capture a unique event and don’t want to remove
the result in case of some glitch occurs when you remove the probe.
5.4.4 Rolling mode
When you’re visualizing slow signals, you end up with timebase settings like 100ms/div. With 10 divisions, this means
it takes 1 seconds before an acquitisition can be made, so you only get screen refreshes every second. In such case,
it is usually preferred to visualize the data as a continuously incoming stream of data, as you get realtime updates of
the signal and you can stop the SmartScope whenever you want.
7 Measurements
For now, the SmartScope software contains a basic set of measurements. This number of measurements will grow,
and together with it, the way of dealing with measurements will change. Measurements can relate to a channel (eg
amplitude or mean voltage) or to the system (eg update rate). Measurement boxes can be shown or hidden by tapping
on their corresponding button in the bottom-right corner. They can also be removed by dragging them out of the grid
area.
Next to its dual-channel oscilloscope front-end, the SmartScope includes a powerful Logic Analyzer. 8 input pins on
the back of the SmartScope allow you to sample a digital signals simultaneously at 100MS/s.
This section describes how to operate the SmartScope software to effectively use the Logic Analyzer functionality.
Contents
• 1 Logic Analyzer - Hardware specifications
• 2 Selecting the Logic Analyzer mode
• 3 Logic Analyzer main screen
• 4 Visualizing your digital signals
o 4.1 Changing the trigger position (panning)
o 4.2 Timebase scaling
• 5 Repositioning/Hiding/Showing signals
o 5.1 Time interval arrows / Active wave
• 6 Triggering
• 7 Trigger modes
o 7.1 Auto mode
o 7.2 Normal mode (=required trigger)
o 7.3 Single mode
o 7.4 Rolling mode
• 8 Cursors
See the Connectors pinout article to find out which pins are reserved for the Logic Analyzer.
• Change the timescale so the key part of the communication is fitting inside the graph
You’ll also want to position your waves to your liking. Here are the
Touch Mouse Keyboard
operations to achieve this:
Using touch/mouse, you can drag your waves or the horizontal trigger Drag Left-drag Arrow keys
indicator. Dragging the indicator has the benefit that it auto-snaps to the grid
divisions.
LabNation SmartScope User Manual v1.1.6 21-94 19.09.2017
Dragging will also occur when, while pinching, you move both fingers in the same direction.
Zooming by mouse or keyboard will switch between predefined values. By pinching you can continuously zoom in or
out to an arbitrary value. The image below shows how timebase zooming on can be done:
The grid can help you determine the timebase of your signal as well. The grid is split in 10 horizontal divisions, and the
timespan of each division is displayed in the Timebase indicators, on the bottom-right of the screen.
5 Repositioning/Hiding/Showing signals
In some cases where you don’t need 8 digital inputs, you might want to reposition or even hide some of them as they
can clutter the screen. Repositioning is pretty straightforward: simply drag any digital wave or its indicator to wherever
you desire. When you release the wave, all waves will auto-snap to their optimal position. You can also hide inactive
digital waves, which will free up graph space for other signals. This is especially useful in Mixed mode, where the
graph area can be small. When you hide a digital wave, the remaining signals will be enlarged. To hide a digital wave,
tap its indicator as shown below, and select hide. The wave will be hidden, and its indicator will be moved to the
bottom-right corner. To re-activate a hidden wave, simply tap its indicator residing at the bottom-right corner.
6 Triggering
The Logic Analyzer allows you to trigger on any combination of states/events of the 8 digital inputs. These include:
• Don’t care (X)
For example, in the screen below the SmartScope is instructed to trigger at any event where:
• D1 encounters a Rising edge
• D7 stays Low
In order to change the trigger condition, simply tap the trigger indicators (also shown in the image above) until you
reach the condition you require.
7 Trigger modes
The following trigger modes are available:
7.1 Auto mode
In Auto mode, every time a trigger is detected, the waveform is acquired, transferred to the host and visualized.
Whenever the trigger is lost (eg: when the input signal is removed, or when the signal changes so no more crossings
with the trigger level occur), the SmartScope sends any acquired waveform to the host for visualization
7.2 Normal mode (=required trigger)
In Normal mode, every time a trigger is detected, the waveform is acquired, transferred to the host and visualized,
much like Auto mode. However, in case no trigger is detected, no new data is transferred nor visualized, keeping the
last triggered waveform on the screen.
7.3 Single mode
Single mode puts the SmartScope in waiting mode until a trigger is detected. In such case, the waveform is acquired
and visualized, after which the SmartScope puts itself in Stopped mode. Single mode is useful in case you want to
LabNation SmartScope User Manual v1.1.6 23-94 19.09.2017
visualize the very first occurrence of a trigger, or in case you want to capture a unique event and don’t want to remove
the result in case of some glitch occurs when you remove the probe.
7.4 Rolling mode
When you’re visualizing slow signals, you end up with timebase settings like 100ms/div. With 10 divisions, this means
it takes 1 seconds before an acquitisition can be made, so you only get screen refreshes every second. In such case,
it is usually preferred to visualize the data as a continuously incoming stream of data, as you get realtime updates of
the signal and you can stop the SmartScope whenever you want.
8 Cursors
See the main page on Cursors to find out all details about them. Only vertical cursos are supported on the Logic
Analyzer graph.
Contents
• 1 Selecting Mixed mode
• 2 Operating the Analog and Logic Analyzer graphs
• 3 Changing between Analog/Digital Trigger mode
• 4 Changing size of graphs
Contents
• 1 User Graphical Interface elements o 4.1 When is the Panorama
• 2 Using the Panorama and ViewFinder shown/hidden?
• 3 Help! I’m getting terribly slow refresh rates o 4.2 Acquisition speed and buffer size
details
• 4 Under the hood
1User Graphical Interface elements
An example screenshot is presented below, after which the main elements will be described below.
The Panorama
The Panorama is the bar shown at the top of the screen. It displays the entire contents of the RAM memory.
The ViewFinder
The ViewFinder is the area of the Panorama corresponding to the area currently displayed on the main screen. It is
highlighted on the Panorama, to give a clear visual indication of which section of the Panorama you’re currently
inspecting on the main screen. This is further enhanced by the highlights underneath the Panorama, visually linking
the area of the main graph to the ViewFinder.
The ViewFinder can be moved across the Panorama by swiping it, dragging it by mouse, or by CTRL+Left/Right.
The Trigger
The position of the trigger is also shown in the Panorama. In case the trigger is outside the timespan of the main
graph, this gives a quick indication of where the trigger is relative to the signal visualized in the main graph.
Contents
• 1 Adding and Removing cursors
• 2 Delta cursors
o 2.1 Changing Delta reference cursors
o 2.2 Toggling Delta cursor between Time and Frequency indication
Contents
• 1 Overview
• 2 The Measurements menu
• 3 Measurement box
o 3.1 Showing/hiding the measurement box
o 3.2 Docking the measurement box to the bottom of the screen
o 3.3 Docking the measurement box to the right side of the screen
o 3.4 Adding/removing measurement to/from the measurement box
• 4 Long-term measurement graphs
o 4.1 Extending the timebase of the long-term channel graphs
3 Measurement box
The measurement box contains the currently active measurements. The Value column displays the value calculated
on each incoming wave. This value can vary very rapidly, and therefore the Mean column was added which shows the
averaged value over 1 second. Added to this are the Min and Max columns, which show the minumum and maximal
value of the measurement of said 1 second period. Finally, the Std column shows the standard deviation (~noise or
variation) of this value over the 1 second interval.
The measurement box can be dragged around freely over the screen.
3.1 Showing/hiding the measurement box
By dragging the Measurement box out of the screen through the top or left side of the screen, it will be removed from
the screen.
To show the measurement box again, simply open the Measurement menu. If the Measurement menu was already
open, simply close and open the menu by tapping the ruler twice.
To remove the measurement again, repeat the same procedure which will gray out the list icon, and remove the
measurment from the Measurement box.
!!Warning: changing the timespan of the long-term graphs will clear all data of all active measurements!!
Contents
• 1 AWG pin location
• 2 Configuring the AWG using pre-defined waves
• 3 Configuring the AWG using csv files
o 3.1 Under the hood
o 3.2 Define arbitraty waveform in Excel (.csv file upload)
3.2.1 Sample CSV
Please keep in mind that you always should bridge 2 wires between 2 separate devices. In this case:
• The AWG output signal
• The ground, so both devices have the same reference voltage. (0V means the same on both devices)
In the image above, you can see the AWG pin is surrounded by 2 ground pins, either of which you can use to connect
to the other device.
Next, open up the Analog submenu and select the type of predefined waveform you want the AWG to generate:
LabNation SmartScope User Manual v1.1.6 40-94 19.09.2017
Configure the amplitude, offset and frequency of the wave to be generated.
TIP: Double-tapping the value will bring up the Numpad, which makes it much easier to specify accurate values.
NOTE: At this point the AWG output is not yet active. You have to use the 'Upload function' button and check the
Analog checkbox to activate the output (see further).
When you're done, hit the 'Upload' button, which will transfer the data to the SmartScope the AWG output. The Upload
button will be highlighted while the data is being sent to the SmartScope.
NOTE: At this point the AWG output is not yet active. You still have to check the Analog checkbox to activate the
output (see further).
1. Generate a CSV file using the AWG excel worksheet. A sample CSV can be found for a sine and block wave.
2. Drop your CSV file in the AWG folder (<dropbox>/Apps/LabNation SmartScope/AWG) using a file manager
3. In the app, tap sidemenu > AWG > Upload from dropbox
4. You should now be able to choose the CSV file
In case you want to upload data as bytes (i.e. for digital output)
Value;Field;Description
1;DataIsBytes;Set to 1 to interpret the data as bytes, otherwise interpreted as voltages
8;Samples;The number of samples to use (later samples are ignored)
244;SampleStretch;The number of times to repeat a sample
0;BeginData;Data begins here
1;;
2;;
4;;
8;;
4;;
2;;
1;;
Contents
• 1 Output pin locations
• 2 Output voltage levels
• 3 Generating pre-defined waves
• 4 Define arbitrary waveforms in Excel (.csv file upload)
o 4.1 Sample digital output CSV
Contents
• 1 Selecting the output file type
• 2 SmartScope recording modes
o 2.1 Slow signals, long timespan recording (rolling mode)
o 2.2 Fast signals, record all data (non-rolling mode)
o 2.3 Fast signals, record every X seconds (non-rolling mode)
o 2.4 Full RAM contents (single acquisition only)
• 3 Working with recorded .csv files
o 3.1 Examining a rolling .csv file data using Excel
o 3.2 Examining a non-rolling .csv file data using Excel
o 3.3 Creating the time axis - visualizing the data in Excel
• 4 Working with recorded .mat files
While recording in rolling mode, all channels will be sampled at around 700Hz, and each sample will be stored to file.
When you’ve finished recording what you need, simply hit the record button again, and a dialog will show you where
the file has been stored.
Now when you press the Record button, you’ll see that the ‘Data stored’ property of the Systems measurement box
only increases at each interval you specified above. As a result, the file on disk will only contain the bursts at intervals
you specify, allowing you to record over very large timespans and still keep the file very small.
'''Note:''' this doesn't work in '''rolling mode'''. However, while in rolling mode you can always set the the Trigger mode
to 'auto trigger'. This gives a visually less appealing result, but allows you to record with a specified interval.
2.4 Full RAM contents (single acquisition only)
In all other modes above, all data shown on the screen (and potentially a bit more to the left and right) will be recorded
to disk, which typically means 2048 samples for each channel for each acquisition. If you want to store the contents of
the full RAM, this is also possible: simply stop the acquisition and wait till the full RAM contents has been downloaded
(indicated by the green progress bar in the Panorama). Once this is complete, hit the Record button. You will be
presented with the dialog below, asking you if you want to store the current data. When you click OK, the full contents
of the RAM will be stored to disk.
Important: You have to wait until the entire contents of the RAM has been transferred (see previous line). When you
hit the Record button before this transfer is complete, only the Viewport data (2048 samples) will be written to file.
Note: Excel has a limit of max 1 million rows, so if you’re using csv+Excel make sure you keep the RAM depth to the
default setting of 512k.
Extended functionality
Advanced triggering options
Contents
• 1 Triggering basics o 1.3 Trigger menu
o 1.1 Trigger indicators o 1.4 Changing trigger channel
o 1.2 Trigger modes • 2 Trigger Types
1.2.1 Auto mode o 2.1 Edge triggering
1.2.2 Normal mode o 2.2 Timeout triggering
1.2.3 Single mode o 2.3 Pulse triggering
1.2.4 Rolling mode
1 Triggering basics
Without triggering, the SmartScope would render each acquisition of a simple sine wave at a different timelocation. At
~150 acquisitions per second, this would make the sine wave appear all over the place. What you need, is the ability
to define a certain voltage, and tell the SmartScope to position this voltage always at the same location on the screen.
This is called triggering, and will result in a stable waveform on the screen.
2 Trigger Types
2.1 Edge triggering
The simplest of the three, Edge triggering simply waits for an edge to appear in your signal, and renders that
acquisition to your screen. For a Rising edge, this means the position where the voltage transitions from below to
above the Trigger voltage. Through the context menu, you can select whether the SmartScope should be waiting for a
Rising edge, Falling edge, or whether Any edge will do.
2.2 Timeout triggering
In certain cases, you only want to look at signals which have been above (or below) the Trigger voltage for a certain
amount of time. This can be useful to trigger on noise signals, or to detect periods of (in)activity. In order to select
Timeout triggering, simply select it from the Trigger menu:
In Pulse triggering mode, you can specify a Minimum and Maximum length. Only pulses within these boundaries will
cause the SmartScope to trigger. To set these Minimum and Maximum values, simply tap on them in the Trigger
menu after which a numpad will be shown. Please note the triggering position is NOT the moment of the edge, but
rather the moment of the end of the pulse, as can be seen in the Pulse icon. This is demonstrated in the image above,
where you can see the Trigger location is at the end of the pulse; ie where the voltage drops below the Trigger voltage
again.
Contents
• 1 Adding an Operator • 4 Removing an Operator
• 2 Configuring the Operator • 5 Create a custom Operator
• 3 Stacking Operators
1 Adding an Operator
Operators are typically used on analog waves, but you can also have operators for digital waves (eg: the digital Invert
operator). In order to add an Operator, simply slide open the main menu and hit Add operator, which will bring up a
list of currently available Operators. (Keep in mind you can easily create your own decoders, see [Creating your own
Operator]). Select the Operator you would like to add, as shown in the image below where a Free math Operator is
being added.
3 Stacking Operators
Any operator can be used as input to another Operator. This allows to create more complicated forumulae. In the
following screenshot, the Absolute Operator is using the previously created Free math Operator as input.
4 Removing an Operator
If you want to remove an Operator, simply tap the Operator indicator on the left, and select the thrashcan. Note: this
will automatically remove any other Operator using the deleted Operator as input channel.
Contents
• 1 Throwing in a decoder • 5 Decoding while running or when stopped
• 2 Configuring the decoder • 6 Save all decoded data to file
• 3 Changing the radix of the decoder • 7 Create a custom Protocol decoder
• 4 Removing a decoder
1 Throwing in a decoder
Whenever you feel the need to have a decoder do the bitpicking for you, start by making sure you have the required
input signals nicely aligned on your screen. This means you need to make sure the entire communication is visible. -
While running, the entire communication should be visible in the Viewport (=main graph) - Preferrably, you'll catch the
acquisition using 'Single trigger' mode, as this will allow the SmartScope to fetch the entire acquisition from onboard
RAM into the Panorama of the visualizer. Once this has been done, you can get a much more accurate decoding, and
you can zoom in to specific portions of interest within a larger communication.
When done, simply slide open the main menu and hit Add decoder, which will bring up a list of currently available
decoder. (Keep in mind you can easily create your own decoders, see [Creating your own decoder]). Select the
decoder you would like to add, as shown in the image below where an I2C decoder is being added.
Whenever you change an input channel of a decoder, the decoder will re-process any data immediately, also when
the acquisition has been stopped. This allows you to acquire a dataset, and get immediately feedback while fine-
tuning your decoder settings.
LabNation SmartScope User Manual v1.1.6 60-94 19.09.2017
3 Changing the radix of the decoder
By default, decoder output values are shown in hexadecimal. Since not all of us are robots, it might be desirable to
change this to decimal values or even other representations. In order to do so, simply tap the decoder indicator on the
left, select the radix icon (second to the right), and select the radix of your preference! Currently supported radices
include Hex, Decimal, Binary (shown below) and ASCII which will convert the byte value into its ASCII character.
4 Removing a decoder
If you want to switch back to manual bitpicking, simply tap the decoder indicator on the left, and select the thrashcan.
Contents
• 1 Enabling FFT • 4 Panning/zooming the FFT graph
• 2 Difference between Real-Time and Fine mode • 5 Selecting windowing function
• 3 Selecting Linear/Logarithmic axes • 6 Changing size of graphs
1 Enabling FFT
Since FFT is done on the Analog input, first make sure you're in Analog mode after which you can enable the FFT
graph by opening the Main menu -> Analog mode -> FFT -> Enable, as shown in the image below.
As of version 0.10, you can now also zoom and pan the frequency axis of the FFT graph, both in Linear and
Logarithmic axis. To do so, simply pinch or drag on the graph. You can also zoom using the mousewheel, and pan by
dragging the graph with the mouse.
In order to reduce spectral leakage, it is recommended to apply a Windowing function to your signal before taking the
FFT. The windowing function can be selected by going to Main menu -> Analog mode -> FFT -> Window function -
> [Window of your choice]. Select Uniform to turn off windowing.
130
Contents
• 1 Enabling XY mode
• 2 Enlarging the XY graph
• 3 Invert the axis
• 4 Squared XY graph
Enabling XY mode
To enable XY mode, open the main menu and select Analog Mode -> XY Plot -> Grid enabled.
Peak-detect acquisition
What typically happens when zooming out on the timescale, is that the data is being subsampled. By subsampling,
there’s a high chance tiny spikes would never be seen. The SmartScopes includes peak-detect acquisition, making
sure that short pulses are still visible even when you're zoomed out a lot on the timescale.
As an example: on the images below, 10 pulses of 10ns width are generated with 10us between them. This means
there’s a 1% chance the pulse will be visualized. Since the SmartScope software renders 2048 pixels each
acquisition, you’ll always see these pulses.
Now when the time between the pulses is enlarged to 10ms, there should be 0.001% chance of seeing the pulses. But
because the SmartScope includes peak-detect mode acquisition, still each and every spike will be shown on the
screen, as you can see in the image below:
Sin(x)/x triggering
Without sin(x)/x triggering, when zooming in on the timescale approaching 10ns/div, signals could appear jittery as the
sampleperiod of the SmartScope is 10ns. The SmartScope software implements reverse sin(x)/x interpolation to
predict the trigger-crossing, resulting in a steady triggering even of fast signals. This means you’re ensured each
signal will be triggered on the exact crossing of the horizontal and vertical trigger indicators.
The image below shows how a 10MHz digital signal is visualized when ETS is activated:
Keyboard shortcuts
Key Action CTRL + Action
PgUp Vertical zoom in on selected wave
PgDn Vertical zoom out on selected wave
Home Horizontal zoom out on selected wave Horizontal zoom out on Panorama
End Horizontal zoom in on selected wave Horizontal zoom in on Panorama
A Auto trigger
S Single trigger
D Require trigger (AKA normal)
T Set trigger to selected channel
Tab Select next channel
Shift-Tab Select previous channel
F2 Show/hide system measurement box
F3 Show/hide Channel A measurement box
F4 Show/hide Channel B measurement box
Q Quit
1 Set digital trigger to '1' for currently selected channel Same, and select next channel
0 Set digital trigger to '0' for currently selected channel Same, and select next channel
R Set digital trigger to RISING for currently selected channel Same, and select next channel
F Set digital trigger to FALLING for currently selected channel Same, and select next channel
X Set digital trigger to DON'T CARE for currently selected channel Same, and select next channel
Space bar Start/Stop acquisition
P Toggle Panorama
LabNation SmartScope User Manual v1.1.6 72-94 19.09.2017
Main menu
Before starting designing the SmartScope app, we wanted to break with the typical oscilloscope interface.
There is no reason to have a dark screen, or a plethora of knobs and buttons. Instead, we wanted to focus on having
a clean and simple UI, yet capable of storing all of the complex functionality available in traditional oscilloscopes.
Therefore, most of the functionality is integrated in each physical element. For example: if you want to change
trigger settings, simply click/tap the trigger indicator on the right of the screen. More general settings have been
moved into the menu, which is hidden by default in order to free up as much as possible screen space for the graph.
This main menu can be opened and closed by tapping on the LabNation logo in the bottom-left.
Cue card
When the SmartScope app is started for the very first time, the Cue Card it shown. Tap on the Cue Card to make it
disappear.
The Cue Card contains a quick summary of how to perform the most important operations. You can bring up the cue
sheet at any time by pressing the F1 or ? button.
The Cue Card is shown below as fast reference.
Contents
• 1 Download the Decoder source package
• 2 Start from an existing decoder file
• 3 Define the metadata
• 4 Code your operation
o 4.1 Operator output
• 5 Compile the project
• 6 Move the .dll file to the right folder
o 6.1 Using DropBox to transfer the dll to your tablet/phone
• 7 Debugging your operator in real-time
• Name: This is how your operator will be presented by the SmartScope app in the list of available operators.
• Abbreviation: Max 4 characters describing your operator. These will be printed inside the indicator of your
operator wave at the very left of the SmartScope app.
• Author: Your name. Not used at the moment, sorry about that.
• VersionMajor & VersionMinor: In case multiple operators with same name are detected, this field allow the
SmartScope app to detect which instance it the most recent one.
• InputWaveformTypes: Here you define how many input waveforms your operator requires, and which type of
data they need to contain. This is done by using a Dictionary, linking the name of the wave to the type of
required contents.
Optional:
• Parameters: Allows the user to specify additional paramteres, such as ActiveLow/ActiveHigh, or values such
as Baud rates etc. See the OperatorAnalogMath for an example on this.
• ContextMenuOrder: Allows you to specify the order in which the InputWaves and Parameters will be
presented in the Context menu of the SmartScope app. See the OperatorAnalogMath for an example on this.
Platform Path
Mac /Users/<username>/LabNation/Plugins
Linux ~/LabNation/Plugins
Android <sd-card>/LabNation/Plugins
Now when you restart the SmartScope app, it should automagically pick up your new operator and list it as available
operator!
6.1 Using DropBox to transfer the dll to your tablet/phone
For all platforms, you can access a DLL file over DropBox. To do so, in the app go to Menu -> Add decoder -> Fetch
from dropbox. If never done before, this will authenticate to DropBox and create all folders required. Next, on your PC
you can save the DLL file to \Dropbox\Apps\LabNation SmartScope\Plugins. All DLL files you place here can now be
accessed from all your devices over dropbox!
Contents
• 1 Download the Decoder source package
• 2 Start from an existing decoder file
• 3 Define the metadata
• 4 Code your logic
o 4.1 Decoder output
• 5 Compile the project
• 6 Move the .dll file to the right folder
o 6.1 Using DropBox to transfer the dll to your tablet/phone
• 7 Debugging your decoder in real-time
• Name: This is how your decoder will be presented by the SmartScope app in the list of available decoders.
• Abbreviation: Max 4 characters describing your decoder. These will be printed inside the indicator of your
decoder wave at the very left of the SmartScope app.
• Author: Your name. Not used at the moment, sorry about that.
• VersionMajor & VersionMinor: In case multiple decoders with same name are detected, these field allow the
SmartScope app to detect which instance it the most recent one.
• InputWaveformTypes: Here you define how many input waveforms your decoder requires, and which type of
data they need to contain. This is done by using a Dictionary, linking the name of the wave to the type of
required contents.
Optional:
• InputWaveformExpectedToggleRates: The SmartScope app contains functionality which allows to
automatically map the correct input signal to the correct input of your Decoder. To allow this, you only need to
specify which input sources you expect to toggle the most. This is done by a dictionary, specifying the
expected ToggleRate for each input waveform.
• Parameters: Allows the user to specify additional paramteres, such as ActiveLow/ActiveHigh, or values such
as Baud rates etc. See the DecoderUART for an example on this.
LabNation SmartScope User Manual v1.1.6 79-94 19.09.2017
• ContextMenuOrder: Allows you to specify the order in which the InputWaves and Parameters will be
presented in the Context menu of the SmartScope app. See the OperatorAnalogMath for an example on this.
Platform Path
Mac /Users/<username>/LabNation/Plugins
Linux ~/LabNation/Plugins
Windows <My Documents>/LabNation/Plugins
Android <sd-card>/LabNation/Plugins
iOS See section below regarding DropBox
Now when you restart the SmartScope app, it should automagically pick up your new decoder and list it as available
decoder!
Now usually you would expect the code to break at your breakpoint, but not in this case as the SmartScope app is
using your compiled .dll, and not the code source you’re looking at. But no worries, we just need to let Visual Studio
know that your source is exactly the same as the .dll which is currently being executed. To do so, select Debug ->
Attach to process. Select SmartScope.exe from the list, and hit Attach. You should see that the SmartScope app is
being halted, and your breakpoint is active now. Step through your code using F11 and F10 as you would debug any
other program!
Contents
• 1 Download the Matlab scripts
• 2 Running the scripts
o 2.1 SmartScopeConnect.m
o 2.2 SmartScopePlot.m
2.2 SmartScopePlot.m
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% SmartScopePlot - Fetches a couple of data sequences from the SmartScope
% and plots them in a graph. Also grabs some timing parameters.
%
% Prerequisites:
% - make sure SmartScopeConnect was executed succesfully first
%
% Usage:
% - just run this script
% - if 5000 frames are too much, hit Ctrl+C
%
% Good to know:
% - after running this script, type 'scope'
% to see which parameters are exposed by the scope
% - after running this script, type 'scope.DataSourceScope.LatestDataPackage'
% to see which parameters are exposed by the most recently acquired
% datapackage
Behind this GUI is the block diagram shown below. Notice that the bottom part is only needed to update the GUI; all
control and acquisition steps are done by the topmost part. All steps and VI blocks are be described below:
Contents
• 1 Downloading the SmartScope LabView VI's
• 2 Using the SmartScope in a LabView application
o 2.1 Phase1: Initializing the SmartScope
2.1.1 INIT: Initialize.vi
o 2.2 Phase2: Configuring the Smartscope
2.2.1 VERT: SetVertical.vi
2.2.2 HOR: SetHorizontal.vi
2.2.3 TRIGGER: AnalogTrigger.vi
2.2.4 COMMIT: CommitSettings.vi
o 2.3 Phase3: Reading out SmartScope data
2.3.1 GETDATA: GetLatestDataPackage.vi
2.3.2 CHDATA: GetChannelData.vi
• 3 Adding a XY plot
• 4 Accessing more advanced LabNation.DeviceInterface functionality
When executed, this VI polls every 500ms whether a SmartScope is detected. This can be a SmartScope connected
locally on the USB port, or a SmartScope shared over the network using the SmartScopeServer. Once detected, this
VI will upload a basic configuration to the SmartScope and cause it to enter Running mode. The output of this VI is a
reference to the SmartScope, and is needed for all other LabNation VI blocks. In practice, this means the dataflow in
your block diagram will be blocked until a SmartScope becomes available.
2.2 Phase2: Configuring the Smartscope
At some point in your application, you will want to configure the acquisition settings of the SmartScope. This includes
voltage ranges of the analog inputs, or the depth of the on-board RAM. It is important to note that all changes will only
take effect after you’ve executed the CommitSettings.vi.
2.2.1 VERT: SetVertical.vi
This VI allows you to configure the analog input channels of the SmartScope. Below are the expected inputs:
• Voltage range: Simply pass it the largest amplitude you expect to measure, and the SmartScope will automatically change
its dividing and multiplying stages in order to optimize its range for this amplitude.
Note that in order to get the finest resolution for your signal, it is best to set the voltage range as small as possible,
while still making sure your entire signal can fit within that range.
• Offset: The value you specify here will be physically added or subtracted from the input voltage. This allows you to zoom
in on a certain voltage range not centered around 0V. For example, if you want to measure signals between 0V and 12V,
setting the voltage range to 12V and the offset to 6V will result in the highest measurement resolution.
• Coupling: This input terminal allows you to specify whether you want to have AC or DC coupling. DC coupling results in
absolute voltages, while AC coupling first subtracts the mean value from the signal before being digitized. AC coupling
allows to zoom in on signals with small amplitude but large offsets.
• Channel: last but not least, you should specify whether you’re configuring Channel A or Channel B.
2.2.2 HOR: SetHorizontal.vi
This VI is a simplified version which allows you to define very basic timing settings. If you want to have more control
over the timing settings including on-board RAM, see the last section of this page. Here are the required inputs:
• ViewportLength: allows you to define the length of the sequence to acquire, in seconds, and adjusts the sampling rate so
the Viewport buffer of 2048 samples correspond to this length.
• TriggerHoldoff: specifies the position of the trigger, in seconds, relative to the center of the Viewport.
1.2.3 TRIGGER: AnalogTrigger.vi
This VI allows you to configure a basic analog trigger, using the following inputs:
• Channel: Which analog channel you want to trigger on
• TriggerLevel: The voltage, when being crossed, causing a trigger event to occur
2.2.4 COMMIT: CommitSettings.vi
An understanding of this VI is quite important. Any changes you make through the previous VIs will have no effect until
the CommitSettings VI is called. Using the previously described VIs, all changes you make are made in shadow
registers, which are copied in 1 shot to the real registers only when you call the CommitSettings VI. This ensures
acquisitions are made with a complete configuration.
2.3 Phase3: Reading out SmartScope data
At any moment, you can fetch the latest datapackage from SmartScope. A datapackage is a coherent set of
information, containing the acquired data for all channels as well as information regarding the configuration used
This VI simply fetches a reference to the latest datapackage received by the SmartScope driver. In case of
acquisitions with a very long ViewportLength, it can happen that this VI is called multiple times during the same
acquisition. In such case, the same reference to the last datapackage will be returned.
2.3.2 CHDATA: GetChannelData.vi
As explained above, a datapackage contains all data which was acquired at the same time for all channels. The
GetChannelData VI simply returns the viewport data for the channel you specify, presented as a 1D array of floats.
The Viewport data fetched by this VI are up to 2048 samples which span the duration you specified in the
SetHorizontal VI. This VI requires a reference from the GetLatestDataPackage VI, as well as the analog channel you
want to get the data from.
3 Adding a XY plot
With the SmartScope data available to your LabView program, it is incredibly easy to add new representations fast.
For example, adding a XY plot is simply a matter of wiring in LabView’s XY Chart VI:
You see this diagram contains new blocks. LabView takes the DeviceInterface library, and automatically creates these
blocks for all functions inside the library. To give you an idea, simply click on any Property of a TriggerValue block, eg
on ‘source’. You will see a nice drop-down list of all properties you can set. Click also on the ‘TriggerValue’ Property of
the IScope object on the bottom-right: you’ll get a list of all Properties of the SmartScope you can set. These are
explained on the DeviceInterface section of the LabNation wiki, and 100% of the source can be found on LabNation’s
GitHub account.
Voila, when you use this new subVI in your main VI, your SmartScope will reject all triggers which are shorter than 10us or longer
than 100us.
Mac
Windows
1. Install the latest SmartScope software package from our download page
Linux
By installing the .deb package, the SmartScope Server CLI binary is placed in
/opt/smartscope/SmartScopeServer.exe. A script-link to this binary is also placed in /usr/bin/smartscopeserver.
Also a desktop entry for the Server UI is made in your desktop environment's Application menu, in the Science
category.
To run the console version, on a terminal prompt, type
# smartscopeserver
If this doesn't work for some reason, you can also try to explicitly start mono with the binary as an argument
# mono /opt/smartscope/SmartScopeServer.exe
Similarly, you can run the UI version from the command line using
# smartscopeserverui
or
# mono /opt/smartscope/SmartScopeServerUI.exe
Crash Reports
Since v0.9.0.0, the SmartScope app detects when a crash is about to occur, and saves all details it has about the
upcoming crash into a file on disk.
Please send in your CrashReports to bughunt@lab-nation.com
Before making a public release of a new software version, our app goes through a cycle of validation tests. We don't
make public releases which contains known bugs. However, since we're targeting a very wide range of platforms, it is
clear we cannot test on every device available. Therefore, IF you experience a crash, the information in the resulting
CrashReport is very valuable to us. Please be so kind to send it to bughunt@lab-nation.com, so it enters our
bugtracker which allows us to provide a fix as soon as possible in the beta channel.
(we do not want to transmit these crashreports automatically from your PC to our servers)
Location of the CrashReports
Here is the location where you can find the generated CrashReports:
Measured voltage
GND
5V
D3.3V_IO
D3.0V
D1.8V
D1.2V
NEG_1.1V
General
When you are using ranges (20mV/div - 100mV/div) it uses a different path than when using (200mV/div or higher),
this is to reduce noise and to get more resolution. You'll always hear the relay switching in the transition between
those ranges.
On each voltage range (vertical resolution in volts/div) you will have different minimum and maximum value that the
scope can measure.
This depends on your current vertical offset and there is some extra room out of the screen (that is different on each
range) but as general rule of thumb if a signal goes outside of the screen vertically you are probably exceeding the
limits of that range and the scope is clipping the signal.
So you need to adjust the resolution and vertical offset so you can see the whole signal in the screen (vertically) if you
want to measure it.
Voltage resolution
The resolution of the scope also varies between ranges, so don't expect to see exactly the same value in each range,
but they should be really close.
The resolution of the ranges is displayed in the next table:
In addition to that, different ranges use different amplification so noise, temperature and small calibration errors could
make also the values differ even more.
And after all, this is an 8-bits scope, it is not intended for precise voltage measurement, so you can be confident that it
will give you an accuracy of arround 10% of your current volts/div but do not ask for more wink. So in 1V/div the
figures will be accurate to 0.1V, and in 500mV/div to 0.05V.