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.
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.
Download
The latest release, 1.0.6, was published on 2022-08-28.
- SDM-1.0.6-setup-x64.exe - for 64-bit Windows
- SDM-1.0.6-setup-x86.exe - for 32-bit Windows
- SDM-1.0.6-src.tar.gz - sources (multi-platform)
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:
uartdemo
– an example plugin communicating with an Arduino Uno board over the serial port.testplugin
– a purely software plugin to help you get acquainted with the program interface (no extra hardware required).
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.