Windows CE End-of-Life: Guidelines to Migrate and Keep Your Medical Device OS Up to Date
Tags: android, linux, opensource
Published: 2021-12-30 06:40:12

Windows CE end of life has become a serious worry for the users of this operating system since Microsoft announced its discontinuation. In this article, we are going to throw light on this topic, clarifying what it actually means and what consequences it may have for you if your product is still running on WinCE. Due to the widespread use of this OS in medical devices, we would like to talk more specifically about Windows CE end of life as part of medical software. You will get a brief review of migration options and a checklist of the steps to be taken for a successful transition from this legacy software.

Contents:

- What is Windows CE?
- Windows CE for medical devices
- What Happened to Windows CE?
- Why Is It Important to Move from Windows CE?
- Windows CE Migration Options
- Stay with Microsoft
- Move to Android
- Turn to Linux
- Choose an alternative OS
- In Action!
- Final Thoughts

## What is Windows CE?
You might be familiar with Windows CE if you have ever dealt closely with a portable device or an embedded system. WinCE has been a leader among the handhelds for over twenty years.

Launched by Microsoft in 1996, the first version of this operating system was a mobile OS predecessor. It was intended for small, light-weighted, and low-storage devices with a monochrome 480*240 pixel screen. Being similar to Windows 95, CE was purposely designed for embedded systems.

Initially, Windows CE was a general-purpose operating system. But very soon it turned out that a lot of devices that could potentially work with WinCE had a strong demand for real-time processing. Thus, the next version i.e. Windows CE version 2.0 already contained a real-time scheduler in its kernel.

As time passed, Microsoft released new versions, adding more features and changing the name of the OS to Windows Embedded CE and finally to Windows Embedded Compact. With the expansion of its functionality and scope of application, Windows CE found use in the automotive industry, telecommunications, consumer electronics, industrial solutions, and healthcare.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pxgog5194u5n3qac0e8t.png)
Windows CE version history

