Git Product home page Git Product logo

afdaq's Introduction


Logo

Arduino Firmata Data Acquisition (AfDaq)

A plug and play MATLAB based tool for biofeedback and Arduino based instruments
Explore the docs »



Table of Contents

About the project

screenshot

AfDaq (Arduino Firmata Data Acquisition) is an open-source plug-and-play MATLAB-based tool for biofeedback and Arduino-based instruments, which offers the capabilities of multi-channel real-time data acquisition, visualization, manipulation, and local saving of data for offline analysis.
The researchers (especially from biofeedback or physiological measurement domain) or hobbyist, who are using MATLAB and want to acquire data from Arduino or to control Arduino-based instruments can use this tool.

Built with

This GUI tool is built using the Guide tool in MATLAB-v2017b. For the hardware, any Arduino compatible board can be used which is supported by MATLAB.

Features

  • Plug and play system (no need to separately upload any code on Arduino board).
  • Real-time multi-channel data acquisition from supported digital or analog channels.
  • Sampling rate of -
    • 10 Hz when using all 5 channels simultaneously
    • 40 Hz when using single-channel acquisition.
  • Real-time data visualization (in scroll plot) and data manipulation (with custom functions).
  • Local saving of data in .xlsx format for offline analysis.
  • Screenshot of current GUI for reference purpose.

Why another acquisition program?

Researchers in the biofeedback domain or working on Arduino-based instruments often require a quick-to-deploy system to acquire real-time data from Arduino and for further analysis transfer the data in MATLAB. For this, MATLAB has provided MATLAB Support Package for Arduino Hardware which eases the data acquisition need from Arduino compatible hardware by automatically updating firmata code on Arduino board and providing functions for data acquisition. However, at present, its use in physiological research is limited due to severe timing jitter associated with data acquisition.

This software tool aims to reduce the timing jitter and provides precise time stamps during data acquisition.

Getting started

Working with AfDaq is a straightforward process. Make sure you have prerequisites available and follow the steps below.

Prerequisites

MATLAB-ver2017b was used to develop the AfDaq. It was also tested with ver2015b and ver2018b for backward and forward compatibility respectively. It may not work with ver20xx and before due to the unavailability of compatible MATLAB Support Package for Arduino Hardware.

For the list of the supported boards, visit documentation here.

Installation and running

  1. Download the latest stable release and extract contents into your MATLAB working directory. Alternatively, you can also download the latest code from the repository.
  2. Open AfDaq.m in MATLAB.
  3. Connect Arduino board to PC with USB cable. If the board is pre-configured with Firmata code by MATLAB, a message is shown in the command window.
  4. Run AfDaq.m and wait for the GUI to appear.
  5. In the GUI select the COM port for the Arduino and press the Connect button. If the Arduino is not pre-configured with Firmata code by MATLAB, it may take few minutes (It's a one-time process in the beginning OR if the board is re-flashed outside).
  6. After a successful connection, appropriate settings can be selected and acquisition is manually started.
  7. The acquisition runs till a set time or can be stopped manually.
  8. After successful completion, the information panel shows various statistics related to the acquisition.
  9. Data can be saved for offline processing.

Usage

Use this space to show useful examples of how a project can be used. Additional screenshots, code examples, and demos work well in this space. You may also link to more resources.
For more examples, please refer to the Documentation.

Examples

To be added.

Documentation

The documentation is available at https://kulbhushanchand.github.io/AfDaq/

Roadmap

See the open issues for a list of proposed features (and known issues).

Contributing

Any contributions you make are greatly appreciated. You can contribute to this project in the following ways :

  • Add new functionality
  • Review code
  • Raise issues about bugs/features/doubts
  • Proof-read the documentation
  • Cite if used in a publication
  • Star on GitHub
  • Share with others

Please note that this project is released with a Contributor Code of Conduct. By contributing to this project you agree to abide by its terms.

License

This project is distributed under the GPLv3 License. See LICENSE for more information.

Citation

This software code is a part of the open-source project AfDaq: An Open-source MATLAB-based Real-time Multi-channel Data Acquisition Tool for Biofeedback and Arduino-based Instruments. The paper explaining the design and development, and usage of this work in multimodal biofeedback is published in Journal of Information Technology Research (JITR). You can cite this work (by citing the paper published for this work) as -


Chand, K., & Khosla, A. (2022). MATLAB-Based Real-Time Data Acquisition Tool for Multimodal Biofeedback and Arduino-Based Instruments: Arduino Firmata Data Acquisition (AfDaq). Journal of Information Technology Research (JITR), 15(1), 1–20. https://doi.org/10.4018/JITR.299922

OSF | AfDaq: An Open-source MATLAB based Real-time Multi-channel Data Acquisition Tool for Biofeedback and Arduino based Instruments. (n.d.). Retrieved September 15, 2022, from https://osf.io/vctjm/

Chand, K. (2021). Kulbhushanchand/AfDaq [MATLAB]. https://github.com/kulbhushanchand/AfDaq (Original work published 2019)

Acknowledgment

I would like to thank my PhD supervisor Prof. Arun Khosla at Dr B R Ambedkar National Institute of Technology for his guidance and kind support. I also want to acknowledge the open-source tools used in some parts of this project.

  • RStudio is used for statistical analysis and visualizations.
  • drawio-desktop is used to create logo and diagrams.

Contact

Kulbhushan Chand

afdaq's People

Contributors

kulbhushanchand avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

afdaq's Issues

Possible transfer to App Designer

Hi,

I tried to convert your GUI to MATLAB App Designer. I successfully managed to migrate to the app however upon running I have quite a lot of errors. I was wondering if you have tried yet to migrate to app designer?

Fix typos in README.md

Fic some minor typos and grammatical mistakes. Possibly restructure or change text as per the documentation.

Create demo videos

Create a demonstration video explaining the process of data acquisition.
Some ideas:

  • Video 1:
    • Create a simple circuit with a LDR and a pushbutton
    • Data acquisition from analog channel for LDR and digital channel for pushbutton
  • Video 2:
    • Acquire heart rate beats from PPG sensor
  • Video 3:
    • Acquire data from EDA sensor

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.