Many companies and developers are moving to a “fail fast” philosophy.

Getting an electronics product to market is significantly different than it was just 10 years ago. The two biggest factors leading to this rapid change have been the opening of the mobile phone app store and the ubiquity of wireless connectivity. These two technologies have simultaneously made our devices richer and more fulfilling, but also have increased the complexity of the products and engineering work behind them.

In the case of traditional serial development flows, once a new product plan has surfaced, a significant amount of time is spent refining the idea, developing hardware, working on software, and finally producing a product that is introduced to the market.

Today, many companies and developers are moving to a “fail fast” philosophy, where idea generation, testing, and market validation are compressed into a tight loop. In this case, skunkworks engineering teams continuously build out, test, and develop product proof of concepts (PoCs). Rapid prototyping with development kits, open-source solutions, and tried and true breadboarding allows software engineers to quickly test out new device firmware that can easily show how the end product will look and feel.

As mentioned above, the issue for software developers lies in the connection to the outside world. If we look back even a short decade ago, many devices performed their tasks in unconnected isolation. There were fewer mobile apps to control and interact with them. Updates, if any, were mostly performed via USB, and the PC-based applications used to perform these updates were sketchy at best. Given this, the software for these products was more robust, knowing that there may not be a way to update it in the future.

Fast forward to today, and most devices on the market are connected via Bluetooth or Wi-Fi to either a mobile phone or local network. Low-cost and low-power LTE, Cat-M1, and NB-IoT are becoming more popular for always-on connections. Software knowledge of these new stacks and communication protocols means that engineering effort now shifts from bare metal code to utilizing an RTOS like FreeRTOS from Amazon or Azure RTOS from Microsoft. Engineers must ramp up their knowledge base and design mentality to develop in a threaded environment.

These constant connections to the outside world now bridge an embedded device with mobile applications, cloud services, AI/ML toolchains and algorithms, and wireless over-the-air updates. This has a few negative drawbacks. New tools need to be downloaded and installed, and sometimes finding these tools can be difficult, especially in new technology areas where there are typically many different offerings since the market isn’t settled yet. On top of bulky tool installation, the biggest hurdle is learning different technologies. Many of these technologies look and feel completely different than working with standard C, and the context switching introduces inefficiencies. The time it takes just to show a working demo or PoC starts to compound as we add in additional pieces.

One thing should be clarified at this point. All engineers working on a product must have intimate familiarity with all the components in the design. Software engineers must understand how to communicate with the different buses inside the device, and they must know how to create threads and interact with them. But the barrier our industry needs to overcome is burdening engineering staff with becoming experts at the very beginning of the design cycle in order to use a demo project or see a device operating. Engineers must be comfortable that the selected devices can achieve their vision for their product, and seeing is believing. After you are comfortable that all the components can satisfy your needs, then the engineering staff can take the proper time to study and learn everything about the components to maximize and extract every bit of performance out of them.

In true engineering fashion, where a problem exists, solutions tend to bubble up to the top to solve them. Accelerated software development tools, such as Renesas’ Quick-Connect Studio (QCStudio), aim to lower the development bar during the prototyping stage.

This online tool allows you to drag-and-drop components at the solution level. Once you are happy with the components that have been selected, QCStudio can automatically configure the devices and generate the first working project utilizing those components. Software engineers do not have to learn about complex pin muxing, port connections, or register setups just to try out a prototype. The tool is a full-fledged IDE and code can be modified directly in the browser. Since QCStudio is cloud-based, compilation is done remotely on a resource rich and powerful cloud server, thereby cutting down on the need to have a powerful desktop or laptop PC. Once compiled, the engineer sets up their hardware exactly as depicted in QCStudio, downloads the binary image, and can immediately see the results.

Embedded engineers face many challenges in getting a product to market. As software and systems become more complex, the need for efficient and tighter design cycles will only grow. By embracing agile methodologies, reusing common frameworks and architectures, and using automation tools, software and systems engineers can keep pace with the dynamic nature of the industry and deliver higher quality products in less time.

www.renesas.com