Prototyping and deploying IoT in the enterprise

Toward a virtuous cycle between people, devices, and cloud.

By Brian Jepson
January 31, 2017
Abstract Abstract (source: Sbringser)

You have a lot of options available when you’re building a smart, connected device. For example, in recent years, your hardware options have multiplied massively. Even the humble Raspberry Pi, originally designed as an educational tool for youth, is getting into the game with NEC’s announcement of Raspberry Pi Compute Module support in their commercial/industrial display panels.

And there has long been plenty of choices for those who want to roll their own devices from scratch. Every embedded hardware platform has some kind of evaluation board available that works as a starting point for your own designs. For example, you can prototype with an inexpensive reference module like MediaTek’s LinkIt ONE, and then design your own module that has only the parts you need.

Learn faster. Dig deeper. See farther.

Join the O'Reilly online learning platform. Get a free trial today and find answers on the fly, or master something new and useful.

Learn more

But even if you’ve got your choice of hardware platform sorted out, there are many other factors you need to work through before you even build your first prototype:

Understanding where your product will live

Even though it’s a given that a smart, connected device will talk to the cloud, where it lives depends on how and how often it communicates: will it talk directly to cloud APIs or will it be managed by some kind of device router? This will affect everything from which communication protocols you use to how you transmit data.

Going from one to one million

It’s easy to put together a prototype of your device using off-the-shelf parts, but what happens when you scale to dozens, hundreds, thousands, or millions? Not only will this affect the bill-of-material choices you make, it will affect how you design connectivity into your device.

Creating a great developer user experience

For all the talk about making IoT devices as invisible as possible to users, there is one user base who you need to make things very visible to: developers. It’s rare these days to have a device that is simply plug and forget; your customers, even internal customers, will need to integrate and customize. Whether they are power users who configure with a drag and drop environment or developers who code from bare metal up, you need to make easy things easy and hard things possible.

Preparing for the physical environment

Dust, vibration, rough use—these are some of the things that can have a big impact on the performance and longevity of any device you create. When you design your device, what kind of enclosure will you turn to? If you are using wireless connectivity, how will you ensure that radio signals get through the enclosure, and past any interference in the physical environment? This will affect manufacturing cost, determine your testing protocols, and ultimately time to market.


Once a device is deployed and in the hands of customers and their developers, security still remains your responsibility. With field upgradeability and remote monitoring comes the ability to know what’s happening, and to update firmware for any vulnerabilities that occur. How you monitor and address problems, as well as how you approach field upgrades, will have a huge impact on your credibility and liability.

Our report, Connecting Networked Devices, looks at the choices, constraints, and opportunities for anyone who has to create these devices for others. The Internet of Things, backed by a strong cloud infrastructure, gives us the opportunity to redefine the relationship between humans, machines, and our environment. Our goal with this report is to help you get it right. Download the report here.

This post is a collaboration between ThingWorx and O’Reilly. See our statement of editorial independence.

Post topics: Software Engineering