Share this

Predictive maintenance development applications of the Internet of Things (IoT)

2026-04-06 06:02:53 · · #1

However, for many developers, the task of collecting, structuring, transmitting, analyzing, and applying sensor data for predictive maintenance remains challenging due to the complexity of the required hardware and application software.

To meet the industry's rapidly growing interest in predictive maintenance, semiconductor suppliers are launching comprehensive platform solutions that combine many of the necessary hardware and software components. These platforms enable industrial application developers to develop and run predictive maintenance systems more quickly and cost-effectively.

This article discusses the modern concept of predictive maintenance using the Internet of Things (IoT) and how it can significantly improve processes and outcomes. It then introduces STMicroelectronics' predictive maintenance platform and explains how developers can use the hardware and software to evaluate predictive maintenance capabilities and develop their own applications.

The Evolution of Maintenance Work – From Guessing to Prediction

For years, industrial engineers have used vibration analysis and other methods to detect problems in machines. In the past, engineers relied on handheld analyzers or other specialized testing equipment to collect and process data for equipment analysis. With the help of the Internet of Things (IoT) concept, manufacturers can now use low-cost sensors to inspect critical equipment, obtaining the detailed data streams needed for real-time monitoring.

The ability to continuously assess equipment performance offers a significant advantage for factory operations. Industrial engineers can now use local or remote monitoring applications to enhance or even replace planned manual maintenance procedures, which may waste effort even when no problems exist or fail to prevent minor issues from escalating into equipment failure. Instead of passively reacting to problems that could shut down production lines, factory operators use sensor-based methods to proactively identify issues, allocate necessary resources, and even replace machines, performing repairs at the appropriate time to minimize production disruptions.

Predictive maintenance gives facility managers the opportunity to detect problems before they escalate into catastrophic failures, thus maintaining production line integrity and worker safety, while also enabling them to analyze data to improve processes and outcomes. One of the challenges for developers is creating a platform that can collect data at the required bandwidth and resolution to detect signs of potential problems in monitored equipment.

For vibration analysis, industrial engineers typically collect vibration data in both the time and frequency domains. Experienced engineers can identify mechanical problems in equipment simply by reviewing data from these two domains. For example, short-duration periodic pulses with a wide frequency bandwidth often indicate a defect in a component (such as a ball bearing), causing it to strike the track wall with each rotation. Conversely, longer-duration events with a narrower bandwidth may indicate that components are rubbing against each other, eventually leading to wear and potential failure.

However, to reliably capture this data, vibration sensors need to be robust enough to sustain operation without being affected by sudden shocks, strong vibrations, or other events common in industrial environments. Even during normal operation, industrial equipment can generate vibrations and mechanical shocks exceeding the capabilities of early vibration sensors. The advent of sensors based on microelectromechanical systems (MEMS) technology has largely eliminated this concern. MEMS sensors (such as the STMicroelectronics ISM330DLC) can withstand sudden accelerations of up to 10,000 g for 0.2 milliseconds (ms) and recover quickly enough to provide linear acceleration measurements with sensitivity down to one-thousandth of gravity.

While reliable data from motion sensors is crucial for fault analysis, vibration is only one indicator of machine operating condition. Experienced engineers can not only identify specific fault modes from vibration data, but also use other sensor modes to determine the time from detecting symptoms to the device failing functionally—known as the "potential-to-failure" (PF) interval. For example, for most machines, increased power consumption, noise, or heat typically indicates a shortened PF interval (Figure 1).

Figure 1: Different sensor modes can reveal conditions that indicate potential machine failures, but vibration analysis can often enable early detection, helping to eliminate downtime caused by sudden malfunctions. (Image source: STMicroelectronics)

To capture these additional metrics, engineers need to create sensor systems capable of capturing at least vibration, audio, pressure, temperature, and humidity. However, integrating these sensors into a robust design presents practical challenges for developers, potentially significantly delaying progress toward achieving broader device analysis goals. STMicroelectronics' STEVAL-BFA001V1B development kit and related software provide a comprehensive platform that enables engineers to quickly initiate application development for device monitoring and predictive maintenance.

Reference Platform

The STEVAL-BFA001V1B kit can be used as a reference design or as an off-the-shelf solution, including an industrial sensor board for predictive maintenance and related software. This board is a complete standalone sensor system (Figure 2). It integrates an STMicroelectronics high-performance 32-bit Arm® Cortex®-M4 STM32F469 MCU and a full suite of sensors, including the previously mentioned ISM330DLC motion sensor for vibration measurement, as well as the following STMicroelectronics devices:

HTS221 Temperature and Humidity Sensor

LPS22HBTR pressure sensor

