Skip to content

Pixelpulse2 is a user interface for analog systems exploration.

License

Notifications You must be signed in to change notification settings

analogdevicesinc/Pixelpulse2

Repository files navigation

Pixelpulse2

Windows Status OSX Status License

Pixelpulse is a powerful user interface for visualizing and manipulating signals while exploring systems attached to affordable analog interface devices, such as Analog Devices' ADALM1000.

Fully cross-platform using the Qt5 graphics toolkit and OpenGL accelerated density-gradiated rendering, it provides a powerful and accessible tool for initial interactive explorations.

Intuitive click-and-drag interfaces make exploring system behaviors across a wide range of signal amplitudes, frequencies, or phases a trivial exercise. Just click once to source a constant voltage or current and see what happens. Choose a function (sawtooth, triangle, sinusoidal, square) - adjust parameters, and make waves.

Zoom in and out with your scroll wheel or multitouch gestures (on supported platforms). Hold "Shift" to for Y-axis zooming.

Click and drag the X axis to pan in time.

Screenshot

Screenshot of PP2 on Windows 7

Getting Pixelpulse2

Easy

  • OSX - Navigate to the releases and collect the latest pixelpulse2-<OS-version>.dmg package, specific for you OS version.
  • Windows - For a testing build, download the dependency package and the latest binary build from appveyor. For an official release build, navigate to releases and collect the latest pixelpulse2-setup.exe.
  • Linux - Build from source (below)

Advanced

To build from source on any platform, you need to install a C++ compiler toolchain, collect the build dependencies, setup your build environment, and compile the project.

If you have not built packages from source before, this is ill-advised.

  • Build and install libsmu (https://github.com/analogdevicesinc/libsmu). Libsmu is a library wich contains abstractions for streaming data to and from USB-connected analog interface devices, currently supporting the Analog Devices' ADALM1000.
  • Install Qt5. We recommend using a version greater than or equal to 5.14.
  • On most Linux Distributions, Qt5 is available in repositories. The complete list of packages required varies, but includes qt's support for declarative (qml) UI programming, qtquick, qtquick-window, qtquick-controls, and qtquick-layouts.

To build / run on a generic POSIX platform

git clone https://github.com/analogdevicesinc/Pixelpulse2
cd Pixelpulse2
mkdir build
cd build
cmake ..
make

On Windows the process is similar. Write the following commands in a cmd console

git clone https://github.com/analogdevicesinc/Pixelpulse2
cd Pixelpulse2
mkdir build
cd build
cmake -DLIBSMU_LIBRARY="path_to_libsmu_dll" -DLIBSMU_INCLUDE_PATH="path_to_libsmu_include_folder" -DLIBUSB_INCLUDE_DIRS="path_to_libusb_include_folder" ..
make

After it is finished building, you have to copy the libsmu shared library into the build folder and Pixelpulse2 should be ready to use with your M1K

To build / run on Ubuntu

  • Please note that you make encounter issues if you are running a version of Ubuntu lower than 15.04, because the version of QT in the repositories will likely be less than 5.4 (this also applies if you are running a Linux distribution that uses an older version of Ubuntu, for example Linux Mint 17.1, which uses Ubuntu 14.04.)

  • The build process is tested and supported on Ubuntu 16, 18 and 20.

  • Get ready

    sudo apt-get update
  • Build and install libsmu (https://github.com/analogdevicesinc/libsmu)

  • Install Qt5 and some Qt modules

    sudo apt-get install -y qt5-default qtdeclarative5-dev qml-module-qtquick-dialogs qml-module-qt-labs-settings qml-module-qt-labs-folderlistmodel qml-module-qtqml-models2 qml-module-qtquick-controls
  • Make a new folder, clone the pixelpulse library into it from git, and build it!

    mkdir development
    cd development
    git clone https://github.com/analogdevicesinc/Pixelpulse2
    cd pixelpulse2
    mkdir build
    cd build
    cmake ..
    make
  • Make sure your M1K is plugged into your computer. The onboard LED should light up when it is connected. You can double-check by typing lsusb. You should see something along the lines of ID 064b:784c Analog Devices, Inc. (White Mountain DSP)

  • You should be ready to launch Pixelpulse2. First, go to the directory it was built in:

    cd ~/development/pixelpulse2/build
  • Run Pixelpulse2

    ./pixelpulse2