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.
- 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
Toolchain:
- MCUXpresso SDK (revision MCUX_2.14.0)
- MCUXpresso IDE
- eIQ Toolkit
- Jupyter Notebook (Python, TensorFlow, Keras, etc.)
Required:
- Personal Computer
- Mini/micro USB cable
- Any of the following development boards:
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 |
---|---|---|
- Arduino ProtoShield + 5V DC Fan
ProtoShield | Fan |
---|---|
Optional (functional scenario: read and log sensor data to be used for neural network training):
- SD card
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.
To build and run the application please refer to the Lab Guide or check the steps in Run a project using MCUXpresso IDE.
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*
.
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.
Please refer to the following resources list for extended support:
- ML-Based System State Monitor Website
- ML-Based System State Monitor Lab Guides
- Application Note 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 - ML workflow tools like eIQ Toolkit, along with inference engines, neural network compilers and optimized libraries
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
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. |