MP34DT05TR-A MEMS Microphone

Figure 2: The MCU-based industrial sensor board design is included in the STMicroelectronics STEVAL-BFA001V1B development kit, containing a complete set of sensors typically required for equipment monitoring. (Image source: STMicroelectronics)

The system complements the microcontroller's integrated 2 MB flash memory with STMicroelectronics' M95M01-DF 1 Mb EEPROM and provides power management via STMicroelectronics L6984A switching regulators and LDK220 low-dropout (LDO) regulators. To simplify deployment in industrial environments, one end of the board features an M12 connector for support via an ST L6362A IO-Link transceiver. The other end has an expansion connector for developers to connect the microcontroller's GPIOs, analog-to-digital converters (ADCs), and I2C serial interfaces. The result is a robust system, only slightly larger than an M12 industrial cable, that meets all the requirements for device monitoring (Figure 3).

Figure 3: The STMicroelectronics STEVAL-BFA001V1B industrial sensor board includes a microcontroller-based multi-sensor system, expansion connectors, a Serial Wire Debug (SWD) connector, and an M12 connector, with a form factor only slightly larger than an industrial cable. (Image source: STMicroelectronics)

Developers can use the included M12 cable or add their own M12 connectors. The kit includes an adapter board for connecting the serial output of the M12 sensor board to the ST-LINK/V2-1 interface, which is provided with the STMicroelectronics STM32 Nucleo-64 development board. To power the board, developers can either power it themselves using the M12 cable or plug the M12 cable into the ST STEVAL-IDP004V1 IO-Link evaluation board. Using this IO-Link board is the fastest development approach because developers can quickly connect multiple industrial sensor boards and configure them using the STMicroelectronics Windows-based STEVAL-IDP005V1-GUI_v1.0 graphical user interface (GUI) (Figure 4).

Figure 4: Using the ST Windows GUI, developers can quickly configure sensor boards, perform data collection, and view the results of frequency and time domain motion data as well as environmental data. (Image source: STMicroelectronics)

After completing the setup on the configuration screen, developers can proceed to the Vibration Analysis screen to collect data. Clicking the Start button allows developers to view the collected vibration frequency and rotational speed measurements on the x, y, and z axes (Figure 5). On the separate Environmental Measures tab (ENV Measures), developers can view the pressure, temperature, and humidity data collected by each sensor panel.

Figure 5: The ST Windows GUI provides a simple way to evaluate sensor data, capable of presenting frequency and time domain results from motion sensors. (Image source: STMicroelectronics)

Software development

While GUI applications provide quick access to sensor board functionality, developers need a more flexible approach to create their own predictive maintenance applications. For custom development, STMicroelectronics' STSW-BFA001V1 software package offers a complete set of C software modules, including drivers, libraries, and sample applications (Figure 6).

Figure 6: The ST STSW-BFA001V1 software distribution provides a complete set of drivers, middleware, and sample applications that developers can run immediately, which can be used as the basis for custom applications. (Image source: STMicroelectronics)

The STSW-BFA001V1 software package includes a condition monitoring application as a sample application. This application demonstrates the process of collecting data from motion sensors and generating frequency domain, RMS, and peak acceleration values. For production designs, developers can upload this data to a host application designed to detect faults. A predictive maintenance application extends this data collection foundation, providing functionality for generating warnings of potential faults.

This method has many advantages, but the most notable is its ability to detect conditions indicating potential faults earlier, thereby extending the fault detection (PF) interval. Another advantage is that it brings fault detection closer to the equipment, allowing for more direct fault identification.

STMicroelectronics' predictive maintenance application demonstrates how developers can perform early detection by comparing sensor readings to a range of thresholds for velocity, acceleration, and frequency components. In production systems, the selection of these thresholds depends on several factors, which are beyond the scope of this article.

However, it is important to note that there are standards available for reference. For example, ISO 10816 provides guidelines for vibration values ​​for four classes of machines operating in four different working zones: Zone A (Good), Zone B (Satisfactory), Zone C (Unsuitable for continuous operation), and Zone D (Critical; continuous operation may cause damage). As these zones indicate, when the machine's vibration level reaches Zone C, a warning should be issued to the operator; when the vibration level reaches Zone D, a more urgent alarm should be issued.

STMicroelectronics has designed a predictive maintenance application to support this specific use case. The header file (MotionSP_Threshold.h) in the sample application software set includes thresholds for warning and alarm levels. In this case, STMicroelectronics defines the warning threshold as the recommended operating value between the boundaries of Zones B and C according to ISO 10816. The alarm threshold is the recommended operating value between the boundaries of Zones C and D according to ISO 10816. Typical motion sensors (such as the STMicroelectronics ISM330DLC) provide data in the x, y, and z planes, therefore three values ​​are provided for the warning and alarm thresholds for each monitored quantity—RMS velocity, acceleration, and Fast Fourier Transform (FFT). The application uses the FFT threshold across four different spectral subranges.

