Test application for Hi-Precision AD/DA expansion board for Raspberry Pi 3 – part I

About Hardware.

The WaveShare Hi-Precision AD/DA board is designed as an expansion board for Raspberry Pi and Jetson Nano. It has a 8-channel analog-to-digital converter chip (ADS1256) and one 2-channel digital-to-analog converter chip (DAC8552). More details can be found here: (https://www.waveshare.com/wiki/High-Precision_AD/DA_Board).
The WaveShare documentation is referring to Raspberry Pi running Linux and the source code examples was written in C and Python. To support SPI communication between Raspberry Pi and ADS1256 it uses bcm2835 or wiringpi library.

Application Features.

The application aims to test WaveShare-ADS1256 expansion board of Raspberry Pi 3 using the different set of input parameters in different modes.
I have used Kubuntu 22.04 as a development system to generate Linux image/SDK for Raspberry Pi3 by using Boot2Qt build tool.
More details about how to build Raspberry Pi image and install cross-platform SDK you can find by the next links:

More details about how to build Raspberry Pi image and install SDK you can find by the next links:

1. Creating Raspberry Pi 3 image using Boot2Qt project or
2. Yocto boot2qt for the Raspberry Pi 4, both Qt 5.15 and 6.2
3. How to Set Up a Cross-Compilation Development Environment on Ubuntu 18.04 for Raspberry Pi 2/3

The application is written by using a mix of QML (GUI interface) and C++ (back-end) languages as a QtCreator project. It uses Qt 5.15.7 and bcm2835 libraries that are parts of the Linux image building process. I use touchscreen with 1280×720 resolution
The application supports the next acquisition modes:

  • one plus more single-ended (SE) channels
  • one plus more differential-ended (DE) channels
  • continues mode for one SE or DE channel

After finishing the acquisition process you can see the results

Also the application supports so called “voltmeter” mode in which it is displaying the current volt values of selected channels. In this mode the application is polling the selected channels every 17 milliseconds.

The source code could be found at the git repository here…