5 tips for building connected devices
The number of embedded devices connected to the internet is rising at an incredible rate. Some engineers have been designing connected devices for over a decade while others are just beginning to jump into the fray. Adding connectivity involves more than simply bolting on a radio, though, so here are five tips for building a connected device.
Tip #1 – Don’t neglect security
A connected device poses a potentially high security risk over a traditional embedded system because it is connected to a web with billions of devices connected to it 24 hours a day, 7 days a week. The chances are that at some point someone or something will notice the device and attempt to gain access to it. From the very first requirement, security needs to be built into the design. Security can’t be added at the end of the design cycle but instead should be a well thought out and executed plan. Developers should be considering encryption technology, authentication, and validation methods; all of which have proven examples and technologies that can be leveraged today.
Tip #2 – Use third-party software components
Building a connected device starting at the bits and bytes level for every peripheral and piece of application code is a fools’ errand. Modern microcontrollers have become so complex that setting up and creating drivers from scratch is a time consuming and expensive endeavor. Attempting to write the middleware such as the file system, TCP/IP, and/or USB stack would probably take twice as long as the drivers and by the time the drivers and middleware were written the competitors would have launched version two. Now driver and middleware development is fun, don’t get the wrong impression, but the main concern of product development is to develop the application code. Many sources exist from which a developer can purchase or get for free the fundamental lower layers of software where they can then focus on their application and not on the lowest common denominator of the technology.
Tip #3 – Utilize an existing IoT platform
Building connected devices is complex! Developers need to understand programming languages, sensors, drivers, middleware, operating systems, project management processes, and now security, encryption, networking protocols, web and server technologies to name a few. It can be impossible for a team to truly understand all of these complex pieces so the advice is, don’t! Use an existing IoT platform to ease connectivity and security woes.
The IoT isn’t just changing the way that mankind interacts with the world and devices but also changing the fundamental way in which embedded systems are developed. Take for example companies such as Electric Imp or Particle which are providing Wi-Fi modules that securely connect to the cloud. These modules are paving the way for ease of connectivity and even more importantly they are moving the embedded software into the cloud!
Tip #4 – Only use proven standards
The age of the connected device has launched the proliferation of networking standards. Each standard attempts to solve the problem using a slightly different method. At the moment it is difficult to tell which standards will survive the test of time. Building a product around a standard that in a few years disappears or loses support could be potentially devastating. Developers need to either protect their devices by supporting multiple standards or by keeping it simple and using proven standards that are core to the Internet such as POST and Request.
Tip #5 – Optimize for team strengths
Each development team has fundamental strengths and weaknesses. The traditional mindset is to identify weaknesses within the team and then attempt to build up those weaknesses into strengths. The process can be quite time consuming and in the quick-paced development cycle many engineers experience, it is an unrealistic solution. Learning about cyber security for the first time while building a new device is a recipe for a poorly secured device. Instead, development teams should focus on their strengths and continuing to build those strengths further. Identified weaknesses should instead be turned into strengths through the use of third-party components and products or even the use of consultants. A successful connected device will be built not by improving weaknesses but through the use of in-house and external expertise.
Today's engineers live in an exciting time. The world around us is quickly becoming alive through automation and connected devices. In the not too distant future nearly every electronic device will be connected allowing a nearly seamless and automated environment in which humans will work and live. Embedded software engineers are at the center of this amazing transition and these five tips are just the tip of the iceberg.
Jacob Beningo is a Certified Software Development Professional (CSDP) whose expertise is in embedded software. He works with companies to decrease costs and time to market while maintaining a quality and robust product. Feel free to contact him at firstname.lastname@example.org, at his website www.beningo.com, and sign-up for his monthly Embedded Bytes Newsletter here.