Favorite Tools: C++11 User-defined literals

Matthew Eshleman

In many software domains units of measurement are frequently critical to the software's data processing requirements. Those same units, or rather the use of the wrong units, are often the source of bugs and disastrous mistakes. Although...


Experiences with the Linux Real Time Scheduler

Matthew Eshleman
1 comment

I have recently been helping with embedded software design and development for a data acquisition and visualization device. The software executes within an embedded Linux context and consists of various animated user interfaces rendering the...


Favorite Tools - Look Up Tables

Matthew Eshleman
1 comment

As we grow in our engineering careers, we must continually add new tools to our collective tool kits. One favorite tool in my toolkit will be obvious to many experienced embedded software engineers. I still remember learning this approach early...


From bare-metal to RTOS: 5 Reasons to use an RTOS

Jacob Beningo
1 comment

Developers can come up with amazing and convoluted reasons to not use an RTOS. I have heard excuses ranging from they are too expensive (despite open source solutions) all the way to they aren’t efficient and use too much memory. In some...


NXP LPC17xx/40xx: Decoding the Part ID

Ricky Bennett

This is the first blog of a number dealing with the NXP LPC17xx/40xx processor families and how to program them despite the lack of documentation.  The next blog will deal with implementing the LPC17xx/40xx UART with interrupts...


Use DPLL to Lock Digital Oscillator to 1PPS Signal

Michael Morris

Introduction There are occasions where it is desirable to lock a digital oscillator to an external time reference such as the 1PPS (One Pulse Per Second) signal output from a GPS receiver. One approach would be to synchronize a fixed frequency...


The habitat of hardware bugs

Yossi Kreinin

The Moscow apartment which little me called home was also home to many other creatures, from smallish cockroaches to biggish rats. But of course we rarely met them face to face. Evolution has weeded out those animals imprudent...


Digital PLL's -- Part 2

Neil Robertson

In Part 1, we found the time response of a 2nd order PLL with a proportional + integral (lead-lag) loop filter.  Now let’s look at this PLL in the Z-domain [1, 2].  We will find that the response is characterized by a loop natural...


From Baremetal to RTOS: A review of scheduling techniques

Jacob Beningo
5 comments

Transitioning from bare-metal embedded software development to a real-time operating system (RTOS) can be a difficult endeavor. Many developers struggle with the question of whether they should use an RTOS or simply use a bare-metal scheduler....


Choosing a Microcontroller for Your Vehicle

Ed Nutter

There are many things to take into consideration when choosing a microcontroller or microprocessor for your autonomous vehicle.VoltageSome processors run on 5V and others use 3.3V.  Be sure to check the documentation before you buy. ...