What you’ll learn
- Trends in integrated development systems.
- How ModusToolbox brings machine learning to PSoC microcontrollers.
Infineon’s ModusToolbox is an open-source, Eclipse-based integrated development environment (IDE) that supports its numerous microcontroller solutions, including configurable PSoC. IDEs have come a long way from when they were customized text editors that drove compiler scripts and spawned debuggers. They still do that, but the sophistication of today’s IDEs is extensive, especially as more and more tools are added to the mix.
Machine learning (ML) is the latest piece that’s finding its way into almost every IDE on the planet. This includes Infineon’s ModusToolbox Machine Learning, which supports popular ML frameworks like TensorFlow (Fig. 1). It’s combined with the ModusToolbox ML Embedded Library to deliver ML inference models that run on platforms like PSoC. The associated compiler is designed to validate and optimize the trained model so that it can fit and run on a microcontroller. The tool also can validate the performance of the resulting model using test data.
The integrated tool handles a range of ML models from 1D and 2D convolutions to recurrent neural networks (RNNs) such as GRU (gated recurrent unit). The platform supports hardware like the CY8CKIT-064S0S2 PSoC development board and the CY8CKIT-028-SENSE Expansion Shield.
Integration of ML tools with IDEs varies significantly unlike more standard tools like GCC compilers and GDB debuggers. This is partly due to the variety of ML frameworks, models, and tools being employed. Many are open-source tools that actually provide a level of standardization, since making significant modifications leads to support headaches for vendors in the long run.
On the other hand, customization enhances integration, streamlining a user’s development process and generally reducing the amount of understanding required to take advantage of ML. Such integration can be significant because users often may have a limited background in ML—even when it comes to the workflows—in order to incorporate the benefits of ML into their application.
ML integration isn’t the only tool that’s part of a vendor’s IDE solution these days (Fig. 2). RTOS support, IoT linkages, and security are all in the mix. This combination of tools usually ties a developer to a vendor’s platform more than any hardware aspect. It’s not necessarily a bad thing, as migrating an application to a different vendor’s hardware isn’t something that’s done frequently. Still, it can make use of examples, like ML models, in a user’s application more challenging.
It’s also one reason other tools that are often part of an IDE these days are integrated web-based forums and support sites as well as app stores. These usually make it very easy to download additional tools or examples.
This level of integration with vendor-provided tools makes it challenging for third-party providers to match the integration found in vendor’s IDEs, which are often provided for free. On the flip side, third-party providers often cover a wider range of hardware platforms, often in a relatively transparent fashion. Likewise, some of their tools and solutions can be more sophisticated or extensive compared to vendor-based IDEs.