Laying the Foundations of an IoT Development Ecosystem
One of the biggest challenges with IoT development is that cellular connectivity is much more of a barrier than it should be. Sourcing cellular modems and SIMs is only the beginning of this problem.
Poor software support leaves developers jumping through hoops to connect raw circuits to the Internet. Developers then become responsible for implementation. Companies and teams end up wasting time with processes that don’t make sense.
For the longest time, the only way for IoT developers to get cellular access was to go buy a SIM from a random electronics supply store. Processes were the antithesis of scalable – even if you built a prototype that worked, you couldn’t trust your software and hardware enough to keep devices working in the field.
Hologram’s customers and engineering team have long-struggled with the sub-optimal world of modems + software for single-board computers. When facing a choice between spending too much or dealing with infrastructure that falls short, no decision is a good one. No developer wants to deal with the failure rates that come with lack of hardware predictability and software visibility that’s necessary for a secure, high-performing, scalable IoT deployment.
It’s silly that one of the most important innovations and technical opportunities of our time comes with such high barriers to development that it stifles engineering creativity.
Developers, whether tinkering on their own or working within a team at a large, innovative company, should be able to access the exact cellular features that they need, without being stuck cobbling together an imperfect solution.
The ideal IoT development ecosystem
Decide what you build. Choose the components that are just-right for what you need. Run software that gives you complete visibility and control – ideally, it should be the exact hardware that you need for every nuance of whatever you’re building. Then, you have software that gives you visibility and control into your IoT device. That’s in deployment.
An IoT hardware + software ecosystem with complete customizability shortens the path from pilot to deployment and growth. It gives developers the support they need to create and build, not waste time coming up with cellular connectivity hacks.
One day, developers will have access to exact connectivity toolkits – they’ll have more variety of components to choose from. This is the typical path of technology: it’s new for a while, it matures, it stagnates, and then even new tech creates another push for innovation.
But right now, connectivity is a fragmented space. Hologram’s working on changing that, and we’ve taken the first steps by launching our toolkit, Nova.
Building Nova as a gateway
The first step to creating an IoT development ecosystem is creating a path to secure connectivity. The toolkit includes Nova, a USB modem that plugs into single-board computers, an SDK/CLI, and immediate cellular network access.
Here’s the TLDR of how the toolkit works:
- Pick your favorite single board computer, such as the Raspberry Pi
- Drop in the Hologram SDK; Plug your Nova into the Board
- Remotely interact with your device anywhere in the world as though it were sitting right next to you
- As long as there’s a cell signal, you can program your board using your local development environment and use the command line interface (CLI) to securely send data to and from your device
- Replicate across thousands of devices as you deploy at scale
- Sit back, relax, and enjoy all the time you saved not writing thousands of lines of code or having to deal with finicky modem AT commands and networking protocols
It’s a simple, scaled back device that plugs into your hardware and software ecosystem. IoT developers can access the exact cellular features that they need without needing to cobble together an imprecise or overengineered solution.
Nova’s focus is connectivity and connectivity only. That’s it.
What led us here
Entrepreneurs and engineers often say “fall in love with your own problem” if you’re thinking of projects to focus on building. The subtext of this expression is that if you, your team, and/or your company are facing a challenge, others are likely in the same boat.
Hologram’s product team has been through it all – chasing down sellers on Alibaba to source the modems through an international supply chains, working with partners as liaisons to overseas manufacturing teams, and finding creative ways to re-sell the exact modems that our developers used to build on our Hologram platform.
But at the end of 2016, we recognized these challenges as a strategic opportunity for connectivity. For one, we noticed a large shift towards the use of single-board computers with Linux environments, especially Raspberry Pis, in addition to microcontroller environments like Arduino.
Not to mention, IoT development needs are becoming more sophisticated, and our customers needed modems with straightforward, simple documentation and software.
We heard from our customers that modems they used often had different firmware versions and varying levels of support per purchase. The IoT developers who stuck with the challenge were really going for it, with a lot of grit.
In our store, our third party modems had always been a hot seller, even though they were difficult to source with dedicated software support. But we still went through the effort because “better than less than ideal” was still worth it.
It was our own jigsaw puzzle with missing pieces, and the process was not conducive for a sustainable, scalable business model. The fit wasn’t right for us and more importantly, we were not willing to run into a situation in which our customers felt stuck due to lack of software support and supply chain visibility.
And that’s exactly what the Hologram team sought to tackle when building Nova and its accompanying toolkit for connectivity.
How Nova supports the IoT developer
We designed Nova to support a wide range of applications, prioritizing reliability first and foremost. In contrast to USB hotspots – devices designed to support consumer – Nova is built for the specific needs of IoT developers. There were a few form-meets-function elements that went into designing and building it:
- A small form factor to avoid wasting adjacent USB ports
- A design that fits inside a small enclosure (i.e. to have a Raspberry Pi inside of the machine)
- An external antenna port to boost cellular signals when necessary
- A python SDK with a command line interface (CLI) that creates direct communication with devices
- A global SIM that works on over 660 networks worldwide in 160 countries
Nova is ubiquitous to multiple application contexts. We don’t know when we’re going to be when running tests on prototypes for the first time, for instance. Maybe you’ll be inside right next to the device, on top of a tree, in an agricultural settings, etc. Because Nova is simple and focuses on connectivity only, almost anyone can use it in any development context.
Imagine it: Use cases
Maybe you’ve created a prototype on a Raspberry Pi or some sort of single-board computer with a USB port. It’s running some sort of operating system. You’ve developed an IoT product that works over Wi-Fi, but maybe it doesn’t have connectivity yet. How can you be sure that you won’t run into friction when deploying on cellular networks? The experience we’ve created is that you buy Nova, plug it into your device, go through a couple of installation steps for the drivers, and then start testing your prototype. Skip testing over wifi altogether. Get your IoT product up and running faster so that you can get feedback and iterate.
Let’s say that you have a bunch of industrial monitoring equipment or you’re operating windmills, livestock, or high-value equipment in remote areas that people can’t reach. Maybe you’re operating solar panels in the middle of the desert, for instance. With Nova and its accompanying toolkit, you can make sure that the device is operating as if it were in the same room, right next to you. Through a simple command interface, you can talk to the device, troubleshoot potential problems, set up a monitoring system, and make the device talk back to you.
Imagine that you are deploying 10,000 sensors to monitor air quality, or to monitor radiation around nuclear blast sites, power plants, or something similar. Nova + the SDK make sure that the data you need gets back to you.
Why risk something going wrong?