The easy programming environment and availability of the source code make it possible to create a customized operating system and modify the software in accordance with the hardware requirements. Customization of such a multi-component embedded operating system as WinCE starts with the use of a [board support package](https://www.integrasources.com/services/board-support-package-development/) that sets the necessary environmental parameters and provides the drivers to make the OS compatible with your hardware.

The latest version of WinCE - Windows Embedded Compact 2013 represents a 32-bit multitasking, multithreading real-time operating system that offers a number of possibilities to its users at a reasonable cost. It provides a wide range of platforms and an ample quantity of components for creating your own OS images with the required hardware functionality.

## Windows CE for medical devices
What are the key qualities of medical device software? First, it should be simple to use, either for medical staff or patients. Secondly, it should be extremely reliable, especially when we talk about real-time mission-critical systems controlling the life of the patient.

WinCE has been a very good fit for that. It’s been used in a wide range of medical devices, from low-power screening devices designed for collecting, recording, and transmitting data, to highly complex medical equipment like an X-ray machine and an MRI.

First of all, it is a real-time operating system that is able to react in a split second and provide continuous operation of the equipment, preventing it from malperformance. This is essential for Class III medical devices that have the highest risk and strong demand for permanent monitoring.

As we mentioned above, Windows CE is convenient and easy for programming and supports a wide choice of various user interfaces, which is also important for medical devices. A simple graphical user interface is a necessity for medical device users - the clearer and simpler the GUI is designed, the more effective and timely is the assistance it provides.

Windows CE is a good choice when a Wi-Fi connection is an important feature of your medical device. CE supports WPA and WPA2, making Wi-Fi connections secure. With CE you can configure a Wi-Fi transceiver up to the needs of your device, and besides, there is a good choice of drivers for different Wi-Fi transceivers.

In conclusion, Windows CE is a good option for your medical device, especially when you need a customized solution based on a fully-integrated platform.

## What Happened to Windows CE?
Good things don’t always last. They give place to better and newer things. The time had come for the development of new and emerging technology, so Microsoft discontinued support for the family of Windows CE operating systems.

The end of life of Windows CE does not mean you won’t be able to use it in your current products. It means you won’t be able to upgrade the system and get assistance with it after its end of life. Starting on the EoL date, Microsoft sets limits to the support and updates provided to your operating system.

There are several stages that the OS goes through before its complete expiration. The lifecycle of the operating system starts on the release date, and five years later it enters the mainstream support period. During the mainstream support, you continue to get bug fixes and updates for your OS.

Five years later, as your software goes into the extended support period, no updates are available, but Microsoft is still there to provide you with bug fixes and security patches.

Finally, as the extended support period ends, the OS license is not available anymore, as well as any kind of support, updates, and patches. Thus, you won’t be able to use the operating system in your newly-developed product.

To get a fuller picture of Windows CE end of life, you may check the information on [the product support lifecycle](https://support.microsoft.com/en-us/lifecycle/search/) officially provided by Microsoft. Here are the support end dates for the WinCE versions:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wga4hla3wpud0i4dvs0t.png)

It is obvious that you won’t get a fully functional, reliable, and highly competitive product without proper technical assistance and regular updates. More than that, the security of such a product takes a serious hit. No one would use a potentially unreliable and insecure device, and that is the main reason for Windows CE migration.

## Why Is It Important to Move from Windows CE?
Legacy software becomes a real threat to your business. The less support you get for your software, the more problems it may cause you and your customers. So why migrate from WinCE?

Security is probably the biggest issue here. A lot of systems throughout the world suffer from regular cyberattacks. There is malware that can bring serious damage to even high-security systems. But when your software is not properly supported with security patches, it becomes the easiest hacking target. That should definitely be a compelling reason for Windows CE OS migration.

With the development of IoT solutions in healthcare, cybersecurity is getting really crucial for this industry. Gigabytes of patients’ data should be collected, stored, and transmitted with great care. The security of healthcare networks should be provided with timely updates that Microsoft will no longer offer for WinCE operating systems.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8uv62t8a32y8qfy1x6nk.png)
Example of the Internet of Medical Things solution

The efficiency of the device also depends on continuous support. Obsolete systems cannot compete in the technology race in which new features appear thick and fast. As soon as your OS comes into the extended support period, neither its functionality nor design will be upgraded and no features will be added.

Regular updates significantly affect the performance of medical devices working online. The availability of some medical equipment ensures patients’ safety. That’s why it is so important to prevent the system from failure that can be caused by the unsupported software.

Staying on the legacy operating system, sooner or later you will come across its incompatibility issues. It is very hard to integrate a new hardware or software solution into the obsolete environment. Developers will face serious difficulties supporting protocols or running apps on the outdated platform.

As you can see, the use of legacy software products makes your system inefficient and vulnerable. That is critical for industries in which ongoing support and security of the device are tightly connected with users’ life and health. As a result, the unsupported software challenges the compliance of your product with medical device regulations and standards, such as IEC 62304. At this point, migration from Windows CE becomes a must rather than a recommendation.

## Windows CE Migration Options
There are certain things about your product that are worth looking at before you start the transition, such as:

- code size;
- architecture;
- languages and technologies;
- third party libraries;
- functionality; and
- hardware requirements.

You should positively take these parameters into account in order to get on the right track with your migration strategy.

Before moving from Windows CE, you should be well posted about all migration options you have. Thus you’ll be able to choose the one that fits your needs in all respects. Let’s take a look at the platforms that can become a sound alternative to WinCE and replace your legacy software providing further benefits to your product.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8yj2vyowmundc0lo7d62.png)
WinCE migration options

So under your migration strategy, you can choose to do one of the following.

## Stay with Microsoft
If you want your transition from Windows CE to be smooth, the most straightforward option would be staying on the same platform. Thus you may choose Windows 10 IoT, which is a descendant of Windows CE. It is represented by Windows 10 IoT Core and Windows 10 IoT Enterprise.

As a proprietary operating system, Windows 10 IoT offers regular updates, security patches, different tools, and overall support. This is especially important for Class IIb and Class III (MDD 93/42/EEC) and Class III (the FDA classification) medical devices that often need regular real-time patches.

Microsoft claims that this version of the OS based on Windows 10 is intended for embedded devices and provides more security.

