The Embedded Online Conference is fast becoming the must-attend event for engineers in that space. For many years, the Embedded Systems Conference served that purpose, and even if we put aside the pandemic, the last two years have seen great events put on by Stephane Boucher and Jacob Beningo at a time when ESC appears to have been in decline anyway.
For that, we as embedded engineers can be very thankful.
This year’s event was held over four days, with a great variety of sessions and top-notch presenters and presentations. One great feature that was added since last year was an ability to fill out an agenda of sessions you want to check out, which made this so much easier. From that, I can tell you as I write this that I have checked out 16 sessions I marked down and still have about a dozen to go, which I will watch in the days to come. This feature also notes which ones you have checked out and which ones you haven’t, so it will be easy to finish out my selected slate.
The earliest available session I watched was Essential Skills for Embedded Systems Engineers to Have. This was well-done, with a number of the conference presenters highlighting what skills engineers need as this is a unique part of the technology industry. While some non-technical skills were highlighted, as should be expected, some good technical ones were noted as well. The legendary Jack Ganssle had a stunning note that spoke to the importance of continuing to learn while a professional, mentioning that the average engineer might read one technical book per year. I have been guilty of that, even as I have taken training offered by the local IEEE chapter and more recently Udemy courses, but I have rectified that of late.
The recently retired Colin Walls has long cultivated a reputation for excellence on the subject of real-time operating systems, among other things. He wrote a book that came out just months ago on the subject that I eagerly ordered and look forward to consuming soon. I have read many other great columns by him as well as much of his book Embedded Software. Here, he gave a great presentation entitled Self-Testing in Embedded Systems, one that was full of good guidance on testing at a high level, along with details about testing peripherals or memory and some things to look for in software.
In Painless Multithreading: How to Verify RTOS Best Practices in Real-Time, Dr. Johan Kraft took us through some considerations in working with an RTOS and how Percepio, the signature product from the company he founded, can help with that. He took the readers through the main options for runtime monitoring, as well as using delays, semaphores and mutexes in systems with multiple tasks (which is basically every system).
Clive “Max” Maxfield gave a great history lesson with much to think about in Not Your Grandmother’s Embedded Systems. He noted the history of displays from seven-segment all the way up to 16-segment, old phones to the “Swiss Army Knife” phones of today, and also talked a little about the history of artificial intelligence, which goes back a lot further than you might think given how it seems to have exploded on to the scene in just the past few years.
The first keynote came from Steve Scandore, the Mars 2020 Perseverance FSW Technical Lead. He ran down some of the progression of software for missions from Spirit/Opportunity in 2004 to more recent ones, and also gave some interesting details on how complex the software is. Notably, the software manages over 1,000 devices, about half of which are temperature sensors, and has several layers and interfaces (including several serial interfaces). A really interesting note is that the Mars Perseverance Flight software has 1.2 million lines of flight code and 1.9 million lines of unit test code, which speaks to the importance of testing this software constantly.
Jacob Beningo gave a solid presentation entitled Best Practices for RTOS Application Design. He gave some good insights into the subject, ones he goes into good detail in his training on that subject, notably looking at how to break down a system into tasks and a little on scheduling algorithms used to determine priorities. He is fast becoming one of the more authoritative voices in the industry, as his presentations are always well worth checking out and his training is excellent as well.
In Modern Embedded Programming with Hierarchical State Machines & Active Objects, Miro Samek talked about how to use Active Objects as part of event-based programming. State machines and events are his bread and butter, and he gave a related presentation here a year ago before picking up where he left off here. This is a subject I admittedly have to digest a little more on.
Open Source Hardware was a talk I looked forward to having heard a little about the subject and also having an idea about it having worked with much open source software over the years. She talked about what is required for an open source hardware creation, from design and documentation to libraries and toolchains. I have heard much about Arduino, but mostly in passing, so little did I know before she mentioned here that it’s a popular example of open source hardware. The presentation closed up with a good set of links to check out.
Tyler Hoffman’s presentation The Best Defense is Offensive Programming talked about the idea of turning defensive programming on its head. Rather than return a failure and pass it up the chain, why not fail quickly and let the specific error be known? Much of this talks about using asserts, and he goes on to note as well that this is not an option in the boot sequence. He had a good tip there to implement a form of “safe mode” after a certain number of reboots to avoid an endless loop of reboots or a “bricked” device.
Niall Cooling got the last day of the event going with A Decade of Modern C++; from 11 to 20, where he ran down a number of changes to the language over the past decade with some example code. Indeed, the language has had many changes for the better over that time, ones that make it much better for use in embedded systems among other things, and he showed this with a neat online tool I was quick to bookmark, Compiler Explorer.
Next up was Dave Nadler’s talk Getting the Bugs Out of Your Embedded Product, where he shared an experience of solving issues with one particular embedded device. Simulation is something he strongly advocates and notes is easier to do than one might think. He pointed out bugs found that should be picked up in a code review, leading him to strongly advocate that teams engage in them.
One of the more informative sessions was The $5 Wrench: Realistic Embedded Security Threats by Colin O’Flynn. With all the possible threats, it’s impossible to guard against all of them, but some are more likely to have attempts at exploiting than others. While most discussion of threats and security focus on software, this was more hardware-based and thus quite enlightening to me. When he noted some electromagnetic concerns that could come into play to damage systems, it was a reminder that this was becoming a reality back when I was in school and can only be more of one now, especially in complex systems with many electronics together. (And back when I was in school, where electromagnetics was no one’s favorite required course, the mention of this becoming more important wasn’t something many wanted to hear.)
After this came one of the big selling points of the event: The Microprocessor at 50, a keynote by the aforementioned legend Jack Ganssle. He gave a wonderful history of electronics and the microprocessor, including vacuum tubes from many years ago, and also shared stories of his early dealings with them, including one of being stopped at the Canada-U.S. border with early microprocessors in the glove compartment of his car. He closed with a fun quip about the staying power of the 8051 processor and COBOL programming language.
There were three more sessions I took in after that, starting with Introduction to Encryption for Embedded Linux Developers by Sergio Prado, which included demos using openssl in Linux. Shawn Prestridge, who I have seen give very good presentations in past conferences, gave us Why Should I Care About CI/CD?, a look at how to get a continuous integration/continuous delivery system going and its benefits. Finally, I enjoyed Elecia White’s presentation Buried Treasure and Map Files, which went into detail on map files that are part of software builds and the useful information they contain.
All of this has me looking forward to the remaining sessions on my agenda, and much more to come in the future. It’s safe to say that the Embedded Online Conference is well worth the time and money of any engineer in the industry.