I love the Internet of Things (IoT) uprising that is happening right now. I mostly spend my days writing software, but my degree is in electrical/computer engineering, so IoT technologies combine a lot of things that I am interested in.
When the Raspberry Pi first came out, I got very excited and immediately began building my first IoT device. It was a lot of fun, but I quickly discovered that making an IoT product is really hard and requires a lot more work that I had initially thought.
A few years later, I was delighted to find that a company called Particle is trying to make the lives of people like me much easier. Particle is revolutionizing the world of IoT by building infrastructure that supports taking a product from prototype to mass production with minimal time and effort.
What Makes IoT So Hard?
I know that a lot of you could easily wire up a breadboard, write a little code, and toggle an LED from a smartphone over a weekend without much trouble. But that’s not a product. That is a prototype, and it’s really just the tip of the iceberg. To make a product that you could actually feel good about selling to customers requires a lot more thought and a lot more work.
Connectivity may seem like a basic thing, but it must not be overlooked. A lot of IoT devices don’t have screens and keyboards, so how can users configure their device to connect up to the internet? Do they have to enter their network credentials somehow?
You could use Bluetooth for this, but that creates even more work and potential problems to debug. Also, there’s the additional hardware expense of a Bluetooth radio. Do you have a way of debugging customers’ connection problems? Can/should you use WPS? The average consumer probably doesn’t know what WPS is. How many phone calls are you prepared to handle to help resolve these issues?
Handling firmware/software updates is another big challenge. Once you have a large number of devices in the field, how will you update them if you find a bug or want to add a new feature? Can you handle releasing updates to a group of beta testers? Can your device handle an update that is terminated half way through? These are just a few of the questions you will need to address.
Particle to the Rescue
Particle is trying to make it as simple as possible for people like us to make quality IoT devices and bring them to market quickly and easily. They have created a large range of both hardware and software tools to help make that possible.
The Particle ecosystem works like this: The devices you build are configured to connect to a WiFi network using a smartphone app. Once connected, the devices communicate directly to the Particle Cloud which provides an interface for your client applications (web, mobile, desktop) to send and receive data to and from the device. All of this is accomplished with ease using Particle’s open source software libraries for firmware and software.
If you’re just getting started with prototyping, Particle offers development boards called Photon and Electron, which support WiFi and 2G/3G cellular connectivity respectively. These devices include programmable micro-controllers where you can upload your own code to add your custom functionality. They are also CC-, CE- and IC-certified so you don’t have to worry about that legal stuff. Particle’s firmware libraries take care of all the connectivity work for you and make it possible to send data to the cloud with only a few lines of code.
Once you graduate past the prototyping stage, Particle offers hardware components that you can mount on your own custom PCB. These include an MCU + WiFi component or an MCU + WiFi + PCB antenna that is pre-certified by the FCC.
The Particle Cloud is used to manage and track your devices in the field and to associate them with your customers’ accounts. As a business owner, you can access the Particle Console, a web-based dashboard where you can view the status of products in the field, issue firmware updates with the click of a button, view logs from devices, set up custom webhooks, and manage interactions with other services like IFTTT.
Open Source SDKs
One of the most valuable features that Particle offers is a collection of open source libraries. The collection includes firmware, mobile (Android and iOS), and web (Node) SDKs that allow you to get your product off the ground and fully functional very quickly. The mobile SDKs even include customizable UI components that guide users through the entire process of connecting to devices and configuring them to connect to a WiFi network.
All of the Fun, No Boilerplate
Developing an IoT device can be a lot of fun. It can also be a lot of headache if you attempt to spin up an entire ecosystem yourself. What I love about Particle is that it allows me to spend my time working on the interesting pieces of the product development because they’ve done all the boilerplate work for me. Thanks, Particle!
I know Particle has a few competitors out there, but I’ll admit, I haven’t looked into them much. If you have experience with any similar companies, I’d love to hear about it.