The resulting set of thresholds corresponds to various actual machine operating conditions. However, developers still need to adjust these warning and alarm thresholds to match the specific characteristics of the monitored equipment and the overall objectives of the warnings and alarms.

The header file provides the runtime objectives for monitoring, while the main routine (main.c) provides the logic to detect threshold deviations in the data collected by the industrial board sensors. After initializing the hardware and related software structures, the main routine enters an infinite loop to generate an FFT of the vibration data, measure RMS and peak acceleration, detect threshold exceedances, and send a warning (Listing 1).

/* Initialize the moTIon sensor */

MotionSensorInit();

MotionSP_TimeDomainAlarmInit(&sTdAlarm, &sTimeDomainVal, &sTdRmsThresholds, &sTdPkThresholds);

MotionSP_FreqDomainAlarmInit(&FDWarnThresh, &FDAlarmThresh, &THR_Fft_Alarms, MotionSP_Parameters.subrange_num);

/************************************************************************/

while (1)

{

/* Vibration Analysis */

MotionSP_Vibration_manager_run(&MotionSP_Parameters);

/* Status check during Time domain Analysis */

MotionSP_TimeDomainAlarm(&sTdAlarm, &sTimeDomainVal,

&sTdRmsThresholds,

&sTdPkThresholds,

&sTimeDomain);

if(FinishAvgFlag == 1)

{

SendVibrationResult();

TD_Thresholds_DataSend(&sTdAlarm, &sTimeDomainVal);

MotionSP_FreqDomainAlarm(&SRAmplitude, FDWarnThresh, FDAlarmThresh,

MotionSP_Parameters.subrange_num,

&THR_Check,

&THR_Fft_Alarms);

FD_Thresholds_DataSend(MotionSP_Parameters.subrange_num,

&SRBinVal,

&THR_Fft_Alarms,

&THR_Check);

MotionSP_TotalStatusAlarm(&sTdAlarm,

&THR_Fft_Alarms,

MotionSP_Parameters.subrange_num,

&TotalTDAlarm,

&TotalFDAlarm);

Thresholds_DataSend(&TotalTDAlarm, &TotalFDAlarm);

FinishAvgFlag = 0;

RestartFlag = 1;

// wait while the UART is transmitting

while((HAL_UART_GetState(&hSrvUart) & HAL_UART_STATE_BUSY_TX ) == HAL_UART_STATE_BUSY_TX);

strcpy((char *)SrvUartTxBuffer, "\r\n|################### Next Measurement ####################\r\n");

HAL_UART_Transmit(&hSrvUart, SrvUartTxBuffer, strlen((char *)SrvUartTxBuffer), SRV_UART_TIMEOUT_MAX);

MotionSP_TimeDomainAlarmInit(&sTdAlarm, &sTimeDomainVal,

&sTdRmsThresholds, &sTdPkThresholds);

MotionSP_FreqDomainAlarmInit(&FDWarnThresh,

&FDAlarmThresh,

&THR_Fft_Alarms,

MotionSP_Parameters.subrange_num);

/* Configure the Hardware using parameters in RAM */

MotionSP_Vibration_manager_init(&MotionSP_Parameters, 1);

Accelero_MeasurementInit();

}

}

Listing 1: STMicroelectronics predictive maintenance application demonstrates how to use an infinite loop to identify and send alarms based on frequency and time domain sensor data measurements. (Code source: STMicroelectronics)

As the loop continues to execute, the sensor drivers and service handlers in the board-level support package read data and populate buffers monitored by higher-level routines. STMicroelectronics sample software assigns handlers at the application level, allowing developers to easily swap out their own routines to meet unique needs without requiring in-depth knowledge of the software architecture.

In each iteration of the main loop, the main routine calls `MotionSP_TimeDomainAlarm()` to check the thresholds for RMS velocity and peak acceleration. For frequency domain checks, the main loop repeatedly calls `MotionSP_Vibration_manager_run()`, which indirectly calls the routine `MotionSP_FrequencyDomainProcess()` from another module; if the required circular buffer (`AccCircBuffer`) is full enough and FFT is enabled, it eventually calls the middleware FFT computation routine (Listing 2). In fact, basic state monitoring applications also use this pattern.

