Digiducer® Software Development

Customize Code for Digiducer USB Digital Accelerometer

For software developers interested in customizing code for the 333D01, we have a collection of tools below to help you. Please email us at  digiducer@modalshop.com to share your favorite solution to add one to our list or to let us know if you would like to add support optimized support for Digiducer digital sensors.

Not sure that your sensor is connected? See our Quick Start Guides to help you get started.

No drivers or DLL’s required! USB Audio drivers are standard in most operating systems (iOS, Windows, MacOS, Android)

MATLAB®

The 333D01 USD Digital Accelerometer works very well with MATLAB, especially with the DSP Toolbox. There are several options for accessing the vibration data in MATLAB. Example scripts using each of these access methods are available for  download.

  • Measuring vibration with... Audiorecorder Object: MATLAB’s audiorecorder object uses the Windows DirectSound drivers to vibration access the sensor. This means that you will have to manage the vibration sample rate through the Recording Devices panel.
  • Measuring vibration with... ASIOControl: The University of Birmingham released an ActiveX control for interfacing with ASIO4ALL in MATLAB.  ASIOControl provides a graphical user interface for managing the vibration sample.
  • Measuring vibration with... Dsp.AudioRecorder Object: The DSP toolbox has its own AudioRecorder object, which has the added benefit of interfacing with ASIO such as via ASIO4ALL. It gives you complete control over the vibration sample rate, bit depth, block size, and other parameters. This is the recommended method of MATLAB access.

LabVIEW™

For developers looking to write a LabVIEW application to gather vibration data with the 333D01, source code for a LabVIEW example application is available for download here.

LabWindows™/CVI

LabWindows application source code from National Instruments is available for developers. LabWindows 'C' code can also serve as a reference for those writing their own standalone Windows application using the WaveIn command. While using the LabWindows graphical user interface framework, it contains many of the same calls to Windows to access data. Click here to download it.

Sample Code

Example code for the 333D01 can be found on Digiducer's GitHub page, including new C# examples. C# simplifies writing custom applications for the Digiducer. Using the NAudio library in C# makes it easy for developers to access and store data from recording devices. Check this out and more on GitHub.

Example code for the 485B39 can be found on 485B39's Example Code page. This project shows some basic examples and some tools.

Using the Embedded USB Digital Accelerometer Calibration Values

The 333D01 is calibrated with units of , which highlights the sensor’s digital output. When capturing data from the sensor, the data is transmitted in the form of 16 or 24-bit samples, depending on what is requested. Depending of the application, these may be interpreted as positive and negative integers from -223 to 223 (for 24-bit), a percentage, or as a normalized floating point decimal from -1 to 1. If represented in decibels (dB), the value is relative to the maximum quantization level, called  full scale (dBFS). A full scale value of 0.10 means 10% of the maximum value, or -20dBFS. In magnitude form, full scale is typically represented as a percentage (percent full scale or %FS).

The  USB Audio Interface Guide provides important details on how to develop software to utilize full capabilities such as the calibration data, implementation tips, as well as conversion between several units. In addition, a  Microsoft Excel® calibration spreadsheet is available that will use the calibration values to generate constant scale factors that can be applied to data to convert it directly to engineering units.

A fully optimized application should query the serial number and/or model number fields (the model number should be more accessible) of the USB descriptor to read the calibration values, then apply the values directly to the incoming data stream to represent the output in engineering units.

® All trademarks are property of their respective owners