Jump to content

Fausto

MCC Staff
  • Posts

    1,429
  • Joined

  • Last visited

Posts posted by Fausto

  1. @bsee,

    You have an existing application with the DT9812-10V, which is still available.  How is the DT9812 used in the existing application, i.e. number of channels, sampling rate, subsystems?  This information is necessary to match to an equivalent MCC device.

    Note that moving over to a MCC device will require rewriting your application with the MCC Universal Library.  

  2. Hello @bsee.

    The DT9812-10V (Digilent SKU: 6069-410-131) is still available for purchase. 

    The MCC Universal Library for Windows software does not support Data Translation (DT) devices.

    DT devices use DT-Open Layers library (OMNI Software).  The DT9812-10V supports event counting, as do various MCC devices if the decision is to migrate over to other devices and API library.

    Which DT API was used to develop the application, DataAcq SDK or DT-Open Layers for .NET?

     

    Regards,

    Fausto

  3. Hello @metalhouse.

    The USB-2416-4AO can sink up to 150 mA max (per eight channel DIO bank) and supports a voltage level of +15 V.

    Take a look at the following solid-state relay (SSR).

    https://www.phoenixcontact.com/en-us/products/solid-state-relay-module-emg-17-ov-ttl-24dc2-2943259?type=pdf 

    https://www.phoenixcontact.com/en-us/products/solid-state-relay-module-emg-17-ov-ttl-24dc2-2943259

    The +5 output terminal 35 can source 10 mA max. for the SSR.

     

    Regards,

    Fausto

  4. Hello @Przemek.

    Please investigate what changes were made recently to your application, i.e. OS update/upgrade, new host PC, updated DT software, IT changes to PC.

    What type of environment is the DT9805 module in during operation, to suspect a broken connection?

    Please test the DT9805 with Data Translation's QuickDAQ application on that system.  Any issues?

    Please test the DT9805 with a different PC and Data Translation's QuickDAQ application.  Any issues?

    If you have a backup DT9805 module, please swap the modules and retest.

    Please swap out the USB cable and retest.

    If you use a USB hub, retest with an externally powered USB hub or connect the DT9805 directly to the target system.

     

    Regards,

    Fausto

  5. Hello @msmith.

    The MCC USB-3101FS has a low output impedance of 0.1 Ohms and an output update rate up to 100 kS/s per channel.

    The MCC PCIe-DAS1602/16 has an input impedance of 10 MOhms and an aggregate sampling input rate of 100 kS/s, since the analog inputs are multiplexed to the ADC.

    What is the output rate and output range of the signals from the MCC USB-3101FS channels?

    Configure the analog input channels on the MCC PCIe-DAS1602/16 board for differential mode.

    What is the input range of the analog input channels on the MCC PCIe-DAS1602/16 board?  Choose a narrow range.

    Regards,

    Fausto

  6. Posted for @fahiz.

    I am currently developing a custom GUI with Qt, which includes an oscilloscope. I'm utilizing the ADP 3450. My task involves plotting waves with a frequency of 1 million Hz and an amplitude of 1 Vpp. Additionally, it operates in burst mode with a trigger interval of 1 second. Currently, I'm employing FDwfAnalogInAcquisitionMode as scanmodeshift.

    I'm encountering below issues:

    The time range is very limited (currently at 0.2 seconds), which prevents me from observing more than one wave bunch. Ideally, I would like to visualize multiple pulses over a couple of seconds.

    Another issue lies in the plot amplitude, which doesn't reach 0.5 V and -0.5 V. but, increasing the frequency allows it to touch the peaks.

    Could you advise on how to address these issues and suggest the correct method for plotting in such cases?
    I am adding one screenshot also with this.

     

    image.png

     

    I am using the SDK (C++) provided by Waveform, and the Qt version is 5.15.3. I am generating and plotting with the same device (ADP 3450). I also attempted generating from another source. I am providing the header file and source file of the basic Qt code (I am using QCustomPlot for plotting).

    Header (mainwindow.h):

     

    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    
    #include <QMainWindow>
    #include "qcustomplot.h"
    #include <digilent/waveforms/dwf.h>
    #include <unistd.h>
    
    namespace Ui {
        class MainWindow;
    }
    
    class MainWindow : public QMainWindow {
        Q_OBJECT
    
    public:
        explicit MainWindow(QWidget *parent = nullptr);
        ~MainWindow();
    
        void setupRealtimeDataDemo(QCustomPlot *customPlot);
    
    private slots:
        void realtimeDataSlot();
    
    private:
        Ui::MainWindow *ui;
        QTimer dataTimer;
        HDWF hdwf;
        STS sts;
        double hzAcq = 1500000;
        const int nSamples = 2000000;
        QVector<double> rgdSamples;
        int cValid;
        char szError[512];
        double sinAmplitude;
        double sinFrequency;
        double wf_run_time;
        double wf_wait;
    };
    
    #define Wait(ts) usleep((int)(1000000*ts))
    
    #endif // MAINWINDOW_H

     

    Source code (mainwindow.cpp):

    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    #include <fstream>
    
    MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) {
        ui->setupUi(this);
        setGeometry(400, 250, 542, 390);
        setupRealtimeDataDemo(ui->customPlot);
        connect(&dataTimer, SIGNAL(timeout()), this, SLOT(realtimeDataSlot()));
        dataTimer.start(100); // Adjust the interval based on your preference
    }
    
    void MainWindow::setupRealtimeDataDemo(QCustomPlot *customPlot) {
        rgdSamples.resize(nSamples);
    
        if (!FDwfDeviceOpen(-1, &hdwf)) {
            FDwfGetLastErrorMsg(szError);
            return;
        }
    
        FDwfDeviceAutoConfigureSet(hdwf, 0);
    
        // Setup sine wave generation parameters
        sinAmplitude = 1.0;
        sinFrequency = 1000000.0;
        wf_run_time = 0.2;
        wf_wait = 0.8;
    
        // Configure Digilent Analog Out for sine wave generation
        FDwfAnalogOutNodeEnableSet(hdwf, 0, 0, 1);
        FDwfAnalogOutNodeFunctionSet(hdwf, 0, 0, 1); // Sine function
        FDwfAnalogOutNodeFrequencySet(hdwf, 0, 0, sinFrequency);
        FDwfAnalogOutNodeAmplitudeSet(hdwf, 0, 0, sinAmplitude);
        FDwfAnalogOutRunSet(hdwf, 0, wf_run_time);
        FDwfAnalogOutWaitSet(hdwf, 0, wf_wait);
        FDwfAnalogOutRepeatSet(hdwf, 0, 0);
        FDwfAnalogOutConfigure(hdwf, 0, 1);
    
        // Configure Digilent Analog In for data acquisition
        FDwfAnalogInChannelEnableSet(hdwf, 0, 1);
        FDwfAnalogInChannelRangeSet(hdwf, 0, 5);
        FDwfAnalogInAcquisitionModeSet(hdwf, 1); // acqmodeScanShift
        FDwfAnalogInFrequencySet(hdwf, hzAcq);
        FDwfAnalogInBufferSizeSet(hdwf, nSamples);
        FDwfAnalogInConfigure(hdwf, 1, 0);
    
        Wait(2);
    
        FDwfAnalogInConfigure(hdwf, 0, 1);
    
        // Setup the QCustomPlot for visualization
        customPlot->addGraph();
        customPlot->graph(0)->setPen(QPen(QColor(40, 110, 255)));
        customPlot->axisRect()->setupFullAxesBox();
        customPlot->xAxis->setRange(0, nSamples);
        customPlot->yAxis->setRange(-2.5, 2.5);
        connect(customPlot->xAxis, SIGNAL(rangeChanged(QCPRange)), customPlot->xAxis2, SLOT(setRange(QCPRange)));
        connect(customPlot->yAxis, SIGNAL(rangeChanged(QCPRange)), customPlot->yAxis2, SLOT(setRange(QCPRange)));
    }
    
    void MainWindow::realtimeDataSlot() {
        // Fetch data from the Digilent WaveForms device
        FDwfAnalogInStatus(hdwf, 1, &sts);
        FDwfAnalogInStatusSamplesValid(hdwf, &cValid);
        FDwfAnalogInStatusData(hdwf, 0, rgdSamples.data(), cValid); // Get channel 1 data
    
        // Convert QVector<double> to QCPGraphDataContainer
        QCPGraphDataContainer dataContainer;
        for (int i = 0; i < rgdSamples.size(); ++i) {
            dataContainer.add(QCPGraphData(i, rgdSamples[i]));
        }
    
        // Update the plot
        QSharedPointer<QCPGraphDataContainer> dataContainerSharedPointer = QSharedPointer<QCPGraphDataContainer>::create(dataContainer);
        ui->customPlot->graph(0)->setData(dataContainerSharedPointer);
        ui->customPlot->replot();
    }
    
    MainWindow::~MainWindow() {
        delete ui;
    }

     

    I hope this helps! Let me know if you need further details.

  7. Hello @STuson.

    All MCC DAQ HAT boards are compatible with the Raspberry Pi 5.  

    Follow the instructions below to install the MCC daqhats software branch (beta version 1.5.0.0) for RPi 5 modules. 

    https://github.com/mccdaq/daqhats/tree/pi5

    1. $ cd daqhats

    2. $ sudo ./uninstall.sh

    3. $ git pull

    4. $ git checkout pi5

    5. $ sudo ./install.sh

    6. $ pip install daqhats (manually add Python support)

    You can switch back to the released library by uninstalling the library, running “git checkout master”, and then installing the library.

    Use the installed MCC DAQ HAT Manager utility application to verify communication with the MCC 118/MCC 128 or use terminal commands.

    $ sudo daqhats_read_eeproms

    $ daqhats_list_boards

    Do the MCC DAQ HATS work?  Verify the address jumper is in place if required.

    Reply with screen captures and images of your hardware if the issue is not resolved.

    Regards,

    Fausto

  8. Hello @Jonaskb.

    The DT9800 Series driver is 64-bit compatible.  The driver works with LabVIEW 2023 Q3 (64-bit) in a Windows 11 64-bit OS.  We support using Data Translation (DT####) devices in LabVIEW using Data Translation's LV-Link3 library.  We do not have a library for NI DIAdem and have not supported NI DIAdem.

    Please send me the folder with files and instructions to review.

    Regards,

    Fausto

  9. Hello @Joero.

    Thank you for testing the other OS, systems, and cables.  Testing with a Windows 10 system rules out any OS upgrade issue.  Testing with Linux rules out an issue with the Windows driver.  At this point, it appears that the USB front-end circuitry on the MCC USB-CTR08 may be corrupted.  I don't have any other troubleshooting steps and all your results point to non-functional device.  I cannot hypothesize what happened to the device since it initially worked back in October 2023.  Did anyone else use the device since then?  The device does not go bad just by sitting unused for months.  

    Regards,

    Fausto

  10. Hello @Jonaskb.

    We do not provide support for NI DIAdem software.

    On your Windows 11 system, do you have a C:\Program Files (x86)\Data Translation\DeviceDrivers\DT9800 directory with files?

    With the DT9803 device connected to your Windows 11 system, install Data Translation's QuickDAQ application and then launch it.  Does the application detect the DT9803?  If so, then add the device to the right-side column and continue with QuickDAQ.  Once in the QuickDAQ environment, press the start acquisition or record button to capture data.  If that all works, then the issue is not with the DT9803.

     

    Regards,

    Fausto

×
×
  • Create New...