Android™-based tablets and smartphones are growing at a phenomenal rate. You can do so much on them – why not use them for data acquisition applications?
With the Universal Library (UL) for Android API, you can easily create custom data acquisition apps for Android devices. UL for Android communicates with supported Measurement Computing DAQ devices over the Android 3.1 platform (API level 12) and later.
The first data acquisition board supported by UL for Android is the BTH-1208LS. The BTH-1208LS was designed with tablets and smartphones in mind as it offers reliable and easy-to-set-up Bluetooth connectivity along with rechargeable batteries. Later in 2013, UL for Android will be expanded to support a full line of MCC USB data acquisition devices. For a full list of data acquisition devices supported by UL for Android, please visit http://www.mccdaq.com/ULforAndroid.
Step 1 – Download Android SDK
Download the Android Software Development Kit (SDK) for free at http://developer.android.com/sdk/index.html.
While most text-based data acquisition programs are created with C#, most Android development is performed in Java. Luckily for C# programmers, the two languages have similar syntax.
Even though the syntax's are similar, if you are unfamiliar with the Android OS and Java programming, you should first study the Android OS features and the Java API.
Step 2 – Download “UL for Android”
Download “UL for Android” for free at http://www.mccdaq.com/ULforAndroid.

Before you begin programming your DAQ application, it is important to understand the classes that you need to work with to communicate with MCC data acquisition products. The following table describes the most important Universal Library for Android classes. For a complete list and detailed description of the API, please consult the “UL for Android” help file.
Class |
Description |
DaqDeviceManager |
Allows you to detect and create DAQ devices. |
DaqDevice |
Represents a DAQ device and contains methods to access its I/O subsystems, identifying information, and configurations. |
AiDevice |
Represents an analog input subsystem on a DAQ Device, and contains analog input methods such as aIn() and aInScan(). This class also contains methods to access AI subsystem information and configuration. |
AoDevice |
Represents an analog output subsystem on a DAQ device, and contains analog output methods such as aOut() and aOutScan(). This class also contains methods to access AO subsystem information and configuration. |
DioDevice |
Represents a digital I/O subsystem on a DAQ device, and contains digital I/O methods such as dIn() and dOut(). This class also contains methods to access DIO subsystem information and configuration. |
CioDevice |
Represents a counter I/O subsystem on a DAQ device, and contains counter I/O methods such as cIn() and cClear() This class also contains methods to access CIO subsystem information and configuration. |
TmrDevice |
Represents a timer I/O subsystem on a DAQ device, and contains timer I/O methods such as tmrOutStart() and tmrOutStop(). This class also contains methods to access Tmr subsystem information and configuration. |
Step 3 – Download Android Example Projects
MCC provides an array of examples to get you up a running quickly. The examples, listed in the table below, offer a variety of DAQ functionality. The example projects can be compiled into downloadable apps.
Some of the examples below are also available as ready-to-run demo apps on Google Play™.
Example Project Name |
Description |
AIn |
Reads an A/D input channel. |
AIn_Log |
Reads a range of A/D input channels at a specified rate, and stores the acquired data in a .csv file. |
AInScan |
Scans a range of A/D input channels and stores the sample data in an array. |
AInScan_Continuous |
Scans a range of A/D input channels continuously in the background and stores the data in an array. |
AInScan_Events |
Scans D/A channels, displays the latest sample acquired every EventSize or more samples, and updates the latest sample upon scan completion or end. |
AInScan_ExtClock |
Scans a range of A/D input channels and stores the sample data in an array at a sample rate specified by an external clock. |
AInScan_ExtTrigger |
Selects the trigger source used to initiate the A/D conversion using DaqDevice.aInScan() with the AiScanOption.EXTTRIGGER option. |
AInScan_LoadQueue |
Prepares a channel gain queue and loads it to the board. An analog input function demonstrates how the queue values work. |
AInScan_Plot |
Scans a range of A/D input channels continuously in the background, and plots the latest acquired samples. |
AOut |
Writes a value to a specified D/A output channel. |
AOutScan |
Writes values to a specified D/A output channel. |
CIn |
Resets and reads the event counter. |
DBitIn |
Reads the status of single digital input bit. |
DBitOut |
Sets the state of a single digital output bit. |
DBitSetIn |
Configures the selected port for input, if necessary, then reads and displays the value on the port. |
DIn |
Reads a digital input port. |
DOut |
Writes a value to a specified digital output port. |
TIn |
Reads a temperature channel and displays the value. |
TmrOut |
Sends a frequency output to a specified timer. |
Step 4 – Import Example Source Code into Eclipse
Eclipse is an Integrated Development Environment (IDE) that is included with the Android SDK (ADT Bundle). The steps below will import the “UL for Android” example project into the Eclipse workspace:
- Run Eclipse, choose a workspace folder, and click OK. To create a new folder, enter a name in the Workspace textbox.
- Select File»New»Project. The New Project dialog box opens.
- Expand the Android folder, select Android Project from Existing Code, and click Next. . The Import Projects dialog box opens.
- Click Browse and navigate to the folder containing the example projects.
- Select the Copy projects into workspace checkbox. . When this checkbox is selected, the projects are copied into the current workspace. This is useful if you want to maintain a copy of the example project that is separate from the source file. If you do not select this checkbox, any modifications to the example project are made to the source file.
- Click Finish.
- Select Window»Show View»Package Explorer to open the example in the Package Explorer.
Step 5 – Deploying and Running the Example App on a Connected Device
Before you can run the example apps, you must set up the device as follows:
- Enable USB debugging on the Android device. Refer to the device documentation for more information about how to do this.
- If using a Bluetooth data acquisition device, make sure that the device is already paired with the host Android system.
The steps below will complete the process to deploy and run the app on an Android tablet or smartphone.
- From the Package Explorer, select the folder containing the project to run.
- Select Run»Run and choose Android Application from the Run As dialog box that opens; click OK. Eclipse installs the example app on the connected device; the example automatically opens when installation is complete.