April 06, 2020 22 min read
Chief Technology Officer
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.
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.
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 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.
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.
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 officially provided by Microsoft. Here are the support end dates for the WinCE versions:
MAINSTREAM SUPPORT END DATE
EXTENDED SUPPORT END DATE
PRODUCT DISTRIBUTION END DATE
WINDOWS EMBEDDED CE 6.0
APRIL 9, 2013
APRIL 10, 2018
FEBRUARY 28, 2022
WINDOWS EMBEDDED HANDHELD 6.5
JANUARY 13, 2015
JANUARY 14, 2020
APRIL 30, 2022
WINDOWS EMBEDDED COMPACT 7
APRIL 12, 2016
APRIL 13, 2021
FEBRUARY 28, 2026
WINDOWS EMBEDDED COMPACT 2013
OCTOBER 9, 2018
OCTOBER 10, 2023
MAY 31, 2028
WINDOWS EMBEDDED 8.1 HANDHELD
THE PRODUCT HAS REACHED THE END OF SUPPORT ON JULY 9, 2019
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.
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.
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.
There are certain things about your product that are worth looking at before you start the transition, such as:
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.
So under your migration strategy, you can choose to do one of the following.
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 that Microsoft is developing now. Similar technology was already used on Windows Subsystem for Linux. 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, 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.
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.
According to GlobalStats, 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.
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.
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 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).
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.
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.
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.
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 and embedded software design services for over 6 years. We have deep experience in Embedded Linux development, Linux kernel and driver development, Android driver development, Windows driver development as well as 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 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:
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 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.
Share this article
June 10, 2020 15 min read
Linux and Windows are the well-known OS families widely used in medical devices. Our comparative review of Linux vs Windows 10 IoT will help you figure out which option works best for you.
By Andrey Solovev & Anna Petrova
April 16, 2020 19 min read
We at Integra know at least 7 good reasons for choosing Linux as an operating system for your medical device. In this article, we’ll provide a Linux overview and show how you can benefit from integrating a Linux solution into your embedded medical system and what challenges Linux may bring for the medical device manufacturers.
By Andrey Solovev & Anna Petrova
October 20, 2020 19 min read
Hands-on experience from our team, which dug into this quite new technology. We have already implemented several projects based on BLE mesh networks and would like to share the pros and cons we discovered.
By Andrey Solovev & Anna Petrova