Project Description
This case study describes a project of FreeRTOS Application and Bootloader development in a complex system running ROS on Linux. The embedded software is being developed by an R&D team to be used in autonomous vehicles and robots thanks to its multi-sensors supply.
By getting involved in the team, the objective was to implement ultrasonic sensors drivers that communicate with the system through an stm32 board and to develop firmware update functionalities.

Acquire
The tools and technologies being used are:
- A02YYUW ultrasonic sensors that output UART frames containing distance data
- FreeRTOS to manage collecting multiple sensors data in real time
- Jira for scrum tasks management
Analysis
The requirements and sprints planing analysis benefits the project from advantages of the roadmap steps:
- Sensors driver development and integrating FreeRTOS library for multi sensors threading
- Design a custom serial communication protocol for the stm32 update
- Design a boot process and FOTA update state machine
- Develop a C application for transferring update binary to the micro-controller through the designed protocol
Apply
- Requirements implementation and debugging using stm32CubeIDE and GDB for Linux C application
- Technical documentations writing for the designed functionalities and SW architecture
- Fail-safe dual-bank bootloader
- SHA-256 firmware image verification
- Automatic rollback on update failure
- Software releases delivery
Demonstration of an MCU application update via serial communication
“Need deterministic real-time performance for an embedded system?
Get in touch →“