Skip to content

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.

License

Unknown, BSD-3-Clause licenses found

Licenses found

Unknown
LICENSE.txt
BSD-3-Clause
COPYING-BSD-3
Notifications You must be signed in to change notification settings

nxp-appcodehub/ap-ml-state-monitor

Repository files navigation

NXP Application Code Hub

ML State Monitor

This Machine Learning (ML) application software pack, ML-Based System State Monitor, relies on Deep Learning and enables developers to develop and deploy neural networks on MCU-based systems for building smart sensing applications that use time series real-time sensed data for system state monitoring.

The example software package provides general enablement and was designed to show how to create a Fan Vibration State Monitoring Solution and also through an Application Note it provides details on how to validate and evaluate the performance of a model by running it through different inference engines on different evaluation kits.

To access this application software pack, click on the GitHub button to visit the NXP MCUXpresso SDK GitHub Repository and follow the steps found in the Lab Guide to evaluate the software solution.

Please visit section Support of this document for the extended list of associated resources.

Boards: FRDM-MCXN947, MIMXRT1170-EVK, LPC55S69-EVK, FRDM-K66F

Accessories: nxp_frdm_stbi_a8974, mikroe_accel_4_click

Categories: AI/ML, Anomaly detection, RTOS, SDMMC, Sensor, Tools

Peripherals: I2C, SDIO, SENSOR, UART, TIMER

Toolchains: MCUXpresso IDE

General Enablement Diagram

Block Diagram

Flow Diagram

Flow Sequence

Use Case: Fan State Classification

Flow Sequence

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., FRDM-MCXN947, MIMXRT1170-EVK, LPC55S69-EVK, FRDM-K66F) used to deploy, run, and evaluate the ML models Software Stack

Toolchain:

  • MCUXpresso SDK (revision MCUX_2.14.0)
  • MCUXpresso IDE
  • eIQ Toolkit
  • Jupyter Notebook (Python, TensorFlow, Keras, etc.)

2. Hardware

Required:

  • Personal Computer
  • Mini/micro USB cable
  • Any of the following development boards:
FRDM-MCXN947 MIMXRT1170-EVK LPC55S69-EVK FRDM-K66F
FRDM-MCXN947 MIMXRT1170-EVK LPC55S69-EVK FRDM-K66F

Optional (functional scenario: run inference using with real-time data read from the sensor):

  • Any of the following sensor shield boards:
FRDM-STBI-A8974 ACCEL-4-CLICK FRDM-STBC-AGM01
FRDM-STBI-A8974 ACCEL-4-CLICK FRDM-STBC-AGM01
  • Arduino ProtoShield + 5V DC Fan
ProtoShield Fan
ProtoShield Fan

Optional (functional scenario: read and log sensor data to be used for neural network 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:

Project Metadata

Board badge 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.4.0 Upgrade the SDK core to GitHub SDK MCUX_2.14.0
Add support for FRDM-MCXN947 and FXLS8974 accelerometer (FRDM-STBI-A8974 and ACCEL-4-CLICK sensor boards)
2024 July
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

Unknown, BSD-3-Clause licenses found

Licenses found

Unknown
LICENSE.txt
BSD-3-Clause
COPYING-BSD-3

Stars

Watchers

Forks

Packages

No packages published