This is a monthly series featuring embedded developers of the ARM Connected Community.
Jacob Beningo is a Certified Software Development Professional (CSDP), consultant and lecturer who specializes in the design of resource constrained and low energy mobile devices. He has successfully completed projects across a number of industries including automotive, defense, medical and space. He enjoys developing and teaching real-time and event driven software using the latest techniques and tools. He is an avid tweeter, a tip and trick guru, a homebrew connoisseur and a fan of pineapple! Jacob holds bachelor’s degrees in Electrical Engineering, Physics and Mathematics from Central Michigan University and a master’s degree in Space Systems Engineering from the University of Michigan.
My first microcontroller based project was an LED lighting system that had multiple panels of eight LED’s each that require multiplexing to display different patterns and colors. It used a Parallax Stamp module. It wasn’t a professional project, but a side project that was part of my high school robotics club. The LED project and getting to write and review the software for our team’s robot laid the foundation for my interest in embedded software.
My best product at the moment would have to be my online self-paced training courses. As a consultant I’ve often found that my clients have a hard time finding time and budget to send engineers to off-site training or conferences. These courses allow engineers to sharpen their skills at their own pace, from the office while still meeting the daily demands of their work. It offers great flexibility and I’m excited to have more and more courses coming online each quarter.
One of my favorite newer tools is the IAR Systems I-scope. I do a lot of low-power design for mobile devices and the I-scope is a useful tool for monitoring not only how much current the processor is using, but I can also monitor board voltages. Depending on clock frequencies you can even correlate how much current a particular function or peripheral is using when it is running.
There are a lot of resources that I find very useful. I’ve been amazed recently at how helpful social media sites such as the ARM Connected Community and Twitter can be for finding information and assistance. I think that these resources will only become more helpful as they further mature.
The most important tip for a beginner is to interact and read as much as possible on sites like the ARM Connected Community, LinkedIn, EDN, Embedded.com, etc. Take the knowledge on these sites that are the culmination of experts throughout the world and implement that experience by writing lots and lots of code. You’ll be amazed how quickly you can get up to speed and become an expert yourself.
More and more engineers are being forced into a tiny box of expertise. Products are becoming very complex and requiring engineers to focus on a particular area of interest and become the expert on it. While this is great, engineers need to realize that despite expertise compartmentalization, they need to become near experts on the development process. Limiting one’s knowledge to a particular area can be extremely dangerous, both for the developer and product.
I’ve been writing embedded software since I was 14. It started out in languages like power basic and later strictly in assembly language (mostly because high level compiler required thousands of dollars unlike today's 32k limited trial versions). This allowed me to get an expert understanding of how the microcontroller functions at its most complicated level. Eventually as free compilers became available, I moved to developing my embedded software in C/C++.
jacobbeningo. Love to connect since we @DSP Concepts specialize in the core audio DSP algorithms and often can use extra resources to build the embedded system around our processing.