The lean startup methodology says that prototyping is a high-priority stage since it helps verify your idea from the technical and market points of view in a very short term and using minimal resources. But what is the real time you need to develop the very first functional prototype?
Our team aimed to get a smart desk clock prototype done in a month. Here are some handy tips we learned from the process.
Finalize the product idea first
Before taking any steps towards development, you should finalize the product idea so your team clearly understands what kind of device features and functionality you are about to develop.
Our idea for developing the WorldClock was to create a smart desk clock with a round display that shows the real time in a few different locations. This would help people who cooperate with remote teams to navigate among time zones much faster.
The user would be able to control the clock with an app, setting up needed time zones. An additional feature would be a reminder of personal events. The clock would display daily appointments in the form of colored stripes around the main clock.
Create a prototype development plan
When we had all of the features described, we split the general task of developing a smart clock into smaller ones: component selection and electrical design, software development, and mechanical engineering. Just to save time, we planned to work on some of the tasks simultaneously, so the development process looked like this:
Component selection and electrical design
When it comes to electrical engineering, it’s better to use already existing modules, or boards, when developing a prototype. This simplifies the work a lot and saves time. We suggest developing only those modules that you can’t buy.
When you choose hardware components for the prototype, you are basically validating the idea. Sometimes, the physical capabilities of some components are not appropriate, so you might need to apply changes to the product design.
To implement the WorldClock features, we needed a display and a single-board computer. Of course, we could develop these ourselves, but that would take a lot of time. Since our goal was to have a ready prototype in a few weeks, we decided to look for appropriate ready-to-use modules.
However, we faced a few challenges here.
First, the design of the WorldClock required using a round display. Most of the round displays we found were too small for our clock, and it took us some time before we were able to find a couple of appropriate ones.
Second, it turned out to be a challenge to connect the display to a single-board computer, since it used a specific interface for a connection — MIPI DSI 3.
Initially, we chose C.H.I.P. as a single-board computer for our prototype. It was the most affordable solution and included everything we needed; it could launch Linux and had a Bluetooth module. So, we had an idea to create our own special converter for C.H.I.P. to show the image on the display. We estimated the time to create our own converter, and it was too long. So, we started looking for an existing solution. The display manufacturer suggested we use the HDMI — MIPI converter that they use.
Converter for C.H.I.P.
The challenge was that our computer, C.H.I.P., did not have a built-in HDMI interface to connect with MIPI.
Therefore, we decided to use another single-board computer with an embedded HDMI interface, Raspberry Pi Zero W. This computer was quite small, and we got a lot of technical documentation along with it as well as the support of a large community, so it was a really good decision.
The mechanical engineering often requires a lot of effort since the design of each product is unique. The good news is that, today, you can simply 3D-print your product, so you just need to develop a 3D model first.
For the WorldClock, we needed to create a plastic case on which a display, a board and a converter would be mounted. So, we developed the 3D model in SolidWorks according to the design we had, then printed the case, post-processed and painted it.
Embedded software and app development
You can develop software while working on the electrical and mechanical design, and, for the prototype, you might use existing Linux distributions instead of creating your own.
We started developing application code while selecting the platform for the WorldClock.
The device needed to display the clock and communicate with the user’s device via BLE (Bluetooth Low Energy). As a programming framework, we chose Qt (C ++) since it could potentially be used on any platform we opted for.
Official Operating Systems for C.H.I.P. and Raspberry Pi was based on the Linux kernel, so there was no serious problem with porting all the software. Functional software consisted of a number of operations, such as displaying the current time on the screen using the widget, setting the time for the device, and displaying or hiding small clocks.
When the embedded software for the clock was ready, we launched mobile application development. We decided to create a native app that would allow controlling a clock with a smartphone only for iOS devices at the beginning.
After four weeks, we had a ready-to-use prototype of the WorldClock that can be controlled by the mobile application.
Based on our experience, here are some tips on how to develop the prototype of your product really quickly:
It is important to choose components that require the least development time.
When it comes to electrical engineering, you can use already-existing modules or boards.
Mechanical parts, like cabins, you can simply 3D-print.
To save time, you can start developing software while working on electrical and mechanical engineering.
Stay tuned for more articles about IoT, mobile and web development!