The conversion promises to be really smooth due to [the CE migration technology](https://blogs.windows.com/windowsdeveloper/2019/05/07/modernizing-windows-ce-systems-with-windows-10-iot/) that Microsoft is developing now. Similar technology was already used on [Windows Subsystem for Linux](https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux#Development). It should enable a Windows CE user to run their applications on Windows 10 IoT without modifying them.

Windows 10 IoT is not a real-time OS as it is, but combined with real-time platforms it obtains capabilities for real-time solutions.

Windows 10 IoT opens up opportunities for various cloud solutions (with Microsoft Azure and other cloud services available) and employment of [computer vision](https://www.integrasources.com/services/computer-vision-development/), [machine learning](https://www.integrasources.com/services/machine-learning-and-artificial-intelligence/), and [artificial intelligence](https://www.integrasources.com/services/machine-learning-and-artificial-intelligence/) for your product development. These technologies have already been widely used in the development of medical devices and are going to prevail in the future.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ppqagx7bzrtw8ehey1hw.png)
Microsoft Azure numbers over 600 services.

Talking about the shortcomings of Windows 10 IoT, we should point out the lack of a real-time component and restricted platform compatibility. It is highly likely that you will need to put a lot of effort in order to adapt this operating system to your custom hardware, including its complete redesign.

The application compatibility is also a big challenge for this option due to the absence of the necessary tools that can be used for a smooth application transition. What is reassuring is that in the near future, Microsoft will release the above-mentioned CE migration technology that should ease the migration process.

Besides, there is always a risk that at some point Windows 10 IoT will share the same destiny as WinCE.

## Move to Android
According to [GlobalStats](https://gs.statcounter.com/os-market-share/mobile/worldwide), Android occupied 74.13% of the global market share among mobile operating systems from December 2018 through December 2019. It is of little wonder because Android is one of the most highly programmable and flexible operating systems due to its open environment. This is especially important for devices with a long-lasting performance that need a future-proof product.

Developed initially as a mobile OS, Android has found extensive use in a wide range of devices, including embedded systems. Android architecture is based on the Linux kernel, which enables Android to get the best out of Linux opportunities.

Android is easy to program; it includes all the necessary APIs for smooth integration with your custom solution. The software is highly compatible, so you will not have problems finding suitable hardware.

What are the advantages of using Android in medical devices? First of all, it is secure, which is of utmost importance for medical software. It has a very friendly user interface, which is a big plus for medical devices, and simplicity of use is valuable in terms of medical staff training.

Due to its wide use and open-source nature, you are sure to get tons of sample code and timely assistance in bug fixing from a global community of Android developers.

The bad news is that Android is not an RTOS by nature and that can be a problem if your product has real-time requirements. Despite the existing approaches and add-ons that can be used for real-time purposes, to write a real-time Android application is an extremely challenging and painful process.

Besides, as an out-of-the-box solution, Android is suitable only for Class I medical devices. The original Android architecture does not provide for the solution of complex tasks. If you need a sophisticated operating system for your Class III medical device, you will have to find an experienced Android developer to tweak your system in the proper way.

## Turn to Linux
Embedded Linux seems to be a really good fit for your embedded system’s transition. With the availability and flexibility of this open-source operating system, you are totally free to make any changes to its code. Everything is stored in one place so you can easily search for an application or any other piece of software to fit your demands.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gkmes1mxf17yqouh8t0h.png)
Backbones of the open-source software: the General Public License, the GNU Project, the Open Source Initiative

Free distribution is a solid argument when you need a cost-effective solution. At the same time, you can always turn to Ubuntu, Red Hat or openSUSE to get security patches or the required updates and modifications.

The complexity and costs of your device certification will depend on the type of Linux distribution you choose. Unlike with purely open-source Linux, commercial distros simplify certification procedures due to the availability of the necessary documentation and support.

Linux is widely used in medical devices as an easy-to-program open-source software. Linux offers both RTOS and GPOS options, so you can choose the one that works best for your particular device. However, the majority of medical devices run on the Linux kernel that is used in embedded systems and has a real-time option enabled.

Turning to Linux will mitigate the risk of hardware incompatibility. As a very flexible operating system, Linux gives a free hand to port and customize it for your specific needs.

This operating system is a very reliable and secure solution, and we have already provided the [reasons to choose Linux for medical devices](https://www.integrasources.com/blog/linux-os-for-medical-devices/) in one of our previous articles.

Linux is widely used in diverse medical products from Class I to Class III and for medical software safety classes from A to C according to IEC 62304 classification (Minor to Major level of concern according to the FDA Guidance for the Content of Premarket Submissions for Software Contained in Medical Devices).

## Choose an alternative OS
Apart from the mainstream operating systems listed above, there is a wide choice of various commercial and open-source OSes, either RTOS or GPOS. And before going deep into this topic, you should figure out what’s essential for your device.

GPOS is an option for a simple device, with no need for availability and real-time communication, such as gateways, or diagnostic devices like a thermometer or a personal pulse oximeter.

If you have a complex system with a strong demand for real-time behavior, where any failure of this system can be fatal to the user, like in some life-critical medical devices, then you should, by all means, decide in favor of a real-time operating system.

Examples of commercial OSes are VxWorks by Wind River Systems, Integrity by Green Hills Software, or Blackberry QNX. These operating systems are often used in Class III medical devices and as Class C software of the software safety classification. Such operating systems allow for reliable customized solutions for embedded life-critical systems.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ahohfydtykedk5hzbzvb.png)
Examples of commercial OSes that you can use as migration options

The major issue for these OSes will be their limited compatibility, so the migration will probably lead to the full redesign of the applications in this case.

Finally, you can go with your own operating system developed in-house. This option is really viable if you have a simple application or plain hardware. However, you should be sure that you have internal resources skilled enough for this task, or that the vendor you choose has deep expertise and experience in this area.

A true expert is able to develop a handmade operating system with any performance level for Class I up to Class III medical devices. An in-house OS gets the upper hand against other options in the context of its customizability. It’s all in your hands and you are free to choose the exact features and omit excessive modules that are present in preexisting operating systems. One of the main challenges you’ll have to meet with an in-house OS is its portability.

## In Action!
It is obvious that migration is an expensive-to-run and time-consuming process. So you should be prepared to allocate a considerable budget and schedule the transition well in advance.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w9zsxyp99omw3okqub1p.png)

As soon as you draw up a budget and define a timeline, start looking for a vendor who will implement the transition if you haven’t got the internal development resources. You should rely on the strong technical expertise and experience of the solution provider who will help you choose your migration strategy and provide you with a detailed assessment.

Establishing your software migration strategy, you should have a clear plan about the new hardware solution, too. Ideally, the upgrade strategies of both the operating system and the device should be developed simultaneously.

Our team is well versed in various embedded ecosystems and platforms that are used for their development, providing [embedded hardware](https://www.integrasources.com/services/embedded-hardware-design-and-development/) and [embedded software design](https://www.integrasources.com/services/embedded-software-development/) services for over 6 years. We have deep experience in [Embedded Linux development](https://www.integrasources.com/services/embedded-linux-development/), [Linux kernel and driver development](https://www.integrasources.com/services/linux-kernel-and-driver-development/), [Android driver development](https://www.integrasources.com/services/android-driver-development/), [Windows driver development](https://www.integrasources.com/services/windows-driver-development/) as well as [Board Support Package development](https://www.integrasources.com/services/board-support-package-development/).

Defining your migration strategy, you should also think about the framework that you will use to adapt your existing applications to the new platform. There is a pretty wide choice of various application frameworks.

We personally would give priority to Qt, which is one of the best cross-platform frameworks acknowledged by the embedded developers’ community. It is compatible with almost all popular operating systems including Windows, Linux, Android, QNX, and others.

Qt has already become a choice for a number of medical device manufacturers and [GymnaUniphy](https://gymna.com/en) is one of them. They used Windows Embedded CE 6.0 in their physiotherapy equipment and faced some problems with software development on this platform. These problems included a limited set of development tools, absence of flexibility and new features, obsolescence, and, finally, WinCE discontinuation. We asked Jochen Jaspers from GymnaUniphy to explain why they chose to go with Qt after all.

> This cross-platform framework provides for a wide range of opportunities including tons of libraries with code and graphics, full-time support, documentation, and of course, the ability to reuse the code on other platforms.

**Jochen Jaspers**, Innovation Project Manager at GymnaUniphy

Our experts in Qt, Java, .NET and other frameworks will help you successfully convert your applications, integrating them into the new software.

Another importation migration stage is testing. As soon as you port the platform, you should check the software, including the apps and networks, as well as the hardware in the most careful way.

Apart from the overall testing, your migration plan should include staff training according to QMS procedures, roles, and responsibilities. It will take time for the employees to get used to the new user interface or application. And you should keep that in mind defining the migration timeframe.

So putting it in a nutshell, your transition from Windows CE should include the following key steps according to PDCA (Plan-Do-Check-Act) strategy:

- make a proper evaluation;
- prepare risk analysis (including cybersecurity);
- set the deadline;
- plan the budget;
- win technical support;
- update your development plan;
- prepare an integration plan;
- integrate the new solution;
- test the new product (including integration and system tests);
- update your maintenance plan;
- train the staff; and
- re-validate the system.

## Final Thoughts
Time is running out. The extended support period has already expired for Windows Embedded CE 6.0 and Windows Embedded Handheld 6.5. It will soon end for the other versions of WinCE as well. Now any delay in the transition may cause serious problems for you in the long run.

Migrating from Windows CE, you will safeguard your product, improve its performance, and ensure its longevity.

The lifetime of medical devices is pretty long, and any update becomes a real challenge for the manufacturers, involving a lot of money, time, and human inputs. However, security is the number one thing in the healthcare business. And it is something you won’t be able to provide if you stay with an obsolete system.

To make this choice easier, we prepared a comparative review of [Linux vs Windows 10 IoT](https://www.integrasources.com/blog/linux-vs-windows-10-iot-medical-device/) that will help you take a closer look at possible migration options among the open-source and commercial solutions.

If you need assistance to map out a migration strategy and move your product to a new operating system, we are ready to help you work out a perfect plan and make your transition seamless.