Protocol Buffers in Swift: A Use Study in Brushing Your Teeth

December 29th, 2017 | Sean Hamstra | Development

When dealing with the Internet of Things (IoT), developers are faced with many technical hurdles connecting multiple devices together over a computer network. Each of these devices is likely to speak its own language and require specific code to translate data from the other devices. More device, more languages, more work, more money.

For example, let’s say you just bought a connected toothbrush. You get it all set up and decide to take it for a spin. According to the instructions, all you as the user needs to know is how to brush your teeth. There’s obviously a lot more happening within the device, however. As you brush, sensors are working to track things like battery power, usage time, and perhaps even motion with a gyroscope and accelerometer. Embedded code in the toothbrush, written in C, is used to track all of this data and upload it to the cloud. Then a cloud app, perhaps written in Ruby, accepts and stores this data while running some analysis on the motion and timing of your usage.

You set your toothbrush down and whip open your Android phone and fire up the app, eager to see your progress and get your brushing rating. Once again, there’s much more happening than meets the eye. Triggered by you opening the app, the Java code in the Android app fetches the data from the cloud and displays it on a nice graph for you….

Read more

Four New Reasons to Consider AWS Greengrass For Your IoT Project

December 19th, 2017 | Conor Livingston | Systems

At the end of November, we sent developer Conor Livingston to AWS re:Invent, the premier learning conference for the global cloud computing community. After spending a few days with access to over 1,000 technical sessions, networking opportunities, and keynote announcements, he brought back to SpinDance an exciting announcement about AWS IoT: updates to AWS Greengrass.

What is AWS Greengrass?

AWS Greengrass is software designed to run on IoT devices that have a general purpose processor with at least 1GHz of compute and 128MB of RAM. Think Raspberry Pi. In an IoT system, Greengrass would run on a hub or a gateway as opposed to a low-powered, more resource-constrained sensor. The Greengrass Core software does the heavy lifting for a few important activities on IoT devices, including:

  1. Local compute via Lambda functions developed in AWS
  2. Messaging with cloud
  3. Data caching on device
  4. Sync device data with cloud

Not to mention the fact that using Greengrass is the best way to get the most out of the rest of the AWS IoT ecosystem.

One of the best things about Greengrass is its security model. It was clearly designed with security in mind because it uses X.509 certificates, AWS IoT policies and IAM policies to make sure IoT devices are secure….

Read more

Introducing the IoT Canvas: Planning Worksheets For Connected Products

December 19th, 2017 | Brian Tol | News,Operations,SpinDance

Managing an IoT project can be tricky. Every month, SpinDance talks to one or two organizations who are stuck somewhere on the IoT journey. Some of the scenarios we’ve heard recently include:

  • The project team is struggling to sort through competing vendor claims.
  • The organization isn’t sure how to build a business case or calculate long-term ROI.
  • Their QA process is taking 3x as long as expected, forcing them to rush a inferior product to market.
  • They didn’t plan for essential features like over-the-air updates, and are scrambling to add them to a suboptimal embedded design.
  • Their device analytics are not answering the questions the business /really/ cares about.
  • The outsourced cloud development team is months behind delivering a product, and there is finger pointing between all the various delivery groups.

These are all true stories we’ve seen up close, and unfortunately they aren’t isolated experiences. Cisco recently did a survey that found that 85% of IoT projects are considered business failures at some level. Meanwhile, we continue to consult with project teams that aren’t sure where to turn next.

There’s no reason that a properly-planned project should fail, so this raises the critical question: why are IoT projects so difficult?

Why is IoT so difficult?

There are lots of symptoms that contribute to the difficulty of IoT project management,…

Read more

Internet of Things

Hack the Train: SpinDance Shares Holiday Spirit with Interactive Window

December 19th, 2017 | Tom Miller | Development,IoT Notes,SpinDance

Storefront displays have come a long way since the Miracle on 34th Street. At SpinDance’s Holland, MI, headquarters, we think of it more as the Technology on River Avenue, as we’ve recently installed an interactive display to allow passersby of all ages the opportunity to touch the future of IoT development.

When you visit, you’ll notice that the first step in our display is an AWS IoT button attached to the company’s first floor office window, which allows you to control the lights on a Christmas tree. We used the popular NeoPixel platform to create the lights, and there are number of festive patterns you can cycle the lights through. The buttons runs some code in Amazon’s cloud, which then runs the commands on the tree.

After you’re done playing with the Christmas tree, you can scan the QR code on the window to access a web app which gives users the ability to control the speed and sound of a model train in the winter village. The train’s sound is amplified by a surface transducer that transforms the entire window into a large speaker.

As an IoT (Internet of Things) company, SpinDance is committed to using the same technology we implement for our customers in our own day-to-day lives. One way we do this is through our hackathons,…

Read more

Smart Consumption for Smart Products: Understanding MQTT

December 12th, 2017 | Sean Hamstra | Development

In this day and age, we consume just about everything digitally. The explosion of smart products that are connected to the internet is just hitting its stride. We are looking everywhere to see where we can add new conveniences and advancements to our daily lives through smart devices. With all of these smart products filling our homes, offices, and everyday lives, the last thing we want to worry about is this little, convenient device eating up all of our bandwidth.

We think family meetings about data overages should be a thing of the past, too.

Smart Product Architecture and HTTP

As developers, we should be good stewards of the network, building products that are conservative and use the least amount of bandwidth. At SpinDance, we always suggest ensuring the development of efficient communication methods and the architecture of compact, flexible data models.

HTTP is the most popular and widely used protocol for the digital world, and it’s document-centric model created for client-server computing is a great solution for software and the World Wide Web, but what if there was a faster protocol with less overhead and battery usage for these mobile smart products?

Enter MQTT.

What is MQTT?

MQTT is a connectivity protocol designed for Internet of Things (IoT) devices. It uses an extremely lightweight publish/subscribe (pub/sub) messaging transport with a data-centric model that is perfect for saving battery life….

Read more