View on GitHub

Simple Device Model

An open source instrument control and data acqusition framework

Simple Device Model (SDM) is an open source instrument control and data acquisition framework for Windows and Linux. It provides interactive GUI tools for operating devices and visualizing the received data. It is also fully scriptable with Lua.

A device is represented in SDM as a set of control channels and data sources, hence the “model”. SDM interacts with devices by writing and reading registers and memory blocks in the device’s virtual address space, and by reading data streams from the device. The actual code that communicates with hardware is encapsulated within a plugin. SDM framework is well documented and includes an SDK which contains headers and libraries to develop plugins in C and C++ as well as a few example plugins.

SDM was created to make hardware engineers’ life easier by reducing the amount of coding necessary to get the device up and running. SDM is most useful for prototyping, allowing the developer to quickly create virtual control panels and dashboards. Scriptability makes it also well suited for test and measurement automation.

Screenshots

SDM provides multiple methods of data visualization, such as 2D plot (oscillogram), bar chart, scrolling image and binary representations.

sdmconsole main window screenshot

Register map provides access to the device’s virtual address space. Values can be entered directly or with the help of drop-down lists, combo boxes and push buttons. Register map tables are fully editable in GUI.

sdmconsole register map screenshots

Download

The latest release, 1.0.6, was published on 2022-08-28.

Building

Building SDM from source requires CMake and Qt5. For Ubuntu, the prerequisites can be installed as follows:

sudo apt install build-essential qtbase5-dev qtbase5-dev-tools libqt5svg5-dev qttools5-dev \
qttools5-dev-tools qttranslations5-l10n qt5-image-formats-plugins cmake

Then, the SDM framework can be built:

wget https://github.com/SimpleDeviceModel/sdm/releases/download/1.0.6/SDM-1.0.6-src.tar.gz
tar -xzf SDM-1.0.6-src.tar.gz
cd SDM-1.0.6-src
mkdir build
cd build
cmake ../src
make -j
sudo make install

By default, SDM will be installed to /usr/local. Refer to the manual (PDF) for detailed build instructions.

Windows builds of SDM were linked against Qt 5.6.3. Other versions of Qt can be downloaded from the Qt website.

Documentation

Examples shipped with the SDM framework:

License

Simple Device Model framework is licensed under the terms of the GNU Lesser General Public License, either version 3 of the License, or (at your option) any later version. The SDK is licensed under the terms of the MIT license. See license.txt for details.