Medical device firmware refactor
Modernising legacy firmware to support MDR readiness

Client
Leading EU medical device manufacturer
Country
European
Industry
Medical Device, Software in Medical Device (SiMD), Firmware, Embedded system
Collaboration
Since October 2024
Duration
Ongoing
Scope
Firmware, Regulatory Consultations, Project Management, QA, Documentation according to IEC 62304, Risk Analysis
Technologies
C, Python, CMake, CppUTest, ARM microcontroller, Bare-metal firmware
About the project
With over 100 years of engineering heritage, our client is a leading European manufacturer of medical devices and healthcare equipment. Their solutions are used across a variety of clinical and healthcare environments.
Projects such as medical device firmware modernisation are often necessary to ensure that long-standing products continue to meet regulatory and technical expectations.
What did our client need?
One of the company’s key medical devices used in clinical environments had originally been certified under the Medical Device Directive (MDD). Following regulatory changes in the European regulatory landscape and improvements to the device hardware, the firmware required refactoring to ensure continued compliance and maintain system stability.
TECHNICAL TO BUSINESS
Firmware refactoring involves improving the internal code structure to make it more efficient, compliant, and easier to maintain.
Our goal was to adapt the device software to current regulatory requirements (IEC 62304, MDR), fix existing issues, and demonstrate modern project and code management practices typical for embedded medical device firmware development.
How did we approach it?
The firmware running the device had been developed over fifteen years ago, which required a comprehensive refactor to modernise and stabilise the system as part of a broader legacy firmware modernisation effort.
The project can be divided into three key stages:
Updating the Graphical User Interface (GUI) and upgrading the Bootloader Programmer responsible for hardware initialisation
Adapting the Control (CO) and Supervisory (PR) systems to align with the updated GUI
Investigating and verifying a recurring error affecting system reliability
During this project, the client handled hardware upgrades, our project partner DAC.digital managed code modernisation, and we oversaw the project, ensuring regulatory compliance and seamless integration across all components.
Project in numbers
0
2
complete embedded systems
0
26
code modules tested and refactored
0
2363
unit-tests added
Technical approach – firmware refactor
Our main goal was to support the client in performing a medical device firmware refactor to ensure reliability, maintainability, and user safety. We achieved this by developing custom firmware deployed on the device’s printed circuit boards (PCBs).
This work was part of a broader embedded medical device firmware architecture update.
Agile 62304 project management
In medical software projects, we rely on our dedicated project management framework – Agile 62304 – which combines the flexibility of Agile practices with the strict requirements of IEC 62304. This approach ensures IEC 62304 firmware compliance while maintaining efficient development workflows.
Graphical User Interface refactor
To improve usability, we started by refactoring the graphical user interface. The display was upgraded to support a more modern and responsive interface, while audio feedback was improved through greater tonal variation.
Bootloader / Programmer enhancement
Following the GUI refactor, we updated the Bootloader / Programmer responsible for communication between the system modules (GUI, CO, and PR). This ensured correct system initialisation and reliable communication between device components.
Control System and Supervisory System adaptation
We refactored and updated the Control System (CO) and Supervisory System (PR) to align with the redesigned GUI. These updates ensured that the device’s core control and monitoring functions remained synchronised with the updated interface.
Ensuring reliability through unit testing
The project required extensive unit testing to validate the migration and ensure overall system stability. CppUTest was used to automatically verify every code change and confirm that individual components behaved as expected.
This approach introduced an additional quality control layer that helped detect issues early in the development process and supported the overall legacy firmware modernisation process.
Common error investigation
The client reported an intermittent error that caused the device to freeze. While refactoring the GUI and updating the control systems, we analysed the potential causes of this issue and identified possible improvements to increase system reliability.
GCC ARM Toolchain update
To ensure long-term maintainability, we updated the codebase using the GCC ARM Toolchain. This created a more robust foundation for future development, testing, and deployment of the firmware.
Moving codebase to GitHub
The codebase was migrated to GitHub to support modern and secure code management practices. Our partners from DAC.digital set up a structured repository with issue tracking and implemented a CI pipeline to automate builds, unit tests, and deployments.

Regulatory approach – ensuring compliance with EU requirements
Our goal was to ensure that the device software followed best practices and aligned with European medical device standards, including IEC 62304 firmware compliance requirements.
Requirements and standards followed
During the project, we complied with all relevant regulations and standards, including:
Medical Device Regulation (MDR)
IEC 62304
ISO 13485
ISO 14971.
Recertification preparation
The device is a medical device originally certified under the MDD as a Class IIb product. Our work focused on ensuring compliance with IEC 62304 (Class B software), providing traceability that supports the client in preparing documentation for MDR certification.
Traceability
To ensure traceability, every activity was carefully documented using Confluence and Jira, while code changes were versioned in GitHub.
Documentation included:
system and hardware requirements
SOUP components
testing strategy
tools used
reports and development artefacts
All elements were clearly linked to tasks, requirements, test cases, and code changes.
Risk management
Risks had already been defined during the development of the earlier firmware version. Our task was to adapt and verify them in light of regulatory updates introduced over the past years.
We relied on a risk analysis process aligned with ISO 14971.
Cybersecurity in hardware
Although the device operates as an embedded system, cybersecurity remained an important consideration. We addressed challenges beyond those typical of standard medical software projects, including secure firmware deployment and verification of installed software.
To address these challenges, we followed the guidance provided in MDCG 2019-16, which highlights the importance of cybersecurity even in embedded medical devices.
Quality Assurance
To ensure the highest quality of the refactored firmware, together with our partner DAC.digital, we conducted code reviews and all required tests. These were later repeated by the client to confirm reliability and detect any potential issues.

Training courses for the parties involved
At Revolve, we value knowledge sharing and aim to support our partners in building internal capabilities for long-term collaboration.
Aligning teams on compliance
Working with an ISO 13485-certified external hardware and firmware partner, we ensured the correct application of IEC 62304 practices.
While the partner had extensive experience in hardware and firmware development, our guidance helped integrate medical software development processes, including the use of Jira and Confluence to maintain traceability and regulatory alignment.
Introducing modern coding practices
The original firmware had been developed primarily by hardware engineers using a different development approach.
We introduced GitHub-based workflows, trained the team on modern code management practices, and prepared clear documentation with recommended development guidelines. This helped establish a development culture aligned with current software engineering standards.
Revolve formed a dedicated regulatory and quality assurance team and partnered with DAC.digital to deliver high-quality firmware refactoring. Communication and documentation were managed through Jira, Slack, Google Meet, and Confluence, with ongoing collaboration with the client via email, Teams, and SharePoint.
What we delivered?
Tested and verified software source code
Documentation demonstrating compliance with IEC 62304
A full set of tools used for development, refactoring, and testing to support future in-house maintenance and firmware development
Do you need help with your firmware refactor?
We support companies in firmware refactoring and developing embedded systems in line with IEC 62304.