• Archive Question: Do you use or allow dynamic memory allocation in your embedded design?

    This "Question of the Week" was originally posted over a year ago on March 24, 2010. The discussion on the topic has been active off and on al the way up until today still and has generated over 170 responses and comments to date across multiple communities, all of which can be read at Embedded Insights. Please join in on the discussion and keep a look out for an upcoming article that will further address the…

  • Is peer code inspection worthwhile?

    Peer performed code inspection is a mechanism to bring multiple sets of eyes to the task of implementing software code. Given the evolution of automated code checking tools, is the manual task of inspecting a peer’s code a worthwhile task?
  • When is single better than multiple?

    For decades, when a project needed signal processing and control software, developers used a microcontroller and separate DSP to perform those functions. Over the previous decade microcontrollers with integrated signal processing circuitry evolved and now offer developers a single instruction stream approach to implementing these types of projects. When is the single processor versus the multiple processor approach better…

  • Which is better: faster- or quality-to-market?

    There are at least two major schools of thought about the best way to release new products with updatable software. One group says to make products available sooner, but they will probably need software updates right out of the box. The other group says to only release products when they perform properly out of the box, but it may make it to market months later than the other approach. Which is better?

  • Do you have enough budget for your embedded project?

    Embedded developers are being asked to accomplish more with less. Or are they? Have your budgets been shrinking over the years? Has the workload increased for each developer? Are development tools providing the productivity boost needed to deliver more with less?
  • How do you handle obsolescence?

    Microsoft’s ie6countdown.com website is a testament to how difficult it can be to plan and execute the end-of-life for a product or component. Many embedded developers working on long-life components deal with end-of-life issues throughout their careers. How do you handle obsolescence as a producer and as a user?

  • What makes an embedded design low power?

    It seems that nearly everything these days is marketed as low power. Is this reasonable even though there is no definitive industry threshold that makes where low power begins/ends? As technology improves, the threshold for low power becomes a moving target – is there a way to describe a low power design that accommodates moving thresholds and different operating scenarios?

  • Will Watson affect embedded systems?

    IBM’s Watson computer system recently beat two of the strongest Jeopardy players in the world in a real match of Jeopardy. This latest example of extreme processing innovation demonstrates that a computing system can use machine learning and pattern recognition techniques to process natural language and database search on par with the best human trivia players. How might these innovations flow down into embedded…
  • Is embedded security necessary?

    Embedded systems that are connected to public networks are potential targets for malicious attacks. Even systems that implement significant precautions can and are compromised. As more embedded systems are attached to networks, who should be responsible for deciding when security is or is not an issue?
  • Can we reliably predict the winners?

    History is strewn with examples of people and companies snatching failure from the jaws of success. The converse is also true of approaches or technologies that were deemed impossible or impractical by the establishment that became winners that changed how we live our lives. Can we reliably predict winning (and losing) future technologies better than chance?
  • Is assembly language a dead skillset?

    Compiler technology has improved over the years. The “wisdom on the street” is that using a compiled language, such as C, is the norm for the overwhelming majority of embedded code. I suspect the “last mile” challenge for compilers is far from being solved – which prevents compiled languages from completely removing the need for developers that are expert at assembly language programming.…
  • Debugging Stories: Development Tools

    Anyone that has developed a system has debugging stories. A number of those stories are captured in the responses to a Question-of-the-Week posed a while ago about your favorite debugging anecdote. While collecting the different stories together reveals some worthwhile lessons learned, reading through all of the stories can be time consuming and random as to the type of content in each story. This article will focus on…
  • Is adoption risk real?

    A solar panel company is claiming that owners can realize better than 14% rates of return on their purchase of solar panels. The risks of adopting solar power at this moment seem to parallel the decision to buy “future-proofed” desktop computers in the 1980’s. I believe this is the condition of a classic early adopter. Have you experienced this type of trade-off when choosing components and features for your embedded…
  • Are consumer products crossing the line to too cheap?

    Design teams can make concessions in resource and quality margins to lower production costs of a product. After many generations of squeezing margins to the edge, are value-priced products flirting with margins that are too small?
  • What is your most memorable demonstration/test mishap?

    The crush of product and technology demonstrations at CES is over, and the demonstrations did not always fare quite so well. Sharing your most memorable ways that demonstrations and prototypes have failed might be a valuable way to pass on hard won lessons learned to other developers.
  • What is your favorite failsafe design?

    We had snow falling for a few hours where I live this week. This is remarkable only to the extent that the last time we had any snow fall was over 21 years ago. The falling snow got me thinking about how most things in our neighborhood, such as cars,...
  • How do you exercise your orthogonal thinking?

    How are Christmas and Halloween the same? The intended answer to this question requires you to look at the question from different angles to find the significant relationship between these seemingly unrelated events. In fact, to be a competent problem solver, you often need to be able to look at a problem from multiple angles and find a way to take advantage of a relationship between different parts of the problem that…
  • How do you mitigate single-point failures in your team’s skillset?

    One of the hardest design challenges facing developers is how to keep the system operating within acceptable bounds despite being used in non-optimal conditions. Given a large enough user base, someone will operate the equipment in ways that the developers never intended. For example, a friend recently shared that his young daughter has developed an obsession with turning the lights in the house on and off repeatedly…
  • Does your embedded development team’s project budget metric support in your estimation process?

    As an engineering project lead I had to develop and report on a set of performance metrics that we called the VSP (vision support plan). The idea behind these metrics was to show how each area of the company was directly supporting the company vision statement. For many of the metrics, the exercise was a waste of time because there was no clean way to measure how what we were doing as a team directly corresponded to every…
  • What feature would you most like embedded designs to enable in systems you use?

    Automobiles can recognize authorized users and support keyless entry and operation. Why don’t houses do the same? It’s not like houses are parked in different neighborhoods or environments. What “invisible interface” features would you like to see in devices and systems?
  • What is your favorite debugging anecdote?

    We all know stories about how something went wrong during a project and how we or someone else was able to make a leap of logic that enabled them to solve the problem. The value in sharing these stories is usually not about the details of the story but about the long term insghts we gleaned while living and retelling these stories.
  • Are you, or would you consider, using a 4-bit microcontroller?

    Jack Ganssle asked me if 4-bit microcontrollers are dead. There are at least three companies that still provide 4-bit products, so the answer is no. Are you, or anyone you know using a 4-bit microcontroller in any of your designs?
  • Does your design team suffer from “Group Think?”

    I have had the opportunity to work with many teams of excellent people. Over the years, I developed a way to measure the health of a company by examining how team members interacted with each other – most notably – how often do people voice their disagreements...
  • How do you handle contractual indemnity and liabilities for embedded systems?

    By definition, embedded designs are not the end device, so they are used by someone else in their final device – thus embedded developers always find themselves in the position of supplier to some end device manufacturer. The trend of buyers to allocate risk of failure to their suppliers can put embedded developers in a tight position. How do you handle it?
  • Are you, or someone you know, using voting within your embedded system designs?

    With the midterm elections in the United States winding down, I thought I’d try to tie embedded design concepts to the process of elections. On some of the aerospace projects I worked on, we used voting schemes as fault tolerant techniques. In some cases...