DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
Building Scalable Real-Time Apps with AstraDB and Vaadin
Register Now

Trending

  • Implementing RBAC in Quarkus
  • How To Become a 10x Dev: An Essential Guide
  • Does the OCP Exam Still Make Sense?
  • HashMap Performance Improvements in Java 8

How We Develop an IoT Prototype in a Month

Our team aimed to get a smart desk clock prototype done in a month. Here are some handy tips we learned from the process.

Daryna Kacherovska user avatar by
Daryna Kacherovska
·
Jun. 04, 20 · Opinion
Like (3)
Save
Tweet
Share
10.18K Views

Join the DZone community and get the full member experience.

Join For Free

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.

Let our experts show you how you can go from zero to mass production, join the webinar How to go from prototype to production.

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.

Mechanical Engineering

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.

Takeaways

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.

You can also find more photos and how the clock works in the full case study or just watch the video below.

Prototype Clock (cryptography) mobile app

Published at DZone with permission of Daryna Kacherovska. See the original article here.

Opinions expressed by DZone contributors are their own.

Trending

  • Implementing RBAC in Quarkus
  • How To Become a 10x Dev: An Essential Guide
  • Does the OCP Exam Still Make Sense?
  • HashMap Performance Improvements in Java 8

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com

Let's be friends: