2026-01-19 2:57 PM - last edited on 2026-01-20 6:28 AM by Andrew Neil
Hello ST Community,
I am currently working on my Final Year Project (PFE) and would appreciate your guidance regarding hardware and system design choices.
Objective:
Develop a portable Edge AI–based system to detect worker fatigue in an industrial maintenance environment.
Planned Technical Stack:
STM32MP1 (Cortex-A7 + Cortex-M4)
OpenSTLinux / Yocto
TensorFlow Lite
Physiological sensors: ECG / PPG, IMU, skin temperature
Between STM32MP157F-DK2 (~120€) and STM32MP157A-DK1 (~90€), which board would you recommend for this application?
Is the price difference justified for the F-DK2 in the context of a student project?
Do you have any feedback regarding the stability and reliability of the onboard Wi-Fi/BLE?
Are there STMicroelectronics sensors compatible with the following needs?
Heart rate sensor (PPG – ST equivalent to MAX30102?)
6-axis IMU (accelerometer + gyroscope)
Accurate skin temperature sensor
Availability of Linux drivers or kernel support
What is the best practice for A7 ↔ M4 communication when handling sensor data?
Any experience or recommendations for TensorFlow Lite on STM32MP1?
Tips for power optimization in a portable, battery-powered system?
Have you worked on or seen similar fatigue or health monitoring projects?
What are the common pitfalls when acquiring physiological signals (ECG/PPG/IMU)?
Low power consumption / autonomy
Robustness for industrial environments
Thank you very much for your time and insights.
Best regards,
Solved! Go to Solution.
2026-01-21 2:01 AM
Hello @aziz-hadjayed ,
1. Board Selection
I highly recommend you to choose STM32MP157F-DK2 which is the board currently upstreamed and massively used in our documentation. The DK1 is tagged as deprecated/obselete on st.com.
WIFI/BLE is tested under non regression tests, and used for a long time now. No reason that the feature does not work. The way to use it is documented in the wiki: https://wiki.st.com/stm32mpu/index.php?title=How_to_setup_a_WLAN_connection&sfr=stm32mpu
2. ST recommended sensors
I will not be able to guide you on which sensor to use (not expert), but I can just guide yourself on few points. Sometimes, it is easier to use sensors on M4 cortex in baremetal as you will benefits from existing example code, and libraries that you would need. I think about the accelerometerfor example. I think we have a disco kit for this nucleo board https://www.st.com/en/evaluation-tools/x-nucleo-iks02a1.html (but only 3 axes here). This is just to guide yourself in your architecture choice.
On the other hand, sometimes you have some sensors (mostly sensors used on Raspberry PI) that are ported in Linux, with dedicated drivers already existing. In this situation, it is quite easy to let Linux take this hand on it, and so use it on A7 side.
In fact everything is possible, just take the necessary time to study which sensor has a driver existing, in which environment.
3. Software architecture
You can easily setup a virtual UART communication between A7 and M4, as explained in this wiki article: https://wiki.st.com/stm32mpu/wiki/Getting_started/STM32MP1_boards/STM32MP157x-DK2/Develop_on_Arm%C2%AE_Cortex%C2%AE-M4/Modify,_rebuild_and_reload_a_firmware
You have an example called TTY_Echo that will guide you on how to send message to A7 and M4, from each other. This is often enough for your kind of use case.
Concerning AI part, these articles may guide you:
https://wiki.st.com/stm32mpu/wiki/How_to_deploy_your_NN_model_on_STM32MPU
https://wiki.st.com/stm32mpu/wiki/How_to_run_inference_using_the_STAI_MPU_Cpp_API
http://wiki.st.com/stm32mpu/wiki/How_to_run_inference_using_the_STAI_MPU_Python_API
https://wiki.st.com/stm32mpu/wiki/How_to_use_hardware_acceleration_with_TensorFlow_Lite_and_ONNX_Runtime_frameworks
Concerning battery usage, you can refer to these documents, but I do not know how easily you can put it on a disco board, it will probably induce some HW changes/rework:
https://www.st.com/resource/en/application_note/an5260-stm32mp151153157-mpu-lines-and-stpmic1-integration-on-a-battery-powered-application-stmicroelectronics.pdf
https://community.st.com/t5/stm32-mpus-products-and-hardware/does-stm32mp15x-support-vbat-battery-charging/td-p/59199
--------------
I do not have other specific feedback on this, maybe someone else on the community could give you some inputs.
Kind regards,
Erwan.
2026-01-21 2:01 AM
Hello @aziz-hadjayed ,
1. Board Selection
I highly recommend you to choose STM32MP157F-DK2 which is the board currently upstreamed and massively used in our documentation. The DK1 is tagged as deprecated/obselete on st.com.
WIFI/BLE is tested under non regression tests, and used for a long time now. No reason that the feature does not work. The way to use it is documented in the wiki: https://wiki.st.com/stm32mpu/index.php?title=How_to_setup_a_WLAN_connection&sfr=stm32mpu
2. ST recommended sensors
I will not be able to guide you on which sensor to use (not expert), but I can just guide yourself on few points. Sometimes, it is easier to use sensors on M4 cortex in baremetal as you will benefits from existing example code, and libraries that you would need. I think about the accelerometerfor example. I think we have a disco kit for this nucleo board https://www.st.com/en/evaluation-tools/x-nucleo-iks02a1.html (but only 3 axes here). This is just to guide yourself in your architecture choice.
On the other hand, sometimes you have some sensors (mostly sensors used on Raspberry PI) that are ported in Linux, with dedicated drivers already existing. In this situation, it is quite easy to let Linux take this hand on it, and so use it on A7 side.
In fact everything is possible, just take the necessary time to study which sensor has a driver existing, in which environment.
3. Software architecture
You can easily setup a virtual UART communication between A7 and M4, as explained in this wiki article: https://wiki.st.com/stm32mpu/wiki/Getting_started/STM32MP1_boards/STM32MP157x-DK2/Develop_on_Arm%C2%AE_Cortex%C2%AE-M4/Modify,_rebuild_and_reload_a_firmware
You have an example called TTY_Echo that will guide you on how to send message to A7 and M4, from each other. This is often enough for your kind of use case.
Concerning AI part, these articles may guide you:
https://wiki.st.com/stm32mpu/wiki/How_to_deploy_your_NN_model_on_STM32MPU
https://wiki.st.com/stm32mpu/wiki/How_to_run_inference_using_the_STAI_MPU_Cpp_API
http://wiki.st.com/stm32mpu/wiki/How_to_run_inference_using_the_STAI_MPU_Python_API
https://wiki.st.com/stm32mpu/wiki/How_to_use_hardware_acceleration_with_TensorFlow_Lite_and_ONNX_Runtime_frameworks
Concerning battery usage, you can refer to these documents, but I do not know how easily you can put it on a disco board, it will probably induce some HW changes/rework:
https://www.st.com/resource/en/application_note/an5260-stm32mp151153157-mpu-lines-and-stpmic1-integration-on-a-battery-powered-application-stmicroelectronics.pdf
https://community.st.com/t5/stm32-mpus-products-and-hardware/does-stm32mp15x-support-vbat-battery-charging/td-p/59199
--------------
I do not have other specific feedback on this, maybe someone else on the community could give you some inputs.
Kind regards,
Erwan.