Jacob Beningo


Jacob Beningo is an embedded software consultant, advisor and educator who currently works with clients in more than a dozen countries to dramatically transform their software, systems and processes. Feel free to contact him at, at his website, and sign-up for his monthly Embedded Bytes Newsletter here.

Jacob Beningo

's contributions
    • There is more than one way to write a driver and the way that it is written can dramatically affect system performance, energy consumption and many other factors. This article describes several common driver design patterns and how they affect application code.

    • Use of low power modes is not the only technique available to developers. In this post, we will examine five of my favorite techniques for lowering microcontroller energy consumption.

    • How are low-power modes implemented on a real microcontroller and how do those modes affect embedded systems? In this post, we explore details of putting a microcontroller to sleep and determining actual energy savings.

    • Every processor architecture is going to have slightly different low-power capabilities even when you look at a single microcontroller family. In this post, we look at the fundamental low-power modes in the Arm Cortex-M processor and how you can use them to reduce power consumption.

    • In a previous article, I wrote about how developers can speed up their application code by executing time sensitive functions in RAM rather than from flash. You might be wondering if you were to make such an adjustment, what would the performance change be, and how could you measure it?

    • Flash provides an inexpensive and fast storage medium for MCU-based applications, but when execution time and deterministic behavior are paramount, developers need to perform these three steps to place critical functions into RAM for an extra speed boost.

    • Exploring the latest security, IoT and artificial intelligence technologies driving innovation in embedded systems.

    • Modifying Amazon FreeRTOS demonstration code for publishing messages to Amazon Web Services to support multiple topics and messages turns out to be pretty straight forward.

    • Amazon FreeRTOS simplifies cloud integration but the documentation doesn’t provide a clear picture on what is going on. In this post, we take a peek inside Amazon FreeRTOS to see what we can expect from this Amazon Web Services offering.

    • Battery life is one of the last thing on the minds of developers rushing to complete their designs but there are a number of things they can do throughout their development cycle to properly manage devices energy consumption.

    • There are several different ways you can measure the difference. 1) If you are using an RTOS, you could use Tracealyzer, System View, etc 2) If you are running bare-metal, the tried and true toggle an I/O pin before you call the function and after. Do that for flash execution and ram and use a scope or logic analyzer to measure the difference. 3) Setup a timer to measure the execution time Thanks for the question.

    • Thanks for the comment. I also highly suspect that the code just polls instead of being event driven. I'm planning to do some follow-ups that will dig deeper into the code and hopefully provide developers with some more insights into how the application behaves and what changes might be warranted for a production intent system. Thanks for the insights!