Prototyping is a crucial step in the development of any new product, even in the case of complex systems such as airplanes and space shuttles. Its primary purpose is to test and validate ideas, showcase the product’s potential to investors, and provide a basis for developers to begin coding before the final hardware is ready.
It is common for product owners to have uncertainties and desire some initial validation before investing significant resources. This allows them to adjust their plans as development progresses. While some ideas may appear promising initially, they can eventually prove to be unrealistic. In such cases, prototyping helps us avoid wasting money and effort on the wrong path.
Defining the Proper Prototype
The ideal prototype should be affordable, easy to create, and sustainable. Creating prototypes should not lead to increased expenses but rather help to reduce costs and efforts in the long run. In case the product is dismissed, companies should not suffer significant losses. Moreover, creating a prototype with a reusable base can save time and resources in developing the final product.
Creating a prototype involves building a simplified version of a product. This requires a certain level of artistry as the development team must determine which components, functionality, and features are essential for the prototype and which pieces can be left out in the initial stages. This process is similar to the work of a sculptor, as engineers start with the entire product as a base and then chisel away the pieces that are not required for their purposes.
When it comes to software development prototypes, mechanical parts and cases can typically be excluded, and peripherals may be simplified or reduced. Prototyping is often a collaborative effort between software and hardware developers, though in certain cases, software developers may possess the necessary skills and knowledge to create prototypes independently.
Optimal Approach To Prototyping
Auriga’s experts frequently undertake numerous system-level and embedded projects, which require the creation of prototypes to explore various options for future products. For this purpose, the experts rely on development boards as a practical approach to R&D tasks and prototyping. The Nucleo boards for STM32 MCUs or Raspberry Pi for ARM-based solutions are the most commonly used solutions in their daily routine.
Originally intended as an educational and hobbyist tool, Raspberry Pi has now become the de facto industry standard for prototyping. When developing a product based on an ARM CPU, the first step is often to create a basic product prototype using a Raspberry Pi and expansion boards.
Several factors drive the phenomenon/popularity of RPI:
- Availability: It is readily available worldwide, without the need for pre-ordering and waiting for delivery.
- Low Cost: It has an average cost of $35, making it an affordable option.
- Genuine ARM CPU: It is based on a fully functional ARM CPU widely used in various products, from smartphones to super-servers.
- Modular and Open Design: It has a modular and open design that allows for the attachment of various external devices and expansion boards, such as sensors, interfaces, and buttons.
- Strong Engineering Community: It is supported by a vast engineering community worldwide, providing many users’ documentation, workarounds, tutorials, and hints.
The Reasons Companies Avoid Prototyping
However simple it may seem, some clients are reluctant even to consider building a prototype of their product using a board like Raspberry Pi that looks like a toy. In my experience, there are various reasons why companies are hesitant to use RPI as a prototyping platform, such as:
- The crisis of ideas: Some product owners prefer to wait for an entirely produced device or order an expensive industrial prototype instead of creating a simple “quick-and-dirty” prototype, which would allow for software development to start earlier.
- “What will people think”: In some cases, larger companies may look down on cheap prototypes, which can be a costly mistake. However, many major IT market players increasingly use Raspberry Pi for R&D phases.
- “Our product is too complicated to prototype”: Some companies, especially those with no experience in hardware development, assume that prototyping their device is too complex.
As an example, let me share one of our previous projects where we developed embedded software for a construction tool. Due to its weight and danger, the tool was not practical to use in an office setting. Our engineering team used a small development board and a spring from an office chair to create a simplified prototype, resulting in a peculiar-looking setup of buttons, motors, indicators, and wires shown in Pic. #1. Though the prototype bore no resemblance to the actual product, we demonstrated that it could still run approximately 70% of the scenarios in the product software, ultimately impressing the customer.
Prototyping With Raspberry Pi – Project Case
To wrap up, we will show how simple and efficient it is to utilize Raspberry Pi as a prototype platform for developing an actual product. A practical case study should serve as sufficient evidence.
A global producer of mobile electronic devices initiated a project to build an innovative ARM-based tablet PC with a personalized hardware platform founded on its own ARM System-On-Chip CPU. Developing custom hardware is generally time-consuming and requires custom software development, which further prolongs the process. However, the customer’s main priority was time-to-market, and they couldn’t afford to wait for the custom hardware to start software development, as it would likely double the length of the development phase.
As the targeted device was based on ARM CPU, our client tasked the Auriga team to start software development without having the actual hardware. To make this possible, we created a simple prototype using Raspberry Pi 4b and selected peripherals, such as an LCD screen and a set of external USB devices, as shown in Pic #2. Despite its simplicity, this prototype enabled us to run the embedded OS and implement most of the required functionality, saving significant development time. The software solution is almost ready, and once the target hardware becomes available, we will only need to make minor adjustments and implement a few hardware-dependent features, which will take a little time.
To top it off, we can disassemble this temporary setup and repurpose these development boards for future projects after completing this project. This approach allows us to minimize prototype component costs further.
Conclusion – Why Use Development Boards
Prototyping can save time and money while enabling early development. It doesn’t have to be expensive or complicated; even significant companies have used this approach. For instance, the initial version of a floating oil drill station may resemble a tangled mess of wires and sensors, but it does the job and facilitates software development.
Auriga’s embedded software development team goes the extra mile to discover and employ the most efficient methods and technologies in prototyping. With 13 embedded testing labs, our engineers can build prototypes from the ground up. Our clients greatly appreciate our engineers’ creative approach. Ruben Echandy, the Vice President of Engineering at Digital Guardian, remarked:
I particularly like that, with very little information, they take the strong initiative to bring a concept to reality and deliver.
If you would like to discuss prototype development, contact Auriga’s experts using our contact form.