A new way to look at debugging
December 01, 2014
Debugging is an important part of any project, professional or for fun. Popular debugging tools are expensive and not very accessible - visual, inexpe...
Usually when we look at DIY/maker things we focus on boards and projects, but those are just the ingredients list and recipe instructions. Boxed cake mix/how-to's and tried-and-true family recipes/project walkthroughs are great, but makers are also like creative chefs coming up with completely new dishes, which means there are a lot of failures and revisions before they get it right. Makers do a lot of debugging to get to that polished end result they're proud to show off or sell.
"Being an engineer or a maker means that you will spend 75 percent of your time debugging; solving problems is what we as engineers/makers do," says Jamie Bailey, Co-founder of Initial State (www.initialstate.com). "The tools that you have in your toolbox to figure out what is going on are critical to the success of your project and your sanity. Having debug tools that are super easy to use beats the heck out of guessing, swapping parts, or being frustrated because you can't figure out why your logic analyzer won't do what you want it to."
Oscilloscopes have been the traditional test and measurement tool for embedded hardware debugging for some time, but they're really only useful for analog/hardware testing. Logic analyzers are great for checking software and hardware simultaneously now that there's more of a software focus in electronics design, but they cost thousands of dollars, putting them out of reach for most individuals (Figure 1).
"Traditional test and measurement tools have been unaffordable for most makers," Bailey says. "Makers who are buying single board computers for $35 aren't going to buy a $2,000 logic analyzer to troubleshoot their design."
Not only are these tools expensive, they just don't provide a good user experience or keep up with what makers need for their projects.
"Makers are building a new generation of products, and they need a new generation of tools to help them with debugging and analysis. Makers need tools that give them super easy access to any information they need, including software events, hardware connections, sensor outputs, and whatever is going on inside their designs. The era of the physical probe is coming to an end," Bailey explains.
Bailey and his team at Initial State – which also includes David Sulpy, Director of SW Dev and Co-founder; Raymond Jacobs, Director of Biz Dev and Co-founder; Adam Reeves, Front-End Dev Lead; Vanessa Magalong, Software Dev; and Rachel-Chloe Gibbs, User Specialist – have designed visualization tools for test and measurement. The inspiration for Initial State came out of Bailey's experience as an ASIC/system engineer, where sifting through a backlog of bugs from a mess of interacting complex subsystems was hard to understand. Using log data was easier and almost always provided the information needed to solve a problem, but even a few seconds of data could generate log files of more than a hundred thousand lines.
"I had an epiphany that if instead of reading this data I could see it, I could figure out things much faster," Bailey says. "Having the right data visualization tools made the difference between hitting product schedules and being months late. I realized that we needed better tools, and the test and measurement industry wasn't keeping pace with the evolution of technology for the very products we were building."
The Initial State team's visualization tools include Waves and Lines, among others that assist in visualizing, manipulating, and sharing data. Waves transforms and mines data in waveforms and statistics, from which you can collect targeted statistics. Lines let you interactively visualize numerical log data in stacked line graphs for measuring variables like time and magnitude, and to collect statistics. Data can be brought into these visualization tools through Initial State's IoT data streamer or by uploading log files.
"When you are debugging, you are often discovering things you didn't know you needed to discover," Bailey says. "Seeing dozens of concurrent hardware and software events at the same time is a great way to accomplish this. Being able to capture when a software function is called, the value of a variable, seeing a GPIO pin toggle, or seeing how your code reacts to a hardware interaction are frequent, common requirements during design. A great application of both Lines and Waves is being able to 'see' what happened in the past that led up to an issue. Your robot just started banging into a wall – what happened in the past that led up to the issue? It is amazing how the right visualization allows your mind to quickly catch an anomaly in your data."
Initial State's tools have been in beta since April 2014, and the feedback they've gathered so far has been very positive even ahead of the December 2014 launch.
"The feedback we have received for our tools has been unbelievably awesome and beyond even our expectations," Bailey says. "The most common feedback we get is 'this is so cool!' No one has said that about an o-scope since 1970."