Giter VIP home page Giter VIP logo

analogdevicesinc / isensor-fx3-eval Goto Github PK

View Code? Open in Web Editor NEW
11.0 5.0 6.0 49.36 MB

Analog Devices IMU/ADcmXL Evaluation GUI built on the iSensor-FX3-API (for EVAL-ADIS-FX3 board)

Home Page: https://wiki.analog.com/resources/eval/user-guides/inertial-mems/evaluation-systems/eval-adis-fx3

License: MIT License

Visual Basic .NET 88.59% C# 8.20% LabVIEW 0.54% MATLAB 1.44% Python 0.29% TypeScript 0.94%

isensor-fx3-eval's Introduction

EVAL-ADIS-FX3 Evaluation Software

This repository contains all evaluation software for the EVAL-ADIS-FX3 iSensor evaluation board. The EVAL-ADIS-FX3 is the latest addition to the iSensor evaluation portfolio and was designed from the ground up to provide users with an easy-to-use solution for capturing reliable inertial data in lab and characterization environments. The EVAL-ADIS-FX3 incorporates the ability to capture inertial sensor data at maximum throughput while interfacing with external test equipment and reacting to external triggers.

In addition to launching a redesigned hardware platform, we’ve also developed a robust API that allows users to quickly build custom applications that capture reliable sensor data. We’ve included many useful features into the API that enable designers to characterize sensor performance in any .NET compatible environment.

The documentation for the iSensor FX3Api can be accessed here:

https://analogdevicesinc.github.io/iSensor-FX3-Eval/

Supporting Documentation

Hardware design files for the evaluation board are provided in the /hardware directory.

The custom windows driver installer is provided in the /drivers directory

Register map definition files for all supported iSensor products are provided in the /RegMaps directory

iSensor FX3Api Wrapper (/src_wrapper)

The wrapper library provides a simplified interface for working with an IMU in languages which support .NET interop, such as Python, Matlab, and Labview.

iSensor FX3 Evaluation GUI (/src)

The iSensor FX3 Evaluation GUI documentation and user guide has been moved to the official Analog Devices Wiki:

https://wiki.analog.com/resources/eval/user-guides/inertial-mems/evaluation-systems/eval-adis-fx3

iSensor FX3 Eval GUI - Developer Setup Guide

The iSensor FX3 Eval GUI can be easily compiled and modified without purchasing any software or IDE.

Prerequisites

Before attempting to compile the iSensor FX3 Eval GUI, ensure that the FX3 Driver is installed. This can be downloaded from the wiki (linked above)

The iSensor FX3 Eval GUI is currently Windows only. It requires Microsoft .NET framework 4.5 or newer to be installed.

Development Environment

The iSensor FX3 Eval GUI can be compiled and modified using the Visual Studio IDE. Visual studio community is fully featured and available for free use on open source projects

https://visualstudio.microsoft.com/vs/community/

License: https://visualstudio.microsoft.com/license-terms/mlt031819/

Building

  1. Clone the iSensor FX3 Eval repository using the git client of your choice. Note, this repo has the iSensor FX3 API as a submodule dependency, which must be initialized as well. This can be done from Git bash using the following single command:
  2. Open the project file within Visual Studio. File -> Open -> Project/Solution -> Browse for iSensorFX3Eval.vbproj within the src/ folder of the repository
  3. Build the project by right clicking on the iSensorFX3Eval project within the visual studio solution explorer and clicking "Build"

That's it! Now you can run and debug within the iSensor FX3 GUI. To make modifications to any forms included within the GUI, simply right click on the form in the solution explorer, and select "View Designer". This will open the GUI designer tool for that form. The startup form is set to "TopGUI.vb"

isensor-fx3-eval's People

Contributors

ajn96 avatar juchong avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

isensor-fx3-eval's Issues

Inertial Data Register Naming: 16-bit vs 32-bit reads

In the product datasheets, such as the ADIS16497, the *_LOW registers represent the lower 16bits of the inertial data, while in the software, they seem to represent the entire 32-bit number. Personally, I like the way that this works, but I am wondering if this could create confusion, in some customers. I really like the idea of representing the full 32-bit number, in the data log, but am wondering if we should consider including 16-bit or 32-bit naming in what the customers will selection.

iSensorEvalGUI_FB_MSL001
iSensorEvalGUI_FB_MSL002

Should we consider some form of notification, when customers select the _LOW, to let them know what they can expect? Or, should we consider listing 16-bit or 32-bit with these selections?

Connecting new FX3 board causes interference with running FX3 streams

