| Literature DB >> 30104474 |
Daniel M Jenkins1, Ryan Kurasaki2.
Abstract
Advances in scientific knowledge are increasingly supported by a growing community of developers freely sharing new hardware and software tools. In this spirit we have developed a free Android app, ABE-VIEW, that provides a flexible graphical user interface (GUI) populated entirely from a remote instrument by ascii-coded instructions communicated wirelessly over Bluetooth. Options include an interactive chart for plotting data in real time, up to 16 data fields, and virtual controls including buttons, numerical controls with user-defined range and resolution, and radio buttons which the user can use to send coded instructions back to the instrument. Data can be recorded into comma delimited files interactively at the user's discretion. Our original objective of the project was to make data acquisition and control for undergraduate engineering labs more modular and affordable, but we have also found that the tool is highly useful for rapidly testing novel sensor systems for iterative improvement. Here we document the operation of the app and syntax for communicating with it. We also illustrate its application in undergraduate engineering labs on dynamic systems modeling, as well as for identifying the source of harmonic distortion affecting electrochemical impedance measurements at certain frequencies in a novel wireless potentiostat.Entities:
Keywords: Arduino; Bluetooth; graphical user interface; open-source design; potentiostat; rapid prototyping; test equipment; virtual instrumentation
Year: 2018 PMID: 30104474 PMCID: PMC6111993 DOI: 10.3390/s18082647
Source DB: PubMed Journal: Sensors (Basel) ISSN: 1424-8220 Impact factor: 3.576
Comparison of ABE-VIEW features to alternative software for GUI development for custom hardware. The key features that we believe facilitate use by inexperienced developers are flagged in red.
| Tool | Standalone Mobile App |
| Android | iOS | PC/Windows/Linux | Direct Support for Wireless Bluetooth |
| Easy user Options to Save/Share Data | High Quality Graphical Displays | Numerical Controls with Arbitrary Precision | Easily Scalable Structured Coding (Cut/Paste/Edit) | Can Operate without Internet | Can Connect to Hardware through Internet |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ABE-VIEW | √ |
| √ | × | × | √ |
| √ | √ | √ | √ | √ | × |
| Blynk [ | √ |
| √ | √ | × | √ |
| √ | √ | √ | × | × | √ |
| MIT App Inventor [ | × |
| √ | × | √ 1 | √ |
| √ | √ | √ | × | √ 1 | √ |
| Arduino Dashboard [ | × |
| × | × | √ | × |
| √ 2 | √ | × | √ | √ | × |
| EzScrn [ | × |
| × | × | √ | × |
| × | × | × | √ | √ | × |
| Instrumentino [ | × |
| × | × | √ | × |
| √ | √ | √ | √ | √ | × |
| SerialComInstruments [ | × |
| × | × | √ | × |
| √ | √ | √ | × | √ | × |
| Arduino Graph [ | × |
| × | × | √ | × |
| × | × | × | √ | √ | × |
| ProviewR [ | × |
| × | × | √ | × |
| × | √ | √ | √ 3 | √ | √ |
1 App/GUI is configured in a browser, with internet connection to a companion app. 2 All serial data is recorded in a logging window. 3 Development options include graphical editor or structured code (C, C++, Java, FORTRAN).
Figure 1Class Diagram for ABE-VIEW app illustrating the attributes of various elements of the GUI, as well as the relationship between data communicated to the app and data records that are plotted on an optional chart or saved as a comma delimited file.
Figure 2Illustration of ABE-VIEW graphical interface with customizable elements including: (a) interactive chart; (b) up to 16 data fields with text headings; (c) up to 8 buttons; (d) up to 8 numerical controls with customizable range and resolution; (e) up to 4 radio groups with up to 4 radio buttons each, and; (f) options menu while connected to remote instrument. All elements between the chart and options button are contained in a scrollview to ensure they are all accessible to the user.
Coded instructions from remote device to populate ABE-VIEW interface, and share data.
| Code | Description | Options 1 | Example Text String(s) | GUI Result |
|---|---|---|---|---|
| g | display chart | enable (0 or 1) | “g1\t” | Graph visible (i.e., |
| h | configure data heading/options | heading index (0–15) | “h2\t1\tBlue: \t” | Data (index 2) enabled with checkbox to plot on graph, with heading “Blue: (i.e., |
| b | configure button | button index (0–7) | “b0\tLED Toggle\t” | Button (index 0) enabled, with label “LED Toggle” (i.e., |
| c | configure numerical control | control index (0–7) | “c4\t3\t-0.015\t0.007\t0.015\tExposure time\t” | Numerical control (index 4) enabled, with 3 decimal place precision, range −0.015 to 0.015, default value 0.007, labelled “Exposure time” ( |
| r | configure radio buttons | radio group index (0–3) | “r0\tSensor Select\tLocal\tRemote\t\t\t” | Radio group (index 0) enabled, group label “Sensor Select” with buttons “Local” and “Remote” |
| d | send data | data index (0–15) | “d2\t1141\t” | New data element (“1141”) for data array index 2 |
| p | set period for automatically concatenating latest data into array(s) | period (in seconds) | “p10\t” | Most recently communicated value in each data field (and system time) will be automatically concatenated into its corresponding ArrayList every 10 s |
| u | concatenate most recent data into array(s) | n/a | “u” | Most recently communicated value in each data field (and system time) will immediately be concatenated into its corresponding ArrayList |
1 Tab (“\t”) delimited configuration options appended to code.
Coded information from ABE-VIEW to remote device indicating user interactions with GUI.
| Code | Description | Options 1 | Example Text String (s) | Response to User Action |
|---|---|---|---|---|
| s | device connected—request GUI configuration | n/a | “s” | User/app just connected to remote Bluetooth (request GUI configuration) |
| b | button pressed | button index (0–7) | “b0\t” | Button (index 0) pressed |
| c | control value changed | control index (0–7) | “c0\t100.0\t” | Control (index 0) set to 100.0 |
| r | radio button pressed | radio button identifier (“ij”) | “r12\t” | Second button in first radio group was pressed |
1 Tab (“\t”) delimited configuration options appended to code.
Figure 3Flowchart for (Bluetooth) communications between ABE-VIEW and remote instrument/device. Upon making a Bluetooth connection with the remote device, ABE-VIEW sends a code ‘s’ that prompts the latter to return coded instructions to populate the interface. Thereafter, user interactions with the GUI result in coded instructions sent to the remote device, and coded data from the remote device are displayed by the app.
Figure 4(a) Implementation of ABE-VIEW to set the frequency and amplitude of (b) the control signal to custom potentiostat network. The control voltage (VB) into the potentiostat network is composed of a weighted sum and inversion of the voltage from a digital synthesizer (VA) of a network analyzer chip (Analog Devices AD5933) with AC coupling, and a low pass filtered digital to analog converter voltage to apply arbitrary DC bias. This enables the device to perform any basic potentiometric or amperometric method in 2 or 3 electrode configuration, as well as electrochemical impedance analysis with arbitrary bias.
Figure 5(a) Motion control system assembled by students using off-the-shelf components (Sparkfun RedBoard, BlueSMiRF Silver, Big Easy Motor Driver, and 12 V bipolar 200 steps/rev stepper motor), and (b) student populated ABE-VIEW interface to control the system to operate the motor to drive a custom pipette/syringe pump.
Figure 6(a) Data acquisition system assembled by students using off the shelf components (Sparkfun RedBoard, BlueSMiRF Silver, 2 MAX31855 thermocouple breakout boards with type K thermocouple, and bi-directional logic level converter) to record the dynamic performance of a thermal cycler with a student designed heat sink, and; (b) student populated ABE-VIEW interface for data acquisition.
Figure 7Recorded signals from digital synthesizer of network analyzer (VA) and output of summing junction (VB) for potentiostat operating to deliver 10 mVpeak at (a) 76.29 Hz; (b) 747.7 Hz, and; (c) 7507 Hz, with network analyzer running on 250 kHz external clock. The control signal VB consistently exhibits a few more mV of random noise, but large additional harmonic distortions near 750 Hz result in HH (d) very significant errors in admittance and system phase of a resistor as predicted by the network analyzer. Note that the synthesizer output VA is inverted and divided by 10 to scale with the predicted value of control signal VB, and the frequency at which the phase accumulator is updated for the synthesizer (62.5 kHz) is easily observable in the 7507 Hz signal (c).