Today's consumer product designs are increasingly complex and interconnected.
With each product’s evolution, devices continue to fold into one another. Interoperability, within the design itself and with other electronic devices, is more difficult than ever to achieve, especially in today’s competitive "race to market" landscape. Whether your design requirements involve enabling communications to a cloud server, implementing a file system, adjusting your project's memory footprint or finding an RTOS that works perfectly for 8-bit to 32-bit designs, Weston Embedded Solutions can help.
Our software components
• Work with the microcontrollers that customers select for their consumer product designs
• Follow a modular approach that enables you to purchase the exact bundle or individual software stacks to meet your needs
• Are licensed by project, not by seat, allowing your teams to easily work on the same product without taking a substantial budget hit
We're experts in the realm of design functionality and interoperability. Our software is created specifically for the small footprint and limited resource requirements of embedded design.
While you focus on creating designs that improve the end user's experience, let us help improve your design experience. Our team is ready to assist you with your most complex and demanding embedded challenges. Call us today to see how the Cesium RTOS software modules with affortable licensing options can make a dramatic difference in getting your products out the door fast.
Why an RTOS for the IoT Device
The demands of an increasingly data-driven world mean that your IoT device will require robust and reliable software. For that, you’ll need a real-time operating system (RTOS).
While the term "IoT" has gained much attention, at their essense, IoT devices are fundamentally embedded systems that transmit and receive information over a network. And while many embedded systems manage well with less sophisticated or basic software, networked devices require more capable systems.
The software for your IoT device must be:
• Scalable, to accommodate a wide range of different classes of devices
• Modular, so you can choose only the components you need to meet tight RAM requirements
• Connected, so you can move data in and out of the device via Wi-Fi, Ethernet, USB, etc.
• Reliable, for continuous and/or safety critical operation.
Why Not Linux?
Linux certainly is a robust, developer-friendly OS that has gained attention as a platform for IoT devices. Linux has matured into a mainstream embedded operating system for many applications. Yet Linux has a disadvantage when compared to a real-time operating system:
Its memory footprint is quite large.
Even though Linux can be trimmed down by removing tools and system services that are not needed in embedded systems, it still remains a large piece of software. It is quite challenging to run on 8 or 16-bit MCUs, and even many newer 32-bit MCUs do not have enough onboard RAM for the Linux kernel. The ARM Cortex-M series is a good example: There are hundreds of different MCUs that are based on the popular Cortex-M architecture, which typically have only a few hundred kilobytes of onboard memory. Linux will never run on these chips.
Linux has many uses in embedded applications, particularly ones that provide graphically rich user interfaces, or when the system's behavior is not deterministic . But there are thousands of applications for which Linux is ill-suited.
Requirements for Industrial vs. Consumer IoT
The software requirements for industrial vs. consumer IoT devices can differ quite a bit. Although they might share a common kernel and low-level services, the middleware required by their applications can be radically different.
In the illustration above, on the left, we see an example of a software stack for an industrial IoT device, such as a wireless sensor node. This is a low-power, low-cost device that may run entirely on battery. Such a device might typically use a Cortex M0 or Cortex M3/M4 MCU. It would make use of a highly efficient network protocol such as 6LoWPAN to reduce transmission time and save power. And it would communicate over short distances wirelessly using Bluetooth or low-power Wi-Fi, or else use Ethernet.
On the right, we see a software stack for a consumer IoT device. The software requirements for this device are much greater. It might need a Java VM, and may well make use of a vertical market protocol such as AllSeen, HomePlug/HomeGrid, Continua Alliance, or 2net. Such a device typically might use a Cortex-M3/M4 or a Cortex-A processor.
These requirements will drive your choice of RTOS among other design decisions. You don’t want to be in the position of having your choice of platform limit the functionality of your device.
Using a flexible, scalable RTOS such as Cesium RTOS can help you cut development costs and reduce your time to market thereby increasing the return on your investment .
Although embedded systems have historically been built entirely around 8 and 16-bit MCUs, the price of 32-bit MCUs has dropped dramatically, making them commodity-like products. And so their popularity for embedded devices has skyrocketed. A common engineering solution for networked embedded systems is to use two processors. In this arrangement, an 8 or 16-bit MCU is used for a sensor or actuator, while a 32-bit processor is used for the network interface. That second processor runs a real-time operating system (RTOS).
IoT devices will contain a mixture of small and large MCUs for years to come. A scalable RTOS that runs on a variety of 16 and 32-bit MCUs will allow you to meet tight memory requirements and reduce processor demands, saving you money.
Your IoT device will require a modular operating system like Cesium RTOS that separates the core kernel from middleware, protocols, and applications. The reasons are ease of development and keeping the memory footprint of the software to a minimum.
Using a modular RTOS simplifies your development process, especially if you are developing a family of devices with different capabilities. Relying on a common core allows the entire family of devices to share a common code base, while each device is customized with only the middleware and protocol stacks required by the application.
This approach also allows for a smaller memory footprint in your device. Unlike a monolithic operating system that bundles an entire suite of software together, a modular RTOS allows you to tailor the embedded software for your device, requiring less RAM and flash memory, reducing your costs.
Network connectivity is essential to the Internet of Things. Whether we are talking about wireless sensor nodes in a factory or networked medical devices in a hospital, the industry now expects embedded devices to be connected to each other, and to communicate with corporate or public networks.
Your RTOS of choice needs to support communications standards and protocols such as IEE 802.15.4, Wi-Fi, and Bluetooth. Your device must be able to connect to IP networks using bandwidth-efficient protocols such as 6LoWPAN.
An RTOS will allow you to select the specific protocol stacks you need, saving memory on the device, and reducing your costs. And it can help you retrofit existing devices with new connectivity options without reworking the core of your embedded software.
Many IoT systems will be deployed in safety-critical environments, or in locations where repair and replacement are difficult. IoT devices need to be faultlessly reliable. You may need your RTOS to be certifiable to industry standards for functional safety. This is vital in order to demonstrate the reliability and safety of your device.
Certifications that you may need include:
• DO-178B for avionics systems
• IEC 61508 for industrial control systems
• ISO 62304 for medical devices
• SIL3/SIL4 IEC for transportation and nuclear systems
If you are building your product for use in a safety-critical environment, using software that has a proven history of successful certification can reduce the certification effort for your device, and reduce costs. Many or all aspect of your device may require certification and extensive documentation. Validation suites and certification kits, typically available from third parties, provide thousands of pages of documentation that you would have to otherwise create for your product.
Even if you don’t require certification for your device, knowing that the RTOS running within it has been certified can provide confidence and peace of mind that your product will perform reliably.
We are very pleased to hear from prior customers that have successfully deployed our embedded solutions in their most demanding applications. Our customers have come to rely on us to provide them the best-in-class RTOS kernels and protocal stacks, which began with the Micrium uC/OS family of products to today's next-generation successor, the Cesium RTOS.
Marc Capot, Embedded Software Engineer
For the development of its new innovative product line, the Socomec firmware/software team selected the Micrium product suite: the real-time kernel, the TCP/IP stack and file system.
Our team found this software to be rugged, portable and efficient, while being adaptable to our hardware constraints to optimize the required functions and hardware used.
Micrium’s support is professional, respectful and responsive. We were able to develop under the best working conditions, and produced a great Ethernet communication gateway including a web server and other IP protocols.
Chris Rothwell, Fellow
What I can say as a customer is that we have had excellent success with the Micrium products. They provide low overhead (CPU cycles/memory) on the system, while providing advanced features. Over time, Micrium has added new modules and provides many of the capabilities we need. This is important to us, we don’t want to be experts in file systems and USB. Instead, we want to focus on our expertise in thermal printing.
We have rarely needed to contact Micrium technical support. That is because the Micrium products tend to work correctly and the documentation is very good. In the few cases we have needed to contact Micrium, we have gotten quick, helpful answers. The various modules are simple to use and that allows us to produce less complex code that is more robust, maintainable and scalable.
Overall we are very pleased with our use of Micrium products over a 10+ year period. The cost of licensing the Micrium products is insignificant when you consider the development time that has been saved by using them.