Softscope is a sophisticated GUI for configuring hardware, taking and analyzing experimental data, processing data on the fly, etc. etc. It's pretty slick, and is described in chapter 10 of the Matlab DAQ Toolbox reference manual.

Softscope: Chapter 10, Reference Manual

If it locks up or gets in some mysterious state, try quitting, doing the normal delete and clearing, and restarting. If you get persistnt strange errors involving timeouts, lack of timeouts, operations not finished, or samples missed, etc., you may have to un- and re-plug the 6009's USB cable, and try again. In the case of some tight infinite loop, you may need to CTRL-ALT-DEL and use the Task-Manager to kill Matlab itself.

The Demo: Wiring

This is just an intro to Softscope, which is a useful tool for the LVDT lab so you can quickly check that your transformer is putting out a usable and correct-looking signal. For now, we only use the transformer. In your kit, find the transformer assembly and some wire.

Explore Softscope

OK Campers, time for some fun. Connect a couple of wires to an analog input differential channel, let's say hardware channel 0 (labelled AI0 and AI4): differential input is the default. Leave channel 1 unused. Plug in the transformer assembly and connect the two clips to your two wires. Then do some minimal software setup in Matlab:

ai = analoginput('nidaq','Dev3');  
% or Dev4 or... use daqhwinfo('nidaq') to see what's right
 disp(ai)    % state of device before channels added
addchannel(ai,0:1)  % if no ; here, see channels returned
 disp(ai)    % state of device after channels added
softscope(ai);  %invoke the GUI

Notice we gave softscope two channels: it's finicky and I gather (from Duke's DAQ3 PDF, which you may have looked at) that it doesn't like only one channel, so... I think we could have added a channel once we were in softscope, but our second channel is interesting: since we're giving it no input, we'll see internally-generated noise in the 6009.

Click the ON botton down at the bottom of the GUI, and then the TRIGGER next to it (you may have to re-klik some.) You should see some action, and if you're looking for a 60 hertz wave you could be encouraged. Right click in the middle of the display screen and choose autoscale. You'll see the noise in softscope's channel 2 (labelled off to the left), and the sine wave down below in CH1 (as it's called -- recall Matlab counts from 1, hardware from 0). Read the bottom to see the scales, and verify that the sine wave is about 20 volts high (that's its peak-to-peak amplitude), note how small the noise is. Try 'twisting' the knobs to move the signals around and scale them.

If you want to measure a voltage you might want precise scalings: go to Edit on the softscope toolbar, choose Channel, within that Channel Properties, and scroll down to Vertical Scale. This is an editable number: try making it 10.0. OK your way out and you should see the units have changed on the display screen and down below in the channel scaling information displayed digitally. This way of scaling the signal is a substitute for turning the knobs (which is imprecise and sometimes seems flakey).

Likewise, the horizontal, or time, setting is in the Scope Properties page. select 'display1' and 'HorizontalScale' and change it to some precise value based on what it is now and what you see. Click OK.

A "math channel" applies some function you write or invoke in Matlab to the signal flowing in. Go to Edit, Channel...and under "Define a new channel" select Math. Give it a name (mymath, m1, whatever) and leave it in display1. You're asked for a Matlab expression: an obvious one is abs(CH1), another is CH1.^2, where CH1 turns out to be the name of a vector variable holding that channel's input values. Then click Add. You should see all three channels now in the Defined Channels pane down below, and their displays. If you OK out of all of that you should now see a display of the absolute value (or square, or whatever) of the sine, the noise on hardware channel 1, and the sine wave on hardware channel 0.

There is a command to freeze the output (maybe just STOP), which stops the streaming. You can set the trigger aquire mode to one-shot, and turn on the the "Fill up the display" radio button. Made sure the trigger type down below is set to "independent", and hit TRIGGER. That will just grab enough samples to fill the display. Or you can set the number of samples to 100 (or whatever) and trigger.

You can reconfigure the hardware using the Edit and Hardware choices, to change the voltage range, the sample rate, chose SingleEnded vs. Differential inputs, etc.

Exit softscope before trying any other DAQ programs, and vice versa. Neither the hardware nor the drivers nor the adaptors nor applications can cope with multiple jobs trying to share the 6009.

Softscope is useful for looking at streaming input: it would be a bit of an exercise to write anything like that display using Matlab, so it's a valid and useful extension to our technology. We often need to set voltage levels in an experiment before sending them to the 6009, get acquainted with your experiment's output, etc. etc. There's a reason experimental labs all have (or used to have!) oscilloscopes.

Lots more features and information in Chapter 10 of the User's Guide. Feel free to explore and become an expert.


Make sure to exit Softscope before initiating other DAQ functionality, as mentioned above.

Last Changes: 4/20/2011: RN