Surface-Mount Electronics Fabrication at Home

In preparation for building an openBMS battery management system, I’ve been researching new ways for a hobbyist to solder and build a surface-mount design. I have previous experience building prototype electronics in an electronics test lab. That lab had deep pockets and an impressive array of electronics prototyping equipment. I enjoyed expressing my “inner craftsman” […]

Systemantics and How They Apply To Everything

After reading Scott Vokes’s intriguing post about the importance of Problem Solving Like a Generalist, I asked him: “Hey what’s that little book on the top of the stack in the picture?” His enthusiastic response (and the ridiculously low price on amazon) led to a knee-jerk, buy-it-now response. Systemantics: How Systems Work and Especially How They Fail was more […]

Bringing TDD & Embedded Programming Together with QP

Ever since I matched Test Driven Development (TDD) with embedded systems programming, I’ve wondered how TDD fits in with software design. In the past, I have expressed embedded systems with a small subset of UML including: sequence diagrams, flowcharts, and state charts. There seems to be a dichotomy between TDD and design, because as soon […]

Measuring CPU Utilization

Understanding processor load in an embedded system is important, yet often overlooked. It’s a step toward analyzing your processor’s ability to meet system deadlines. I have provided a sample arduino sketch to show how you can add real-time CPU utilization measurements to your embedded project.

A Practical Example of TDD Working

I’d like to share a pretty good TDD experience I had recently with a moderately large embedded project (32bit about 130k). This example will show that TDD pays off big time even when you have an old project with only about 50% of its code covered with unit tests. I was tasked with taking out […]

In Defense of MISRA – Multiple Return Statements

Recently I was part of a conversation debating the value of sticking to MISRA guidelines for C development in automotive applications. First off I’d like to submit that the notion of following any particular guideline exactly and without exception is usually not a good idea. The particular rule I’d like to discuss is 17.4.(No more than […]