Developing Medical Devices using Windows 10 IoT Core

So you want Internet connectivity for your medical device?

Years ago, medical devices and instruments were solitary things. They were self-contained and did their job. Maybe they displayed some real-time data or results to the user, and then were powered down. But over time, various levels of connectivity were introduced and eventually became a required feature for medical systems.

I’ve been developing software for medical devices for well over 25 years, and over that time, I’ve noticed three parallel trends related to connectivity and integration:

So when a technology comes along that pulls all three of those together, it gets my attention. The Internet of Things (IoT) is one such technology. It has begun to enter the medical arena in earnest as  IoT-MD (Internet of Things for Medical Devices), and has also taken on a new form with Microsoft’s most recent contribution to the IoT development space — Windows 10 IoT Core.

To be clear, every IOT-MD project does not need an operating system.  Many small boards exist that are fine at single threaded tasking.   For example, the ESP8266 that is currently taking IoT by storm has a 32-bit RISC processor, WiFi, and a full TCP/IP stack for about $5.  But for more complex operations, especially where a user interface is involved, more is needed.

A number of small, single-board computers are available that support Windows 10 IoT Core. Many flavors of these boards (such as the Qualcomm Dragonboard, Raspberry Pi, and MinnowBoard Max) are relatively inexpensive (~$100). They can be used with other operating systems such as Ubuntu Linux, but we have found some particular advantages when running IoT Core.

For a recent development project for one of our clients, IoT Core was selected as the operating system for their small, desktop-based assay system. IoT Core was chosen for a few key reasons: 1) it leverages our knowledge and experience with Windows application development, 2) it’s free to use, and 3) it provides the functionality and support needed from an operating system.

Using this project as an example, I have some initial observations about Windows 10 IoT.

More, Faster, Cheaper

Windows IoT Core is the latest incarnation of a long series of embedded Windows versions. It meets the need for rapid development by using known software development tools, since you can develop using C# and Visual Studio. It integrates easily with a number of small, low-cost platforms that combine small form factors with less demanding power requirements. These platforms also readily support the range of connectivity options required by today’s medical systems. The result is faster development at lower cost, running on lower cost hardware.

Based on my experience using IoTCore, here are some key thoughts to keep in mind as you consider using it for your IoT-MD project:

What You Get (and What You Don’t Get)

As with any new tool or development environment, Window 10 IoT Core has its plusses and minuses. In my view, the plusses outweigh the minuses for certain types of applications.

Is Windows 10 IoT Core for me?

The evolving capability and power of development and target environments has made embedded engineering easier and more efficient over time. However, embedded software engineering still requires a special set of skills and experience. Windows 10 IoT Core opens up the possibility of effective embedded development to experienced Windows engineers. The cost of entry is lower (SBCs today are relatively inexpensive to obtain, setup, and test drive), and the learning curve is shorter because the IoT Core environment is familiar to experienced Windows developers. Especially for newer requirements such as wireless connectivity, IoT Core offers a highly capable set of features and development tools that can accelerate your medical device development.