EasyDAQ is a test software application intended for demonstrating the Stream Mode operation of openDAQ. The software is a compiled executable from the Python example files, created with Python 3.6.

As it is explained in the Manual, Stream Mode is a way of interacting with openDAQ in which the device is configured to perform certain actions (e.g. read one of the analog inputs) at hardware controlled moments (e.g. every 50ms). These programmed actions are called Experiments, and openDAQ can execute up to four of them at the same time.

Depending on the control source, there are three types of experiments:

  • Stream: Regular scans, up to 1000 samples per second
  • External: Scans are triggered by an external digital input
  • Burst: Regular scans, up to 10.000 samples per second, only one experiment at a time.

EasyDAQ allows configuring and testing experiments of the first two types.

The demo is intended to demonstrate Stream mode, but some of the features of the system have not been implemented and are not possible to use, like Burst mode, start signal triggering and more. This demo allows configuring up to three experiments as analog inputs, in Stream or External modes. The fourth available experiment is an analog output type, also available in both Stream and External modes. Other types of I/O and experiment modes are not available in this demo.

Python repository for EasyDAQ demo (Github)



The first thing that we must do to use this software is connecting to the openDAQ. The instrument uses a VCP driver to communicate via USB with the computer, so a new serial port will appear in your PC after you plug it.

If you are working in Windows, you can go to System/Device Manager, in the Control Panel, to check the name of the port that the openDAQ device is using.

The name of the port could be something like /dev/ttyUSB0 in Linux or dev/tty.SLAB_USBtoUART in Mac. Ports are listed in /dev/ directory at both OS.

To work with openDAQ you must select the appropriate port number in the program settings.

After connection, information about the device hardware and firmware versions will be displayed in the bottom of the application.


Software operation

We can distinguish the following sections in the main window of EasyDAQ:

  • Main toolbar
  • Experiment controls
  • Waveform generator control
  • Graphic area


Main Toolbar:

Besides the connection configuration icon, which we have already used to connect the software with the device, there are more icon tools in the main toolbar, and they are the following ones (left to right order):

  • Play: Start the experiments that have been configured and are active.
  • Stop: Once started, if continuous mode has been selected for any of the experiments, the analog acquisition will continue indefinitely until the Stop button is pressed, or the software is closed.
  • Export to CSV: Export the graph data to a text file in CSV format, which is readable from Excel and similar spreadsheet programs.
  • Manual axis settings: Allows to manually define maximum and minimum axis settings, linear or logarithmic scale, and customized titles.
  • Zoom home: Restore default zoom.
  • Pan: Drag and drop over the graph window with the mouse to select the viewing area.
  • Manual zoom: Select an area over the graph window to zoom over it.
  • Export PNG: Export a picture of the graphic area. 


Experiment controls

Three of the experiments have been pre-configured to be of analog reading type. Each one has been given a specific color in the interface. Clicking on Configure button for each experiment will launch the following menu:

  • Type: Selects using Stream or External mode. The rate value will not be used in this last case.  Instead, the device will use external interrupts on pins D1 to D3 (the number is correlated with the experiment number) as a trigger. An external digital signal should be applied on that pin to control analog acquisition.
  • Mode: The device can be configured to perform the experiment continuously, until the user stops it in the software, but they can also be configured to capture a certain number of points and then stop automatically.
  • Ch+: Set up the positive input for the analog acquisition. It can be any input from A1 to A8.
  • Ch-: Set up the negative input for the analog acquisition. For openDAQ-N, it can be any input from A1 to A8 or AGND. For [S] version, negative channel must be the adjacent analog input couple (A7 for A8, A6 for A5, and so on), or GND for a SE reading.
  • Range: Input voltage amplification range for the selected analog inputs. 
  • Samples to read: For each point, the device will make up to this number of analog to digital conversions. Then, the result for the analog value will be the mean of these conversions.
  • Rate: The sampling rate to get a chart graph of the selected inputs. You can select periods from 1ms to 65535ms. The control is executed by hardware and so the delays are accurate.


Waveform generator

The EasyDAQ demo for Python has a special control that allows using openDAQ as a function generator, configuring an experiment in analog output mode. This utility uses Experiment 4 DataChannel structure. Clicking on the Configure button, the interface will display the following menu:

  • Mode: Select the type of waveform to generate, sine, square, sawtooth, triangle, constant. It also allows the possibility to load a text file with a list of potentials (in CSV format) to be executed in sequence, thus virtually allowing the generation of any shape of waveform.
  • DC Value: Select the mean value of the signal.
  • Amplitude: Select the total amplitude of the signal, peak to peak value.
  • Period: Configure the total period of the waveform. Note that in these types of experiments the minimum period is 1 second, which sets the maximum resolution to the signals depending on their shape. For example, a sine waveform with 20ms of period would be defined by only 20 points, which is not a good resolution for this type of signal.



In the graph area, a plot of analog inputs versus time will start to be represented after Play button is pressed. The graph will be cleared out every time the acquisition begins.



See also DAQControl Demo