/**

* @brief Frequency Domain Processing starting from the Circular Buffer

* @param pMotionSP_Parameters: Pointer to board parameters

* @return None

/

void MotionSP_FrequencyDomainProcess(sMotionSP_Parameter_t *pMotionSP_Parameters)

{

#define FFTSIZEDELTA (MotionSP_Parameters.size*((100.0-MotionSP_Parameters.ovl)/100.0))

if (fftIsEnabled == 1) {

if (!accCircBuffIndexWaitForOvf) {

if (AccCircBuffer.IdPos 》= accCircBuffIndexForFft) {

MotionSP_FFT_All_Axes();

accCircBuffIndexForFft += FFTSIZEDELTA;

if (accCircBuffIndexForFft 》= AccCircBuffer.Size) {

accCircBuffIndexForFft -= AccCircBuffer.Size;

accCircBuffIndexWaitForOvf = 1;

}

}

}

else {

if (AccCircBuffer.Ovf) {

AccCircBuffer.Ovf = 0;

accCircBuffIndexWaitForOvf = 0;

}

}

}

}

Listing 2: This example application from STMicroelectronics demonstrates a mechanism for frequency domain analysis using a circular buffer (whose data comes from a motion sensor). (Code source: STMicroelectronics)

At the end of each measurement period, the application uses another routine (MotionSP_TotalStatusAlarm()) to check each attribute of the motion data, setting the frequency domain alarm (pTotalFDAlarm) and time domain alarm (pTotalTDAlarm) to the maximum alarm values ​​(Listing 3). The main routine in Listing 1 then sends these alarms via the UART connection and reinitializes the system to begin the next measurement period.

void MotionSP_TotalStatusAlarm(sTimeDomainAlarm_t *pTdAlarm,

sFreqDomainAlarm_t *pTHR_Fft_Alarms,

uint8_t subrange_num,

Alarm_Type_t *pTotalTDAlarm,

Alarm_Type_t *pTotalFDAlarm)

{

Alarm_Type_t TempAlarm = GOOD;

Alarm_Type_t TempFDAlarm = GOOD;

TempAlarm = MAX4(TempAlarm,

pTdAlarm-》PK_STATUS_AXIS_X,

pTdAlarm-》PK_STATUS_AXIS_Y,

pTdAlarm-》PK_STATUS_AXIS_Z);

TempAlarm = MAX4(TempAlarm,

pTdAlarm-》RMS_STATUS_AXIS_X,

pTdAlarm-》RMS_STATUS_AXIS_Y,

pTdAlarm-》RMS_STATUS_AXIS_Z);

for(int i=0; i《subrange_num; i++)

{

TempFDAlarm = MAX4(TempFDAlarm,

pTHR_Fft_Alarms-》STATUS_AXIS_X[i],

pTHR_Fft_Alarms-》STATUS_AXIS_Y[i],

pTHR_Fft_Alarms-》STATUS_AXIS_Z[i]);

}

*pTotalTDAlarm = TempAlarm;

*pTotalFDAlarm = TempFDAlarm;

}

Listing 3: The STMicroelectronics sample application demonstrates a basic design pattern for using multiple alarm sources in predictive maintenance applications. (Code source: STMicroelectronics)

Using STMicroelectronics' sample applications, developers can quickly evaluate predictive maintenance features and functions. More directly, developers can immediately begin viewing measurements and warning/alarm statuses simply by connecting to the industrial sensor board via a terminal emulation program.

However, for production applications, developers are more likely to use the sensor board's serial interface to connect to upstream resources for more advanced application monitoring and control. Major cloud service providers already offer advanced machine learning solutions for predictive maintenance. For example, Microsoft Azure's IoT solutions accelerator portfolio includes a predictive maintenance solution.

Developers can even begin using the Azure Accelerator early, as the included simulations can render multiple sensor data streams from NASA jet engines. At the end of this accelerator toolchain, Azure Machine Learning provides a model trained on this data. In some cases, developers can employ transfer learning approaches, using a pre-trained model (such as the Azure Predictive Maintenance Model) as a starting point for their own custom machine learning models.

Conclusion

To meet the industry's growing interest in predictive maintenance, developers need the ability to quickly deploy robust, multi-sensor systems suitable for industrial environments. STMicroelectronics' comprehensive development solutions include both hardware sensor boards and software environments specifically designed for predictive maintenance requirements.

Using this system solution, developers can immediately begin evaluating predictive maintenance, rapidly develop their own predictive maintenance applications, and leverage emerging cloud-based machine learning resources to create more advanced predictive maintenance capabilities.


Read next

CATDOLL 66cm Baby Boy Silicone Doll – Lifelike Newborn Style

Height: 66cm Male Silicone Weight: 8.8kg Shoulder Width: 21cm Bust/Waist/Hip: 44/44/47cm Oral Depth: N/A Vaginal Depth:...

Articles 2026-02-22