When one FX3 is connected and streaming data, connecting a second FX3 to your PC and loading the application firmware causes a brief interruption in the data streaming process for the first FX3. This can be avoided by ensuring that all FX3s are connected before starting any data streams.

ADIS16505 Data Logging

Dear @juchong and @ajn96
I bought MEMS IMU Adis-16505 together with Eval-adis-fx3. I make the sensor vibrate through a shaker in the X direction with a constant frequency and amplitude. This is an experiment to read the output of x, y, z from the accelerometer. What is important to me is the amplitude and frequency in the time domain. The frequency domain simulation is successful, but the time domain simulation is not clear. When I simulate the time domain I don't get the correct frequency and amplitude. Maybe it has to do with the sample rate? I do not know. Please let me know if you want csv files for more information to help me out.

I still tried to read the frequency domain of X, Y, Z ACCL_OUT in matlab, it worked, but the time domain is still not clear to me. Can you help me to read the amplitude and frequency of the time domain in matlab or on the Eval-adis-fx3 app v2.9.4.0.

Originally posted by @mokhtarpakazizi in https://github.com/analogdevicesinc/iSensor-FX3-API/issues/9#issuecomment-822215128

Put all GPIO config onto one form

Currently have three different GPIO forms:
General read/write and pulse drive form
PWM setup form
Resistor setup form

Would be better for it to be an all-in-one pin interfacing form

Real time stream data files created within one second are combined

The ADcmXL GUI allows users to perform multiple streams with a trigger between them. The trigger can be a timer or an external pin. If two streams are completed within a second of each other (for example, timer trigger of 250ms with only 1 real time stream frame captured), the data for the second stream will be appended to the first file, because the target file name is the same.

Measure DR checkbox can interfere with data log

The measure DR check box on the main form uses a separate thread to measure the DR freq at a fixed interval. If this is kept running while a continuous data log is executed, an application lockup can occur.

Move less commonly used forms to hidden tab

Some of the functionality of the FX3 eval application is designed to enable firmware development work. These functions can be confusing, and are not part of a typical customer evaluation workflow. They should be moved to a "developer options" tab, which can be enabled via the settings screen.

Remember last selected DUT after using custom profile

If the EVAL-ADIS-FX3 settings are changed after selecting a device from the DUT selection drop down menu, the loaded DUT personality becomes "Custom". The next time the drop down menu is loaded, the selected device is the first in the list, not the most recently selected.

The workflow for most use cases would be simpler if the GUI remembered the most recently selected device (when using a custom personality) and went to that device in the drop down by default.

Update Readme images

Application images are somewhat out of date (v2.5.0.0). Either should update the app guide to have latest images, or point users towards the ADI wiki entry for the EVAL-ADIS-FX3. Leaning towards having all documentation in wiki.

Running data plot and FFT plot simultaneously causes lock-up / crash

Running an FFT plot and time domain plot at the same time causes unstable GUI behavior. This is due to the fairly heavy resource utilization on the FX3 by the FFT plot GUI (has to capture continuous, data ready synchronized data) conflicting with the data plot GUI. This can be avoided by stopping any time domain data plot before running an FFT plot, and vice versa.

This may eventually be fixed via re-work of the resource protection scheme in use on the FX3 API. The stream mutex approach currently implemented isn't perfect.

DIO2 erroneously selected as data ready pin after disconnect

When using a custom DUT personality file, the data ready pin can be assigned to DIO2 if the application crashes. This is likely due to the FX3Connection attributes being reset to their default values (for the connected sensor type) when an error occurs during firmware load.

More customizable options for FFT plotter

Would be nice to add the following features:

  • Setting the freq and magnitude plot limits
  • Allowing for zooming in on the plot (while maintaining label/save shot feature)
  • Allowing for copying image to clipboard

Make burst data logging form IMU aware

Make the burst GUI set/clear the burst 32-bit in MSC_CTRL for the IMUs which have that feature (and only show option for IMUs with configurable burst). Could do something similar for delta output vs inertial for burst.

This will require significant changes to burst data logging form, but would increase ease of use.

Add title option to data plotter

Would be nice to be able to set a plot title in the time domain plotter (similar to the FFT plotter). This will make plot images exported easier to use.

Add reasonable default scale values to all regmaps

Scale can be set by user for the plotting forms, or manually adjusted in the regmap. Would be easier if there were default scales already set.

For IMU families with multiple ranges, will have to use judgement regarding what to set the scale values too. Could potentially break out each part in the personality file list - might get cluttered though.

Scaled data option in data logger

Currently the register logging application logs signed data only, which must be post processed to meaningful units. Would be useful to have a single button which allows for automatic scaling.

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.