Wearables development in an IoT world
August 09, 2017
MCU innovations are quietly packing more intelligence in smaller form factors. These advancements are enabling OSs to be utilized in small form factor sensor devices such as wearables.
Microcontroller (MCU) innovations are quietly packing more intelligence in smaller form factors. These advancements are enabling operating systems (OSs) to be utilized in small form factor sensor devices, such as wearables.
Wearables, IoT sensor trends
Intelligence is increasing in smaller form factor wearables and sensor devices. Today’s MCUs are now small and cost-effective enough to be used in a wide variety of sensor applications where price and size requirements previously excluded them. As MCUs proliferate in these applications, so too have the OSs that run on them.
Adding an OS to a wearable opens new doors in terms of features, functions, and time to market benefits. The question becomes whether it is enough to just use any OS that targets the MCU, or if the OS must be tuned for these devices?
RoweBots recently announced availability of a “WearableOS” at the Wearables Technology Conference that is specifically tuned for wearable and Internet of Things-enabled (IoT-enabled) devices.
Emergence of the “WearableOS”
RoweBots’ history includes the Unison RTOS used in military systems where security and reliability are critical. This history includes traditional embedded system practices involving porting and running the OS on a specific processor architecture, adding drivers for board support packages (BSPs), and providing APIs for embedded application development.
Over the last 10 years RoweBots has been working in the IoT space as well. “Our OS products target MCUs and small microprocessors with a goal of creating an efficient design," says Kim Rowe, CEO of RoweBots. "Real-time requirements have diminished over time. Flash and RAM sizes have become a critical cost factor for embedded and IoT designs.”
Rowe mentions two key areas of focus for their WearableOS:
- Being able to do more in a small package. Support for lean product development (LPD) is a cornerstone of RoweBots' IoT OSs (Figure 1).
- Open APIs based on embedded Linux allow RoweBots OS products to integrate libraries that match the functions needed and available resources on the platform.
“We took a more packaged approach to delivering a real-time operating system (RTOS) when developing the WearableOS," Rowe explains. "We didn’t stop at a chip support package for a controller. We added packages that deal with specific vertical markets. Wearables is one of these targets. The three key pillars for this effort were hardware support for wearable products, optimized software design, and enabling faster time to market.”
The world of wearables needs a complete package of OS/processor support, connectivity, storage, and cloud connectivity. In addition, security requirements are important, and RoweBots’ history with the Unison RTOS in the military industry gave them a leg up in understanding security considerations. Much of this has also been incorporated in to the WearableOS.
Rowe mentions the importance of not stopping development at an MCU OS and driver support for the sensors that a manufacturer provides. “Sensor support needs to be general," he says. "It’s important to allow the developer to utilize any number of temperature sensors, accelerometers, or whatever peripherals are required to allow choice and maintain hardware independence and abstraction.”
Power management is another critical component. Some MCUs are simply designed as very low power with little to no power modes. Therefore, power management of most MCUs is simple when compared to the capabilities of an ARM processor, for example.
“MCU manufacturers typically try to maximize all-around power efficiency," Rowe says. "However, in some of the more advanced processors, power management has taken a leap. There are a lot more options in terms of what you can do to go to sleep and wake up again.”
Some of the options Rowe alludes to involve integrated power modes in hardware that can be updated, as well as certain silicon events that are capable of waking up software.
Wireless connectivity is another important feature of the WearableOS. Kim mentioned some interesting applications in the sports industry where different radio types are needed. “Our OS needs to support three different types of radios depending on the sport," Row says. "One is for individual operation like bike racing. Wearables are used to provide metrics on speed, vitals, and crash information. These kinds of things use Bluetooth Low Energy (BLE). Another extension is road races or marathons where you don’t want to be carrying around a phone. These applications need Long Range (LoRa) radios. Football or basketball applications are a third example. These applications use 802.14, which allows group communication capabilities among teammates”.
Rowe adds that RoweBots has provided LTE and Wi-Fi solutions to the traditional embedded markets for a while. In the past they have used proprietary connectivity as well, like satellite phones. An example application is the Caterpillar low cost tracker.
Two key aspects for wearables are communications/information security and software update security and authentication. The Unison RTOS has shipped with complete over-the-air (OTA) update capabilities for the past six years, with security a focus throughout. These features were adopted in their WearableOS environment.
“Everyone wants to talk about security, no one wants to pay for it yet," says Rowe. "We decided about 5 years ago that it was unacceptable to have fielded systems with our OS that weren’t secure. So we bundled in the important security features at no cost.
"For example, transport layer security (TLS) communications comes standard, along with secure SFTP for file transfer and SSH for remote control (login and command execution)," he adds.
Secure boot is another critical aspect for wearables. This is important to ensure OTA update security. Depending on the processor features, it can be incorporated in hardware or emulated in software.
For example, i.MX6 (NXP/Freescale) and RZ (Renesas) secure boot technology and other similar mechanisms embed keys in hardware and to provides embedded encryption unique to that silicon, which is used to sign and encrypt software images. This allows platforms with secure boot technology to authenticate the source of the image and know that the image itself has not been corrupted, and also provides a mechanism to roll back to the previous release if the update doesn’t happen successfully or if there are errors in operation. All this results in a more reliable, secure system.
Rowe further acknowledges that the company continues to work towards enhancing the security of its products, including the recent completion of a Microsoft Azure package that includes secure communications over the HTTP, MQTT, and AMQP protocols, as well as for the cloud platform itself.
Graphics and user interfaces
Perhaps the most interesting challenges relating to wearables and smart sensors are the unique graphics and user interfaces (UIs). On larger systems there are lots of capabilities and screen area for fancy graphics and user interaction. These systems also tend to be very power hungry.
On the smaller end, for watch and wrist wearables, Rowe notes that the WearableOS typically uses vendor-recommended packages or a third-party vendor for ultra-low-power graphics and UI components. Not surprisingly, programming wearables is a lot like traditional embedded system programming using application libraries and the C/C++ programming language with an Eclipse variant or embedded Integrated Development Environment (IDE).
BSD sockets network, file I/O, and embedded Linux and POSIX-compliant APIs speed development in these builds. Kim mentioned cites an embedded Linux application example that was been ported, run, and tested on the OS in 2 days using these tools. Upon porting, benchmarking showed that the same application running on their OS had a 50 percent increase in frame rate due to the significantly lower overhead of the WearableOS versus embedded Linux.
Another exciting example of miniaturizing wearables with similar capabilities involves an eSight technologies product. These are glasses that help people with specific types of peripheral or myopic blindness conditions see normally. eSight puts a camera on the bridge of your nose to do auto exposure and compensation for your specific sight deficiency. On your hip you have zoom and pan controls. The wearable puts the image up on a tiny screen in front of your eye. This technology allows people with sight problems to see normally and has literally changed lives.
Wearable and IoT sensor and device development requires a combination of hardware, software, and the ability to reuse them in order to decrease time to market while not sacrificing performance and reliability. Whether you’re developing a medical, factory floor, or wearable device that must be integrated into a larger IoT environment, building with a vertical OS environment can improve reliability and security with more finished, tested code, while also decreasing time to market and maintaining flexibility for component and hardware vendors.