7 lessons for embedded developers from ESC Boston 2015
The Embedded Systems Conference in Boston this week was jam packed with high-value information crucial to embedded system developers. Nearly every hot topic was covered ranging from security, safety critical software, low power design, and of course the IoT. Attending ESC Boston not only allowed developers to attend the informative sessions but also network with other developers and learn about the challenges they are facing in their own design cycle. Overall, there were seven key lessons that seemed to be a common theme throughout the conference.
Lesson #1 – Connected devices need at least an RTOS
When developing an embedded system the temptation exists to forgo an RTOS and develop everything from scratch in a bare-metal fashion. For Internet connected devices excluding an RTOS looks to be a foolhardy endeavor. The features provided in an RTOS provide developers with significant features such as task scheduling, stack maintenance, and hooks into TCP/IP stacks along with many other features that are just too time-consuming to develop from scratch. For a connected device at least an RTOS should be used to help ease the development and security burden.
Lesson #2 – The importance of low power
The importance of low power design and optimization was a recurring theme in many of the sessions at ESC Boston. One might think that this would be obvious given the many battery-operated devices that are currently in development but it turned out to also be an important topic for developers who receive constant power from the grid. Minimizing energy consumption and being a “green” device isn’t just a trend but ranks high on the requirements list for embedded systems.
Lesson #3 – Securing embedded systems
Security for embedded systems is a growing concern for a number of reasons. Many embedded systems have no local encryption or security to prevent would-be hackers from accessing the embedded systems code. With access to the code, intellectual property could easily be copied or worse the embedded system could be hacked for nefarious reasons. Embedded systems that do have security implemented often are only weakly authenticated which offers little protection from anyone who is serious about getting into the system. Embedded developers need to put security higher on the priority list.
Lesson #4 – One language isn’t enough
Mastering a single programming language is not going to be enough to survive as an embedded software developer. Embedded systems have traditionally been dominated by C/C++ but other languages such as Java, Python, Squirrel, HTML, and Java Script are quickly becoming just as important to an embedded system. Developers with an understanding of these other languages will have a leg up when it comes to finding employable work in the foreseeable future.
Lesson #5 – Plethora of protocols
The list of protocols that can be used to connect a device to the internet or a network is quickly becoming unmanageable. A number of attendees were on a mission to understand these protocols and determine which of them are appropriate for their own applications. A fair amount of discussion revolved around Thread, HTTPS, MQTTS, Wifi, Bluetooth, Zigbee, 6LoWPAN, Zwave, and standard TCP/IP to name a few. Despite all of these different protocols, designers should select a protocol that is mature, simple, and fits their system needs. There is currently no one protocol to rule them all.
Lesson #6 – Track optimization efforts
Optimizing embedded systems is an important topic. Developers need to optimize for speed, code size, and power among other parameters. An interesting tip that came out of the conference is that all optimization eventually reaches an asymptote where the effort required to achieve better optimization becomes not worth invested time. The takeaway is that optimization should be done in iterations and not all at once so that the improvement can be tracked to determine best when to quit optimizing and move on.
Lesson #7 – Rapid prototyping
Thanks to the maker movement there are now more rapid prototyping tools available to developers than ever before. Development boards, open source code and tools are being released at a dizzying rate. There are a number of tools such as mbed from ARM and Arduino that can be used to quickly develop and test product concepts.
I found that ESC Boston offered attendees a great deal of lessons and knowledge. The conference revealed a number of trending topics related to the challenges that embedded developers are now facing and how to start attacking those challenges. Security, low power, rapid prototyping, and the IoT will continue to be important areas that developers will need to grapple with in order to build and deploy a successful product. I will be looking forward to what ESC Silicon Valley has in store.
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 email@example.com, at his website www.beningo.com, and sign-up for his monthly Embedded Bytes Newsletter here.
Join over 2,000 technical professionals and embedded systems hardware, software, and firmware developers at ESC Silicon Valley July 20-22, 2015 and learn about the latest techniques and tips for reducing time, cost, and complexity in the embedded development process.
The Embedded Systems Conference and EDN are owned by UBM Canon.