Skip to content

nxp-appcodehub/ap-ml-state-monitor

Repository files navigation

NXP Application Code Hub

ML State Monitor

This repository holds the ML-Based System State Monitor App SW Pack and depends on the MCUXpresso SDK overall delivery (revision MCUX_2.12.0).

This Application Software Pack relies on the Deep Learning (DL) subfield of ML and enables developers to develop and deploy neural networks on MCU-based systems for building smart sensing applications and state monitoring solutions.

Boards: MIMXRT1170-EVK, LPCXpresso55S69, FRDM-K66F

Accessories: nxp_frdm_stbi_a8974

Categories: Ai/Ml, Anomaly detection, RTOS, SDMMC, Sensor, Tools

Peripherals: I2C, SDIO, SENSOR, UART, TIMER

Toolchains: MCUXpresso IDE

Table of Contents

  1. Software
  2. Hardware
  3. Setup
  4. Results
  5. Support
  6. Release Notes

1. Software

  • ML Applications provided by this package - host machine applications used to define the neural network architectures, train, and generate ML models
  • MCU Applications provided by this package - software applications for targeted embedded devices (i.e., MIMXRT1170-EVK, LPC55S69-EVK, FRDM-K66F) used to deploy, run, and evaluate the ML models
  • SDK 2.12.0
  • MCUXpresso IDE
  • eIQ Toolkit
  • Jupyter Notebook (Python, TensorFlow, Keras, etc.)

2. Hardware

Required:

  • Personal Computer
  • LPC55S69-EVK or MIMXRT1170-EVK board
  • Mini/micro USB cable

Optional (fan detection with real-time data from sensor):

  • FRDM-STBC-AGM01 or FRDM-STBI-A8974 sensor shield board
  • Arduino ProtoShield + 5V DC Fan

Optional (loging fan vibration data from sensor for NN model training)

  • SD card

3. Setup

3.1 Assemble the application

You need to have both Git and West installed, then execute below commands to gather the whole APP-SW-PACKS/ML-State-Monitor delivery at revision ${revision} and place it in a folder named appswpacks_ml_state_monitor.

west init -m https://github.com/nxp-appcodehub/ap-ml-state-monitor.git --mr ${revision} appswpacks_ml_state_monitor
cd appswpacks_ml_state_monitor
west update

Replace ${revision} with any SDK revision you wish to achieve. This can be main if you want the latest state, or any commit SHA.

3.2 Build and run the application

To build and run the application please refer to the Lab Guide or check the steps in Run a project using MCUXpresso IDE.

3.3 Hardware settings

To configure the hardware settings please refer to the Lab Guide or follow the readme guidelines for the specific board and application that are located in the following path ml_state_monitor/mcu_app/boards/<board_name>/<application_name>/readme*.

4. Results

This Application Software Pack provides support to develop and deploy neural networks on MCU-based systems for time-series data. It illustrates how to build and deploy on embedded devices neural network models capable to monitor the input sensor data and detect the state of a device.

Please refer to AN13562 document which demonstrates through a real use case the steps required to produce and assemble a dataset, define the architecture of a neural network, train, and deploy a model on an embedded board by leveraging the NXP’s SDK and the eIQ technology. This document also shows which metrics to use and how to evaluate the behavior of a neural network model at runtime on an embedded board, as well as benchmarks and performance results.

5. Support

Please refer to the following resources list for extended support:

  • ML-Based System State Monitor Website
  • ML-Based System State Monitor Resources
  • ML-based System State Monitor Lab Guide
  • AN13562 - Building and Benchmarking Deep Learning Models for Smart Sensing Appliances on MCUs
  • Application Software Packs - full portfolio of rapid-development easy-to-use software bundles
  • MCUXpresso SDK - full SDK delivery that provides access to other SDK examples and components
  • eIQ ML Software Development Environment - access to the ML workflow tools like eIQ Toolkit, along with inference engines, neural network compilers and optimized libraries

Project Metadata

Board badge Board badge Board badge

Category badge Category badge Category badge Category badge Category badge Category badge

Peripheral badge Peripheral badge Peripheral badge Peripheral badge Peripheral badge

Toolchain badge

Questions regarding the content/correctness of this example can be entered as Issues within this GitHub repository.

Warning: For more general technical questions regarding NXP Microcontrollers and the difference in expected funcionality, enter your questions on the NXP Community Forum

Follow us on Youtube Follow us on LinkedIn Follow us on Facebook Follow us on Twitter

6. Release Notes

Version Description / Update Date
1.3.0 Add the MPP Preview Library for MCU with time series support for FXLS8974CF accelerometer
Upgrade to Application Code Hub (ACH) style
2023 July
1.2.0 Upgrade the SDK core to GitHub SDK MCUX_2.12.0 2022 Nov.
1.1.0 Add support for FRDM-K66F (ARM Cortex-M4) and LPCXpresso55S69 (ARM Cortex-M33) 2022 Apr.
1.0.0 Initial release of Application Software Pack 2022 Feb.

About

This software pack enables developers to develop and deploy neural networks on MCU-based systems for building smart sensing applications. This example shows how to use ML to create a fan vibration state monitoring solution.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published